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
| Number |
Author |
Title |
Description |
Labels |
+/- |
Modified files (first 100) |
📝 |
💬 |
All users who commented or reviewed |
Assignee(s) |
Updated |
Last status change |
total time in review |
| 26054 |
FMLJohn author:FMLJohn |
feat(RingTheory/GradedAlgebra/Homogeneous/Subsemiring): homogeneous subsemirings of a graded semiring |
---
[](https://gitpod.io/from-referrer/)
In this pull request, we have defined homogeneous subsemirings of `GradedRing 𝒜` where `𝒜 : ι → σ`, `SetLike σ A` and `AddSubmonoidClass σ A`.
## Main definitions
For any `R : Subsemiring A`:
* `Subsemiring.IsHomogeneous 𝒜 R`: The property that a subsemiring is closed under `GradedRing.proj`.
* `HomogeneousSubsemiring 𝒜`: The structure extending subsemirings which satisfy `Subsemiring.IsHomogeneous`. |
t-ring-theory |
120/0 |
Mathlib.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/Subsemiring.lean |
2 |
1 |
['github-actions'] |
kim-em assignee:kim-em |
85-1314 2 months ago |
85-1314 2 months ago |
133-56425 133 days |
| 24730 |
YaelDillies author:YaelDillies |
feat(RingTheory): group-like elements |
Define group-like elements in a bialgebra, ie elements such that `η a = 1` and `Δ a = a ⊗ₜ a`.
We prove that group-like elements of a coalgebra over a domain are linearly independent, group-like elements of a bialgebra form a monoid, group-like elements of a Hopf algebra form a group.
From Toric
Co-authored-by: Michał Mrugała
---
- [x] depends on: #24747
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
toric
|
309/0 |
Mathlib.lean,Mathlib/RingTheory/Bialgebra/GroupLike.lean,Mathlib/RingTheory/Coalgebra/GroupLike.lean,Mathlib/RingTheory/HopfAlgebra/GroupLike.lean |
4 |
42 |
['Julian-Kuelshammer', 'Parcly-Taxel', 'Whysoserioushah', 'YaelDillies', 'erdOne', 'eric-wieser', 'github-actions', 'leanprover-bot', 'mathlib4-dependent-issues-bot', 'smorel394'] |
eric-wieser assignee:eric-wieser |
85-1208 2 months ago |
85-1208 2 months ago |
171-44657 171 days |
| 26770 |
Jun2M author:Jun2M |
feat(Combinatorics/Graph) : subgraph relations and operations on `Graph` |
This PR creates a new file `Combinatorics/Graph/Subgraph.lean`. In it, the PR introduces a partial order on graphs by subgraph relation, defines relations `IsInducedSubgraph`, `IsSpanningSubgraph` and `IsClosedSubgraph`. Further, it introduce operations `EdgeRestrict`, `EdgeDelete`, `induce` and `VertexDelete`.
Co-authored-by: Peter Nelson
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
703/0 |
Mathlib.lean,Mathlib/Combinatorics/Graph/Subgraph.lean |
2 |
1 |
['github-actions'] |
awainverse assignee:awainverse |
83-32382 2 months ago |
116-43860 3 months ago |
116-43895 116 days |
| 26765 |
KiringYJ author:KiringYJ |
feat(MeasureTheory/PiSystem): add π-λ theorem and SetLike instance |
Add two small features to `MeasureTheory/PiSystem`:
1. SetLike instance
`instance : SetLike (DynkinSystem α) (Set α)`
This lets us write `s ⊆ d` and `t ∈ d` for a DynkinSystem `d`, matching usual mathlib style.
2. `DynkinSystem.pi_lambda` lemma
Classical π‑λ theorem: if a π‑system `s` is contained in a Dynkin system `d`, every set measurable for `σ(s)` is also in `d`.
Currently, mathlib exposes this result only indirectly (e.g. via `generateFrom_eq`). Although logically equivalent, it is not obvious at first glance that those lemmas are the π‑λ theorem. The new lemma states the result in its familiar textbook form, so users can recognise and cite it immediately.
Both pieces are under 10 lines, term‑mode only, and do not modify existing APIs.
No breaking changes.
No dependencies.
|
new-contributor
t-measure-probability
|
13/0 |
Mathlib/MeasureTheory/PiSystem.lean |
1 |
13 |
['EtienneC30', 'KiringYJ', 'github-actions', 'ocfnash'] |
RemyDegenne assignee:RemyDegenne |
82-32381 2 months ago |
89-68430 2 months ago |
116-56265 116 days |
| 27534 |
PierreQuinton author:PierreQuinton |
feat: a typeclass for `sSup`/`sInf` to be lawful |
Adds lawful infima and suprema type classes.
A preorder with lawful suprema: whenever a set has a least upper bound, `sSup` returns a least upper bound for that set.
A preorder with lawful infima: whenever a set has a greatest lower bound, `sInf` returns a greastest lower bound for that set.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
121/8 |
Mathlib.lean,Mathlib/Order/CompleteLattice/Defs.lean,Mathlib/Order/LawfulSupInf.lean |
3 |
25 |
['PierreQuinton', 'YaelDillies', 'github-actions', 'plp127', 'vihdzp'] |
YaelDillies assignee:YaelDillies |
81-82558 2 months ago |
93-65855 3 months ago |
93-65881 93 days |
| 24850 |
pechersky author:pechersky |
feat(Topology/UniformSpace/Ultra): uniform spaces induced by pseudometrics are ultra if system is ultra |
Any uniform space has a natural system of pseudometrics definable on it,
comprised of those pseudometrics constructed from a descending chain of
equivalence relation entourages. In a nonarchimedean uniformity, this pseudometric system
induces the uniformity.
---
[](https://gitpod.io/from-referrer/)
- [x] depends on: #23111 |
t-topology |
509/1 |
Mathlib.lean,Mathlib/Topology/MetricSpace/BundledFun.lean,Mathlib/Topology/UniformSpace/Ultra/Pseudometrizable.lean |
3 |
8 |
['ADedecker', 'fpvandoorn', 'github-actions', 'mathlib4-dependent-issues-bot', 'pechersky'] |
urkud assignee:urkud |
78-32398 2 months ago |
141-19708 4 months ago |
156-51634 156 days |
| 28198 |
Sebi-Kumar author:Sebi-Kumar |
feat(Analysis/InnerProductSpace/PiL2): Add instances for EuclideanSpace rank and EuclideanSpace being infinite |
Add an instance for `Fact (Module.finrank 𝕜 (EuclideanSpace 𝕜 (Fin n)) = n)` which is needed to apply [stereographic'](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Geometry/Manifold/Instances/Sphere.html#stereographic') to EuclideanSpace. Also add an instance for `Infinite (EuclideanSpace 𝕜 ι)` where `ι` is a nonempty fintype. I wasn't sure if these should go in separate pull requests, but they seemed similar enough to me. Thank you to Kenny Lau for the suggestions at [#mathlib4 > Instances for EuclideanSpace](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Instances.20for.20EuclideanSpace).
---
To provide additional context, I am new to contributing to Mathlib, and I am doing so as a part of the Fields Undergraduate Summer Research Program at the University of Western Ontario under the supervision of Chris Kapulkin and Daniel Carranza. My goal is to contribute that the `n`-sphere is simply connected for `n > 1`.
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-analysis
|
6/0 |
Mathlib/Analysis/InnerProductSpace/PiL2.lean |
1 |
1 |
['github-actions'] |
urkud assignee:urkud |
72-32373 2 months ago |
79-45609 2 months ago |
79-45647 79 days |
| 28072 |
kckennylau author:kckennylau |
feat(RingTheory/Valuation): make tactic rw_val_equiv |
Co-authored by Aaron Liu and Bhavik Mehta.
A tactic to rewrite relations such as `max (v₁ x) (v₁ y) * v₁ z < 1` into `max (v₂ x) (v₂ y) * v₂ z < 1` , given `h : v₁.IsEquiv v₂`.
Allowed relations are `≤`, `<`, `=`, `≠`.
Allowed operations are: `0`, `1`, `v₁ r`, `⁻¹`, `^` (both `ℕ` and `ℤ`), `*`, `/`, `min`, `max`.
Examples:
```lean
example {R Γ₁ Γ₂ : Type} [Ring R]
[LinearOrderedCommMonoidWithZero Γ₁] [LinearOrderedCommMonoidWithZero Γ₂]
{v₁ : Valuation R Γ₁} {v₂ : Valuation R Γ₂}
(h : v₁.IsEquiv v₂) {y z : R} :
{x | v₁ x ^ 2 * min (v₁ y) (v₁ z) ≤ 1} = {x | v₂ x ^ 2 * min (v₂ y) (v₂ z) ≤ 1} := by
rw_val_equiv h
```
It is also possible to use `←` to rewrite in the opposite direction, and to use `at h1 h3 ⊢` to specify which hypotheses (and/or goal) to rewrite, similar to the syntax of `rw`. There is also `rwa_val_equiv` to work like `rwa`.
---
Zulip: [#Is there code for X? > Tactics for comparing equivalent valuations](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Tactics.20for.20comparing.20equivalent.20valuations)
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
455/13 |
Mathlib/RingTheory/Valuation/Basic.lean,MathlibTest/Simproc/ValEquiv.lean |
2 |
34 |
['b-mehta', 'eric-wieser', 'github-actions', 'kckennylau', 'pechersky', 'plp127'] |
erdOne assignee:erdOne |
71-32388 2 months ago |
81-54080 2 months ago |
82-28576 82 days |
| 28125 |
nonisomorphiclinearmap author:nonisomorphiclinearmap |
feat(Combinatorics): basic definition of simplicial complexes |
This PR introduces the basic definition of a finite (abstract) simplicial complex, located in Mathlib/Combinatorics/SimplicialComplex/Basic.lean.
---
This is our first contribution to mathlib. This work was done as part of the Fields Institute Summer Undergraduate Program on formalization in topological combinatorics. Eventually, we aim to formalize Lovasz's proof of the Kneser Conjecture and this is a small stepping stone in that direction. Some other commits will shortly depend on this one.
We would like to acknowledge the Fields Institute for Research in Mathematical Sciences for their sponsorship. We would also like to thank our supervisors, Professor Chris Kapulkin and Mr. Daniel Carranza, for their guidance and support throughout this project. We would also like to thank our group members Tom Lindquist and Quang Minh Nguyen for our fruitful discussions. |
new-contributor
t-combinatorics
|
374/0 |
Mathlib.lean,Mathlib/Combinatorics/SimplicialComplex/Basic.lean,Mathlib/Combinatorics/SimplicialComplex/Category.lean,Mathlib/Combinatorics/SimplicialComplex/FacePoset.lean,Mathlib/Combinatorics/SimplicialComplex/Hom.lean |
5 |
1 |
['github-actions'] |
awainverse assignee:awainverse |
70-32396 2 months ago |
81-50865 2 months ago |
81-50901 81 days |
| 28186 |
Sebi-Kumar author:Sebi-Kumar |
feat(Topology/Homotopy/Path): Add IsEquiv instance for Path.Homotopic |
Add `instance : IsEquiv (Path x₀ x₁) Homotopic` to the library. Allow use of lemmas like `of_eq` when proving two paths are homotopic.
---
To provide additional context, I am relatively new to contributing to Mathlib, and I am doing so as a part of the Fields Undergraduate Summer Research Program hosted at the University of Western Ontario and supervised by Chris Kapulkin and Daniel Carranza. My goal is to prove that the `n`-sphere is simply connected for `n > 1`.
Also, I am not super familiar with `IsEquiv` and when it should/shouldn't be used. I just wanted to use a lemma like `Path.Homotopic.of_eq` at one point while working on my code, and thought this was the best way to add such a result to the library.
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-topology
|
5/0 |
Mathlib/Topology/Homotopy/Path.lean |
1 |
4 |
['Sebi-Kumar', 'github-actions', 'kckennylau'] |
PatrickMassot assignee:PatrickMassot |
70-32393 2 months ago |
79-63723 2 months ago |
79-63763 79 days |
| 28399 |
Ruben-VandeVelde author:Ruben-VandeVelde |
feat: ring-theoretic fractions in Rat |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
47/0 |
Mathlib.lean,Mathlib/RingTheory/Localization/Rat.lean |
2 |
1 |
['github-actions'] |
robertylewis assignee:robertylewis |
67-32402 2 months ago |
76-5338 2 months ago |
76-5377 76 days |
| 27245 |
rirarika author:rirarika |
feat: multivariate polynomial ring properties about irreducibility |
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-algebra
label:t-algebra$ |
88/0 |
Mathlib.lean,Mathlib/Algebra/MvPolynomial/Irreducible.lean |
2 |
5 |
['alreadydone', 'github-actions', 'mbkybky'] |
alreadydone assignee:alreadydone |
66-65190 2 months ago |
103-7236 3 months ago |
103-7271 103 days |
| 28531 |
Ruben-VandeVelde author:Ruben-VandeVelde |
chore: remove Cardinal imports from Topology.Algebra.InfiniteSum.Group |
---
[](https://gitpod.io/from-referrer/)
|
|
51/15 |
Mathlib.lean,Mathlib/Analysis/BoxIntegral/UnitPartition.lean,Mathlib/Analysis/Normed/Group/Pointwise.lean,Mathlib/Analysis/Normed/Module/Convex.lean,Mathlib/Analysis/SpecificLimits/Basic.lean,Mathlib/Topology/Algebra/InfiniteSum/Const.lean,Mathlib/Topology/Algebra/InfiniteSum/Group.lean,Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean,Mathlib/Topology/Algebra/InfiniteSum/Order.lean,Mathlib/Topology/Algebra/InfiniteSum/Real.lean,Mathlib/Topology/Category/Stonean/Basic.lean,Mathlib/Topology/Instances/ENNReal/Lemmas.lean,Mathlib/Topology/Instances/NNReal/Lemmas.lean,Mathlib/Topology/MetricSpace/HausdorffDistance.lean,Mathlib/Topology/MetricSpace/Thickening.lean,Mathlib/Topology/PartitionOfUnity.lean |
16 |
4 |
['Ruben-VandeVelde', 'YaelDillies', 'github-actions'] |
TwoFX assignee:TwoFX |
66-32368 2 months ago |
73-43220 2 months ago |
73-43195 73 days |
| 28132 |
dupuisf author:dupuisf |
feat: preliminary `grind` tags for `IsUnit` |
This PR adds preliminary `grind` tags for the `IsUnit` predicate.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
61/17 |
Mathlib/Algebra/Group/Action/Units.lean,Mathlib/Algebra/Group/Units/Defs.lean,Mathlib/Algebra/GroupWithZero/Units/Basic.lean,Mathlib/Algebra/Ring/Units.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean |
6 |
2 |
['github-actions', 'mathlib4-merge-conflict-bot'] |
kim-em assignee:kim-em |
65-32373 2 months ago |
74-28721 2 months ago |
74-28696 74 days |
| 28325 |
pechersky author:pechersky |
feat(WithZeroTopology): `locallyCompactSpace_iff_locallyFiniteOrder_units` |
On the way to golf/generalize the proof that
locally compact valued fields have locally finite valuation groups as embodied in
`Valued.integer.locallyFiniteOrder_units_mrange_of_isCompact_integer` ]
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-order
t-topology
|
160/2 |
Mathlib/Topology/Algebra/GroupWithZero.lean,Mathlib/Topology/Algebra/WithZeroTopology.lean,Mathlib/Topology/Compactness/Compact.lean |
3 |
1 |
['github-actions'] |
PatrickMassot assignee:PatrickMassot |
65-32370 2 months ago |
77-14586 2 months ago |
77-17288 77 days |
| 27824 |
ChrisHughes24 author:ChrisHughes24 |
feat(Calculus): exists_gt_of_deriv_pos and variants |
---
I created a new file for this as I anticipate there will be many lemmas relating derivatives and monotonicity in future. Some lemmas relating deriviatives to monotonicity are already in mathlib and should maybe moved to the file (e.g. docs#HasDerivWithinAt.nonneg_of_monotoneOn).
I stated them in as much generality as I could, copying the generality of `HasDerivWithinAt.nonneg_of_monotoneOn`.
- [x] depends on: #28039
[](https://gitpod.io/from-referrer/)
|
t-analysis |
85/0 |
Mathlib.lean,Mathlib/Analysis/Calculus/Deriv/Order.lean |
2 |
29 |
['ChrisHughes24', 'EtienneC30', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
hrmacbeth assignee:hrmacbeth |
64-32399 2 months ago |
74-62599 2 months ago |
78-80288 78 days |
| 26914 |
quangvdao author:quangvdao |
feat(Data/PFunctor/Univariate): more definitions for univariate `PFunctor` |
This PR defines several basic definitions of `PFunctor`, including zero, one, constants, monomials, coproduct (sum), product, sigma, pi, tensor product, universe lifting, and equivalence.
We also add: (1) simple lemmas connecting the basic definitions, (2) an automatically derived ext lemma for `PFunctor` via `@[ext]` attribute
Some things I'm not clear on:
- I define `HAdd` and `HMul` instances for coproduct and product of poly functors having different universe levels. Should I also define `Add` and `Mul` instances for poly functors having the same universe level?
- Is it ok to define notation for tensor product, i.e. `@[inherit_doc] scoped infixr:80 " ⊗ " => tensor`? I'm worried it might clash with other notation.
- Need a double-check on the priority of notation.
Some future definitions to add:
- Various equivalences arising from arithmetic identities, e.g., `P + 0 ≃ₚ P`.
- Definitions of Lenses and Charts (each of them will be a file or even a folder)
- Exponential objects (corresponding to both `prod` and `tensor`)
---
[](https://gitpod.io/from-referrer/)
|
t-data |
144/5 |
Mathlib/Data/PFunctor/Univariate/Basic.lean |
1 |
19 |
['alexkeizer', 'eric-wieser', 'github-actions', 'quangvdao'] |
eric-wieser assignee:eric-wieser |
62-65753 2 months ago |
112-33460 3 months ago |
112-33496 112 days |
| 23238 |
YaelDillies author:YaelDillies |
feat: extended floor and ceil |
My motivation for this is to prove `ENat.toENNReal (⨆ i, f i) = ⨆ i, ENat.toENNReal (f i)` and `ENat.toENNReal (⨅ i, f i) = ⨅ i, ENat.toENNReal (f i)`. Kalle Kytölä independently needs this for his formalisation of statistical physics.
From MiscYD
---
- [x] depends on: #24781
- [x] depends on: #24782
See #15269 for a past attempt.
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
235/0 |
Mathlib.lean,Mathlib/Algebra/Order/Floor/Extended.lean |
2 |
25 |
['YaelDillies', 'b-mehta', 'eric-wieser', 'github-actions', 'grunweg', 'kkytola', 'mathlib4-dependent-issues-bot', 'urkud'] |
alreadydone assignee:alreadydone |
62-60029 2 months ago |
170-57394 5 months ago |
218-23203 218 days |
| 26484 |
peabrainiac author:peabrainiac |
feat(Geometry/Diffeology): basics of diffeological spaces |
Introduces diffeological spaces, smooth maps between them, the D-topology and the standard diffeology on finite-dimensional normed spaces.
---
This PR continues the work from #21969. |
t-differential-geometry |
471/0 |
Mathlib.lean,Mathlib/Geometry/Diffeology/Basic.lean,docs/references.bib |
3 |
10 |
['JovanGerb', 'github-actions', 'grunweg', 'lecopivo', 'peabrainiac'] |
grunweg assignee:grunweg |
61-4021 2 months ago |
123-25237 4 months ago |
123-29980 123 days |
| 26240 |
grunweg author:grunweg |
perf(CommandLinterLinter): use Substring more |
Probably, these changes make little difference, but let's find out.
---
[](https://gitpod.io/from-referrer/)
|
t-linter
RFC
|
14/15 |
Mathlib/Tactic/Linter/CommandStart.lean |
1 |
5 |
['github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot'] |
joneugster assignee:joneugster |
61-3777 2 months ago |
130-41340 4 months ago |
130-45942 130 days |
| 25920 |
BoltonBailey author:BoltonBailey |
feat(Data/Finsupp/Basic): `Finsupp.optionElim'` |
Similar to how Finsupp.cons constructs a map Fin (n + 1) →₀ M from a map Fin n →₀ M,
we define Finsupp.optionElim' to construct a map Option α →₀ M from a map α →₀ M, given an additional value for none. We base this on the new optionEquiv definition. As a function, it behaves as Option.elim', hence the name.
We prove a variety of API lemmas, based on those for Finsupp.cons, to bring the definitions more in line with the contents of Data/Finsupp/Fin.
We also refactor to a new file to help avoid a too-long file and make this more analogous to Finsupp.cons
Original PR: https://github.com/leanprover-community/mathlib4/pull/13861
- [x] depends on: #26309 |
migrated-from-branch
t-data
|
114/23 |
Mathlib/Algebra/Category/MonCat/Adjunctions.lean,Mathlib/Data/Finsupp/Option.lean |
2 |
15 |
['BoltonBailey', 'eric-wieser', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
eric-wieser assignee:eric-wieser |
58-12020 1 month ago |
58-17066 1 month ago |
122-73945 122 days |
| 27308 |
xyzw12345 author:xyzw12345 |
feat(LinearAlgebra/SymmetricAlgebra): IsSymmetricAlgebra |
This PR continues the work from #24602.
Original PR: https://github.com/leanprover-community/mathlib4/pull/24602 |
t-algebra label:t-algebra$ |
78/0 |
Mathlib/LinearAlgebra/SymmetricAlgebra/Basic.lean,Mathlib/LinearAlgebra/SymmetricAlgebra/Basis.lean |
2 |
3 |
['github-actions', 'mattrobball', 'xyzw12345'] |
mattrobball assignee:mattrobball |
56-6502 1 month ago |
100-69726 3 months ago |
100-69770 100 days |
| 26277 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(RingTheory/Congruence/Hom): prove basic isomorphisms theorems for ring congruences |
This file contains elementary definitions involving congruence
relations and morphisms for semirings, rings, and algebras.
* `RingCon.ker`: the kernel of a monoid homomorphism as a congruence relation
* `RingCon.lift`, `RingCon.liftₐ`: the homomorphism / the algebra morphism
on the quotient given that the congruence is in the kernel
* `RingCon.map`, `RingCon.mapₐ`: homomorphism / algebra morphism
from a smaller to a larger quotient
* `RingCon.quotientKerEquivRangeS`, `RingCon.quotientKerEquivRange`,
`RingCon.quotientKerEquivRangeₐ` :
the first isomorphism theorem for semirings (using `RingHom.rangeS`),
rings (using `RingHom.range`) and algebras (using `AlgHom.range`).
* `RingCon.comapQuotientEquivRangeS`, `RingCon.comapQuotientEquivRange`,
`RingCon.comapQuotientEquivRangeₐ` : the second isomorphism theorem
for semirings (using `RingHom.rangeS`), rings (using `RingHom.range`)
and algebras (using `AlgHom.range`).
* `RingCon.quotientQuotientEquivQuotient`, `RingCon.quotientQuotientEquivQuotientₐ` :
the third isomorphism theorem for semirings (or rings) and algebras
It is an adaptation of what existed for multiplicative congruences (docs#Con) and is only useful for semirings which are not rings.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
554/2 |
Mathlib.lean,Mathlib/Algebra/Ring/Subsemiring/Basic.lean,Mathlib/Algebra/RingQuot.lean,Mathlib/RingTheory/Congruence/Defs.lean,Mathlib/RingTheory/Congruence/Hom.lean |
5 |
4 |
['AntoineChambert-Loir', 'eric-wieser', 'github-actions'] |
joneugster assignee:joneugster |
54-9050 1 month ago |
85-1436 2 months ago |
128-44050 128 days |
| 28613 |
espottesmith author:espottesmith |
feat(Combinatorics): define undirected hypergraphs |
This PR defines undirected hypergraphs:
```
@[ext]
structure Hypergraph (α : Type*) where
/-- The vertex set -/
vertexSet : Set α
/-- The hyperedge set -/
hyperedgeSet : Set (Set α)
/-- All hyperedges must be subsets of the vertex set -/
hyperedge_isSubset_vertexSet : ∀ ⦃e⦄, e ∈ hyperedgeSet → e ⊆ vertexSet
```
In addition to the main definition, some additional definitions and related lemmas are provided:
- vertex adjacency
- hyperedge adjacency
- vertex "stars"
- special cases (loops, empty hypergraphs, trivial hypergraphs, complete hypergraphs, simple hypergraphs, k-uniform hypergraphs, and d-regular hypergraphs)
- (some) hypergraph cardinality
- subhypergraphs, induced subhypergraphs, and partial hypergraphs
This implementation is certainly bare-bones. I'm submitting this PR at this point, rather than when my developments are more fleshed out, because there has been some interest in others contributing to hypergraph formalization in mathlib.
In the near future, goals include:
- defining incidence matrices (i.e., conversion from `Hypergraph α` to `Matrix α (Set α) β`
- coersion/generalization of graph as 2-uniform hypergraph
- conversion of a hypergraph into its associated clique graph/two-section graph
- constructing the dual of a hypergraph (note: on first blush, this appears somewhat challenging, given that we define hyperedges as `Set α` rather than some other type `β`)
- rank and co-rank
- walks, paths, cycles, etc. on hypergraphs
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-combinatorics
|
375/0 |
Mathlib.lean,Mathlib/Combinatorics/Hypergraph/Basic.lean |
2 |
52 |
['b-mehta', 'espottesmith', 'github-actions', 'jt496', 'lauramonk', 'mathlib4-merge-conflict-bot'] |
b-mehta assignee:b-mehta |
53-84846 1 month ago |
53-84846 1 month ago |
59-71028 59 days |
| 29028 |
themathqueen author:themathqueen |
feat(Algebra/Star): define `unitary R →* StarAlgEquiv S R R` |
Every unitary defines a star-algebra automorphism (this is an extension of a special version of `MulSemiringAction.toRingEquiv` for unitaries).
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
64/0 |
Mathlib.lean,Mathlib/Algebra/Star/UnitaryStarAlgAut.lean |
2 |
14 |
['eric-wieser', 'github-actions', 'themathqueen'] |
eric-wieser assignee:eric-wieser |
53-63442 1 month ago |
61-931 2 months ago |
62-57935 62 days |
| 28511 |
YaelDillies author:YaelDillies |
feat(Finsupp): `congr!`-compatible version of `prod_congr` |
`congr!` doesn't like the `g1 x (f x)` appearing in the hypothesis of `Finsupp.prod_congr`: `f x` isn't a free variable.
Note: A few proofs broke due to `simp` using `congr` lemmas internally.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
17/11 |
Mathlib/Algebra/BigOperators/Finsupp/Basic.lean,Mathlib/Algebra/Category/MonCat/Adjunctions.lean,Mathlib/Data/Finsupp/Multiset.lean,Mathlib/Data/Nat/Choose/Multinomial.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean |
5 |
12 |
['JovanGerb', 'YaelDillies', 'eric-wieser', 'github-actions', 'kmill'] |
kmill assignee:kmill |
51-83480 1 month ago |
74-3535 2 months ago |
74-3568 74 days |
| 24184 |
YaelDillies author:YaelDillies |
feat: `[G : H]` notation for the index of `H : Subgroup G` |
This is a cute notation which I wrote for FLT. Not sure whether we want it in mathlib nor how to include `relindex` in the picture.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
RFC
label:t-algebra$ |
5/0 |
Mathlib/GroupTheory/Index.lean |
1 |
8 |
['YaelDillies', 'erdOne', 'github-actions', 'j-loreaux', 'kbuzzard', 'mathlib4-merge-conflict-bot'] |
eric-wieser assignee:eric-wieser |
45-53692 1 month ago |
45-53717 1 month ago |
193-41430 193 days |
| 29055 |
vihdzp author:vihdzp |
feat: `Ordinal.toENat` |
We essentially copy the Cardinal/ENat file but make it for ordinals instead. See [Zulip](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2317758.20Ordinal.2EtoENat/near/479768508) for some prior discussion on this PR (particularly, the duplication and how there's no easy way to resolve it.)
---
Moved from #17758.
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
292/0 |
Mathlib.lean,Mathlib/Data/ENat/Basic.lean,Mathlib/SetTheory/Cardinal/ENat.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean,Mathlib/SetTheory/Ordinal/ENat.lean |
6 |
1 |
['github-actions'] |
alreadydone assignee:alreadydone |
45-32379 1 month ago |
61-85011 2 months ago |
61-85027 61 days |
| 22039 |
YaelDillies author:YaelDillies |
feat: simproc for computing `Finset.Ixx` of natural numbers |
---
- [x] depends on: #22290
- [x] depends on: #22559
[](https://gitpod.io/from-referrer/)
|
large-import
t-meta
|
315/0 |
Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Simproc/FinsetInterval.lean,Mathlib/Util/Qq.lean |
4 |
64 |
['FLDutchmann', 'Paul-Lez', 'YaelDillies', 'eric-wieser', 'github-actions', 'grunweg', 'kckennylau', 'kim-em', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'urkud'] |
eric-wieser assignee:eric-wieser |
45-866 1 month ago |
195-85498 6 months ago |
251-46207 251 days |
| 26544 |
vihdzp author:vihdzp |
feat(SetTheory/ZFC/Ordinal): Lean ordinals to ZFC ordinals |
We define `Ordinal.toZFSet` and prove that its outputs are precisely the ZFC ordinals. Moved from #19985.
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-set-theory
|
166/5 |
Mathlib/SetTheory/ZFC/Basic.lean,Mathlib/SetTheory/ZFC/Ordinal.lean,Mathlib/SetTheory/ZFC/PSet.lean,Mathlib/SetTheory/ZFC/Rank.lean |
4 |
23 |
['alreadydone', 'github-actions', 'leanprover-community-bot-assistant', 'staroperator', 'vihdzp'] |
b-mehta assignee:b-mehta |
44-32374 1 month ago |
52-932 1 month ago |
78-64688 78 days |
| 22043 |
YaelDillies author:YaelDillies |
chore: shortcut instance for `Neg ℤˣ` |
This lets us avoid importing `Ring` in downstream files (most of the effect is to come).
---
[](https://gitpod.io/from-referrer/)
|
file-removed
t-algebra
label:t-algebra$ |
20/47 |
Mathlib.lean,Mathlib/Algebra/GCDMonoid/Nat.lean,Mathlib/Algebra/Group/Int/Units.lean,Mathlib/Algebra/Order/Ring/Abs.lean,Mathlib/Algebra/Ring/Int/Units.lean,Mathlib/Algebra/Ring/NegOnePow.lean,Mathlib/Data/Fintype/Units.lean,Mathlib/Data/Int/AbsoluteValue.lean,Mathlib/Data/Int/Associated.lean,Mathlib/GroupTheory/HNNExtension.lean,Mathlib/NumberTheory/NumberField/Basic.lean,MathlibTest/Zify.lean |
12 |
17 |
['YaelDillies', 'erdOne', 'eric-wieser', 'github-actions', 'j-loreaux', 'leanprover-community-bot-assistant', 'mathlib-bors'] |
eric-wieser assignee:eric-wieser |
44-4787 1 month ago |
167-74224 5 months ago |
252-47247 252 days |
| 26580 |
vasnesterov author:vasnesterov |
feat(Tactic/Order): translate linear orders to `Int` |
It was [pointed out](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/tactic.20for.20partial.20orders/near/515897754) that `order` is not complete for linear orders with lattice operations (while it remains complete for linear orders without lattice operations and for general lattices without assuming linearity). The problem for linear orders with lattice operations is NP-hard, but it can be translated from an arbitrary type to `Int` and then solved using a smart and efficient procedure (such as `omega`). This PR implements such a translation within the `order` tactic.
Co-authored-by: Aaron Liu
---
- [x] depends on: #26354
[](https://gitpod.io/from-referrer/) |
t-meta |
300/29 |
Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Order.lean,Mathlib/Tactic/Order/Graph/Basic.lean,Mathlib/Tactic/Order/Preprocessing.lean,Mathlib/Tactic/Order/ToInt.lean,MathlibTest/order.lean |
7 |
5 |
['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'vasnesterov'] |
alexjbest assignee:alexjbest |
43-66175 1 month ago |
43-66183 1 month ago |
107-80485 107 days |
| 26110 |
YaelDillies author:YaelDillies |
feat: sharp monoids |
Define sharp monoids, which are the monoids whose only unit is `1`. This concept is useful in log geometry and in particular shows up in the theory of affine monoids.
This concept already existed in the guise of `Subsingleton Mˣ`, but giving it a name makes it easier to refer to and uncovers some missing instances.
From Toric
---
[](https://gitpod.io/from-referrer/)
|
toric
t-algebra
label:t-algebra$ |
51/30 |
Mathlib/Algebra/BigOperators/Associated.lean,Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean,Mathlib/Algebra/GCDMonoid/Basic.lean,Mathlib/Algebra/Group/Irreducible/Defs.lean,Mathlib/Algebra/Group/Pi/Units.lean,Mathlib/Algebra/Group/Prod.lean,Mathlib/Algebra/Group/Submonoid/Units.lean,Mathlib/Algebra/Group/Units/Basic.lean,Mathlib/Algebra/Group/Units/Defs.lean,Mathlib/Algebra/GroupWithZero/Associated.lean,Mathlib/Algebra/GroupWithZero/Divisibility.lean,Mathlib/Data/List/Prime.lean,Mathlib/Data/ZMod/Basic.lean,Mathlib/NumberTheory/DirichletCharacter/Basic.lean,Mathlib/RingTheory/ChainOfDivisors.lean,Mathlib/RingTheory/IntegralDomain.lean,Mathlib/RingTheory/UniqueFactorizationDomain/NormalizedFactors.lean,Mathlib/RingTheory/Valuation/Integers.lean |
18 |
7 |
['YaelDillies', 'b-mehta', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-merge-conflict-bot', 'vihdzp'] |
adomani assignee:adomani |
43-65325 1 month ago |
47-59756 1 month ago |
131-59797 131 days |
| 25831 |
ScottCarnahan author:ScottCarnahan |
feat (RingTheory/HahnSeries): Powers of a binomial |
This PR introduces powers of a binomial `single g 1 - single g' 1` in a Hahn series, where the powers take values in a binomial ring. These series behave as one would expect with respect to addition of powers, and comparison with natural number powers. They are often used in the theory of vertex algebras.
---
- [x] depends on: #25830
- [x] depends on: #27497
[](https://gitpod.io/from-referrer/)
---
*This PR continues the work from #24102.*
*Original PR: https://github.com/leanprover-community/mathlib4/pull/24102* |
t-ring-theory |
132/0 |
Mathlib.lean,Mathlib/RingTheory/HahnSeries/Addition.lean,Mathlib/RingTheory/HahnSeries/Binomial.lean,Mathlib/RingTheory/HahnSeries/HEval.lean,Mathlib/RingTheory/HahnSeries/Multiplication.lean |
5 |
13 |
['ScottCarnahan', 'github-actions', 'kbuzzard', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
kbuzzard assignee:kbuzzard |
40-54452 1 month ago |
75-41843 2 months ago |
75-43297 75 days |
| 29761 |
bwangpj author:bwangpj |
feat: Chinese Remainder Theorem for `ZMod n` |
Define `ZMod.equivPi`, the Chinese Remainder Theorem for `ZMod n`, decomposing it as a product of `ZMod` over its prime power factors.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
22/0 |
Mathlib/Data/Nat/Factorization/Basic.lean,Mathlib/Data/ZMod/QuotientRing.lean |
2 |
8 |
['Ruben-VandeVelde', 'bwangpj', 'github-actions', 'j-loreaux'] |
nobody |
40-41053 1 month ago |
40-41053 1 month ago |
41-6036 41 days |
| 29530 |
ShreckYe author:ShreckYe |
feat(Dynamics/PeriodicPts): some theorems for `Pi.map` in `Dynamics/PeriodicPts` analogous to those for `Prod.map` |
Split from #29204. Some namespace prefixes are added in `GroupTheory/OrderOfElement.lean` to distinguish the extra imports introduced.
- [ ] depends on: #29528
|
large-import |
77/8 |
Mathlib/Dynamics/PeriodicPts/Defs.lean,Mathlib/Dynamics/PeriodicPts/Lemmas.lean,Mathlib/GroupTheory/OrderOfElement.lean |
3 |
2 |
['github-actions', 'mathlib4-dependent-issues-bot'] |
dupuisf assignee:dupuisf |
40-32382 1 month ago |
47-58215 1 month ago |
47-58867 47 days |
| 27306 |
xyzw12345 author:xyzw12345 |
feat: `lie_ring` tactic and `LieReduce` command |
This PR continues the work from #22196.
Original PR: https://github.com/leanprover-community/mathlib4/pull/22196 |
t-meta |
810/2 |
Mathlib.lean,Mathlib/Algebra/Lie/Derivation/AdjointAction.lean,Mathlib/Tactic.lean,Mathlib/Tactic/LieAlgebra/Basic.lean,Mathlib/Tactic/LieAlgebra/LieRingNF.lean,Mathlib/Util/AtomM.lean,MathlibTest/lie_ring.lean,scripts/noshake.json |
8 |
12 |
['JovanGerb', 'github-actions', 'xyzw12345'] |
JovanGerb assignee:JovanGerb |
40-18396 1 month ago |
50-22985 1 month ago |
97-76462 97 days |
| 29400 |
ShreckYe author:ShreckYe |
feat(`Algebra/BigOperators`): products of the results of insertion and removal on tuples and lists, and some needed lemmas |
|
large-import |
102/0 |
Mathlib.lean,Mathlib/Algebra/BigOperators/Fin.lean,Mathlib/Algebra/BigOperators/Group/List/Basic.lean,Mathlib/Algebra/BigOperators/Group/List/Defs.lean,Mathlib/Algebra/BigOperators/Group/Vector/Basic.lean,Mathlib/Data/Fin/Tuple/Basic.lean |
6 |
6 |
['ShreckYe', 'bryangingechen', 'eric-wieser', 'github-actions'] |
bryangingechen assignee:bryangingechen |
39-44226 1 month ago |
51-80178 1 month ago |
51-80221 51 days |
| 29562 |
ShreckYe author:ShreckYe |
feat(Analysis/SpecialFunctions/Trigonometric): tangent half-angle substitution |
|
t-analysis |
82/0 |
Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean |
1 |
1 |
['github-actions'] |
urkud assignee:urkud |
39-32394 1 month ago |
47-63636 1 month ago |
47-63675 47 days |
| 29235 |
yoh-tanimoto author:yoh-tanimoto |
feat(Topology/Algebra/Module/ClosedSubmodule): add `mapEquiv`, a variation of `ClosedSubmodule.map` for CLE |
add `ClosedSubmodule.mapEquiv` for continuous linear equivalence. In this case, a closed submodule is mapped to a closed submodule, so the definitions are easier and behave nicely with `closure` and `⊔`.
motivation: needed to define standard subspaces in a Hilbert space (scalar multiplication by `Complex.I`) #29251
https://ems.press/content/serial-article-files/48171
- [x] depends on: #29230 for `Lattice` `CompleteLattice` |
t-topology |
69/1 |
Mathlib/Topology/Algebra/Module/ClosedSubmodule.lean |
1 |
2 |
['github-actions', 'mathlib4-dependent-issues-bot'] |
fpvandoorn assignee:fpvandoorn |
38-42128 1 month ago |
46-61942 1 month ago |
46-64228 46 days |
| 29497 |
xyzw12345 author:xyzw12345 |
feat(Counterexamples): A ring such that dim A = 1 but dim A[x] = 3 |
In this PR, we constructed an example of a commutative ring `A` that satisfies `ringKrullDim A = 1` but `ringKrullDim A[X] = 3`, following the construction of
https://math.stackexchange.com/questions/1267419/examples-of-rings-whose-polynomial-rings-have-large-dimension
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
176/0 |
Counterexamples.lean,Counterexamples/DimensionPolynomial.lean,Mathlib.lean,Mathlib/Algebra/Ring/Subring/Basic.lean,Mathlib/FieldTheory/RatFunc/AsPolynomial.lean,Mathlib/RingTheory/KrullDimension/LocalRing.lean,Mathlib/RingTheory/LocalRing/MaximalIdeal/Basic.lean |
7 |
15 |
['github-actions', 'joelriou', 'kbuzzard', 'kckennylau', 'kim-em', 'xyzw12345'] |
joelriou assignee:joelriou |
36-34718 1 month ago |
36-34718 1 month ago |
47-64919 47 days |
| 29688 |
tb65536 author:tb65536 |
feat(FieldTheory/IsGaloisGroup): prove the Galois correspondence for `IsGaloisGroup` |
This PR reproves the Galois correspondence for `IsGaloisGroup`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
89/0 |
Mathlib/FieldTheory/Galois/IsGaloisGroup.lean |
1 |
1 |
['github-actions'] |
joneugster assignee:joneugster |
36-32388 1 month ago |
43-47104 1 month ago |
43-47081 43 days |
| 29624 |
mcdoll author:mcdoll |
feat(LinearAlgebra/LinearPMap): add definition of resolvent and first resolvent identity |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
180/2 |
Mathlib/LinearAlgebra/LinearPMap.lean |
1 |
2 |
['github-actions', 'mcdoll'] |
kim-em assignee:kim-em |
35-46156 1 month ago |
43-57107 1 month ago |
43-57084 43 days |
| 28871 |
JaafarTanoukhi author:JaafarTanoukhi |
feat(Combinatorics/Digraph): Tournaments |
Define orientations and tournaments. Related to #26771.
Co-authored-by: Rida Hamadani
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-combinatorics
|
62/0 |
Mathlib.lean,Mathlib/Combinatorics/Digraph/Orientation.lean,Mathlib/Combinatorics/Digraph/Tournament.lean |
3 |
5 |
['JaafarTanoukhi', 'NotWearingPants', 'Rida-Hamadani', 'github-actions'] |
kmill assignee:kmill |
34-62043 1 month ago |
65-52280 2 months ago |
65-52313 65 days |
| 28967 |
utkuokur author:utkuokur |
refactor(Combinatorics/SimpleGraph/Walk): simplify proof of "support_tail_of_not_nil" |
The proof of the lemma named "support_tail_of_not_nil" is shortened. Since "support_tail" is not needed anymore, it is removed.
@[deprecated (since := "2025-08-26")] sign is added for the removed "support_tail".
The library references to "support_tail" are replaced with "support_tail_of_not_nil".
To keep [@simp] on "cons_support_tail" and avoid the linter error, the [@simp] of "support_tail_of_not_nil" (previously on "support_tail") is removed. There might be a better way that I am missing, to deal with the linter error.
---
Additionally, a merge conflict with `master` was resolved by keeping the
generalized `support_tail_of_not_nil` and reintroducing `support_tail` as
a deprecated alias for compatibility.
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-combinatorics
|
7/10 |
Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean,Mathlib/Combinatorics/SimpleGraph/Walk.lean |
2 |
3 |
['github-actions', 'mathlib4-merge-conflict-bot', 'themathqueen'] |
awainverse assignee:awainverse |
34-53357 1 month ago |
50-47529 1 month ago |
63-63440 63 days |
| 29596 |
alreadydone author:alreadydone |
chore(Algebra): extract `Submonoid.IsLocalizationMap` |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
282/119 |
Mathlib.lean,Mathlib/Algebra/Module/LocalizedModule/IsLocalization.lean,Mathlib/GroupTheory/MonoidLocalization/Basic.lean,Mathlib/GroupTheory/MonoidLocalization/Lemmas.lean,Mathlib/GroupTheory/MonoidLocalization/MonoidWithZero.lean,Mathlib/RingTheory/Extension/Presentation/Submersive.lean,Mathlib/RingTheory/Localization/Defs.lean |
7 |
3 |
['github-actions', 'mathlib4-merge-conflict-bot'] |
kim-em assignee:kim-em |
34-32386 1 month ago |
41-72343 1 month ago |
45-85264 45 days |
| 29488 |
Timeroot author:Timeroot |
feat: 'said' tactic |
Functionally similar to `says`, but explicitly not for checking output or even saying there ever was output. `X said Y` just means that `X` was part of the process for (a human, or machine, or both) to generate `Y`.
Based on this [#mathlib4 > noisy simp says in CI @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/noisy.20simp.20says.20in.20CI/near/538443152) Zulip discussion
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
40/0 |
Mathlib/Tactic/Linter/UnusedTactic.lean,Mathlib/Tactic/Linter/UnusedTacticExtension.lean,Mathlib/Tactic/Says.lean,MathlibTest/says.lean |
4 |
3 |
['JovanGerb', 'MichaelStollBayreuth', 'github-actions'] |
JovanGerb assignee:JovanGerb |
33-32387 1 month ago |
41-4361 1 month ago |
49-23908 49 days |
| 29771 |
Vierkantor author:Vierkantor |
refactor(TacticAnalysis): use full CommandElabM context in test |
Running the `rwMerge` linter on the whole of Mathlib reveals that the tactic analysis framework did not always correctly pass the environment to the test step of a pass. By running the test in a full `CommandElabM` and adding a `ContextInfo` and `TacticInfo`, we can access the right environment (using the `ctxI.runTacticCode` function). There are still a few subtle issues to do with notation but I would like to get this fix in first, since it involves some larger refactors.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
44/17 |
Mathlib/Tactic/TacticAnalysis.lean,Mathlib/Tactic/TacticAnalysis/Declarations.lean,MathlibTest/TacticAnalysis.lean |
3 |
7 |
['adomani', 'bryangingechen', 'github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot'] |
kim-em assignee:kim-em |
33-32381 1 month ago |
40-66307 1 month ago |
40-82835 40 days |
| 29538 |
YaelDillies author:YaelDillies |
refactor(FractionalIdeal): use algebraic order theory API |
Instantiate instances earlier and use generic lemmas instead of the `FractionalIdeal`-specific ones.
Also rename `_nonzero` in lemma names to `_ne_zero`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
158/176 |
Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean,Mathlib/RingTheory/DedekindDomain/Different.lean,Mathlib/RingTheory/DedekindDomain/Factorization.lean,Mathlib/RingTheory/DedekindDomain/Ideal/Basic.lean,Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean,Mathlib/RingTheory/FractionalIdeal/Basic.lean,Mathlib/RingTheory/FractionalIdeal/Inverse.lean,Mathlib/RingTheory/FractionalIdeal/Operations.lean |
8 |
1 |
['github-actions'] |
chrisflav assignee:chrisflav |
31-32376 1 month ago |
44-74486 1 month ago |
44-74470 44 days |
| 29512 |
grunweg author:grunweg |
feat: check for PR titles which do not start with "feat" etc. |
We ignore draft PRs and PRs with the WIP label.
The set of checks is intentionally kept small, and could be expanded in the
future.
---
More basic version of #16303: given that mathlib's statistics will use the PR kind, let's make sure PR kinds are somewhat appropriate.
[](https://gitpod.io/from-referrer/)
|
|
365/0 |
.github/build.in.yml,.github/workflows/bors.yml,.github/workflows/build.yml,.github/workflows/build_fork.yml,Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter/ValidatePRTitle.lean,lakefile.lean,scripts/README.md,scripts/check_title_labels.lean |
10 |
17 |
['bryangingechen', 'eric-wieser', 'github-actions', 'grunweg'] |
bryangingechen assignee:bryangingechen |
31-13912 1 month ago |
48-62747 1 month ago |
48-62723 48 days |
| 25843 |
mitchell-horner author:mitchell-horner |
feat(Combinatorics/SimpleGraph): define `between` subgraphs |
The simple graph `G.between s t` is the subgraph of `G` containing edges that connect a vertex in the set `s` to a vertex in the set `t`.
---
[](https://gitpod.io/from-referrer/)
---
*This PR continues the work from #24948.*
*Original PR: https://github.com/leanprover-community/mathlib4/pull/24948* |
t-combinatorics |
86/0 |
Mathlib/Combinatorics/SimpleGraph/Bipartite.lean |
1 |
1 |
['github-actions'] |
b-mehta assignee:b-mehta |
31-2633 1 month ago |
137-73145 4 months ago |
137-73120 137 days |
| 29369 |
vlad902 author:vlad902 |
feat(SimpleGraph): `IsSubwalk` of common Walk decompositions |
Add some helper lemmas to show that decompositions of walks are sub-walks. |
t-combinatorics |
61/17 |
Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkDecomp.lean,Mathlib/Combinatorics/SimpleGraph/Walk.lean |
2 |
1 |
['github-actions'] |
awainverse assignee:awainverse |
30-32389 1 month ago |
53-57866 1 month ago |
53-57909 53 days |
| 29121 |
Ruben-VandeVelde author:Ruben-VandeVelde |
feat: MvPolynomial.symmetricSubalgebra.{aevalMultiset,sumPolynomial} |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
192/0 |
Mathlib.lean,Mathlib/RingTheory/MvPolynomial/Symmetric/Eval.lean |
2 |
1 |
['github-actions'] |
chrisflav assignee:chrisflav |
30-6927 1 month ago |
60-32054 1 month ago |
60-32086 60 days |
| 29877 |
Komyyy author:Komyyy |
feat: inner product of the gradient |
Also, this PR enables the `conj` notation in the file.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
37/10 |
Mathlib/Analysis/Calculus/Gradient/Basic.lean |
1 |
1 |
['github-actions'] |
hrmacbeth assignee:hrmacbeth |
29-32373 29 days ago |
36-77637 1 month ago |
36-77615 36 days |
| 29888 |
mcdoll author:mcdoll |
feat(Analysis/Normed): Extend densely defined LinearMaps to CLM |
This PR both adds a new and more user-friendly way to extend a CLM defined on a dense subspace.
It also moves the old definition to the same file and as a side effect, we reduce the import tree.
The moved parts are not modified except for adapting the sections and imports.
Original definition of `ContinuousLinearMap.extend` was by Zhouhang Zhou in 2019 (mathlib3 PR #1649)
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
254/86 |
Mathlib.lean,Mathlib/Analysis/InnerProductSpace/LinearPMap.lean,Mathlib/Analysis/Normed/Operator/Completeness.lean,Mathlib/Analysis/Normed/Operator/Extend.lean,Mathlib/MeasureTheory/Integral/SetToL1.lean |
5 |
2 |
['github-actions', 'mcdoll'] |
hrmacbeth assignee:hrmacbeth |
29-32372 29 days ago |
36-44840 1 month ago |
36-62590 36 days |
| 29909 |
Vierkantor author:Vierkantor |
feat(CI): add build output to CI workflows |
This PR uses the Zulip build report script (originally developed for the nightly-regression-report workflow) to add a summary of build output to other Zulip posts about workflow results. This allows us to more easily see the origin of a failure. This requires redoing the script a little to make it a bit more flexible, and the output is slightly reformatted to become consistent across the various workflows (4 of them that post to Zulip).
We don't do so for the nightly-testing failures, since those run in a different workflow, and it would be a lot of work to access the command output from another workflow.
---
[](https://gitpod.io/from-referrer/)
|
CI |
93/69 |
.github/workflows/daily.yml,.github/workflows/nightly-docgen.yml,.github/workflows/nightly-regression-report.yml,scripts/zulip_build_report.sh |
4 |
1 |
['github-actions'] |
robertylewis assignee:robertylewis |
28-32365 28 days ago |
35-70140 1 month ago |
35-70118 35 days |
| 25974 |
scholzhannah author:scholzhannah |
feat(Topology/Compactness/CompactlyCoherentSpace): compact coherentification (k-ification) |
This PR defines the notion of turning an arbitrary topological space into a compactly coherent space. Compactly coherent spaces are commonly referred to as "compactly generated spaces" or "k-spaces" in the literature while the operation of turning a space into such as space is called the "k-ification". There are however three different notions that are described with this name. To disambiguate we use the names "compactly coherent space" and "compactcoherentification" here. See [this wikipedia page](https://en.wikipedia.org/wiki/Compactly_generated_space) for an explanation of these notions.
This PR continues the work from #25318.
Original PR: https://github.com/leanprover-community/mathlib4/pull/25318
Co-authored-by: Floris van Doorn |
large-import
t-topology
|
174/5 |
Mathlib/Topology/Compactness/CompactlyCoherentSpace.lean |
1 |
4 |
['github-actions', 'joelriou', 'scholzhannah'] |
ADedecker assignee:ADedecker |
28-2622 28 days ago |
28-74744 28 days ago |
127-55154 127 days |
| 26287 |
mbkybky author:mbkybky |
feat(Data/ENat/Lattice): coercion to `WithBot ℕ∞` commutes with `biSup` |
The coercion from `ℕ∞` to `WithBot ℕ∞` commutes with `biSup` and `biInf`.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
24/0 |
Mathlib/Data/ENat/Lattice.lean |
1 |
5 |
['github-actions', 'kckennylau', 'mbkybky'] |
ericrbg assignee:ericrbg |
27-69115 27 days ago |
27-69115 27 days ago |
107-70338 107 days |
| 25969 |
101damnations author:101damnations |
feat(RepresentationTheory/Homological/GroupHomology/Functoriality): the degree 1 part of the corestriction-coinflation exact sequence |
Given a `G`-representation `A` and a normal subgroup `S` of `G`, this PR defines the corestriction-coinflation short complex
`H₁(S, A) ⟶ H₁(G, A) ⟶ H₁(G ⧸ S, A_S)` induced by the natural inclusion `S → G` and projections `G → G / S, A → A_S`. We prove it's exact, and that the righthand map is an epimorphism.
---
- [x] depends on: #21652
- [x] depends on: #21732
- [x] depends on: #21733
- [x] depends on: #21735
- [x] depends on: #21736
- [x] depends on: #21738
- [x] depends on: #25868
- [x] depends on: #25873
- [x] depends on: #25880
- [x] depends on: #25884
- [x] depends on: #25888
- [x] depends on: #25939
- [x] depends on: #25952
[](https://gitpod.io/from-referrer/)
---
*Earlier version at #22656.*
|
t-algebra label:t-algebra$ |
262/9 |
Mathlib/Algebra/Homology/ShortComplex/ModuleCat.lean,Mathlib/RepresentationTheory/Coinvariants.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/Basic.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/Functoriality.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean |
5 |
n/a |
['101damnations', 'github-actions', 'jcommelin', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
nobody |
27-49990 27 days ago |
unknown |
unknown |
| 26923 |
oliver-butterley author:oliver-butterley |
feat(Dynamics/BirkhoffSum): add the pointwise ergodic theorem (Birkhoff's) |
The Pointwise Ergodic Theorem, also known as Birkhoff's Ergodic Theorem.
Co-authored-by: Lua Viana Reis
- [x] depends on: #26074
- [x] depends on: #26807
- [x] depends on: #26810
- [x] depends on: #26840
- [x] depends on: #26842
- [x] depends on: #26848
- [x] depends on: #26851
- [x] depends on: #26852
- [x] depends on: #26853
- [x] depends on: #27008
- [x] depends on: #28901
Zulip: [PR thread](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2326923.20The.20pointwise.20ergodic.20theorem.20.28Birkhoff's.29/with/527835158)
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-dynamics
|
401/0 |
Mathlib.lean,Mathlib/Dynamics/BirkhoffSum/Pointwise.lean |
2 |
13 |
['D-Thomine', 'github-actions', 'leanprover-community-bot-assistant', 'lua-vr', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
urkud assignee:urkud |
26-86299 26 days ago |
64-18742 2 months ago |
70-74609 70 days |
| 29734 |
bwangpj author:bwangpj |
feat(Probability/Kernel): \phi-irreducibility of kernels |
Define powers of kernels, the Chapman-Kolmogorov equations, as well as \phi-irreducibility of kernels, following Robert-Casella, "Monte Carlo Statistical Methods", Definition 6.13.
Co-authored-by: Matteo Cipollina @or4nge19
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
160/8 |
Mathlib.lean,Mathlib/Probability/Kernel/Composition/Comp.lean,Mathlib/Probability/Kernel/Composition/CompMap.lean,Mathlib/Probability/Kernel/Irreducible.lean,docs/references.bib |
5 |
6 |
['RemyDegenne', 'bwangpj', 'github-actions'] |
RemyDegenne assignee:RemyDegenne |
25-78326 25 days ago |
35-67484 1 month ago |
42-20122 42 days |
| 29999 |
jeremypparker author:jeremypparker |
chore(Analysis/Fourier/AddCircle): remove stale comment |
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-analysis
|
0/1 |
Mathlib/Analysis/Fourier/AddCircle.lean |
1 |
2 |
['Ruben-VandeVelde', 'github-actions', 'jeremypparker'] |
sgouezel assignee:sgouezel |
25-32394 25 days ago |
33-1142 1 month ago |
33-1175 33 days |
| 29376 |
vlad902 author:vlad902 |
feat(SimpleGraph): helper lemmas for `Walk.IsSubwalk` |
|
t-combinatorics |
29/0 |
Mathlib/Combinatorics/SimpleGraph/Walk.lean |
1 |
1 |
['github-actions'] |
awainverse assignee:awainverse |
25-2171 25 days ago |
53-10088 1 month ago |
53-10122 53 days |
| 25814 |
vlad902 author:vlad902 |
feat(SimpleGraph): weaker condition for paths in acyclic graphs |
`IsAcyclic.isPath_iff_chain'` defines a weaker condition for proving that a walk is a path, in particular it shows that rather than proving that all vertices in the support of a walk are distinct, one must only show that consecutive edges are distinct (e.g. every other vertex must be distinct.) This leads to a simple corollary that trails are also paths in acyclic graphs.
I had a need for this when formalizing Cayley graphs, since this condition maps cleanly onto words in free groups being reduced.
---
*This PR continues the work from #25630.*
*Original PR: https://github.com/leanprover-community/mathlib4/pull/25630* |
t-combinatorics |
38/0 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Paths.lean |
2 |
2 |
['github-actions', 'vlad902'] |
kmill assignee:kmill |
25-1167 25 days ago |
138-70980 4 months ago |
138-70954 138 days |
| 29164 |
vlad902 author:vlad902 |
feat(SimpleGraph): Hall's Marriage Theorem for bipartite graphs |
Derive the graph theoretic proof of Hall's marriage theorem from the combinatorial version.
Note that I specifically implement this for the more general case of infinite graphs that are locally finite (e.g. every vertex has only finite neighbors.) As a result, the theorem depends on some category theoretic infrastructure required for the infinite combinatorial formulation of Hall's Marriage Theorem and hence I've placed the theorems into their own file to avoid requiring it in `Matching.lean`
- [ ] depends on: #29162 |
t-combinatorics |
130/7 |
Mathlib.lean,Mathlib/Combinatorics/Hall/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Hall.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean,docs/1000.yaml |
5 |
2 |
['github-actions', 'mathlib4-dependent-issues-bot'] |
b-mehta assignee:b-mehta |
24-78852 24 days ago |
45-21397 1 month ago |
45-24620 45 days |
| 25183 |
YaelDillies author:YaelDillies |
feat: convolution product on linear maps from a coalgebra to an algebra |
Construct the ring structure on linear maps `C → A` where `C` is a coalgebra and `A` an algebra, where multiplication is given by
`(f * g)(x) = ∑ f x₍₁₎ * g x₍₂₎` in Sweedler notation or
```
|
μ
| | / \
f * g = f g
| | \ /
δ
|
```
diagrammatically, where `μ` stands for multiplication and `δ` for comultiplication.
[Zulip](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/.60Mul.60.20instance.20on.20algebra.20homomorphisms.20from.20monoid.20algebra)
From Toric
Co-authored-by: Michał Mrugała
Co-authored-by: Yunzhou Xie
---
[](https://gitpod.io/from-referrer/)
|
toric
t-algebra
label:t-algebra$ |
261/10 |
Mathlib.lean,Mathlib/Algebra/Algebra/Bilinear.lean,Mathlib/Algebra/Algebra/Defs.lean,Mathlib/LinearAlgebra/TensorProduct/Basic.lean,Mathlib/RingTheory/Coalgebra/Basic.lean,Mathlib/RingTheory/Coalgebra/Convolution.lean,Mathlib/RingTheory/Regular/RegularSequence.lean |
7 |
88 |
['YaelDillies', 'erdOne', 'eric-wieser', 'github-actions', 'kbuzzard', 'smorel394', 'themathqueen'] |
kbuzzard assignee:kbuzzard |
24-10275 24 days ago |
62-1132 2 months ago |
156-53578 156 days |
| 26720 |
vlad902 author:vlad902 |
feat(SimpleGraph): lemmas relating edges and darts to the support |
Useful lemmas to make it easier to pass between the support/edges/darts of a walk.
- [x] depends on: #25812
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
27/0 |
Mathlib/Combinatorics/SimpleGraph/Walk.lean |
1 |
9 |
['b-mehta', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'vlad902'] |
b-mehta assignee:b-mehta |
23-80500 23 days ago |
23-80500 23 days ago |
47-20615 47 days |
| 29833 |
vlad902 author:vlad902 |
feat(Set): helper lemmas about set cardinality |
A few lemmas I needed in formalizing Dilworth's theorem and vertex covers.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
19/0 |
Mathlib/Data/Set/Card.lean |
1 |
13 |
['Ruben-VandeVelde', 'github-actions', 'j-loreaux', 'mathlib4-merge-conflict-bot', 'themathqueen', 'vlad902'] |
nobody |
23-69949 23 days ago |
24-42861 24 days ago |
38-79190 38 days |
| 26347 |
mans0954 author:mans0954 |
feat(Data/Finset/RangeDistance): abs_sub_lt_of_mem_finset_range |
This PR continues the work from #23161.
Original PR: https://github.com/leanprover-community/mathlib4/pull/23161 |
t-data |
30/0 |
Mathlib.lean,Mathlib/Algebra/Order/Group/Unbundled/Abs.lean,Mathlib/Data/Finset/RangeDistance.lean |
3 |
2 |
['github-actions', 'mans0954'] |
alreadydone assignee:alreadydone |
23-59138 23 days ago |
85-85770 2 months ago |
127-8775 127 days |
| 26885 |
pechersky author:pechersky |
feat(Topology/ValuativeRel): ValuativeTopology 𝒪[K] |
and even when not a field, `ValuativeRel 𝒪[K]`
This is an example of something achievable with the new declarations that wasn't possible with Valued
Such that we can discuss the valuations on the subring without always using coercions
But to achieve this, one needs some juggling of the value groups
---
[](https://gitpod.io/from-referrer/)
- [x] depends on: #26834
- [ ] depends on : #30135
|
t-algebra
t-topology
t-number-theory
label:t-algebra$ |
73/0 |
Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean,Mathlib/Topology/Algebra/Valued/ValuativeRel.lean |
2 |
9 |
['erdOne', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'pechersky'] |
alreadydone assignee:alreadydone |
23-49991 23 days ago |
62-52734 2 months ago |
112-37740 112 days |
| 26827 |
pechersky author:pechersky |
feat(Analysis/Normed/ValuativeRel): helper instance for NormedField |
---
[](https://gitpod.io/from-referrer/)
- [x] depends on: #26713
- [x] depends on: #26826
|
t-algebra
t-analysis
t-number-theory
label:t-algebra$ |
211/27 |
Mathlib.lean,Mathlib/Analysis/Normed/ValuativeRel.lean,Mathlib/Topology/Algebra/Valued/ValuativeRel.lean |
3 |
33 |
['ADedecker', 'adamtopaz', 'erdOne', 'github-actions', 'kbuzzard', 'kckennylau', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'pechersky'] |
kbuzzard assignee:kbuzzard |
23-32566 23 days ago |
76-65283 2 months ago |
113-44598 113 days |
| 30009 |
ADedecker author:ADedecker |
chore: rename `IsTopologicalGroup.toUniformSpace` to `IsTopologicalGroup.rightUniformSpace` |
I have plans to finally do left and right uniformities properly, but I'd like to do some of the remaining before the fact to ease review.
I also take this opportunity to remove a duplication of private lemmas `extend_Z_bilin_aux` and `extend_Z_bilin_key`.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
104/184 |
Mathlib/Analysis/CStarAlgebra/Matrix.lean,Mathlib/Analysis/LocallyConvex/Bounded.lean,Mathlib/Analysis/LocallyConvex/WithSeminorms.lean,Mathlib/Analysis/Normed/Group/Quotient.lean,Mathlib/Analysis/Normed/Operator/Compact.lean,Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean,Mathlib/Analysis/Seminorm.lean,Mathlib/Analysis/SpecialFunctions/Bernstein.lean,Mathlib/Topology/Algebra/Group/Defs.lean,Mathlib/Topology/Algebra/InfiniteSum/Group.lean,Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean,Mathlib/Topology/Algebra/IsUniformGroup/Basic.lean,Mathlib/Topology/Algebra/IsUniformGroup/Defs.lean,Mathlib/Topology/Algebra/Module/Alternating/Topology.lean,Mathlib/Topology/Algebra/Module/FiniteDimension.lean,Mathlib/Topology/Algebra/Module/LocallyConvex.lean,Mathlib/Topology/Algebra/Module/Multilinear/Topology.lean,Mathlib/Topology/Algebra/Module/StrongTopology.lean,Mathlib/Topology/Algebra/Nonarchimedean/AdicTopology.lean,Mathlib/Topology/Algebra/UniformFilterBasis.lean,Mathlib/Topology/Algebra/Valued/ValuationTopology.lean,Mathlib/Topology/Algebra/Valued/ValuativeRel.lean,Mathlib/Topology/ContinuousMap/Algebra.lean |
23 |
3 |
['github-actions', 'mathlib4-merge-conflict-bot', 'plp127'] |
PatrickMassot assignee:PatrickMassot |
23-32391 23 days ago |
30-55181 1 month ago |
31-68586 31 days |
| 30246 |
dwrensha author:dwrensha |
make Nat.digits use well-founded recursion once again |
#25864 made `Nat.digits` structurally recursive, which has some benefits. In doing so, however, it added significant complexity. As brought up in [this zulip thread](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/structural.20recursion.20instead.20of.20well.20founded/near/543172385), on the balance that PR might not be considered an improvement.
The present PR reverts that change (but keeps a code golf that was bundled with it).
Note that recent improvements to core Lean mean that `simp` can handle the structurally recursive version without a problem:
```lean
example : digits 10 123456789 = [9,8,7,6,5,4,3,2,1] := by
simp [digits, digitsAux]
```
---
[](https://gitpod.io/from-referrer/)
|
t-data |
7/45 |
Mathlib/Data/Nat/Digits/Defs.lean |
1 |
7 |
['alreadydone', 'dwrensha', 'github-actions', 'plp127'] |
nobody |
23-32193 23 days ago |
23-60722 23 days ago |
23-60754 23 days |
| 28557 |
ShreckYe author:ShreckYe |
feat(Data/Nat/Factorization): some results on equality of powers of naturals proved from factorization |
I came across some math olympiad problems in number theory that could benefit from these theorems, expecially those on the prime power equality `p ^ m = a ^ n`. A specialized `eq_of_factorization_eq'` is added BTW to help with proof search. |
t-data |
100/0 |
Mathlib/Data/Nat/Factorization/Basic.lean,Mathlib/Data/Nat/Factorization/Defs.lean,Mathlib/Data/Nat/Factorization/PrimePow.lean |
3 |
13 |
['Ruben-VandeVelde', 'ShreckYe', 'github-actions'] |
pechersky assignee:pechersky |
23-20498 23 days ago |
23-22182 23 days ago |
70-16328 70 days |
| 28484 |
euprunin author:euprunin |
chore(Data): deprecate `toReal_eq_toReal`, `count_eq_of_nodup` and `smul_mat_cons` |
---
[](https://gitpod.io/from-referrer/)
|
t-data |
16/25 |
Archive/Wiedijk100Theorems/BallotProblem.lean,Mathlib/Data/ENNReal/Real.lean,Mathlib/Data/List/Dedup.lean,Mathlib/Data/List/FinRange.lean,Mathlib/Data/List/Nodup.lean,Mathlib/LinearAlgebra/Matrix/Notation.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean,Mathlib/MeasureTheory/Function/L2Space.lean,Mathlib/MeasureTheory/Integral/Layercake.lean,Mathlib/Probability/Distributions/Exponential.lean,Mathlib/Probability/Independence/Integration.lean,Mathlib/Probability/Kernel/Condexp.lean,Mathlib/Topology/Instances/ENNReal/Lemmas.lean |
13 |
13 |
['b-mehta', 'bryangingechen', 'euprunin', 'github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'mathlib4-merge-conflict-bot', 'pechersky', 'qawbecrdtey'] |
pechersky assignee:pechersky |
22-61572 22 days ago |
22-61572 22 days ago |
72-5041 72 days |
| 28950 |
Vierkantor author:Vierkantor |
fix(TacticAnalysis): remove syntax range check |
In #28802 we discovered the tactic analysis framework does not fire on declarations using `where` clauses. The reason is that `def foo where ...` gets turned into `def foo := { ... }`, and the `{ ... }` syntax is assigned a range outside of the `where ...` syntax; this causes the syntax range check to omit the whole declaration body. Moreover, [Verso involves pieces of syntax without any range at all](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Possible.20Verso.E2.80.93Mathlib.20conflict/with/543352839). So the range of a piece of syntax is essentially meaningless and we should not check it at all.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
18/11 |
Mathlib/Tactic/TacticAnalysis.lean,MathlibTest/TacticAnalysis.lean |
2 |
3 |
['Vierkantor', 'github-actions', 'thorimur'] |
robertylewis assignee:robertylewis |
22-61073 22 days ago |
64-446 2 months ago |
64-422 64 days |
| 28389 |
euprunin author:euprunin |
chore(Algebra/Group/Subgroup): deprecate `sup_subgroupOf_eq` |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
9/13 |
Mathlib/Algebra/Group/Subgroup/Ker.lean,Mathlib/GroupTheory/PGroup.lean |
2 |
4 |
['Ruben-VandeVelde', 'chrisflav', 'euprunin', 'github-actions'] |
chrisflav assignee:chrisflav |
22-47302 22 days ago |
22-47761 22 days ago |
45-85058 45 days |
| 26985 |
agjftucker author:agjftucker |
feat(Analysis/Calculus/Implicit): define implicitFunOfProdDomain |
This PR continues the work from #16743.
Original PR: https://github.com/leanprover-community/mathlib4/pull/16743
---
- [x] depends on: #28352
[](https://gitpod.io/from-referrer/) |
new-contributor
t-analysis
|
107/4 |
Mathlib/Analysis/Calculus/Implicit.lean |
1 |
3 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
hrmacbeth assignee:hrmacbeth |
22-32394 22 days ago |
30-6482 1 month ago |
30-8060 30 days |
| 29425 |
pechersky author:pechersky |
feat(NumberTheory/Padics/Torsion): `HasEnoughRootsOfUnity ℤ_[p] (p - 1)` |
---
[](https://gitpod.io/from-referrer/)
- [x] depends on: #29403
- [x] depends on: #29404
- [x] depends on: #29405
- [x] depends on: #29408
- [x] depends on: #29424
|
t-ring-theory |
179/0 |
Mathlib.lean,Mathlib/NumberTheory/Padics/Torsion.lean,Mathlib/RingTheory/ZMod/Torsion.lean |
3 |
3 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
erdOne assignee:erdOne |
22-32389 22 days ago |
29-63659 29 days ago |
29-64292 29 days |
| 29361 |
FlAmmmmING author:FlAmmmmING |
feat: Catalan generating function as a formal power series |
We introduce the Catalan generating function as a formal power series over `ℕ`.
## Main Definitions
* `PowerSeries.catalanSeries`: The Catalan generating function as a power series.
## Main Results
* `PowerSeries.sum_coeff_X_catalanSeries`: When `n` is a natural number,
each term in the sum `coeff i X * catalan (n - i)` is 0 except for `i = 1`.
* `PowerSeries.coeff_X_mul_catalanSeries`: The coefficient of `X * catalanSeries` at `X^n` is
`catalan (n - 1)` when `n > 0`.
* `PowerSeries.catalanSeries_one_add_X_mul_self_sq`: The Catalan generating function satisfies the
equation `catalanSeries = 1 + X * catalanSeries ^ 2`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
71/0 |
Mathlib.lean,Mathlib/RingTheory/PowerSeries/Catalan.lean |
2 |
4 |
['Ruben-VandeVelde', 'github-actions', 'wwylele'] |
kbuzzard assignee:kbuzzard |
21-8991 21 days ago |
54-5066 1 month ago |
54-5096 54 days |
| 30107 |
grunweg author:grunweg |
chore: track occurrences of 'nonrec' as technical debt |
Matches leanprover-community/leanprover-community.github.io#689: only merge when that is deemed a good idea.
--------
TODO: make the count more robust, for instance count all occurrences of "^nonrec " plus those of "^[private|protected] nonrec ".
---
[](https://gitpod.io/from-referrer/)
|
tech debt
CI
|
1/0 |
scripts/technical-debt-metrics.sh |
1 |
1 |
['github-actions'] |
robertylewis assignee:robertylewis |
20-32385 20 days ago |
28-5273 28 days ago |
28-5251 28 days |
| 30116 |
FormulaRabbit81 author:FormulaRabbit81 |
feat(Measure): proof that a relatively compact set of measures is tight |
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-measure-probability
|
196/2 |
Mathlib/MeasureTheory/Measure/Tight.lean |
1 |
1 |
['github-actions'] |
kex-y assignee:kex-y |
20-32385 20 days ago |
27-42641 27 days ago |
27-42674 27 days |
| 29322 |
xroblot author:xroblot |
feat(RingTheory/Localization/AtPrime): bijection between prime ideals |
Let `R ⊆ S` be an extension of rings and `p` be a prime ideal of `R`. Denote by `Rₚ` the localization of `R` at the complement of `p` and by `Sₚ` the localization of `S` at the (image) of the complement of `p`.
In this PR, we study the extension `Rₚ ⊆ Sₚ` and the relation between the (nonzero) prime ideals of `Sₚ` and the prime ideals of `S` above `p`. In particular, we prove that (under suitable conditions) they are in bijection. In a following PR #27706, we prove that the residual degree and ramification index are preserved by this bijection.
Note. The new file `RingTheory.Localization.AtPrime.Extension` is imported in `RingTheory.Trace.Quotient` because one function from the latter was moved to the former, but the plan is eventually to move the isomorphisms proved in `RingTheory.Trace.Quotient` to `RingTheory.Localization.AtPrime.Basic` and `RingTheory.Localization.AtPrime.Extension` where they belong. This will be done in #27706.
---
|
t-ring-theory |
147/8 |
Mathlib.lean,Mathlib/RingTheory/DedekindDomain/Instances.lean,Mathlib/RingTheory/Ideal/Maps.lean,Mathlib/RingTheory/Ideal/Over.lean,Mathlib/RingTheory/Localization/AtPrime/Extension.lean,Mathlib/RingTheory/Trace/Quotient.lean |
6 |
11 |
['chrisflav', 'github-actions', 'xroblot'] |
chrisflav assignee:chrisflav |
20-8793 20 days ago |
20-8793 20 days ago |
53-11763 53 days |
| 30355 |
kckennylau author:kckennylau |
feat(Logic): graded functions |
This PR defines a class of graded functions, called `GradedFunLike`. It is intended to be used in #30312 to characterise a class of graded ring homomorphisms, where it is invoked as `[GradedFunLike F 𝒜 ℬ] [RingHomClass F A B]`.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
41/0 |
Mathlib.lean,Mathlib/Data/FunLike/Graded.lean |
2 |
1 |
['github-actions'] |
nobody |
19-78130 19 days ago |
20-32201 20 days ago |
20-32239 20 days |
| 29856 |
mans0954 author:mans0954 |
feat(Analysis/Normed/Ring/Basic): Add NonUnitalNonAssocSeminormedRing and NonUnitalNonAssocNormedRing |
Adds the classes `NonUnitalNonAssocSeminormedRing` and `NonUnitalNonAssocNormedRing` and relaxes the `NonUnitalSeminormedRing` section to `NonUnitalNonAssocSeminormedRing`.
Examples of non-unital non-associative normed rings include non-untial JB-algebras and non-unital JB*-algebras.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
110/11 |
Mathlib/Analysis/Normed/Ring/Basic.lean,MathlibTest/TCSynth.lean |
2 |
1 |
['github-actions'] |
ADedecker assignee:ADedecker |
19-59814 19 days ago |
37-72355 1 month ago |
37-72365 37 days |
| 29871 |
zach1502 author:zach1502 |
feat(Matrix/Transvection): Gauss pivot determinant identity and pivot preservation |
This PR adds two lemmas formalizing standard Gaussian pivot identities:
* `Matrix.Transvection.listTransvecCol_mul_mul_listTransvecRow_pivot`:
After applying the canonical left/right transvection products that clear the last column and row,
the pivot (bottom-right) entry of a matrix is unchanged.
Marked `@[simp]`.
* `Matrix.Transvection.det_eq_detTopLeft_mul_pivot`:
If the pivot entry is nonzero, then the determinant of the matrix factors as
the determinant of the top-left block times the pivot entry, after performing
the canonical transvections.
This is the usual Gauss–pivot determinant identity.
* Added simple usage tests in `MathlibTest/matrix.lean` to check that the new lemmas
are usable by `simp`/`simpa`.
---
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-algebra
label:t-algebra$ |
94/0 |
Mathlib/LinearAlgebra/Matrix/Transvection.lean,MathlibTest/matrix.lean |
2 |
3 |
['github-actions', 'riccardobrasca', 'zach1502'] |
riccardobrasca assignee:riccardobrasca |
19-56246 19 days ago |
36-48676 1 month ago |
37-27739 37 days |
| 29976 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(Topology/Semicontinuous): lower bounds on compact sets |
Prove that lower semicontinuous functions attain their lower bound on nonempty compact sets, and the analogous lemma for upper semicontinuous functions.
By the way, add several basic results for semicontinuous functions, relating the WithinAt, At, On versions.
Co-authored with @ADedecker
---
[](https://gitpod.io/from-referrer/)
|
|
300/1 |
Mathlib/Order/Filter/Extr.lean,Mathlib/Topology/Semicontinuous.lean |
2 |
1 |
['github-actions'] |
TwoFX assignee:TwoFX |
19-49832 19 days ago |
33-51752 1 month ago |
33-51728 33 days |
| 28560 |
euprunin author:euprunin |
chore(Combinatorics/Quiver): golf entire `lift_spec` using `rfl` |
---
Show trace profiling of lift_spec: <10 ms before, <10 ms after 🎉
### Trace profiling of `lift_spec` before PR 28560
```diff
diff --git a/Mathlib/Combinatorics/Quiver/Symmetric.lean b/Mathlib/Combinatorics/Quiver/Symmetric.lean
index 33e371b283..76a3371b36 100644
--- a/Mathlib/Combinatorics/Quiver/Symmetric.lean
+++ b/Mathlib/Combinatorics/Quiver/Symmetric.lean
@@ -164,6 +164,7 @@ def lift [HasReverse V'] (φ : Prefunctor V V') :
| Sum.inl g => φ.map g
| Sum.inr g => reverse (φ.map g)
+set_option trace.profiler true in
theorem lift_spec [HasReverse V'] (φ : Prefunctor V V') :
Symmetrify.of.comp (Symmetrify.lift φ) = φ := by
fapply Prefunctor.ext
```
```
✔ [147/147] Built Mathlib.Combinatorics.Quiver.Symmetric (1.3s)
Build completed successfully (147 jobs).
```
### Trace profiling of `lift_spec` after PR 28560
```diff
diff --git a/Mathlib/Combinatorics/Quiver/Symmetric.lean b/Mathlib/Combinatorics/Quiver/Symmetric.lean
index 33e371b283..3adf874946 100644
--- a/Mathlib/Combinatorics/Quiver/Symmetric.lean
+++ b/Mathlib/Combinatorics/Quiver/Symmetric.lean
@@ -164,13 +164,10 @@ def lift [HasReverse V'] (φ : Prefunctor V V') :
| Sum.inl g => φ.map g
| Sum.inr g => reverse (φ.map g)
+set_option trace.profiler true in
theorem lift_spec [HasReverse V'] (φ : Prefunctor V V') :
Symmetrify.of.comp (Symmetrify.lift φ) = φ := by
- fapply Prefunctor.ext
- · rintro X
- rfl
- · rintro X Y f
- rfl
+ tauto
theorem lift_reverse [h : HasInvolutiveReverse V']
(φ : Prefunctor V V') {X Y : Symmetrify V} (f : X ⟶ Y) :
```
```
✔ [147/147] Built Mathlib.Combinatorics.Quiver.Symmetric (1.2s)
Build completed successfully (147 jobs).
```
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
easy
|
2/6 |
Mathlib/Combinatorics/Quiver/Symmetric.lean |
1 |
1 |
['github-actions'] |
awainverse assignee:awainverse |
19-44353 19 days ago |
19-44353 19 days ago |
72-60704 72 days |
| 27664 |
pechersky author:pechersky |
feat(Topology,Analysis): discrete topology metric space and normed groups |
Explicit construction of the discrete topology metric space and normed groups where `dist x y = 1` for all `x != y`
Provide PseudoMetricSpace, MetricSpace, Seminormed(Add)Group, and Normed(Add)Group constructions
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
137/0 |
Mathlib/Analysis/Normed/Group/Basic.lean,Mathlib/Topology/MetricSpace/Basic.lean,Mathlib/Topology/MetricSpace/Pseudo/Constructions.lean |
3 |
4 |
['github-actions', 'kckennylau', 'pechersky'] |
urkud assignee:urkud |
19-42655 19 days ago |
91-22404 2 months ago |
91-22389 91 days |
| 27754 |
Parcly-Taxel author:Parcly-Taxel |
feat: `finCycle` as iterated `finRotate` |
Originally used in #25786, but eventually discovered to be unnecessary. |
t-logic |
26/5 |
Mathlib/Logic/Equiv/Fin/Rotate.lean |
1 |
1 |
['github-actions', 'kckennylau'] |
fpvandoorn assignee:fpvandoorn |
19-41670 19 days ago |
89-67140 2 months ago |
89-67185 89 days |
| 29744 |
espottesmith author:espottesmith |
feat(Combinatorics): define directed hypergraphs |
This PR defines directed hypergraphs:
```
@[ext]
structure DiHypergraph (α : Type*) where
/-- The vertex set -/
vertexSet : Set α
/-- The edge set -/
edgeSet : Set ((Set α) × (Set α))
/-- Each edge is a pair (s, d), where s ⊆ vertexSet and d ⊆ vertexSet -/
edge_src_dst_isSubset_vertexSet' : ∀ ⦃e⦄, e ∈ edgeSet → e.1 ⊆ vertexSet ∧ e.2 ⊆ vertexSet
```
Additional definitions:
- tail/head stars and negative/positive stars
- some special cases (B-Graph, F-Graph, BF-Graph, and what I'm calling a "non-endless" dihypergraph, where neither the source/tail nor the destination/head are empty)
- Vertex and (hyper)edge adjacency
- isolated vertices
- empty and nonempty dihypergraphs
The design employed here is based off of #28613, but this PR does not depend on that one.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-combinatorics
|
391/0 |
Mathlib.lean,Mathlib/Combinatorics/DiHypergraph/Basic.lean |
2 |
1 |
['github-actions'] |
b-mehta assignee:b-mehta |
19-32392 19 days ago |
41-81392 1 month ago |
41-81437 41 days |
| 30124 |
erdOne author:erdOne |
feat(RingTheory): `IsAdicComplete I R ↔ CompleteSpace R ∧ T2Space R` |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-topology
label:t-algebra$ |
40/0 |
Mathlib/Order/Filter/Bases/Basic.lean,Mathlib/RingTheory/AdicCompletion/Basic.lean,Mathlib/RingTheory/AdicCompletion/Topology.lean,Mathlib/Topology/Algebra/FilterBasis.lean,Mathlib/Topology/Separation/Basic.lean |
5 |
1 |
['github-actions'] |
alreadydone assignee:alreadydone |
19-32390 19 days ago |
26-81801 26 days ago |
26-81904 26 days |
| 30141 |
shalliso author:shalliso |
fix(Topology/Baire/Lemmas): fix index type in isMeagre_iUnion |
The index set ι needs to be of type Sort* instead of type Type* in isMeagre_iUnion otherwise I get the following message when I try to use it:
typeclass instance problem is stuck, it is often due to metavariables
Countable ?m.27
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-topology
|
1/1 |
Mathlib/Topology/GDelta/Basic.lean |
1 |
1 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
19-32386 19 days ago |
26-45120 26 days ago |
26-45154 26 days |
| 29347 |
themathqueen author:themathqueen |
refactor(Algebra/Star/StarAlgHom): let `StarAlgEquiv` extend `StarRingEquiv` instead of `RingEquiv` |
Instead of having `StarAlgEquiv` extend `RingEquiv` and have properties `map_star'` and `map_smul'`, it now extends `StarRingEquiv` with only `map_smul'`.
---
Will add more API in the next PR.
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
29/36 |
Mathlib/Algebra/Star/StarAlgHom.lean,Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean |
2 |
5 |
['github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'themathqueen'] |
dupuisf and kbuzzard assignee:dupuisf assignee:kbuzzard |
19-25473 19 days ago |
52-45309 1 month ago |
54-68263 54 days |
| 26975 |
Whysoserioushah author:Whysoserioushah |
feat: a norm_num extension for complex numbers |
co-authored-by : @thefundamentaltheor3m, @hrmacbeth
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
350/0 |
Mathlib.lean,Mathlib/Analysis/RCLike/Basic.lean,Mathlib/Tactic.lean,Mathlib/Tactic/NormNum/NormNumI.lean,MathlibTest/norm_numI.lean |
5 |
52 |
['JovanGerb', 'Whysoserioushah', 'dupuisf', 'eric-wieser', 'github-actions', 'hrmacbeth'] |
robertylewis assignee:robertylewis |
18-75891 18 days ago |
103-56515 3 months ago |
103-60823 103 days |
| 27047 |
YaelDillies author:YaelDillies |
feat: `MonoidHom.toAdditiveRight` as a `MulEquiv` |
From Toric
---
- [x] depends on: #29800
I haven't yet been very thorough with the new lemmas. I first want to hear thoughts about the names
[](https://gitpod.io/from-referrer/)
|
toric
t-algebra
label:t-algebra$ |
31/7 |
Mathlib/Algebra/Group/TypeTags/Hom.lean |
1 |
6 |
['Ruben-VandeVelde', 'YaelDillies', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
adomani assignee:adomani |
18-71616 18 days ago |
18-71935 18 days ago |
87-23028 87 days |
| 29449 |
mitchell-horner author:mitchell-horner |
feat(Combinatorics/SimpleGraph): add Turán density related theorems |
Refactors `tendsto_turanDensity` and implements `turanDensity_eq_sInf` and `isContained_of_card_edgeFinset` (theorems that are common in proofs involving Turán density).
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
51/14 |
Mathlib/Combinatorics/SimpleGraph/Extremal/TuranDensity.lean |
1 |
13 |
['YaelDillies', 'github-actions', 'mitchell-horner'] |
YaelDillies assignee:YaelDillies |
18-71181 18 days ago |
23-17257 23 days ago |
49-35330 49 days |
| 25907 |
mans0954 author:mans0954 |
feat: low order roots of unity |
This PR continues the work from #25470.
Original PR: https://github.com/leanprover-community/mathlib4/pull/25470 |
t-algebra label:t-algebra$ |
182/0 |
Mathlib/Algebra/CharP/Invertible.lean,Mathlib/RingTheory/RootsOfUnity/Complex.lean |
2 |
3 |
['github-actions', 'mans0954', 'urkud'] |
kim-em assignee:kim-em |
18-32502 18 days ago |
135-77843 4 months ago |
135-77883 135 days |
| 29947 |
JaafarTanoukhi author:JaafarTanoukhi |
feat(Combinatorics/Digraph): Maps |
Ported `SimpleGraph/Maps.lean` to `Digraph/Maps.lean` for future PRs related to issue #[26771](https://github.com/leanprover-community/mathlib4/issues/26771)
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-combinatorics
|
476/0 |
Mathlib.lean,Mathlib/Combinatorics/Digraph/Maps.lean |
2 |
1 |
['github-actions'] |
awainverse assignee:awainverse |
18-32402 18 days ago |
34-62325 1 month ago |
34-62364 34 days |
| 30148 |
mbkybky author:mbkybky |
chore(RingTheory/Spectrum/Prime/Module): golf `stableUnderSpecialization_support` using `mem_support_mono` |
Golf [Module.stableUnderSpecialization_support](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/Spectrum/Prime/Module.html#Module.stableUnderSpecialization_support) using [Module.mem_support_mono](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/Support.html#Module.mem_support_mono).
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
2/6 |
Mathlib/RingTheory/Spectrum/Prime/Module.lean |
1 |
1 |
['github-actions'] |
chrisflav assignee:chrisflav |
18-32397 18 days ago |
26-23696 26 days ago |
26-23731 26 days |
| 30180 |
mcdoll author:mcdoll |
feat(Analysis/Calculus): add a version of bounding iterated derivatives of compositions with fewer assumptions on differentiability |
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
17/3 |
Mathlib/Analysis/Calculus/ContDiff/Bounds.lean |
1 |
1 |
['github-actions'] |
hrmacbeth assignee:hrmacbeth |
18-32393 18 days ago |
25-58429 25 days ago |
25-58467 25 days |
| 30029 |
ADedecker author:ADedecker |
feat: define IsRightUniformGroup and IsLeftUniformGroup |
This mostly contains the definition and additional documentation. Future PRs will take care of expanding the theory, and proving in particular that `IsUniformGroup` is precisely the conjuction of these two typeclasses.
---
- [x] depends on: #30025
[](https://gitpod.io/from-referrer/)
|
t-topology |
199/36 |
Mathlib/Topology/Algebra/IsUniformGroup/Basic.lean,Mathlib/Topology/Algebra/IsUniformGroup/Defs.lean |
2 |
12 |
['ADedecker', 'github-actions', 'leanprover-bot', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
PatrickMassot assignee:PatrickMassot |
17-66609 17 days ago |
30-55059 1 month ago |
30-66290 30 days |
| 29758 |
SnirBroshi author:SnirBroshi |
feat(RingTheory/RootsOfUnity): exp(pi * i * q) is a root of unity for rational q |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
28/1 |
Mathlib/RingTheory/RootsOfUnity/Complex.lean |
1 |
5 |
['Ruben-VandeVelde', 'SnirBroshi', 'github-actions', 'kckennylau'] |
chrisflav assignee:chrisflav |
17-64528 17 days ago |
40-37203 1 month ago |
40-44203 40 days |
| 30163 |
SnirBroshi author:SnirBroshi |
feat(Data/Set/Lattice): useful equivalences of `biUnion` and `biInter` |
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
25/0 |
Mathlib/Data/Set/Lattice.lean |
1 |
1 |
['github-actions'] |
nobody |
17-52776 17 days ago |
25-73645 25 days ago |
25-73695 25 days |
| 30217 |
SnirBroshi author:SnirBroshi |
feat(Data/List/GetD): `getD` is surjective iff every element is in the list |
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
19/0 |
Mathlib/Data/List/GetD.lean |
1 |
2 |
['github-actions', 'themathqueen'] |
nobody |
17-51296 17 days ago |
24-42802 24 days ago |
24-42838 24 days |
| 28793 |
grunweg author:grunweg |
feat: smooth immersions |
Define smooth immersions between manifolds.
We use a definition which allows for corners, infinite dimension and arbitrary fields.
Future PRs will
- prove that immersions are C^n (#28796),
- prove another characterisation of immersions: f is immersed at x iff the differential df_x splits,
i.e. is injective, has closed range and its image has a closed complement,
and in particular that a map between finite-dimensional manifolds over a complete field is an
immersion iff its differential is injective,
- use this to prove that the product (#28853) and composition of immersions is an immersion,
- use this theory to give more conceptual proofs of half of `Manifold/Instances/Icc.lean` (#29077)
- define smooth embeddings and immersed and embedded smooth submanifolds
---
- [x] depends on: #28701
Most of the above has been done at https://github.com/grunweg/mathlib4/tree/MR-define-immersions.
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry |
487/0 |
Mathlib.lean,Mathlib/Geometry/Manifold/IsImmersionEmbedding.lean,Mathlib/Geometry/Manifold/LocalSourceTargetProperty.lean,docs/references.bib |
4 |
98 |
['chrisflav', 'github-actions', 'grunweg', 'mathlib4-dependent-issues-bot', 'sgouezel'] |
sgouezel assignee:sgouezel |
17-47612 17 days ago |
20-24687 20 days ago |
31-48670 31 days |
| 30047 |
ooovi author:ooovi |
feat(Combinatorics/SimpleGraph): edge labellings |
Add edge labellings for `SimpleGraph` as well as some basic lemmata.
---
This is mostly a cleaned up part of @b-mehta's lean4 port of their [formalisation of an exponentially better upper bound on Ramsey numbers ](https://github.com/b-mehta/ExponentialRamsey/). I need these definitions for another project on Ramsey theory.
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
234/3 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/EdgeLabelling.lean,Mathlib/Combinatorics/SimpleGraph/Regularity/Increment.lean,Mathlib/Combinatorics/SimpleGraph/Triangle/Counting.lean |
5 |
45 |
['YaelDillies', 'b-mehta', 'github-actions', 'ooovi', 'vlad902'] |
b-mehta assignee:b-mehta |
16-32376 16 days ago |
23-67090 23 days ago |
28-77550 28 days |
| 30171 |
smmercuri author:smmercuri |
feat(DedekindDomain/AdicValuation): `le_one` lemmas for `HeightOneSpectrum.valuation` and specialisations to `Rat` |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
55/0 |
Mathlib/RingTheory/DedekindDomain/AdicValuation.lean |
1 |
5 |
['erdOne', 'github-actions', 'smmercuri'] |
erdOne assignee:erdOne |
15-82552 15 days ago |
25-63333 25 days ago |
25-63364 25 days |
| 30499 |
harahu author:harahu |
doc(AkraBazzi): minor tweaks and additions |
Broken out of #29464 to simplify review.
---
[](https://gitpod.io/from-referrer/)
|
t-computability |
19/13 |
Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean,Mathlib/Computability/AkraBazzi/SumTransform.lean |
2 |
7 |
['github-actions', 'grunweg', 'harahu'] |
nobody |
15-76058 15 days ago |
15-76058 15 days ago |
15-79107 15 days |
| 30285 |
kckennylau author:kckennylau |
chore: document Spec(R) notation in docstring of Spec |
#30272 changed the `Spec(R)` notation to scoped, so I am including this new information in the docstring of `AlgebraicGeometry.Spec`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry |
13/0 |
Mathlib/AlgebraicGeometry/Scheme.lean |
1 |
1 |
['github-actions'] |
alexjbest assignee:alexjbest |
15-32386 15 days ago |
22-40557 22 days ago |
22-40593 22 days |
| 27254 |
yuanyi-350 author:yuanyi-350 |
2025 imo problem3 |
- [x] depends on: #28788
- [x] depends on: #28790
- [x] depends on: #28829
---
[](https://gitpod.io/from-referrer/)
|
IMO |
231/0 |
Archive.lean,Archive/Imo/Imo2025Q3.lean,Mathlib/NumberTheory/Padics/PadicVal/Basic.lean |
3 |
28 |
['github-actions', 'jsm28', 'kbuzzard', 'leanprover-community-bot-assistant', 'madvorak', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'themathqueen', 'wwylele', 'yuanyi-350'] |
jsm28 assignee:jsm28 |
15-3542 15 days ago |
56-34484 1 month ago |
90-9347 90 days |
| 26961 |
mariainesdff author:mariainesdff |
feat(RingTheory/PowerSeries/Substitution): add API |
Co-authored-by: @AntoineChambert-Loir
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
57/5 |
Mathlib/RingTheory/PowerSeries/Basic.lean,Mathlib/RingTheory/PowerSeries/Substitution.lean |
2 |
13 |
['Ruben-VandeVelde', 'github-actions', 'mariainesdff', 'mattrobball'] |
mattrobball assignee:mattrobball |
15-204 15 days ago |
40-81264 1 month ago |
88-14884 88 days |
| 27567 |
themathqueen author:themathqueen |
feat(LinearAlgebra/TensorProduct/Associator): add `lid` and `assoc` tensor lemmas |
This adds `TensorProduct.lid_tensor` and `TensorProduct.assoc_tensor`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
easy
label:t-algebra$ |
31/2 |
Mathlib/LinearAlgebra/TensorProduct/Associator.lean,Mathlib/LinearAlgebra/TensorProduct/Basic.lean |
2 |
2 |
['github-actions', 'themathqueen'] |
mattrobball assignee:mattrobball |
14-77489 14 days ago |
79-53969 2 months ago |
93-46797 93 days |
| 30557 |
SnirBroshi author:SnirBroshi |
feat(Logic/Relation): a relation is reflexive iff it subsumes the equality relation |
feat(Logic/Relation): a relation is reflexive iff it subsumes the equality relation, and irreflexive iff the inequality relation subsumes it
---
[](https://gitpod.io/from-referrer/)
|
t-logic |
6/0 |
Mathlib/Logic/Relation.lean |
1 |
2 |
['SnirBroshi', 'github-actions', 'vihdzp'] |
nobody |
14-28684 14 days ago |
14-49040 14 days ago |
14-49078 14 days |
| 30525 |
515801431 author:515801431 |
Polya_counting |
This PR introduces basic definitions and results about colorings under permutation group actions.
A coloring is defined as a function X → Y, and the permutation group Equiv.Perm X acts on colorings by precomposition:
(g • c) x = c (g⁻¹ • x)
This formalizes the natural action of relabeling the elements of X.
Main definitions
MulAction (Equiv.Perm X) (X → Y):
The action of the permutation group on colorings via precomposition.
coloringEquiv (c₁ c₂ : X → Y) : Prop:
Two colorings are equivalent if they lie in the same orbit under this action, i.e.
∃ f : Equiv.Perm X, f • c₁ = c₂.
Main results
smul_eq_iff_mem_stabilizer:
Characterizes when two group actions on the same coloring are equal, showing that
g • c = f • c ↔ f⁻¹ * g ∈ stabilizer c.
coloringEquiv_equivalence:
Proves that coloringEquiv defines an equivalence relation on X → Y.
orbit_size_eq_index:
Reformulates the orbit–stabilizer theorem in the context of colorings:
|orbit c| = |Perm X| / |stabilizer c|
Motivation
These results provide foundational infrastructure for studying Burnside’s lemma and Pólya’s enumeration theorem in Mathlib, where the enumeration of distinct colorings up to symmetry plays a central role. |
new-contributor
t-combinatorics
|
111/0 |
Mathlib.lean,Mathlib/Combinatorics/Enumerative/Polya.lean |
2 |
2 |
['IvanRenison', 'github-actions'] |
nobody |
14-3704 14 days ago |
15-26386 15 days ago |
15-26424 15 days |
| 29946 |
smmercuri author:smmercuri |
feat(InfinitePlace/Ramification): embeddings of unramified/ramified infinite places satisfy `IsUnmixed/IsMixed` |
---
- [x] depends on: #29945
[](https://gitpod.io/from-referrer/)
|
FLT
t-number-theory
|
67/1 |
Mathlib/NumberTheory/NumberField/InfinitePlace/Ramification.lean |
1 |
4 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'smmercuri', 'xroblot'] |
alexjbest assignee:alexjbest |
14-2854 14 days ago |
29-84305 29 days ago |
30-7984 30 days |
| 30542 |
SnirBroshi author:SnirBroshi |
feat(Data/Sym/Sym2): `fromRel` is monotonic |
---
[](https://gitpod.io/from-referrer/)
|
t-data |
11/1 |
Mathlib/Data/Sym/Sym2.lean |
1 |
5 |
['SnirBroshi', 'b-mehta', 'github-actions', 'vihdzp'] |
nobody |
13-69795 13 days ago |
14-79364 14 days ago |
14-79397 14 days |
| 28546 |
Sfgangloff author:Sfgangloff |
feat(SymbolicDynamics): basic setup of Zd, full shift, cylinders, pat… |
# Symbolic dynamics on groups: core API and entropy along finite shapes
This PR adds a **group-generic** foundation for symbolic dynamics over an arbitrary group `G`, together with convenient specializations for `ℤ` and `ℤ^d`.
## Summary of additions
- **Full shift and shift action**
- `abbrev FullShift (A G) := G → A` (inherits product topology from the Π-type).
- Right shift `shift g x` with convention `(shift g x) h = x (h * g)`.
- **Cylinders and topology**
- `cylinder U x : Set (G → A)` for finite `U : Finset G`.
- Cylinders are open under `[DiscreteTopology A]`; with a finite alphabet they are also closed.
- Equality with dependent products:
`cylinder U x = Set.pi (↑U) (fun i => ({x i} : Set A))`, enabling use of the `Set.pi` API.
- **Patterns, occurrences, and subshifts**
- `Pattern A G` with finite `support : Finset G` and `data : support → A`.
- `Pattern.occursIn p x g` (occurrence at translate `g`) and the expected shift law.
- `forbids F` and `Subshift A G` (closed, shift-invariant subsets).
- `FixedSupport A G U` with an equivalence to `(U → A)` to obtain finiteness.
- **Language on finite shapes and counting**
- `languageOn X U`, `languageCardOn X U`, and `patternCountOn Y U`.
- **Entropy along a shape sequence**
- `limsupAtTop` (as an `sInf` of eventual upper bounds).
- `entropyAlong X F hF := limsup (log (patternCountOn X (F n) + 1) / |F n|)`
for any nonempty finite shapes `F : ℕ → Finset G` (the `+ 1` avoids `log 0`).
- **Specializations**
- `IntShapes`: segments `[-n,n]` on `Multiplicative ℤ`, with `entropy_Z`.
- `ZdShapes`: boxes `[-n,n]^d` on `ℤ^d` (as functions `Fin d → ℤ`), with `entropy_Zd`.
## Mathematical remarks
- The API is **shape-parametric**: entropy is defined along user-provided finite shapes.
- On **amenable** groups, using a **Følner** sequence yields a canonical value (Ornstein–Weiss).
This PR does not assume amenability; the family of shapes is an explicit input.
## Motivation
Provide a clean, reusable base for symbolic dynamics on groups in mathlib.
## Future work
- Add a Følner predicate and prove shape-independence / limit existence on amenable groups.
- Expand the `ℤ`/`ℤ^d` toolkit (alternative shapes, mixing, factors).
- Develop 1D theory and, longer-term, multidimensional SFT results (e.g. along the lines of Hochman–Meyerovitch).
|
new-contributor
t-dynamics
|
751/0 |
Mathlib.lean,Mathlib/Dynamics/SymbolicDynamics/Basic.lean,Mathlib/Tactic/ToAdditive/GuessName.lean |
3 |
84 |
['Sfgangloff', 'eric-wieser', 'github-actions', 'kckennylau', 'sgouezel'] |
sgouezel assignee:sgouezel |
13-65514 13 days ago |
13-65514 13 days ago |
57-83044 57 days |
| 30158 |
nicolaviolette author:nicolaviolette |
feat: combinatorics simplegraph basic |
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-combinatorics
|
9/4 |
Mathlib/Combinatorics/SimpleGraph/Basic.lean |
1 |
1 |
['github-actions'] |
b-mehta assignee:b-mehta |
13-32383 13 days ago |
25-84539 25 days ago |
25-84573 25 days |
| 30233 |
Komyyy author:Komyyy |
refactor(Topology/Sequences): generalize seq-compactness lemmas to metrizable space |
* [`IsSeqCompact.isCompact`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Sequences.html#IsSeqCompact.isCompact)
* [`UniformSpace.isCompact_iff_isSeqCompact`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Sequences.html#UniformSpace.isCompact_iff_isSeqCompact)
* [`UniformSpace.compactSpace_iff_seqCompactSpace`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Sequences.html#UniformSpace.compactSpace_iff_seqCompactSpace)
These are lemmas on uniform spaces which has countable uniformity, so can be generalized to pseudo-metrizable space.
From [CLT](https://github.com/RemyDegenne/CLT)
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-topology
|
20/7 |
Mathlib/Topology/Sequences.lean,docs/overview.yaml,docs/undergrad.yaml |
3 |
1 |
['github-actions'] |
grunweg assignee:grunweg |
13-32381 13 days ago |
21-435 21 days ago |
21-910 21 days |
| 30602 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Walk): `mapLe` preservation lemmas |
feat(Combinatorics/SimpleGraph/Walk): specialize `map` preservation lemmas from for `mapLe`
---
It's hard to use the existing `map` lemmas when dealing with `mapLe`, specifically the lemmas for `support`/`edges`/`edgeSet` contain a map in the `map` version but not in the `mapLe` version, since `mapLe` maps walks with `id`.
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
21/1 |
Mathlib/Combinatorics/SimpleGraph/Walk.lean |
1 |
1 |
['github-actions'] |
nobody |
13-23379 13 days ago |
13-23379 13 days ago |
13-23440 13 days |
| 30003 |
vlad902 author:vlad902 |
feat(Order): helper lemmas for `IsChain`/`IsAntichain` |
These were useful in formalizing Dilworth's theorem.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
23/2 |
Mathlib/Order/Antichain.lean,Mathlib/Order/Preorder/Chain.lean |
2 |
23 |
['YaelDillies', 'github-actions', 'mathlib4-merge-conflict-bot', 'plp127', 'vlad902'] |
YaelDillies assignee:YaelDillies |
12-45654 12 days ago |
14-57082 14 days ago |
32-24072 32 days |
| 30626 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Connectivity/Connected): {`Subsingleton`, `Unique`, `Nonempty`} instances for `ConnectedComponent` |
feat(Combinatorics/SimpleGraph/Connectivity/Connected): add {`Subsingleton`, `Unique`, `Nonempty`} instances for `ConnectedComponent`
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
4/4 |
Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean |
1 |
1 |
['github-actions'] |
nobody |
12-32312 12 days ago |
12-32324 12 days ago |
12-32369 12 days |
| 29824 |
themathqueen author:themathqueen |
feat(Algebra/Order/Star): add `StarOrderedRing (Π i, A i)` |
---
- [x] depends on: #29823
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
38/0 |
Mathlib.lean,Mathlib/Algebra/Order/Star/Pi.lean |
2 |
4 |
['github-actions', 'mathlib4-dependent-issues-bot', 'themathqueen'] |
joneugster assignee:joneugster |
11-84628 11 days ago |
19-84166 19 days ago |
19-84565 19 days |
| 28604 |
alreadydone author:alreadydone |
chore(Algebra/Ring/Defs): add two classes (minimally invasive version) |
Add the missing `NonAssocComm(Semi)ring` classes and add some missing instances between existing classes. Contrary to #28532, the approach here doesn't add any new `extends`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
59/17 |
Mathlib/Algebra/Colimit/DirectLimit.lean,Mathlib/Algebra/Ring/Defs.lean,Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean |
3 |
21 |
['alreadydone', 'github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'riccardobrasca'] |
riccardobrasca assignee:riccardobrasca |
11-65646 11 days ago |
27-36588 27 days ago |
28-9205 28 days |
| 30037 |
linesthatinterlace author:linesthatinterlace |
feat: Fin.find update |
We currently define `Fin.find` in a way that is redundant (in the sense that it is just equivalent to `Fin.find?` in batteries). This PR replaces it with a definition that works closer to `Nat.find`, and links the new definition of `Fin.find` to `Fin.find?` in the natural way.
---
[](https://gitpod.io/from-referrer/)
|
|
159/104 |
Mathlib/Data/Fin/Tuple/Basic.lean |
1 |
7 |
['github-actions', 'linesthatinterlace', 'llllvvuu', 'mathlib4-merge-conflict-bot'] |
adamtopaz assignee:adamtopaz |
11-62793 11 days ago |
29-59634 29 days ago |
31-29139 31 days |
| 28141 |
YaelDillies author:YaelDillies |
chore: deprecate `BialgHom.coe_toLinearMap` |
`BialgHom.toLinearMap` is a fake projection.
From Toric
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
toric
|
5/11 |
Mathlib/RingTheory/Bialgebra/Hom.lean |
1 |
8 |
['YaelDillies', 'eric-wieser', 'github-actions'] |
alreadydone assignee:alreadydone |
11-43477 11 days ago |
11-43477 11 days ago |
81-9491 81 days |
| 30559 |
SnirBroshi author:SnirBroshi |
feat(Data/Sym/Sym2): add `Sym2.diagSet` |
feat(Data/Sym/Sym2): add `Sym2.diagSet`, the set of elements on the diagonal
---
This should help state theorems in simple graphs more easily (e.g. see `SimpleGraph.edgeSet_fromEdgeSet`, `SimpleGraph.edgeSet_sdiff_sdiff_isDiag`, `SimpleGraph.edgeSet_subset_setOf_not_isDiag`) and more importantly work with such statements.
[](https://gitpod.io/from-referrer/)
|
t-data |
39/6 |
Mathlib/Data/Sym/Sym2.lean |
1 |
1 |
['github-actions'] |
nobody |
11-34979 11 days ago |
14-47241 14 days ago |
14-47281 14 days |
| 27606 |
CBirkbeck author:CBirkbeck |
Eisenstein q exp identity |
---
- [x] depends on: #26016
- [x] depends on: #27212
- [x] depends on: #27837
- [x] depends on: #27839
- [x] depends on: #27840
- [x] depends on: #28690
- [x] depends on: #27838
- [x] depends on: #27841
- [x] depends on: #27844
[](https://gitpod.io/from-referrer/)
|
large-import |
124/6 |
Mathlib/NumberTheory/ModularForms/EisensteinSeries/QExpansion.lean |
1 |
11 |
['MichaelStollBayreuth', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
dagurtomas assignee:dagurtomas |
11-32407 11 days ago |
18-79400 18 days ago |
19-58063 19 days |
| 29980 |
mans0954 author:mans0954 |
refactor(RingTheory/Polynomial/Resultant/Quadratic): Re-implement QuadraticDiscriminant for R[X] |
Re-implement `Algebra/QuadraticDiscriminant` for polynomials.
[Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/discriminants.20of.20low.20degree.20polynomials/with/538010519)
---
- [ ] depends on: #29981
[](https://gitpod.io/from-referrer/)
|
|
208/0 |
Mathlib.lean,Mathlib/RingTheory/Polynomial/Resultant/Quadratic.lean |
2 |
3 |
['JovanGerb', 'github-actions', 'mathlib4-dependent-issues-bot'] |
JovanGerb assignee:JovanGerb |
10-80525 10 days ago |
20-52066 20 days ago |
20-55949 20 days |
| 30515 |
euprunin author:euprunin |
chore(Data/Nat): golf `findGreatest_eq_iff` using `grind` |
---
Show trace profiling of findGreatest_eq_iff: 21 ms before, 39 ms after
### Trace profiling of `findGreatest_eq_iff` before PR 30515
```diff
diff --git a/Mathlib/Data/Nat/Find.lean b/Mathlib/Data/Nat/Find.lean
index 4ac5779f75..8e95d6e030 100644
--- a/Mathlib/Data/Nat/Find.lean
+++ b/Mathlib/Data/Nat/Find.lean
@@ -176,6 +176,7 @@ lemma findGreatest_succ (n : ℕ) :
lemma findGreatest_of_not (h : ¬ P (n + 1)) : findGreatest P (n + 1) = findGreatest P n := by
simp [Nat.findGreatest, h]
+set_option trace.profiler true in
lemma findGreatest_eq_iff :
Nat.findGreatest P k = m ↔ m ≤ k ∧ (m ≠ 0 → P m) ∧ ∀ ⦃n⦄, m < n → n ≤ k → ¬P n := by
induction k generalizing m with
```
```
ℹ [103/103] Built Mathlib.Data.Nat.Find (710ms)
info: Mathlib/Data/Nat/Find.lean:180:0: [Elab.async] [0.021505] elaborating proof of Nat.findGreatest_eq_iff
[Elab.definition.value] [0.020637] Nat.findGreatest_eq_iff
[Elab.step] [0.020109] induction k generalizing m with
| zero =>
rw [eq_comm, Iff.comm]
simp only [Nat.le_zero, ne_eq, findGreatest_zero, and_iff_left_iff_imp]
rintro rfl
exact ⟨fun h ↦ (h rfl).elim, fun n hlt heq ↦ by cutsat⟩
| succ k ihk =>
by_cases hk : P (k + 1)
· rw [findGreatest_eq hk]
constructor
· rintro rfl
exact ⟨le_refl _, fun _ ↦ hk, fun n hlt hle ↦ by cutsat⟩
· rintro ⟨hle, h0, hm⟩
rcases Decidable.lt_or_eq_of_le hle with hlt | rfl
exacts [(hm hlt (le_refl _) hk).elim, rfl]
· rw [findGreatest_of_not hk, ihk]
constructor
· rintro ⟨hle, hP, hm⟩
refine ⟨le_trans hle k.le_succ, hP, fun n hlt hle ↦ ?_⟩
rcases Decidable.lt_or_eq_of_le hle with hlt' | rfl
exacts [hm hlt <| Nat.lt_succ_iff.1 hlt', hk]
· rintro ⟨hle, hP, hm⟩
refine ⟨Nat.lt_succ_iff.1 (lt_of_le_of_ne hle ?_), hP, fun n hlt hle ↦ hm hlt (le_trans hle k.le_succ)⟩
rintro rfl
exact hk (hP k.succ_ne_zero)
[Elab.step] [0.020104] induction k generalizing m with
| zero =>
rw [eq_comm, Iff.comm]
simp only [Nat.le_zero, ne_eq, findGreatest_zero, and_iff_left_iff_imp]
rintro rfl
exact ⟨fun h ↦ (h rfl).elim, fun n hlt heq ↦ by cutsat⟩
| succ k ihk =>
by_cases hk : P (k + 1)
· rw [findGreatest_eq hk]
constructor
· rintro rfl
exact ⟨le_refl _, fun _ ↦ hk, fun n hlt hle ↦ by cutsat⟩
· rintro ⟨hle, h0, hm⟩
rcases Decidable.lt_or_eq_of_le hle with hlt | rfl
exacts [(hm hlt (le_refl _) hk).elim, rfl]
· rw [findGreatest_of_not hk, ihk]
constructor
· rintro ⟨hle, hP, hm⟩
refine ⟨le_trans hle k.le_succ, hP, fun n hlt hle ↦ ?_⟩
rcases Decidable.lt_or_eq_of_le hle with hlt' | rfl
exacts [hm hlt <| Nat.lt_succ_iff.1 hlt', hk]
· rintro ⟨hle, hP, hm⟩
refine
⟨Nat.lt_succ_iff.1 (lt_of_le_of_ne hle ?_), hP, fun n hlt hle ↦ hm hlt (le_trans hle k.le_succ)⟩
rintro rfl
exact hk (hP k.succ_ne_zero)
[Elab.step] [0.020100] induction k generalizing m with
| zero =>
rw [eq_comm, Iff.comm]
simp only [Nat.le_zero, ne_eq, findGreatest_zero, and_iff_left_iff_imp]
rintro rfl
exact ⟨fun h ↦ (h rfl).elim, fun n hlt heq ↦ by cutsat⟩
| succ k ihk =>
by_cases hk : P (k + 1)
· rw [findGreatest_eq hk]
constructor
· rintro rfl
exact ⟨le_refl _, fun _ ↦ hk, fun n hlt hle ↦ by cutsat⟩
· rintro ⟨hle, h0, hm⟩
rcases Decidable.lt_or_eq_of_le hle with hlt | rfl
exacts [(hm hlt (le_refl _) hk).elim, rfl]
· rw [findGreatest_of_not hk, ihk]
constructor
· rintro ⟨hle, hP, hm⟩
refine ⟨le_trans hle k.le_succ, hP, fun n hlt hle ↦ ?_⟩
rcases Decidable.lt_or_eq_of_le hle with hlt' | rfl
exacts [hm hlt <| Nat.lt_succ_iff.1 hlt', hk]
· rintro ⟨hle, hP, hm⟩
refine
⟨Nat.lt_succ_iff.1 (lt_of_le_of_ne hle ?_), hP, fun n hlt hle ↦ hm hlt (le_trans hle k.le_succ)⟩
rintro rfl
exact hk (hP k.succ_ne_zero)
[Elab.step] [0.014891]
by_cases hk : P (k + 1)
· rw [findGreatest_eq hk]
constructor
· rintro rfl
exact ⟨le_refl _, fun _ ↦ hk, fun n hlt hle ↦ by cutsat⟩
· rintro ⟨hle, h0, hm⟩
rcases Decidable.lt_or_eq_of_le hle with hlt | rfl
exacts [(hm hlt (le_refl _) hk).elim, rfl]
· rw [findGreatest_of_not hk, ihk]
constructor
· rintro ⟨hle, hP, hm⟩
refine ⟨le_trans hle k.le_succ, hP, fun n hlt hle ↦ ?_⟩
rcases Decidable.lt_or_eq_of_le hle with hlt' | rfl
exacts [hm hlt <| Nat.lt_succ_iff.1 hlt', hk]
· rintro ⟨hle, hP, hm⟩
refine
⟨Nat.lt_succ_iff.1 (lt_of_le_of_ne hle ?_), hP, fun n hlt hle ↦ hm hlt (le_trans hle k.le_succ)⟩
rintro rfl
exact hk (hP k.succ_ne_zero)
[Elab.step] [0.014884]
by_cases hk : P (k + 1)
· rw [findGreatest_eq hk]
constructor
· rintro rfl
exact ⟨le_refl _, fun _ ↦ hk, fun n hlt hle ↦ by cutsat⟩
· rintro ⟨hle, h0, hm⟩
rcases Decidable.lt_or_eq_of_le hle with hlt | rfl
exacts [(hm hlt (le_refl _) hk).elim, rfl]
· rw [findGreatest_of_not hk, ihk]
constructor
· rintro ⟨hle, hP, hm⟩
refine ⟨le_trans hle k.le_succ, hP, fun n hlt hle ↦ ?_⟩
rcases Decidable.lt_or_eq_of_le hle with hlt' | rfl
exacts [hm hlt <| Nat.lt_succ_iff.1 hlt', hk]
· rintro ⟨hle, hP, hm⟩
refine
⟨Nat.lt_succ_iff.1 (lt_of_le_of_ne hle ?_), hP, fun n hlt hle ↦ hm hlt (le_trans hle k.le_succ)⟩
rintro rfl
exact hk (hP k.succ_ne_zero)
Build completed successfully (103 jobs).
```
### Trace profiling of `findGreatest_eq_iff` after PR 30515
```diff
diff --git a/Mathlib/Data/Nat/Find.lean b/Mathlib/Data/Nat/Find.lean
index 4ac5779f75..091200bd46 100644
--- a/Mathlib/Data/Nat/Find.lean
+++ b/Mathlib/Data/Nat/Find.lean
@@ -176,6 +176,7 @@ lemma findGreatest_succ (n : ℕ) :
lemma findGreatest_of_not (h : ¬ P (n + 1)) : findGreatest P (n + 1) = findGreatest P n := by
simp [Nat.findGreatest, h]
+set_option trace.profiler true in
lemma findGreatest_eq_iff :
Nat.findGreatest P k = m ↔ m ≤ k ∧ (m ≠ 0 → P m) ∧ ∀ ⦃n⦄, m < n → n ≤ k → ¬P n := by
induction k generalizing m with
@@ -194,16 +195,7 @@ lemma findGreatest_eq_iff :
rcases Decidable.lt_or_eq_of_le hle with hlt | rfl
exacts [(hm hlt (le_refl _) hk).elim, rfl]
· rw [findGreatest_of_not hk, ihk]
- constructor
- · rintro ⟨hle, hP, hm⟩
- refine ⟨le_trans hle k.le_succ, hP, fun n hlt hle ↦ ?_⟩
- rcases Decidable.lt_or_eq_of_le hle with hlt' | rfl
- exacts [hm hlt <| Nat.lt_succ_iff.1 hlt', hk]
- · rintro ⟨hle, hP, hm⟩
- refine ⟨Nat.lt_succ_iff.1 (lt_of_le_of_ne hle ?_), hP,
- fun n hlt hle ↦ hm hlt (le_trans hle k.le_succ)⟩
- rintro rfl
- exact hk (hP k.succ_ne_zero)
+ grind
lemma findGreatest_eq_zero_iff : Nat.findGreatest P k = 0 ↔ ∀ ⦃n⦄, 0 < n → n ≤ k → ¬P n := by
simp [findGreatest_eq_iff]
```
```
ℹ [103/103] Built Mathlib.Data.Nat.Find (704ms)
info: Mathlib/Data/Nat/Find.lean:180:0: [Elab.async] [0.040019] elaborating proof of Nat.findGreatest_eq_iff
[Elab.definition.value] [0.039235] Nat.findGreatest_eq_iff
[Elab.step] [0.038893] induction k generalizing m with
| zero =>
rw [eq_comm, Iff.comm]
simp only [Nat.le_zero, ne_eq, findGreatest_zero, and_iff_left_iff_imp]
rintro rfl
exact ⟨fun h ↦ (h rfl).elim, fun n hlt heq ↦ by cutsat⟩
| succ k ihk =>
by_cases hk : P (k + 1)
· rw [findGreatest_eq hk]
constructor
· rintro rfl
exact ⟨le_refl _, fun _ ↦ hk, fun n hlt hle ↦ by cutsat⟩
· rintro ⟨hle, h0, hm⟩
rcases Decidable.lt_or_eq_of_le hle with hlt | rfl
exacts [(hm hlt (le_refl _) hk).elim, rfl]
· rw [findGreatest_of_not hk, ihk]
grind
[Elab.step] [0.038886] induction k generalizing m with
| zero =>
rw [eq_comm, Iff.comm]
simp only [Nat.le_zero, ne_eq, findGreatest_zero, and_iff_left_iff_imp]
rintro rfl
exact ⟨fun h ↦ (h rfl).elim, fun n hlt heq ↦ by cutsat⟩
| succ k ihk =>
by_cases hk : P (k + 1)
· rw [findGreatest_eq hk]
constructor
· rintro rfl
exact ⟨le_refl _, fun _ ↦ hk, fun n hlt hle ↦ by cutsat⟩
· rintro ⟨hle, h0, hm⟩
rcases Decidable.lt_or_eq_of_le hle with hlt | rfl
exacts [(hm hlt (le_refl _) hk).elim, rfl]
· rw [findGreatest_of_not hk, ihk]
grind
[Elab.step] [0.038881] induction k generalizing m with
| zero =>
rw [eq_comm, Iff.comm]
simp only [Nat.le_zero, ne_eq, findGreatest_zero, and_iff_left_iff_imp]
rintro rfl
exact ⟨fun h ↦ (h rfl).elim, fun n hlt heq ↦ by cutsat⟩
| succ k ihk =>
by_cases hk : P (k + 1)
· rw [findGreatest_eq hk]
constructor
· rintro rfl
exact ⟨le_refl _, fun _ ↦ hk, fun n hlt hle ↦ by cutsat⟩
· rintro ⟨hle, h0, hm⟩
rcases Decidable.lt_or_eq_of_le hle with hlt | rfl
exacts [(hm hlt (le_refl _) hk).elim, rfl]
· rw [findGreatest_of_not hk, ihk]
grind
[Elab.step] [0.033287]
by_cases hk : P (k + 1)
· rw [findGreatest_eq hk]
constructor
· rintro rfl
exact ⟨le_refl _, fun _ ↦ hk, fun n hlt hle ↦ by cutsat⟩
· rintro ⟨hle, h0, hm⟩
rcases Decidable.lt_or_eq_of_le hle with hlt | rfl
exacts [(hm hlt (le_refl _) hk).elim, rfl]
· rw [findGreatest_of_not hk, ihk]
grind
[Elab.step] [0.033279]
by_cases hk : P (k + 1)
· rw [findGreatest_eq hk]
constructor
· rintro rfl
exact ⟨le_refl _, fun _ ↦ hk, fun n hlt hle ↦ by cutsat⟩
· rintro ⟨hle, h0, hm⟩
rcases Decidable.lt_or_eq_of_le hle with hlt | rfl
exacts [(hm hlt (le_refl _) hk).elim, rfl]
· rw [findGreatest_of_not hk, ihk]
grind
[Elab.step] [0.022776] ·
rw [findGreatest_of_not hk, ihk]
grind
[Elab.step] [0.022745]
rw [findGreatest_of_not hk, ihk]
grind
[Elab.step] [0.022740]
rw [findGreatest_of_not hk, ihk]
grind
[Elab.step] [0.021688] grind
Build completed successfully (103 jobs).
```
---
[](https://gitpod.io/from-referrer/)
|
t-data
easy
|
1/10 |
Mathlib/Data/Nat/Find.lean |
1 |
1 |
['github-actions', 'vihdzp'] |
nobody |
10-58648 10 days ago |
10-58648 10 days ago |
15-59100 15 days |
| 30567 |
wwylele author:wwylele |
feat(Combinatorics): generating function for partitions |
This is the start of a series of PR aiming to prove two theorems related to partition:
- [Glaisher's theorem](https://en.wikipedia.org/wiki/Glaisher%27s_theorem), which is a generalization of the existing [Euler's Partition theorem](https://github.com/leanprover-community/mathlib4/blob/master/Archive/Wiedijk100Theorems/Partition.lean). The proof will use the infinite generating function, upgrading the current proof that uses finite ones, and resolving this [TODO](https://github.com/leanprover-community/mathlib4/blob/master/Archive/Wiedijk100Theorems/Partition.lean#L66)
- [Pentagonal number theorem](https://en.wikipedia.org/wiki/Pentagonal_number_theorem) and the recurrence relation on the partition function.
I created a new file `Mathlib/Combinatorics/Enumerative/Partition/GenFun.lean` to avoid importing PowerSeries stuff directly into the definition file, and along the way I moved the existing `Mathlib/Combinatorics/Enumerative/Partition.lean` to `Mathlib/Combinatorics/Enumerative/Partition/Basic.lean` . Not sure why github didn't recognize this as a file move, but there is no diff in that file and the total diff is much smaller
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
426/181 |
Archive/Wiedijk100Theorems/Partition.lean,Mathlib.lean,Mathlib/Algebra/Order/Antidiag/Finsupp.lean,Mathlib/Combinatorics/Enumerative/Partition.lean,Mathlib/Combinatorics/Enumerative/Partition/Basic.lean,Mathlib/Combinatorics/Enumerative/Partition/GenFun.lean,Mathlib/GroupTheory/Perm/Cycle/Type.lean,Mathlib/RingTheory/MvPolynomial/Symmetric/Defs.lean |
8 |
1 |
['github-actions'] |
nobody |
10-55719 10 days ago |
10-57419 10 days ago |
14-30511 14 days |
| 30637 |
strihanje01 author:strihanje01 |
feat(Combinatorics/SetFamily/Lindstrom): Lindstrom's theorem for subfamilies with equal unions |
add Lindstrom's theorem and its strengthening for equal intersections
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-combinatorics
|
210/0 |
Mathlib.lean,Mathlib/Combinatorics/SetFamily/Lindstrom.lean |
2 |
1 |
['github-actions'] |
nobody |
10-52313 10 days ago |
11-59643 11 days ago |
11-59689 11 days |
| 22771 |
alreadydone author:alreadydone |
feat(Homotopy/Lifting): monodromy of covering maps and lifting criterion |
Define the monodromy of a covering map: given a path in the base space, lifting it through the covering map induces a bijection between the fibers at the two endpoints of the path. Definition 2.1 in https://ncatlab.org/nlab/show/monodromy.
---
- [ ] depends on: #28234
- [x] depends on: #22649
[](https://gitpod.io/from-referrer/)
|
t-algebraic-topology |
193/146 |
Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/FundamentalGroup.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/SimplyConnected.lean,Mathlib/CategoryTheory/Groupoid.lean,Mathlib/Topology/Covering.lean,Mathlib/Topology/Homotopy/HomotopyGroup.lean,Mathlib/Topology/Homotopy/Lifting.lean,Mathlib/Topology/Homotopy/Product.lean |
9 |
5 |
['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
PatrickMassot assignee:PatrickMassot |
10-48446 10 days ago |
66-81107 2 months ago |
144-35711 144 days |
| 30315 |
SnirBroshi author:SnirBroshi |
feat(Topology/Connected/LocPathConnected): convenience lemma for `LocPathConnected` + `ConnectedSpace` → `PathConnectedSpace` |
---
[](https://gitpod.io/from-referrer/)
|
awaiting-bench
new-contributor
t-topology
|
5/3 |
Mathlib/Topology/Connected/LocPathConnected.lean |
1 |
12 |
['SnirBroshi', 'github-actions', 'j-loreaux', 'leanprover-bot', 'leanprover-community-mathlib4-bot'] |
PatrickMassot assignee:PatrickMassot |
4-64023 4 days ago |
11-30235 11 days ago |
20-78847 20 days |
| 30322 |
kckennylau author:kckennylau |
feat(RingTheory): base change of graded algebra |
In this file we show that if `𝒜` is a graded `R`-algebra, and `S` is any `R`-algebra, then `S ⊗[R] 𝒜` (which is actually `fun i ↦ (𝒜 i).baseChange S`) is a graded `S`-algebra with the same grading.
---
Split from #26061.
[](https://gitpod.io/from-referrer/)
|
|
269/48 |
Mathlib.lean,Mathlib/Algebra/DirectSum/Basic.lean,Mathlib/Algebra/DirectSum/Decomposition.lean,Mathlib/Algebra/DirectSum/Module.lean,Mathlib/Algebra/Order/Module/HahnEmbedding.lean,Mathlib/LinearAlgebra/DirectSum/Finsupp.lean,Mathlib/LinearAlgebra/DirectSum/TensorProduct.lean,Mathlib/LinearAlgebra/TensorProduct/Decomposition.lean,Mathlib/LinearAlgebra/TensorProduct/Tower.lean,Mathlib/RingTheory/Flat/Basic.lean,Mathlib/RingTheory/Flat/FaithfullyFlat/Basic.lean,Mathlib/RingTheory/GradedAlgebra/TensorProduct.lean |
12 |
1 |
['github-actions'] |
dupuisf assignee:dupuisf |
10-32352 10 days ago |
20-84074 20 days ago |
20-84051 20 days |
| 30432 |
kckennylau author:kckennylau |
feat(AlgebraicGeometry): define the non-vanishing locus of a set in Proj |
Given a subset `s : Set A`, the non-vanishing locus of `s` is the set of points whose corresponding prime ideal does not fully contain `s`. In other words, where not all elements of `s` vanish.
I could not find a name for this in the literature.
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry |
66/0 |
Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean |
1 |
1 |
['github-actions'] |
alexjbest assignee:alexjbest |
10-32350 10 days ago |
18-4895 18 days ago |
18-4929 18 days |
| 30439 |
plp127 author:plp127 |
feat: `norm_num` extension for `IsSquare` on `Nat`, `Int`, `Rat` |
Write a `norm_num` extension to evaluate `IsSquare` for `Nat`, `Int`, `Rat`.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
152/1 |
Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/NormNum/IsSquare.lean,MathlibTest/norm_num_ext.lean |
4 |
3 |
['Rob23oba', 'github-actions', 'plp127'] |
dwrensha assignee:dwrensha |
10-32349 10 days ago |
17-68708 17 days ago |
17-68743 17 days |
| 30224 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Hamiltonian): `p.support.get` is bijective |
---
- [x] depends on: #30223
[](https://gitpod.io/from-referrer/)
|
new-contributor |
7/0 |
Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean |
1 |
2 |
['github-actions', 'mathlib4-dependent-issues-bot'] |
kim-em assignee:kim-em |
10-14986 10 days ago |
17-39476 17 days ago |
17-40432 17 days |
| 29765 |
YaelDillies author:YaelDillies |
feat: commutative monoids are internal monoids |
From Toric
---
[](https://gitpod.io/from-referrer/)
|
toric
t-category-theory
|
76/6 |
Mathlib/CategoryTheory/Monoidal/Cartesian/Grp_.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Mon_.lean |
2 |
3 |
['YaelDillies', 'eric-wieser', 'github-actions'] |
kim-em assignee:kim-em |
10-2239 10 days ago |
41-8946 1 month ago |
41-8979 41 days |
| 29706 |
kim-em author:kim-em |
feat: add piCongrSigmaFiber and piCongrFiberwise equivalences |
## Summary
Add two new equivalence functions for working with fibers and sigma types:
- `Equiv.piCongrSigmaFiber`: transforms between functions on sigma fibers and regular pi types
- `Equiv.piCongrFiberwise`: lifts fiber-wise equivalences to product equivalences
These functions are from the FLT (Fermat's Last Theorem) project and are useful for manipulating dependent function types indexed by fibers of a function.
## Details
The new definitions allow for elegant transformations between:
1. Functions defined on sigma types representing fibers of a function
2. Regular dependent functions
These are particularly useful in algebraic contexts where one needs to work with products indexed by fibers.
## Context
This PR was prepared by Claude (Claude Code) based on the following prompt:
> "Please read FLT/Mathlib/Logic/Equiv/Basic.lean, and also the corresponding file in the Mathlib repository. Please prepare a PR to Mathlib containing this content, putting it at an appropriate point in the corresponding Mathlib file. Make sure the PR is label FLT, and write in the PR comment an explanation that the PR was prepared by Claude, including quoting the prompting."
The content is sourced from `/Users/kim/projects/lean/FLT/FLT/Mathlib/Logic/Equiv/Basic.lean` in the FLT project repository.
🤖 Generated with [Claude Code](https://claude.ai/code) |
FLT
t-logic
|
39/0 |
Mathlib/Logic/Equiv/Basic.lean |
1 |
5 |
['Ruben-VandeVelde', 'github-actions', 'kim-em'] |
fpvandoorn assignee:fpvandoorn |
9-37144 9 days ago |
42-74123 1 month ago |
43-3930 43 days |
| 27516 |
gaetanserre author:gaetanserre |
feat: add rational approximation lemma for suprema in `unitInterval` |
Add `sSup_eq_iUnion_rat` lemma that provides a rational approximation characterization of suprema in the unit interval. For monotone functions `f : α → I → ℝ`, the lemma establishes that the set of pairs where `a < sSup {x | f e.1 x < e.2}` equals the union over all rationals `q ∈ I` with `q > a` of the sets `{e | f e.1 q < e.2}`.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
44/0 |
Mathlib/MeasureTheory/Constructions/UnitInterval.lean,Mathlib/Topology/UnitInterval.lean |
2 |
7 |
['gaetanserre', 'github-actions', 'mathlib4-merge-conflict-bot', 'ocfnash'] |
j-loreaux assignee:j-loreaux |
9-32376 9 days ago |
65-69031 2 months ago |
91-60026 91 days |
| 28884 |
kim-em author:kim-em |
chore: deprecate ShiftLeft Int instance |
This PR proposes deprecating the `ShiftLeft Int` instance (which allows bit-shifting an integer by an integer), and similarly for `ShiftRight`.
These are unused in Mathlib.
I'm happy if someone wants to keep this, but I would ask that they:
* fix the doc-strings to explain what happens for negative shifts
* ~~restores the theorem `Int.shiftLeft_add` which I've commented out on `nightly-testing` (and then revert b33c9d7aaea on `nightly-testing`).~~
* ideally but optionally, complete the API, e.g. reducing shifts by casts back to shifts by a Nat |
t-data |
22/3 |
Mathlib/Data/Int/Bitwise.lean |
1 |
5 |
['eric-wieser', 'github-actions', 'kim-em', 'mathlib4-merge-conflict-bot'] |
pechersky assignee:pechersky |
9-32375 9 days ago |
43-32402 1 month ago |
65-499 65 days |
| 29014 |
ShreckYe author:ShreckYe |
feat(Data/List/Scan): some theorems that relate `scanl` with `foldl` |
I am not sure which is the best form of `getElem_scanl_eq_foldl_take` here, so I added several alternative forms. Feel free to remove any of them if necessary. |
t-data |
35/0 |
Mathlib/Data/List/Scan.lean |
1 |
9 |
['ShreckYe', 'github-actions', 'themathqueen', 'vlad902'] |
pechersky assignee:pechersky |
9-32374 9 days ago |
63-2489 2 months ago |
63-2528 63 days |
| 30041 |
josephmckinsey author:josephmckinsey |
feat(Algebra/Order/Floor): generalize mul_floor_div theorems to rings and semirings |
Generalize `mul_cast_floor_div_cancel` from `Field` and `Semifield` to `Ring` and `Semiring`.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-algebra
label:t-algebra$ |
43/31 |
Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/Algebra/Order/Floor/Semifield.lean,Mathlib/Algebra/Order/Floor/Semiring.lean,Mathlib/Analysis/Real/OfDigits.lean |
4 |
10 |
['Ruben-VandeVelde', 'github-actions', 'josephmckinsey'] |
joneugster assignee:joneugster |
9-32373 9 days ago |
17-30469 17 days ago |
17-65470 17 days |
| 30424 |
maksym-radziwill author:maksym-radziwill |
feat(Analysis.Complex): Borel-Caratheodory theorem, part of PrimeNumberTheoremAnd+ upstreaming |
This PR adds a proof of the [Borel-Caratheodory theorem](https://en.wikipedia.org/wiki/Borel%E2%80%93Carath%C3%A9odory_theorem) following the [blueprint](https://alexkontorovich.github.io/PrimeNumberTheoremAnd/web/sect0004.html#a0000000021) of the [PrimeNumberTheoremAnd+](https://github.com/AlexKontorovich/PrimeNumberTheoremAnd/) project. This is part of the ongoing effort to upstream the StrongPNT version of the PrimeNumberTheoremAnd+ project into mathlib4.
See also the [Zullip discussion](https://leanprover.zulipchat.com/#narrow/channel/423402-PrimeNumberTheorem.2B/topic/Merging.20with.20Morph/with/544246433)
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-analysis
|
424/0 |
Mathlib.lean,Mathlib/Analysis/Complex/BorelCaratheodory.lean,docs/1000.yaml,docs/references.bib |
4 |
7 |
['Ruben-VandeVelde', 'github-actions', 'maksym-radziwill', 'wwylele'] |
grunweg assignee:grunweg |
9-32372 9 days ago |
17-21536 17 days ago |
18-39321 18 days |
| 30144 |
alreadydone author:alreadydone |
feat(Data/Nat): kernel reducible binaryRec |
+ Redefine `Nat.binaryRec` to allow kernel reduction.
+ Move some lemmas from Data/Nat/Bitwise to Data/Nat/BinaryRec.
+ Use `nsmulBinRec` for nsmul/zsmul on elliptic curves.
---
[](https://gitpod.io/from-referrer/)
|
t-data
t-algebra
label:t-algebra$ |
77/56 |
Mathlib/Algebra/Group/Defs.lean,Mathlib/Algebra/Group/Prod.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean,Mathlib/Data/Nat/BinaryRec.lean,Mathlib/Data/Nat/BitIndices.lean,Mathlib/Data/Nat/Bits.lean,Mathlib/Data/Nat/Bitwise.lean,Mathlib/Data/Nat/Size.lean |
8 |
7 |
['alreadydone', 'astrainfinita', 'github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot'] |
nobody |
9-31478 9 days ago |
24-71150 24 days ago |
25-32253 25 days |
| 29723 |
Ruben-VandeVelde author:Ruben-VandeVelde |
feat: add TensorProduct.piScalarRight_symm_algebraMap |
---
[](https://gitpod.io/from-referrer/)
|
FLT
t-algebra
label:t-algebra$ |
5/0 |
Mathlib/LinearAlgebra/TensorProduct/Pi.lean |
1 |
5 |
['Ruben-VandeVelde', 'github-actions', 'themathqueen'] |
joneugster assignee:joneugster |
9-8738 9 days ago |
42-66280 1 month ago |
42-66314 42 days |
| 29969 |
smmercuri author:smmercuri |
refactor: use isometry extensions for completions at infinite places of number fields |
The API for `InfinitePlace.Completion` currently makes use of abstract results defined on absolute values, which all depend on the hypothesis of the form `∀ x, ‖f x‖ = v x`. This is equivalent to `f` being an isometry, and so many of these results can be bypassed and deprecated by using `Isometry.completion_extension`
---
[](https://gitpod.io/from-referrer/)
|
|
73/48 |
Mathlib/Analysis/Normed/Field/WithAbs.lean,Mathlib/NumberTheory/NumberField/AdeleRing.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Completion.lean,Mathlib/Topology/MetricSpace/Completion.lean |
4 |
2 |
['github-actions', 'mathlib4-merge-conflict-bot'] |
TwoFX assignee:TwoFX |
9-8156 9 days ago |
9-8418 9 days ago |
32-31283 32 days |
| 27270 |
EtienneC30 author:EtienneC30 |
chore: turn WithLp into a structure |
Turn `WithLp` into a one field structure, as was suggested many times on Zulip and discussed here: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/defeq.20abuse.20in.20.60WithLp.60/near/526234806.
Here is what this PR does:
- The instances on `WithLp p α` which were defeq to those on `α` (algebraic instances, topology, uniformity, bornology) are now pulled back from `α` along `WithLp.equiv p α`. A few declarations are added to ease the process, such as versions of `WithLp.equiv` as a homeomorphism or a uniform isomorphism.
- The `MeasurableSpace` structure was pushed forward from `α`. We now make it pulled back because it is much more convenient to prove that this preserves the `BorelSpace` instance.
- It introduces some definitions to equip `α × β` with the Lp distance, and similarly for `Π i, α i`. This is then used to define relevant instances on type synonyms, such as for matrix norms.
- The PR fixes all the defeq abuses (which break obviously).
---
- [x] depends on: #28469
- [x] depends on: #28470
- [x] depends on: #28471
[](https://gitpod.io/from-referrer/)
|
large-import
t-analysis
|
636/417 |
Archive/Hairer.lean,Mathlib/Algebra/Module/ZLattice/Covolume.lean,Mathlib/Analysis/CStarAlgebra/Matrix.lean,Mathlib/Analysis/Calculus/FDeriv/WithLp.lean,Mathlib/Analysis/InnerProductSpace/LinearPMap.lean,Mathlib/Analysis/InnerProductSpace/PiL2.lean,Mathlib/Analysis/InnerProductSpace/Positive.lean,Mathlib/Analysis/InnerProductSpace/ProdL2.lean,Mathlib/Analysis/InnerProductSpace/Spectrum.lean,Mathlib/Analysis/Matrix.lean,Mathlib/Analysis/Normed/Algebra/TrivSqZeroExt.lean,Mathlib/Analysis/Normed/Algebra/UnitizationL1.lean,Mathlib/Analysis/Normed/Lp/LpEquiv.lean,Mathlib/Analysis/Normed/Lp/MeasurableSpace.lean,Mathlib/Analysis/Normed/Lp/PiLp.lean,Mathlib/Analysis/Normed/Lp/ProdLp.lean,Mathlib/Analysis/Normed/Lp/WithLp.lean,Mathlib/Analysis/Quaternion.lean,Mathlib/Analysis/RCLike/Inner.lean,Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean,Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean,Mathlib/Geometry/Euclidean/Angle/Unoriented/CrossProduct.lean,Mathlib/Geometry/Manifold/Instances/Icc.lean,Mathlib/Geometry/Manifold/Instances/Real.lean,Mathlib/LinearAlgebra/Matrix/Hermitian.lean,Mathlib/LinearAlgebra/Matrix/PosDef.lean,Mathlib/LinearAlgebra/Matrix/Spectrum.lean,Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean,Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean,Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean,Mathlib/MeasureTheory/SpecificCodomains/WithLp.lean,Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean,Mathlib/NumberTheory/NumberField/Ideal/Asymptotics.lean,Mathlib/Probability/Distributions/Fernique.lean |
34 |
64 |
['EtienneC30', 'eric-wieser', 'github-actions', 'j-loreaux', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
j-loreaux assignee:j-loreaux |
9-17 9 days ago |
9-39 9 days ago |
75-926 75 days |
| 30131 |
fpvandoorn author:fpvandoorn |
feat: alias_in attribute |
* A small wrapper for adding an alias of a declaration in another namespace.
* application time `.afterCompilation` is necessary for `#eval` to work correctly
* Docstrings are copied, jump-to-definition works (no test in the test file, but tested locally)
* To be used for CW-complexes, where lemmas are frequently duplicated between `RelCWComplex` and `CWComplex`.
---
[](https://gitpod.io/from-referrer/)
cc @scholzhannah
|
t-meta |
93/0 |
Mathlib.lean,Mathlib/Util/AliasIn.lean,MathlibTest/Util/AliasIn.lean |
3 |
12 |
['JovanGerb', 'fpvandoorn', 'github-actions'] |
JovanGerb assignee:JovanGerb |
8-71516 8 days ago |
26-62376 26 days ago |
26-62354 26 days |
| 28818 |
SnirBroshi author:SnirBroshi |
feat(Data/Setoid/Basic): add theorems about lifting a function to its kernel |
Currently `ker_lift_injective` and `quotientKerEquivOfRightInverse` lift `f` to `ker f` in their definition.
This PR makes this function available as `Setoid.kerLift f` and adds a few more theorems about it.
---
[](https://gitpod.io/from-referrer/)
|
t-data
maintainer-merge
new-contributor
|
34/16 |
Counterexamples/AharoniKorman.lean,Mathlib/Data/Setoid/Basic.lean,Mathlib/NumberTheory/NumberField/CanonicalEmbedding/FundamentalCone.lean,Mathlib/Topology/Separation/Hausdorff.lean |
4 |
32 |
['SnirBroshi', 'eric-wieser', 'github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot', 'pechersky'] |
pechersky assignee:pechersky |
8-64137 8 days ago |
8-64137 8 days ago |
61-7026 61 days |
| 25799 |
dagurtomas author:dagurtomas |
feat(CategoryTheory): the universal property of localized monoidal categories |
This PR provides a monoidal structure on any functor out of a localized monoidal category whose precomposition with the localization functor is monoidal
---
- [x] depends on: #29564
[](https://gitpod.io/from-referrer/)
---
*This PR continues the work from #24727.*
*Original PR: https://github.com/leanprover-community/mathlib4/pull/24727* |
t-category-theory |
242/0 |
Mathlib.lean,Mathlib/CategoryTheory/Localization/Bifunctor.lean,Mathlib/CategoryTheory/Localization/Monoidal/Functor.lean,Mathlib/CategoryTheory/Monoidal/Functor.lean,Mathlib/CategoryTheory/Monoidal/Multifunctor.lean,Mathlib/CategoryTheory/Monoidal/NaturalTransformation.lean |
6 |
21 |
['dagurtomas', 'github-actions', 'joelriou', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
TwoFX assignee:TwoFX |
8-60058 8 days ago |
8-60764 8 days ago |
50-50312 50 days |
| 30733 |
harahu author:harahu |
doc(Combinatorics): spell cliquefree as clique-free |
This change was initially suggested to me by Codex, as part of #30621, but it made sense to do this as a free-standing PR, since this change requires some justification, and this PR provides just that.
The fact that Codex is encouraging this change does not mean much on its own, so I did my best to check the literature. Searching on Google Scholar yields a mere [four results](https://scholar.google.com/scholar?hl=en&as_sdt=0%2C5&q=%22cliquefree%22) for "cliquefree" and [423 results](https://scholar.google.com/scholar?hl=en&as_sdt=0%2C5&q=%22clique-free%22) for "clique-free". Based on these results, I think it is safe to say that "cliquefree" is quite idiosyncratic, and should be avoided.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
12/12 |
Mathlib/Combinatorics/SimpleGraph/Clique.lean,Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean,Mathlib/Combinatorics/SimpleGraph/FiveWheelLike.lean |
4 |
1 |
['github-actions'] |
nobody |
8-50119 8 days ago |
8-50120 8 days ago |
8-50164 8 days |
| 29362 |
stepanholub author:stepanholub |
feat:(Data/List) add the notion of period of List and prove the Periodicity Lemma |
Add the concept of the period of a List (word, sequence) which is missing, and prove its basic nontrivial property describing under which conditions list can have two periods known as the Periodicity Lemma (aka Fine-Wilf Theorem).
---
|
t-data
new-contributor
|
227/0 |
Mathlib.lean,Mathlib/Data/List/PeriodicityLemma.lean |
2 |
125 |
['Ruben-VandeVelde', 'Timeroot', 'fpvandoorn', 'github-actions', 'madvorak', 'plp127', 'stepanholub', 'wwylele'] |
pechersky assignee:pechersky |
8-32381 8 days ago |
34-53837 1 month ago |
52-50034 52 days |
| 30490 |
urkud author:urkud |
feat: derivative along the Lie bracket of vector fields |
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
55/1 |
Mathlib/Analysis/Calculus/VectorField.lean |
1 |
1 |
['github-actions'] |
j-loreaux assignee:j-loreaux |
8-32375 8 days ago |
16-23024 16 days ago |
16-23063 16 days |
| 30344 |
Deep0Thinking author:Deep0Thinking |
feat(MeasureTheory/Integral): add versions of `exists_eq_interval_average` and first mean value theorem for integrals |
Add the First mean value theorem for (unordered) interval integrals on ℝ.
- `exists_eq_const_mul_interval_integral_of_continuous_on_of_ae_nonneg`
- `exists_eq_const_mul_interval_integral_of_continuous_on_of_nonneg`
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
290/41 |
Mathlib.lean,Mathlib/MeasureTheory/Integral/IntervalAverage.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/MeanValue.lean |
3 |
9 |
['Deep0Thinking', 'github-actions', 'plp127'] |
RemyDegenne assignee:RemyDegenne |
8-28322 8 days ago |
20-49747 20 days ago |
20-49780 20 days |
| 30400 |
Equilibris author:Equilibris |
feat(Data/PFunctor): make M.corec' universe generic |
Previously `corec'` required the generating type reside in the same universe as the constructed object.
This change corrects this by separating the universes.
As corec takes the parameter (g : β → P (α ::: β)), (where α is a TypeVec.{u} and β is a Type u) it is forced into the same universe by how the TypeVec construction works. This means corec cant be generalised by this construction.
---
A super simple change to make `corec'` univ generic.
```lean
-- was
def MvPFunctor.M.corec'.{u} {n : ℕ} (P : MvPFunctor.{u} (n + 1)) {α : TypeVec.{u} n} {β : Type u} (g₀ : β → P.A)
(g₁ : (b : β) → P.drop.B (g₀ b) ⟹ α) (g₂ : (b : β) → P.last.B (g₀ b) → β) : β → P.M α := _
-- becomes
def MvPFunctor.M.corec'.{u, v} {n : ℕ} (P : MvPFunctor.{u} (n + 1)) {α : TypeVec.{u} n} {β : Type v} (g₀ : β → P.A)
(g₁ : (b : β) → P.drop.B (g₀ b) ⟹ α) (g₂ : (b : β) → P.last.B (g₀ b) → β) : β → P.M α := _
```
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
easy
|
5/5 |
Mathlib/Data/PFunctor/Multivariate/M.lean |
1 |
6 |
['Equilibris', 'alexkeizer', 'github-actions', 'vihdzp'] |
nobody |
7-84619 7 days ago |
18-72225 18 days ago |
18-72269 18 days |
| 29517 |
pechersky author:pechersky |
feat(RingTheory/Torsion): torsion = union of roots of unity |
with additional API for Associates and rootsOfUnity sups
---
[](https://gitpod.io/from-referrer/)
- [x] depends on: #29988
- [x] depends on: #29989
- [x] depends on: #29990
- [x] depends on: #29991 |
t-algebra label:t-algebra$ |
156/8 |
Mathlib.lean,Mathlib/RingTheory/RootsOfUnity/Basic.lean,Mathlib/RingTheory/RootsOfUnity/PrimitiveRoots.lean,Mathlib/RingTheory/Torsion.lean |
4 |
11 |
['chrisflav', 'github-actions', 'kckennylau', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'pechersky'] |
chrisflav assignee:chrisflav |
7-69869 7 days ago |
7-69896 7 days ago |
35-11117 35 days |
| 29072 |
yury-harmonic author:yury-harmonic |
feat({Nat,Int}/ModEq): add lemmas |
---
I'm not sure that I named these lemmas correctly. Suggestions about better names are welcome!
[](https://gitpod.io/from-referrer/)
|
t-data |
189/26 |
Mathlib/Data/Int/ModEq.lean,Mathlib/Data/Nat/ModEq.lean |
2 |
7 |
['eric-wieser', 'github-actions', 'urkud', 'yury-harmonic'] |
nobody |
7-68550 7 days ago |
7-68611 7 days ago |
8-37418 8 days |
| 30758 |
Timeroot author:Timeroot |
chore: tag abs_inv and abs_div with grind= |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
2/1 |
Mathlib/Algebra/Order/Field/Basic.lean |
1 |
n/a |
['github-actions'] |
nobody |
7-48708 7 days ago |
unknown |
unknown |
| 30560 |
dwrensha author:dwrensha |
fix(LinearAlgebra/Alternating/Basic): avoid deep recursion in MultilinearMap.alternatization |
Makes `MultilinearMap.alternatization` an `irreducible_def` to avoid errors
about deep recursion.
This is an update of #15045 according to the suggestions in [this zulip thread](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/kernel.20deep.20recursion.20detected/near/454301820).
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
36/9 |
Mathlib/LinearAlgebra/Alternating/Basic.lean,Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean,MathlibTest/DetOne.lean |
3 |
5 |
['dwrensha', 'eric-wieser', 'github-actions'] |
dagurtomas assignee:dagurtomas |
7-32364 7 days ago |
14-46590 14 days ago |
14-46629 14 days |
| 27307 |
xyzw12345 author:xyzw12345 |
feat(RingTheory/GradedAlgebra): homogeneous relation |
This PR continues the work from #22279.
Original PR: https://github.com/leanprover-community/mathlib4/pull/22279 |
t-ring-theory |
391/0 |
Mathlib.lean,Mathlib/Algebra/Algebra/Equiv.lean,Mathlib/Algebra/DirectSum/Basic.lean,Mathlib/Algebra/DirectSum/Module.lean,Mathlib/Algebra/Module/LinearMap/Defs.lean,Mathlib/Algebra/Ring/Equiv.lean,Mathlib/Algebra/RingQuot.lean,Mathlib/RingTheory/GradedAlgebra/Basic.lean,Mathlib/RingTheory/GradedAlgebra/HomogeneousRelation.lean |
9 |
9 |
['chrisflav', 'eric-wieser', 'github-actions', 'ocfnash', 'xyzw12345'] |
mattrobball assignee:mattrobball |
7-7254 7 days ago |
85-58777 2 months ago |
100-70092 100 days |
| 27936 |
alreadydone author:alreadydone |
feat(Algebra): additivize Dvd and Prime |
`Prime` can't be directly additivized, so we introduce `Preprime`, which drops the `≠ 0` condition, and additivize it to `AddPrime`. To show that `Preprime` is a reasonable definition, we show its connection to `Irreducible` under `IsPrimal` and `IsRegular` conditions. We also show that an element in a product monoid is preprime iff one component is a unit and the other is preprime, and the same with `Preprime` replaced by `Irreducible`.
Also additivize `IsPrimal`, `IsRelPrime` and `DecompositionMonoid`.
The motivation is that the primality of `single g 1` in `AddMonoidAlgebra k G` is connected to the primality of `g` in `G`.
---
I've checked [all 29 files](https://github.com/search?q=repo%3Aleanprover-community%2Fmathlib4%20%E2%88%A3%20to_additive&type=code) containing the `∣` symbol and the `to_additive` attribute and fixed the wrongly translated (`dvd` to `addDvd`) names.
TODO: connect (Add)Dvd to [ExistsMul/AddOfLE](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Monoid/Unbundled/ExistsOfLE.html#ExistsMulOfLE)
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
400/191 |
Mathlib.lean,Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean,Mathlib/Algebra/BigOperators/Group/Finset/Defs.lean,Mathlib/Algebra/BigOperators/Group/Finset/Piecewise.lean,Mathlib/Algebra/BigOperators/Group/List/Lemmas.lean,Mathlib/Algebra/BigOperators/Group/Multiset/Basic.lean,Mathlib/Algebra/Divisibility/Basic.lean,Mathlib/Algebra/Divisibility/Finite.lean,Mathlib/Algebra/Divisibility/Hom.lean,Mathlib/Algebra/Divisibility/Prod.lean,Mathlib/Algebra/Divisibility/Units.lean,Mathlib/Algebra/Group/Action/Pointwise/Finset.lean,Mathlib/Algebra/Group/Prod.lean,Mathlib/Algebra/GroupWithZero/Associated.lean,Mathlib/Algebra/Notation/Defs.lean,Mathlib/Algebra/Prime/Defs.lean,Mathlib/Algebra/Prime/Lemmas.lean,Mathlib/Algebra/Prime/Prod.lean,Mathlib/Data/Nat/Prime/Defs.lean,Mathlib/Dynamics/PeriodicPts/Defs.lean,Mathlib/GroupTheory/Coset/Card.lean,Mathlib/GroupTheory/Exponent.lean,Mathlib/GroupTheory/GroupAction/Blocks.lean,Mathlib/GroupTheory/GroupAction/Period.lean,Mathlib/GroupTheory/Index.lean,Mathlib/GroupTheory/OrderOfElement.lean,Mathlib/GroupTheory/Perm/Cycle/Type.lean,Mathlib/GroupTheory/Schreier.lean,Mathlib/GroupTheory/SpecificGroups/Cyclic.lean,Mathlib/Tactic/ToAdditive/GuessName.lean |
30 |
12 |
['JovanGerb', 'adomani', 'alreadydone', 'bryangingechen', 'github-actions', 'mathlib4-merge-conflict-bot'] |
bryangingechen assignee:bryangingechen |
7-6992 7 days ago |
7-7013 7 days ago |
83-75777 83 days |
| 30764 |
harahu author:harahu |
chore(FieldTheory): fix typos in NormalizedTrace |
This PR:
- Fixes a few typos in the docstrings of this file.
- Renames `normalizedTraceAux_eq_of_fininteDimensional` -> `normalizedTraceAux_eq_of_finiteDimensional`
- Renames `normalizedTrace_eq_of_fininteDimensional_apply` -> `normalizedTrace_eq_of_finiteDimensional_apply`
- Renames `normalizedTrace_eq_of_fininteDimensional` -> `normalizedTrace_eq_of_finiteDimensional`
All three renames merely change "fininte" to "finite".
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
21/15 |
Mathlib/FieldTheory/NormalizedTrace.lean |
1 |
n/a |
['github-actions'] |
nobody |
7-6943 7 days ago |
unknown |
unknown |
| 30763 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Connectivity/Subgraph): generalize `Connected` to `Preconnected` |
Generalize `Subgraph.Connected.sup`/`Subgraph.induce_union_connected`/`induce_union_connected`/`Connected.adj_union`/`induce_connected_adj_union` to require only preconnected rather than connected, slight golf, and deprecate the old versions.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
59/32 |
Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean |
1 |
1 |
['github-actions'] |
nobody |
7-934 7 days ago |
7-44968 7 days ago |
7-45007 7 days |
| 30750 |
SnirBroshi author:SnirBroshi |
feat(Data/Quot): `toSet` and `equivClassOf` |
Define `toSet` which gets the set corresponding to an element of a quotient, and `equivClassOf` which gets the equivalence class of an element under a quotient.
---
I found these definitions helpful when working with quotients, specifically `ConnectedComponents` of a `TopologicalSpace`.
Additionally, I need `equivSigmaToSet` (in `Data/Setoid/Basic`) to prove things about `SimpleGraph.ConnectedComponent`.
[](https://gitpod.io/from-referrer/)
|
t-data |
179/0 |
Mathlib/Data/Quot.lean,Mathlib/Data/Set/Image.lean,Mathlib/Data/SetLike/Basic.lean,Mathlib/Data/Setoid/Basic.lean |
4 |
2 |
['eric-wieser', 'github-actions'] |
nobody |
7-924 7 days ago |
7-76817 7 days ago |
7-76860 7 days |
| 30757 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Acyclic): `singletonGraph` and `subgraphOfAdj` are trees |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
30/1 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean |
3 |
1 |
['github-actions'] |
nobody |
7-918 7 days ago |
7-52836 7 days ago |
7-52883 7 days |
| 30751 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Subgraph): a subgraph is induced (`IsInduced`) iff it is induced (`= induce`) |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
11/0 |
Mathlib/Combinatorics/SimpleGraph/Subgraph.lean |
1 |
1 |
['github-actions'] |
nobody |
7-902 7 days ago |
7-71175 7 days ago |
7-71242 7 days |
| 29728 |
ADA-Projects author:ADA-Projects |
feat(Topology/KrullDimension): add subspace dimension inequality |
This PR proves that subspaces have Krull dimension at most that of the ambient space: dim(Y) ≤ dim(X) for Y ⊆ X (theorem topologicalKrullDim_subspace_le).
Supporting results about IrreducibleCloseds were refactored and moved from KrullDimension.lean to Closeds.lean for better modularity.
Note: Some code/documentation generated with AI assistance (Gemini).
---
[](https://gitpod.io/from-referrer/)
|
maintainer-merge
new-contributor
t-topology
|
63/30 |
Mathlib/Topology/KrullDimension.lean,Mathlib/Topology/Sets/Closeds.lean |
2 |
46 |
['ADA-Projects', 'erdOne', 'fpvandoorn', 'github-actions', 'jcommelin', 'kim-em', 'mathlib4-merge-conflict-bot', 'riccardobrasca'] |
erdOne assignee:erdOne |
7-821 7 days ago |
8-40010 8 days ago |
29-74123 29 days |
| 30140 |
chrisflav author:chrisflav |
feat(AlgebraicGeometry): locally directed colimits in `P.Over ⊤ S` |
We lift the colimit properties of `Scheme` to `P.Over ⊤ S` if `IsLocalAtSource P`. In particular, `P.Over ⊤ S` has pushouts along open immersions and (small) coproducts.
We also add two instances, that make
```
example {U X Y : Scheme.{u}} (f : U ⟶ X) (g : U ⟶ Y)
[IsOpenImmersion f] [IsOpenImmersion g] : HasPushout f g :=
inferInstance
```
work.
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry |
169/0 |
Mathlib.lean,Mathlib/AlgebraicGeometry/Limits.lean,Mathlib/AlgebraicGeometry/LimitsOver.lean,Mathlib/CategoryTheory/Limits/MorphismProperty.lean,Mathlib/CategoryTheory/Limits/Over.lean,Mathlib/CategoryTheory/MorphismProperty/Comma.lean |
6 |
8 |
['chrisflav', 'erdOne', 'github-actions'] |
alexjbest assignee:alexjbest |
6-79730 6 days ago |
26-46304 26 days ago |
26-46281 26 days |
| 29569 |
chrisflav author:chrisflav |
chore(RingTheory/LocalProperties): add algebra versions of exactness lemmas |
The module variants are less convenient to apply directly in the case of algebras.
From Pi1.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
67/0 |
Mathlib/RingTheory/LocalProperties/Exactness.lean |
1 |
2 |
['github-actions', 'mathlib4-merge-conflict-bot'] |
mattrobball assignee:mattrobball |
6-79533 6 days ago |
6-79553 6 days ago |
46-78190 46 days |
| 27678 |
b-reinke author:b-reinke |
feat(GroupTheory/FreeGroup): reduction theorem for powers |
This PR adds the theorem `reduce_flatten_replicate`, it describes the reduction of a power of a reduced word in terms of its cyclic reduction.
It is a part of a series of PR on the theory of cyclically reduced words.
Upstreamed from the [EquationalTheories](https://github.com/teorth/equational_theories) project.
- [x] depends on: #25966
- [x] depends on: #27672
- [x] depends on: #27673
---
[](https://gitpod.io/from-referrer/)
|
t-group-theory
large-import
|
51/0 |
Mathlib/GroupTheory/FreeGroup/CyclicallyReduced.lean |
1 |
5 |
['adomani', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
nobody |
6-77380 6 days ago |
7-7049 7 days ago |
7-7060 7 days |
| 30786 |
YaelDillies author:YaelDillies |
chore(CategoryTheory): namespace `Mon`, `Grp`, etc... |
After this is done, we can finally rename `Mod_` to `Mod`.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
63/43 |
Mathlib/CategoryTheory/Monoidal/Bimon_.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/CommGrp_.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/CommMon_.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Comon_.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Grp_.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Mod_.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Mon_.lean,Mathlib/CategoryTheory/Monoidal/CommGrp_.lean,Mathlib/CategoryTheory/Monoidal/CommMon_.lean,Mathlib/CategoryTheory/Monoidal/Comon_.lean,Mathlib/CategoryTheory/Monoidal/Grp_.lean,Mathlib/CategoryTheory/Monoidal/Hopf_.lean,Mathlib/CategoryTheory/Monoidal/Internal/Limits.lean,Mathlib/CategoryTheory/Monoidal/Mod_.lean,Mathlib/CategoryTheory/Monoidal/Mon_.lean |
15 |
1 |
['github-actions'] |
nobody |
6-76788 6 days ago |
6-76788 6 days ago |
6-76850 6 days |
| 30796 |
joelriou author:joelriou |
feat(Algebra/Homology): construction of left resolutions |
Given a fully faithful functor `ι : C ⥤ A` to an abelian category, we introduce a structure `Abelian.LeftResolutions ι` which gives a functor `F : A ⥤ C` and a natural epimorphism `π.app X : ι.obj (F.obj X) ⟶ X` for all `X : A`. This is used in order to construct a resolution functor `LeftResolutions.chainComplexFunctor : A ⥤ ChainComplex C ℕ`.
This shall be used in order to derive the tensor product of modules and sheaves of modules.
---
This PR continues the work from #22539.
Original PR: https://github.com/leanprover-community/mathlib4/pull/22539 |
t-category-theory |
273/19 |
Mathlib.lean,Mathlib/Algebra/Homology/HomologicalComplex.lean,Mathlib/Algebra/Homology/LeftResolutions/Basic.lean,Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean |
4 |
3 |
['github-actions', 'joelriou'] |
nobody |
6-52283 6 days ago |
6-53893 6 days ago |
6-54147 6 days |
| 26453 |
jburroni author:jburroni |
feat(Data/PNat/Basic): add order-related instances to PNat |
Add `SuccAddOrder ℕ+` and `NoMaxOrder ℕ+` instances.
This allows, for example, the use of lemmas related to `Intervals` built with ℕ+.
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
29/0 |
Mathlib.lean,Mathlib/Data/PNat/Order.lean |
2 |
18 |
['Ruben-VandeVelde', 'eric-wieser', 'github-actions', 'jburroni', 'kckennylau', 'vihdzp'] |
ericrbg assignee:ericrbg |
6-50617 6 days ago |
6-50851 6 days ago |
107-71698 107 days |
| 30800 |
dagurtomas author:dagurtomas |
feat(Condensed): cartesian monoidal functor LightProfinite -> LightCondSet |
---
[](https://gitpod.io/from-referrer/)
|
large-import |
137/4 |
Mathlib.lean,Mathlib/Condensed/Light/Functors.lean,Mathlib/Topology/Category/CompHausLike/Cartesian.lean,Mathlib/Topology/Category/LightProfinite/Cartesian.lean |
4 |
2 |
['dagurtomas', 'github-actions'] |
nobody |
6-43943 6 days ago |
6-49662 6 days ago |
6-49706 6 days |
| 22662 |
plp127 author:plp127 |
feat: Localization.Away.lift (computably) |
This PR adds `Localization.Away.lift'` and `Localization.Away.lift`, computable alternatives to `Localization.awayLift`.
---
- [x] depends on: #24791
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
74/0 |
Mathlib/RingTheory/Localization/Away/Basic.lean |
1 |
17 |
['eric-wieser', 'github-actions', 'grunweg', 'mathlib4-dependent-issues-bot', 'plp127', 'vihdzp'] |
riccardobrasca assignee:riccardobrasca |
6-32380 6 days ago |
170-36774 5 months ago |
236-36747 236 days |
| 29033 |
faenuccio author:faenuccio |
feat(Analysis.LocallyConvex): a linear map is surjective iff its image contains a ball, or a closed ball, or a sphere |
Prove that a linear map is surjective if and only if its image contains either a ball or a sphere.
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-analysis
|
135/15 |
Mathlib/Analysis/Convex/Basic.lean,Mathlib/Analysis/LocallyConvex/Basic.lean,Mathlib/Analysis/Normed/Module/Convex.lean,Mathlib/Analysis/Normed/Operator/Basic.lean |
4 |
30 |
['ADedecker', 'eric-wieser', 'faenuccio', 'github-actions', 'j-loreaux', 'mathlib4-merge-conflict-bot'] |
urkud assignee:urkud |
6-32379 6 days ago |
13-46461 13 days ago |
14-35170 14 days |
| 30259 |
erdOne author:erdOne |
feat(Valuation): uniformizer of discrete valuation |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
31/0 |
Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean |
1 |
2 |
['github-actions', 'pechersky'] |
alreadydone assignee:alreadydone |
6-32375 6 days ago |
23-35079 23 days ago |
23-35117 23 days |
| 30336 |
kckennylau author:kckennylau |
feat(RingTheory): some lemmas about the irrelevant ideal |
This PR adds some lemmas about the irrelevant ideal of a graded ring, such as the fact that it is the iSup of each positively graded component.
---
Split from #26061.
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
49/5 |
Mathlib/RingTheory/GradedAlgebra/Homogeneous/Ideal.lean |
1 |
1 |
['github-actions'] |
mattrobball assignee:mattrobball |
6-32373 6 days ago |
20-64674 20 days ago |
20-64711 20 days |
| 30337 |
kckennylau author:kckennylau |
chore: delete wrong docstring for irrelevant ideal |
The expression given `{a | ∀ (i : ι), i ≤ 0 → aᵢ = 0}` does not define an ideal, because it is not closed under (external) multiplication. For example, if x has grade 1 and y has grade -2, then x will be in this "ideal", but xy will not.
Zulip discussion: [#mathlib4 > irrelevant ideal cannot be generalised](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/irrelevant.20ideal.20cannot.20be.20generalised/near/543800961)
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
0/5 |
Mathlib/RingTheory/GradedAlgebra/Homogeneous/Ideal.lean |
1 |
1 |
['github-actions'] |
erdOne assignee:erdOne |
6-32372 6 days ago |
20-59075 20 days ago |
20-59112 20 days |
| 30582 |
RemyDegenne author:RemyDegenne |
feat: extension of a function to the closure of a submodule |
- define the closure of a set in a complete space as an `AbstractCompletion`
- add instances about submodules
- add a coercion from a submodule to its topological closure
- add induction lemmas on topological closures of submodules
- define the extension of a function on a submodule to the closure of a submodule
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
138/1 |
Mathlib/Topology/Algebra/Module/Basic.lean,Mathlib/Topology/UniformSpace/AbstractCompletion.lean |
2 |
1 |
['github-actions'] |
PatrickMassot assignee:PatrickMassot |
6-32368 6 days ago |
13-71777 13 days ago |
13-71818 13 days |
| 30768 |
tb65536 author:tb65536 |
chore(GroupTheory/Subgroup/Centralizer): replace `centralizer (zpowers s)` with `centralizer {s}` |
This PR fixes some lingering technical debt from two years ago: https://github.com/leanprover-community/mathlib3/pull/18965
---
[](https://gitpod.io/from-referrer/)
|
t-group-theory
t-algebra
label:t-algebra$ |
32/34 |
Mathlib/Algebra/Group/Subgroup/ZPowers/Lemmas.lean,Mathlib/GroupTheory/Finiteness.lean,Mathlib/GroupTheory/GroupAction/ConjAct.lean,Mathlib/GroupTheory/GroupAction/Quotient.lean,Mathlib/GroupTheory/Index.lean,Mathlib/GroupTheory/Subgroup/Centralizer.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/Topology/Algebra/Group/SubmonoidClosure.lean,Mathlib/Topology/Instances/AddCircle/Defs.lean |
9 |
1 |
['github-actions'] |
nobody |
6-29916 6 days ago |
6-47977 6 days ago |
6-47955 6 days |
| 30245 |
vlad902 author:vlad902 |
feat(Set): finite cardinality iff `[Finite]` |
Add a lemma making it easy to derive `Finite α` from `ENat.card α < ⊤`. Note that immediately above, the following three lemmas are defined:
```lean
@[simp high]
theorem card_eq_top_of_infinite [Infinite α] : card α = ⊤ := by ...
@[simp] lemma card_eq_top : card α = ⊤ ↔ Infinite α := by ...
@[simp] theorem card_lt_top_of_finite [Finite α] : card α < ⊤ := by ...
```
`card_lt_top` is the analog of `card_eq_top`, so symmetry implies that `card_lt_top_of_finite` should be marked `@[simp high]` and `card_lt_top` should be marked `@[simp]`. I find this use of `@[simp]` a bit surprising so I wanted to highlight this to reviewers.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
3/1 |
Mathlib/SetTheory/Cardinal/Finite.lean |
1 |
4 |
['b-mehta', 'github-actions', 'leanprover-bot'] |
b-mehta assignee:b-mehta |
6-29212 6 days ago |
23-69112 23 days ago |
23-69151 23 days |
| 28766 |
yury-harmonic author:yury-harmonic |
feat(Nat/Factorial): use binary splitting for `ascFactorial`/`descFactorial` |
Mathlib has a `@[csimp]` lemma for `Nat.factorial`.
This PR adds similar lemmas for `Nat.ascFactorial` and `Nat.descFactorial`.
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
49/25 |
Mathlib/Data/Nat/Factorial/Basic.lean |
1 |
7 |
['github-actions', 'pechersky', 'plp127', 'yury-harmonic'] |
pechersky assignee:pechersky |
6-26188 6 days ago |
7-50845 7 days ago |
52-5837 52 days |
| 24627 |
pechersky author:pechersky |
feat(Topology/Algebra/Valued): `IsLinearTopology 𝒪[K] K` and `𝒪[K] 𝒪[K]` |
as well as
`IsLinearTopology ℤ_[p] ℤ_[p]`
---
[](https://gitpod.io/from-referrer/)
- [ ] depends on: #26829
|
t-topology |
191/26 |
Mathlib.lean,Mathlib/NumberTheory/Padics/LinearTopology.lean,Mathlib/Topology/Algebra/Valued/LinearTopology.lean,Mathlib/Topology/Algebra/Valued/ValuationTopology.lean,Mathlib/Topology/Algebra/Valued/ValuedField.lean |
5 |
41 |
['ADedecker', 'faenuccio', 'github-actions', 'leanprover-community-bot-assistant', 'loefflerd', 'mathlib4-dependent-issues-bot', 'pechersky'] |
nobody |
6-17052 6 days ago |
6-28980 6 days ago |
25-79440 25 days |
| 29004 |
euprunin author:euprunin |
chore: change from `:= by rfl` to `:= rfl` |
For `@[simp]` lemmas this makes them usable by `dsimp`; others are stylistic cleanup (but they're now "`dsimp`-ready" if tagged later).
---
[](https://gitpod.io/from-referrer/)
|
|
138/242 |
Mathlib/Algebra/Algebra/NonUnitalHom.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf.lean,Mathlib/Algebra/DirectSum/Module.lean,Mathlib/Algebra/DirectSum/Ring.lean,Mathlib/Algebra/Group/AddChar.lean,Mathlib/Algebra/Group/Subgroup/Defs.lean,Mathlib/Algebra/GroupWithZero/ProdHom.lean,Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean,Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean,Mathlib/Algebra/Homology/Single.lean,Mathlib/Algebra/Lie/Basic.lean,Mathlib/Algebra/Lie/OfAssociative.lean,Mathlib/Algebra/Lie/Submodule.lean,Mathlib/Algebra/Order/Hom/MonoidWithZero.lean,Mathlib/Algebra/Order/Hom/Ring.lean,Mathlib/Algebra/Polynomial/AlgebraMap.lean,Mathlib/Algebra/Polynomial/Derivation.lean,Mathlib/Algebra/Polynomial/Module/Basic.lean,Mathlib/Algebra/Ring/Hom/Defs.lean,Mathlib/Algebra/RingQuot.lean,Mathlib/Algebra/Vertex/HVertexOperator.lean,Mathlib/Algebra/Vertex/VertexOperator.lean,Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean,Mathlib/Analysis/Asymptotics/ExpGrowth.lean,Mathlib/Analysis/CStarAlgebra/GelfandDuality.lean,Mathlib/Analysis/Calculus/FDeriv/Prod.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean,Mathlib/Analysis/Distribution/SchwartzSpace.lean,Mathlib/Analysis/Normed/Affine/Isometry.lean,Mathlib/Analysis/Normed/Group/Seminorm.lean,Mathlib/Analysis/Normed/Module/Span.lean,Mathlib/Analysis/SpecialFunctions/Complex/CircleAddChar.lean,Mathlib/Analysis/SpecialFunctions/Stirling.lean,Mathlib/CategoryTheory/Closed/Monoidal.lean,Mathlib/CategoryTheory/Distributive/Monoidal.lean,Mathlib/CategoryTheory/Limits/Presheaf.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Cospan.lean,Mathlib/CategoryTheory/Monoidal/Comon_.lean,Mathlib/CategoryTheory/Monoidal/Mod_.lean,Mathlib/CategoryTheory/Yoneda.lean,Mathlib/Combinatorics/SimpleGraph/Walk.lean,Mathlib/Computability/AkraBazzi/AkraBazzi.lean,Mathlib/Computability/AkraBazzi/SumTransform.lean,Mathlib/Data/Matrix/Basic.lean,Mathlib/Data/Nat/Factorization/PrimePow.lean,Mathlib/Data/Nat/PartENat.lean,Mathlib/Data/PFunctor/Multivariate/Basic.lean,Mathlib/Data/Real/Embedding.lean,Mathlib/Data/Rel.lean,Mathlib/Data/Seq/Basic.lean,Mathlib/Data/Set/Lattice.lean,Mathlib/Data/Set/Pairwise/Lattice.lean,Mathlib/Data/Subtype.lean,Mathlib/Geometry/Manifold/Bordism.lean,Mathlib/GroupTheory/Coxeter/Basic.lean,Mathlib/GroupTheory/GroupAction/Hom.lean,Mathlib/GroupTheory/SpecificGroups/Quaternion.lean,Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean,Mathlib/LinearAlgebra/Dual/Defs.lean,Mathlib/LinearAlgebra/Lagrange.lean,Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Defs.lean,Mathlib/LinearAlgebra/Multilinear/TensorProduct.lean,Mathlib/LinearAlgebra/Projectivization/Action.lean,Mathlib/LinearAlgebra/RootSystem/Hom.lean,Mathlib/LinearAlgebra/RootSystem/Reduced.lean,Mathlib/LinearAlgebra/Span/Basic.lean,Mathlib/LinearAlgebra/TensorProduct/Pi.lean,Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean,Mathlib/ModelTheory/Semantics.lean,Mathlib/NumberTheory/FLT/Polynomial.lean,Mathlib/NumberTheory/FactorisationProperties.lean,Mathlib/NumberTheory/Harmonic/ZetaAsymp.lean,Mathlib/NumberTheory/Padics/WithVal.lean,Mathlib/Order/BoundedOrder/Basic.lean,Mathlib/RepresentationTheory/Coinvariants.lean,Mathlib/RepresentationTheory/Homological/GroupCohomology/Functoriality.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean,Mathlib/RingTheory/AlgebraTower.lean,Mathlib/RingTheory/Bialgebra/Hom.lean,Mathlib/RingTheory/HahnSeries/Addition.lean,Mathlib/RingTheory/Ideal/Norm/AbsNorm.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/SetTheory/Surreal/Basic.lean,Mathlib/SetTheory/ZFC/Class.lean,Mathlib/Tactic/Module.lean,Mathlib/Tactic/NormNum/PowMod.lean,Mathlib/Topology/Algebra/Algebra/Equiv.lean,Mathlib/Topology/Algebra/Module/WeakDual.lean,Mathlib/Topology/Category/Profinite/Nobeling/Basic.lean,Mathlib/Topology/Category/Profinite/Nobeling/ZeroLimit.lean,Mathlib/Topology/Category/TopCat/Opens.lean,Mathlib/Topology/ContinuousMap/Units.lean,Mathlib/Topology/LocallyFinsupp.lean,Mathlib/Topology/PartitionOfUnity.lean,Mathlib/Topology/Sets/Closeds.lean |
95 |
23 |
['eric-wieser', 'euprunin', 'github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'mathlib4-merge-conflict-bot'] |
TwoFX assignee:TwoFX |
6-16206 6 days ago |
6-16232 6 days ago |
35-24749 35 days |
| 30547 |
mariainesdff author:mariainesdff |
feat(Algebra/Polynomial/AlgebraMap): add Polynomial.mapAlgHom lemmas |
Co-authored by: @AntoineChambert-Loir
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
35/0 |
Mathlib/Algebra/Polynomial/AlgebraMap.lean |
1 |
n/a |
['erdOne', 'github-actions', 'mariainesdff'] |
nobody |
6-266 6 days ago |
unknown |
unknown |
| 26332 |
Timeroot author:Timeroot |
feat(ModelTheory/Definability): TermDefinable functions |
This PR continues the work from #23506.
Original PR: https://github.com/leanprover-community/mathlib4/pull/23506 |
t-logic |
145/0 |
Mathlib/Data/Rel.lean,Mathlib/ModelTheory/Definability.lean,scripts/noshake.json |
3 |
29 |
['Timeroot', 'github-actions', 'mathlib4-merge-conflict-bot', 'staroperator'] |
fpvandoorn assignee:fpvandoorn |
5-85845 5 days ago |
5-85845 5 days ago |
125-2180 125 days |
| 30441 |
linesthatinterlace author:linesthatinterlace |
fix(Data/List/Sort): Deprecate and replace `List.Sorted` |
Deprecates `Sorted` and defines new special-case predicates to be used for preorders.
---
`List.Sorted` is essentially an irrelevant definition, as it is identical to List.Pairwise, and we have some results about Sorted which also always apply to Pairwise or do so under certain conditions (and vice versa). We also commonly use Sorted to talk specifically about `<` and `<=`, which can be somewhat unwieldy.
This PR deprecates `Sorted` (so that there should now be no non-deprecated definitions under that namespace), and adds in `SortedLE`, `SortedLT`, `SortedGE` and `SortedGT`, which are defined analogously to `List.Nodup` for Preorders (List.Nodup is a good example of somewhere where using a special case of Pairwise works well). The vision is that API for these can be created together and for many purposes will suffice.
`insertionSort` has now been moved to be independent of any of this, though theorems are provided showing that it does link to these predicates in a linear order.
[](https://gitpod.io/from-referrer/)
|
|
780/521 |
Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/NormalForms.lean,Mathlib/Analysis/Convex/BetweenList.lean,Mathlib/Combinatorics/Young/YoungDiagram.lean,Mathlib/Data/Fin/Tuple/Sort.lean,Mathlib/Data/Finset/Sort.lean,Mathlib/Data/List/Nodup.lean,Mathlib/Data/List/NodupEquivFin.lean,Mathlib/Data/List/OfFn.lean,Mathlib/Data/List/Pairwise.lean,Mathlib/Data/List/Sort.lean,Mathlib/Data/Multiset/Sort.lean,Mathlib/Data/Nat/BitIndices.lean,Mathlib/Data/Nat/Factors.lean,Mathlib/LinearAlgebra/Matrix/Spectrum.lean,Mathlib/Logic/Equiv/Finset.lean,Mathlib/Logic/Equiv/Multiset.lean,Mathlib/NumberTheory/ADEInequality.lean,Mathlib/NumberTheory/Divisors.lean,Mathlib/Order/JordanHolder.lean,Mathlib/Order/Synonym.lean,Mathlib/SetTheory/Ordinal/Basic.lean,Mathlib/SetTheory/Ordinal/CantorNormalForm.lean,Mathlib/Tactic/Simproc/Factors.lean,Mathlib/Topology/Category/Profinite/Nobeling/Basic.lean,Mathlib/Topology/Category/Profinite/Nobeling/Span.lean |
25 |
53 |
['github-actions', 'linesthatinterlace', 'mathlib4-merge-conflict-bot', 'vihdzp'] |
nobody |
5-79431 5 days ago |
6-4491 6 days ago |
13-61930 13 days |
| 26129 |
LessnessRandomness author:LessnessRandomness |
feat(Geometry/Euclidean/Angle/Unoriented): triangle inequality for angles |
This PR continues the work from #24206.
Original PR: https://github.com/leanprover-community/mathlib4/pull/24206 |
new-contributor
t-euclidean-geometry
|
202/15 |
Mathlib.lean,Mathlib/Analysis/Fourier/FiniteAbelian/Orthogonality.lean,Mathlib/Analysis/InnerProductSpace/Basic.lean,Mathlib/Analysis/InnerProductSpace/PiL2.lean,Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean,Mathlib/Geometry/Euclidean/Angle/Unoriented/Basic.lean,Mathlib/Geometry/Euclidean/Angle/Unoriented/TriangleInequality.lean,Mathlib/Geometry/Manifold/Instances/Sphere.lean |
8 |
85 |
['JovanGerb', 'LessnessRandomness', 'Timeroot', 'github-actions', 'jsm28', 'mathlib4-merge-conflict-bot', 'themathqueen'] |
jsm28 assignee:jsm28 |
5-75120 5 days ago |
8-61369 8 days ago |
129-43944 129 days |
| 30821 |
chriseth author:chriseth |
fix(Computability/Tape): introduce write-simplification theorem that uses `ListBlank.mk` |
Add a simplification theorem which is a version of `Tape.write_mk'` that solves a simplification dead-end:
If we have an expression of the form
`(Tape.mk' L (ListBlank.cons a (ListBlank.mk R))).write b`,
the theorem `Tape.write_mk'` would be applicable, but lean instead uses `ListBlank.cons_mk`, which turns it into
`(Tape.mk' L (ListBlank.mk (a :: R))).write b`
and makes `Tape.write_mk` no longer applicable because it requires `ListBlank.cons a R`, reaching a dead-end.
This PR adds an equivalent theorem whose LHS allows `ListBlank.mk (a :: R)`.
---
[](https://gitpod.io/from-referrer/)
|
t-computability
new-contributor
|
7/0 |
Mathlib/Computability/Tape.lean |
1 |
1 |
['github-actions'] |
nobody |
5-69150 5 days ago |
5-69159 5 days ago |
5-69202 5 days |
| 30782 |
chenson2018 author:chenson2018 |
chore(ModelTheory/PartialEquiv): use grind for `le_partialEquivLimit` adaptation_note |
An adaption note in `FirstOrder.Language.DirectLimit.le_partialEquivLimit` notes two consecutive `simp` that cannot be combined. Replacing with `grind` solves this problem.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-logic
|
2/5 |
Mathlib/ModelTheory/PartialEquiv.lean |
1 |
6 |
['chenson2018', 'github-actions', 'grunweg'] |
nobody |
5-66465 5 days ago |
5-66465 5 days ago |
6-75587 6 days |
| 30823 |
gasparattila author:gasparattila |
feat(Topology/MetricSpace/Closeds): Lipschitz continuity of union |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
30/0 |
Mathlib/Topology/MetricSpace/Closeds.lean,Mathlib/Topology/MetricSpace/HausdorffDistance.lean |
2 |
1 |
['github-actions'] |
nobody |
5-65052 5 days ago |
5-65062 5 days ago |
5-65103 5 days |
| 26457 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(Mathlib/GroupTheory/Perm/MaximalSubgroups): maximal subgroups of the permutation group |
* `Equiv.Perm.isCoatom_stabilizer`: when `s : Set α` is not empty, nor its complementary subset, and if the cardinality of `s` is not half of that of `α`, then `MulAction.stabilizer (Equiv.Perm α) s` is a maximal subgroup of the symmetric group `Equiv.Perm α`.
This is the *intransitive case* of the O'Nan-Scott classification.
## TODO
* Appplication to primitivity of the action of `Equiv.Perm α` on finite combinations of `α`.
* Finish the classification
---
- [x] depends on: #26282
- [x] depends on: #26281
- [x] depends on: #26280
- [x] depends on: #26279
[](https://gitpod.io/from-referrer/)
|
t-group-theory |
525/2 |
Mathlib.lean,Mathlib/GroupTheory/GroupAction/Jordan.lean,Mathlib/GroupTheory/GroupAction/MultiplePrimitivity.lean,Mathlib/GroupTheory/GroupAction/SubMulAction/OfFixingSubgroup.lean,Mathlib/GroupTheory/GroupAction/SubMulAction/OfStabilizer.lean,Mathlib/GroupTheory/Perm/Cycle/Basic.lean,Mathlib/GroupTheory/Perm/MaximalSubgroups.lean,docs/references.bib |
8 |
n/a |
['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
nobody |
5-58114 5 days ago |
unknown |
unknown |
| 27887 |
JovanGerb author:JovanGerb |
feat: `to_dual` attribute |
This PR defines the `to_dual` attribute for translating lemmas to their dual. This is useful in order theory and in category theory. It is built on top of the `to_additive` machinery.
This PR only adds `@[to_dual]` tags in files that directly need to import `ToDual`, namely `Order/Defs/PartialOrder`, `Order/Notation` and `Combinatorics/Quiver/Basic`. Further tagging is left for (many) future PRs.
This PR continues the work from #21719
Related (mathlib3) issues:
- https://github.com/leanprover-community/mathlib3/issues/13461
- https://github.com/leanprover-community/mathlib3/issues/7691
Co-authored-by: @bryangingechen
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-meta
|
597/276 |
Mathlib.lean,Mathlib/Combinatorics/Quiver/Basic.lean,Mathlib/GroupTheory/Coset/Defs.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean,Mathlib/GroupTheory/MonoidLocalization/Basic.lean,Mathlib/Order/Basic.lean,Mathlib/Order/Defs/PartialOrder.lean,Mathlib/Order/Notation.lean,Mathlib/Tactic.lean,Mathlib/Tactic/ToAdditive/Frontend.lean,Mathlib/Tactic/ToAdditive/GuessName.lean,Mathlib/Tactic/ToAdditive/ToDual.lean,Mathlib/Tactic/ToDual.lean,MathlibTest/toAdditive.lean,scripts/noshake.json |
15 |
15 |
['JovanGerb', 'bryangingechen', 'github-actions', 'mathlib4-merge-conflict-bot'] |
alexjbest assignee:alexjbest |
5-41437 5 days ago |
5-41459 5 days ago |
51-43615 51 days |
| 30739 |
JovanGerb author:JovanGerb |
feat(gcongr): use mdata instead of template |
This PR changes the implementation of `gcongr` patterns. Instead of carrying around another expression of the same shape, we put a metadata annotation in the actual goal, in order to keep track of where we want to apply more `gcongr` lemmas.
This makes the implementation neater, and this is a necessary step towards supporting more operations in `gcongr`, such as those from the `congr!` tactic.
This also means that the pattern given to the `gcongr` tactic is checked to be fully correct. This helped fix one pattern in mathlib that was `∑ _ : α, ?_`, but should have been `∑ _ : β, ?_`.
Another change that this PR makes is that if the goal relation is `a → b`, then we run `whnf` on `a` and `b` before getting the two sides of the relation. This means that `x > y` is reduced to `y < x`. This is needed because we need to keep track of whether the metadata annotation is in the LHS or RHS, and we don't want to accidentally swap the two sides.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
160/163 |
Mathlib/NumberTheory/SiegelsLemma.lean,Mathlib/Order/Basic.lean,Mathlib/Tactic/GCongr/Core.lean,Mathlib/Tactic/GRewrite/Core.lean,MathlibTest/GCongr/inequalities.lean,MathlibTest/GRewrite.lean |
6 |
4 |
['github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot'] |
nobody |
5-33399 5 days ago |
5-63856 5 days ago |
8-22739 8 days |
| 29437 |
SnirBroshi author:SnirBroshi |
feat(Data/Seq): add Seq.subsequence and prove basic theorems about it |
I added `Seq.subsequence` to compose a sequence with a monotone function, creating a subsequence. Aliased to `Seq.comp` since it's a composition.
I also added `Nat.le_induction_step_iff` which is needed to prove a subsequence is a sequence. This proves the comment at the top of `Defs.lean` that says "if `f n = none`, then `f m = none` for all `m ≥ n`" while `IsSeq` only talks about `n+1`.
For completion I added the same statement for `Int`.
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-data
new-contributor
|
104/0 |
Mathlib/Data/Int/Init.lean,Mathlib/Data/Nat/Init.lean,Mathlib/Data/Seq/Basic.lean,Mathlib/Data/Seq/Defs.lean |
4 |
2 |
['github-actions', 'mathlib4-merge-conflict-bot'] |
pechersky assignee:pechersky |
5-32398 5 days ago |
41-79601 1 month ago |
50-67090 50 days |
| 29422 |
jsm28 author:jsm28 |
fix(Data/Finset/Max): Use `DecidableEq` for `insert` lemmas |
These `insert` in these lemma statements uses a `DecidableEq` instance derived from `LinearOrder`; make them syntactically more general by passing in a `DecidableEq` instance separately. (Some `insert` lemmas in this file already take `DecidableEq` hypotheses.)
---
[](https://gitpod.io/from-referrer/)
|
t-data |
8/8 |
Mathlib/Data/Finset/Max.lean |
1 |
2 |
['eric-wieser', 'github-actions'] |
pechersky assignee:pechersky |
5-32398 5 days ago |
51-30343 1 month ago |
51-30320 51 days |
| 30608 |
grunweg author:grunweg |
feat: another lemma about derivatives of parametric integrals |
On the path towards proving that integrating smooth functions is smooth.
From the sphere-eversion project; I am just upstreaming this.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
125/0 |
Mathlib/Analysis/Calculus/ParametricIntegral.lean |
1 |
3 |
['Ruben-VandeVelde', 'github-actions'] |
j-loreaux assignee:j-loreaux |
5-32389 5 days ago |
12-63751 12 days ago |
12-63735 12 days |
| 27244 |
xroblot author:xroblot |
feat(RingTheory/DedekindDomain): lifting an ideal in an extension is injective |
This PR develops some API for [FractionalIdeal.extendedHomₐ](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/FractionalIdeal/Extended.html#FractionalIdeal.extendedHom%E2%82%90) and in particular proves when it is an injective map. As a consequence, it deduces the fact that lifting an integral ideal in an extension of Dedekind domains is an injective map.
Note: the import increase happens in a leaf file `Mathlib.RingTheory.FractionalIdeal.Extended`
---
- [x] depends on: #28800
|
t-ring-theory
large-import
|
60/9 |
Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean,Mathlib/RingTheory/FractionalIdeal/Extended.lean |
2 |
7 |
['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'xroblot'] |
kbuzzard assignee:kbuzzard |
5-3848 5 days ago |
5-3866 5 days ago |
91-51100 91 days |
| 30684 |
YaelDillies author:YaelDillies |
chore: deprecate `monoidalOfHasFiniteProducts` |
Over the summer, this was replaced everywhere with `CartesianMonoidalCategory.ofHasFiniteProducts`, but hadn't been deprecated.
---
I would personally be very happy to also delete the finite coproduct stuff, but we don't yet have cocartesian-monoidal categories to replace them.
[](https://gitpod.io/from-referrer/)
|
large-import
t-category-theory
|
92/92 |
Mathlib/CategoryTheory/Monoidal/OfHasFiniteProducts.lean |
1 |
11 |
['YaelDillies', 'github-actions', 'joelriou'] |
nobody |
5-3574 5 days ago |
5-69336 5 days ago |
8-40662 8 days |
| 29885 |
xroblot author:xroblot |
feat(DedekindDomain): lift a basis in a disjoint extension when the different ideals are coprime |
Let `A ⊆ B` be a finite extension of Dedekind domains and assume that `A ⊆ R₁, R₂ ⊆ B` are two
subrings such that `Frac R₁ ⊔ Frac R₂ = Frac B`, `Frac R₁` and `Frac R₂` are linearly disjoint
over `Frac A`, and that `𝓓(R₁/A)` and `𝓓(R₂/A)` are coprime where `𝓓` denotes the different ideal
and `Frac R` denotes the fraction field of a domain `R`.
This PR constructs a `R₁`-basis of `B` by lifting an `A`-basis of `R₂`.
---
- [x] depends on: #29770
|
t-algebra label:t-algebra$ |
153/4 |
Mathlib/RingTheory/DedekindDomain/LinearDisjoint.lean |
1 |
3 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
nobody |
4-86135 4 days ago |
5-4125 5 days ago |
5-4448 5 days |
| 29582 |
YaelDillies author:YaelDillies |
chore: rename `_root_.prop` to `instFiniteProp` |
This was a surprising name!
---
[](https://gitpod.io/from-referrer/)
|
t-data
easy
|
1/1 |
Mathlib/Data/Fintype/EquivFin.lean |
1 |
12 |
['YaelDillies', 'bryangingechen', 'eric-wieser', 'github-actions', 'grunweg', 'plp127'] |
nobody |
4-80164 4 days ago |
4-80164 4 days ago |
21-71823 21 days |
| 19046 |
j-loreaux author:j-loreaux |
feat: define class `SemigroupAction` |
---
If I can get this building with minimal performance impact, I would like to change the names to:
`MulAction → MonoidAction`
`SemigroupAction → MulAction`
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
48/26 |
Mathlib/Algebra/Azumaya/Matrix.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf.lean,Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/Group/Action/Hom.lean,Mathlib/Algebra/Group/Action/Prod.lean,Mathlib/Algebra/Group/Action/TypeTags.lean,Mathlib/Algebra/Polynomial/Laurent.lean,Mathlib/GroupTheory/CoprodI.lean,Mathlib/LinearAlgebra/Eigenspace/Matrix.lean,Mathlib/LinearAlgebra/FreeModule/Finite/Quotient.lean,Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean,Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean,Mathlib/RingTheory/Trace/Basic.lean |
13 |
11 |
['alreadydone', 'github-actions', 'j-loreaux', 'jcommelin', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'urkud'] |
jcommelin assignee:jcommelin |
4-72920 4 days ago |
61-48632 2 months ago |
67-75916 67 days |
| 29284 |
Jlh18 author:Jlh18 |
feat(CategoryTheory): naturality lemmas for Core construction |
Lemmas for PR #29283 to prove that `Core` is the right adjoint to the forgetful functor from `Cat` to `Grpd`.
These lemmas are more general than that setting, and need not be stated in the bundled format.
- [ ] depends on: #29250
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
59/0 |
Mathlib/CategoryTheory/Core.lean |
1 |
16 |
['Jlh18', 'adomani', 'github-actions', 'joelriou', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
kim-em assignee:kim-em |
4-70718 4 days ago |
4-70718 4 days ago |
33-55256 33 days |
| 30548 |
fbarroero author:fbarroero |
feat(Analysis/Polynomial/MahlerMeasure): the Mahler measure of a linear polynomial and applications |
We prove
``
theorem logMahlerMeasure_X_sub_C (z : ℂ) : (X - C z).logMahlerMeasure = log⁺ ‖z‖
``
and
``
theorem logMahlerMeasure_eq_log_leadingCoeff_add_sum_log_roots (p : ℂ[X]) : p.logMahlerMeasure =
log ‖p.leadingCoeff‖ + ((p.roots).map (fun a ↦ log⁺ ‖a‖)).sum
``
---
- [x] depends on: #30681
[](https://gitpod.io/from-referrer/)
|
large-import
t-analysis
|
144/2 |
Mathlib/Analysis/Polynomial/MahlerMeasure.lean |
1 |
3 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
nobody |
4-69391 4 days ago |
4-69442 4 days ago |
9-39852 9 days |
| 30855 |
Ruben-VandeVelde author:Ruben-VandeVelde |
fix: deprecate IsTotal in favour of Std.Total |
---
[](https://gitpod.io/from-referrer/)
|
RFC |
208/111 |
Mathlib/Algebra/Group/Basic.lean,Mathlib/Algebra/Order/Archimedean/Class.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/Ring/Canonical.lean,Mathlib/Data/Finset/Sort.lean,Mathlib/Data/List/Sort.lean,Mathlib/Data/Multiset/Sort.lean,Mathlib/Data/Nat/PartENat.lean,Mathlib/Data/Ordmap/Invariants.lean,Mathlib/Data/Ordmap/Ordset.lean,Mathlib/Data/Prod/Basic.lean,Mathlib/Data/Prod/Lex.lean,Mathlib/Data/Real/Basic.lean,Mathlib/Data/Sigma/Lex.lean,Mathlib/Data/Sigma/Order.lean,Mathlib/Data/Sum/Order.lean,Mathlib/Logic/Encodable/Basic.lean,Mathlib/Order/Antisymmetrization.lean,Mathlib/Order/Basic.lean,Mathlib/Order/Comparable.lean,Mathlib/Order/Compare.lean,Mathlib/Order/Defs/Unbundled.lean,Mathlib/Order/Directed.lean,Mathlib/Order/Filter/FilterProduct.lean,Mathlib/Order/Lattice.lean,Mathlib/Order/PropInstances.lean,Mathlib/Order/RelClasses.lean,Mathlib/Order/RelIso/Basic.lean,Mathlib/Order/UpperLower/CompleteLattice.lean,Mathlib/Order/WithBot.lean,Mathlib/RingTheory/Valuation/ValuationRing.lean,Mathlib/RingTheory/Valuation/ValuationSubring.lean,Mathlib/Topology/EMetricSpace/BoundedVariation.lean |
33 |
1 |
['github-actions'] |
nobody |
4-68954 4 days ago |
4-69065 4 days ago |
4-69043 4 days |
| 28728 |
or4nge19 author:or4nge19 |
feat(PerronFrobenius): introduce Irreducible and Primitive Matrices and relations to Quiver |
This PR develops a graph-theoretic interface for studying nonnegative square matrices over `R`
through the quiver formed by their strictly positive entries. It shows the equivalence
between positivity of suitable matrix powers and existence of directed paths in this quiver.
------------
- [ ] depends on: #28696
- [ ] depends on:#29754
[](https://gitpod.io/from-referrer/)
|
new-contributor |
274/1 |
Mathlib.lean,Mathlib/Data/Matrix/Mul.lean,Mathlib/LinearAlgebra/Matrix/Irreducible/Defs.lean,docs/references.bib |
4 |
39 |
['github-actions', 'j-loreaux', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'ocfnash', 'or4nge19'] |
ocfnash assignee:ocfnash |
4-65711 4 days ago |
4-66471 4 days ago |
15-4040 15 days |
| 30354 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Connectivity/WalkCounting): a spanning subgraph has the same or more connected components |
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-combinatorics
|
8/0 |
Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkCounting.lean |
2 |
4 |
['SnirBroshi', 'github-actions', 'ocfnash'] |
nobody |
4-64447 4 days ago |
4-64447 4 days ago |
20-10538 20 days |
| 30859 |
jessealama author:jessealama |
fix(CI): count only merged PRs in new contributor check |
Fixes #30858
The "Label New Contributors" workflow was counting all closed PRs when determining contributor experience, but it should only count merged PRs.
This PR updates the workflow to use the GitHub search API with `is:merged` to properly filter for merged pull requests only.
Now contributors are correctly identified as "new" based on their merged contributions, not just any closed PRs. |
CI |
10/12 |
.github/workflows/label_new_contributor.yml |
1 |
2 |
['github-actions', 'grunweg'] |
nobody |
4-60976 4 days ago |
4-66558 4 days ago |
4-66605 4 days |
| 27258 |
JovanGerb author:JovanGerb |
Imo2020 q6 |
Original PR: #23431
This PR adds a solution to IMO 2020 Q6. It follows the solution that I found when I was participating in the IMO. I used the statement formalization that was given by @jsm28.
---
- [x] depends on: #27257
[](https://gitpod.io/from-referrer/)
|
IMO |
337/0 |
Archive.lean,Archive/Imo/Imo2020Q6.lean |
2 |
9 |
['dwrensha', 'github-actions', 'mathlib4-dependent-issues-bot'] |
dwrensha assignee:dwrensha |
4-51277 4 days ago |
36-64476 1 month ago |
36-65757 36 days |
| 30827 |
dagurtomas author:dagurtomas |
feat(Condensed): free light condensed module can be taken in an equivalent small category |
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-condensed
|
20/2 |
Mathlib/Condensed/Light/Small.lean |
1 |
1 |
['github-actions'] |
nobody |
4-50443 4 days ago |
5-60513 5 days ago |
5-60556 5 days |
| 30866 |
staroperator author:staroperator |
feat(GroupTheory/Finiteness): well-quasi-ordered monoid must be finitely generated |
This is a trivial corollary that I forgot to add in #30840. Not an instance, since well-quasi-order is much stronger than finitely generated.
---
[](https://gitpod.io/from-referrer/)
|
t-group-theory
easy
|
4/0 |
Mathlib/GroupTheory/Finiteness.lean |
1 |
1 |
['github-actions'] |
nobody |
4-49694 4 days ago |
4-49694 4 days ago |
4-49846 4 days |
| 30825 |
dagurtomas author:dagurtomas |
feat(CategoryTheory/Monoidal): some API for `Monoidal.Functor.transport` |
- Transporting a monoidal structure on functors along a natural isomorphism makes that natural isomorphism a monoidal natural transformation
- Some lemmas about the unit, counit, tensorator and cotensorator isomorphisms for transported monoidal structures
- Monoidal functors after pre/postcomposing with monoidal equivalences of categories
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
102/0 |
Mathlib/CategoryTheory/Monoidal/Functor.lean,Mathlib/CategoryTheory/Monoidal/NaturalTransformation.lean |
2 |
1 |
['github-actions'] |
nobody |
4-49240 4 days ago |
5-64126 5 days ago |
5-64173 5 days |
| 30867 |
erdOne author:erdOne |
feat(RingTheory/Etale): standard etale maps |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
315/1 |
Mathlib.lean,Mathlib/Algebra/Polynomial/Bivariate.lean,Mathlib/Algebra/Polynomial/Taylor.lean,Mathlib/RingTheory/Etale/StandardEtale.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean |
5 |
1 |
['github-actions'] |
nobody |
4-39462 4 days ago |
4-39535 4 days ago |
4-45984 4 days |
| 29526 |
llllvvuu author:llllvvuu |
feat: `Multiset.map f` identifies `f` up to permutation |
Motivation: Reason about `Fintype`-indexed families via `Multiset` equality.
Example use case 1:
```lean
theorem Matrix.IsHermitian.cfc_eigenvalues {d : Type*} [Fintype d] [DecidableEq d]
{M : Matrix d d 𝕜} (hM : M.IsHermitian) (f : ℝ → ℝ)
(hcfc : Matrix.IsHermitian (cfc f M) := cfc_predicate f M) :
∃ (e : d ≃ d), hcfc.eigenvalues = f ∘ hM.eigenvalues ∘ e := by
have := hcfc.roots_charpoly_eq_eigenvalues.symm
rw [hM.charpoly_cfc_eq f, Polynomial.roots_prod] at this; swap
· simp [Finset.prod_ne_zero_iff, Polynomial.X_sub_C_ne_zero]
simp_rw [Polynomial.roots_X_sub_C, Multiset.bind_singleton] at this
have he := (Multiset.compTriple_equivOfMapUnivEq this).comp_eq
simp_rw [← Function.comp_def RCLike.ofReal, ← Function.comp_def f, Function.comp_assoc] at he
exact ⟨_, RCLike.ofReal_injective.comp_left he.symm⟩
```
Example use case 2 (on top of https://github.com/leanprover-community/mathlib4/pull/29610):
```lean
theorem LinearMap.Eigenbasis.μ_equiv {ι ι' R G : Type*} [Fintype ι] [Fintype ι']
[CommRing R] [IsDomain R] [AddCommGroup G] [Module R G] [Module.Free R G] [Module.Finite R G]
{f : Module.End R G} (B₁ : f.Eigenbasis ι) (B₂ : f.Eigenbasis ι') :
∃ e : ι ≃ ι', B₁.μ = B₂.μ ∘ e := by
classical
have := congr(Polynomial.roots $(B₁.charpoly_eq.symm.trans B₂.charpoly_eq))
rw [Polynomial.roots_prod, Polynomial.roots_prod] at this; rotate_left
· simp [Finset.prod_ne_zero_iff, Polynomial.X_sub_C_ne_zero]
· simp [Finset.prod_ne_zero_iff, Polynomial.X_sub_C_ne_zero]
simp_rw [Polynomial.roots_X_sub_C, Multiset.bind_singleton] at this
exact ⟨Multiset.equivOfMapUnivEq this, (Multiset.compTriple_equivOfMapUnivEq this).comp_eq.symm⟩
```
Co-authored-by: Aristotle Harmonic
---
[](https://gitpod.io/from-referrer/)
|
t-data |
35/0 |
Mathlib/Data/Multiset/Fintype.lean |
1 |
8 |
['Ruben-VandeVelde', 'github-actions', 'llllvvuu', 'vihdzp', 'wwylele'] |
pechersky assignee:pechersky |
4-32389 4 days ago |
48-30795 1 month ago |
48-30788 48 days |
| 30423 |
erdOne author:erdOne |
feat(RingTheory): API for valuative rel |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
164/28 |
Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean,Mathlib/RingTheory/Valuation/ValuativeRel/Trivial.lean |
2 |
2 |
['github-actions', 'pechersky'] |
mariainesdff assignee:mariainesdff |
4-32386 4 days ago |
18-40300 18 days ago |
18-40333 18 days |
| 30431 |
kckennylau author:kckennylau |
feat(RingTheory): a homogeneous submodule is the span of its homogeneous elements |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
22/0 |
Mathlib/RingTheory/GradedAlgebra/Homogeneous/Ideal.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/Submodule.lean |
2 |
1 |
['github-actions'] |
mariainesdff assignee:mariainesdff |
4-32385 4 days ago |
18-5900 18 days ago |
18-5942 18 days |
| 30391 |
rudynicolop author:rudynicolop |
feat(Data/List): list splitting definitions and lemmas |
This PR continues the work from #24395.
Original PR: https://github.com/leanprover-community/mathlib4/pull/24395 |
t-data
new-contributor
|
151/2 |
Mathlib/Data/List/Perm/Lattice.lean,Mathlib/Data/List/TakeDrop.lean |
2 |
4 |
['BoltonBailey', 'github-actions', 'rudynicolop'] |
nobody |
4-23059 4 days ago |
19-38959 19 days ago |
19-38997 19 days |
| 30873 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Walk): induce.mapLe = induce |
Inducing a walk to `G[s]` and then mapping to `G[s']` is the same as inducing to `G[s']` when `s ⊆ s'`.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
5/0 |
Mathlib/Combinatorics/SimpleGraph/Walk.lean |
1 |
1 |
['github-actions'] |
nobody |
4-20103 4 days ago |
4-20107 4 days ago |
4-20153 4 days |
| 30120 |
FernandoChu author:FernandoChu |
feat(CategoryTheory): Pullback of equalizer is an equalizer |
We show that the pullback of an equalizer (seen as a subobject) along some morphism `h` is the subobject that comes from the equalizer of the two original arrows precomposed with `h`. A `TODO` was completed in the process.
This is a prerequisite of the [MTT project](https://github.com/kyoDralliam/model-theory-topos), which aims to use the internal language of toposes to reason about e.g. sheaves. |
large-import
t-category-theory
|
112/2 |
Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/PullbackCone.lean,Mathlib/CategoryTheory/Subobject/Basic.lean,Mathlib/CategoryTheory/Subobject/FactorThru.lean,Mathlib/CategoryTheory/Subobject/Limits.lean |
5 |
6 |
['FernandoChu', 'github-actions', 'joelriou'] |
joneugster assignee:joneugster |
4-19371 4 days ago |
4-75712 4 days ago |
19-35820 19 days |
| 29982 |
hrmacbeth author:hrmacbeth |
feat: new `isolate` tactic |
This PR adds a new tactic, `isolate`, which "solves for x" in an equation or relation. For example:
```lean
example (a b : ℝ) (f : ℝ → ℝ) : 5 * f a - 3 < b := by
isolate f a
-- new goal: `⊢ f a < (b + 3) / 5`
```
The `isolate` tactic may generate side goals, if these are necessary to justify the transformation. The tactic will attempt to justify such side goals using `positivity` (as in the above example), unification, or type class inference, but if unsuccessful will present them to the user. For example:
```lean
example (a b c : ℝ) (f : ℝ → ℝ) : c * f a - 3 < b := by
isolate f a
-- new goal: `⊢ f a < (b + 3) / c`
-- second (side) new goal: `⊢ 0 < c`
```
The `isolate` tactic is extensible. Coverage may be extended to new relations and new operations-to-be-undone by tagging appropriate lemmas with the new `@[isolate]` attribute.
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-meta
|
863/3 |
Mathlib.lean,Mathlib/Analysis/SpecialFunctions/Log/Basic.lean,Mathlib/Analysis/SpecialFunctions/Pow/Real.lean,Mathlib/Data/Real/Sqrt.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Isolate.lean,Mathlib/Tactic/Isolate/Core.lean,Mathlib/Tactic/Isolate/Tagging.lean,Mathlib/Tactic/Relation/Symm.lean,MathlibTest/Isolate/Heavyweight.lean,MathlibTest/Isolate/Lightweight.lean,scripts/noshake.json |
12 |
24 |
['JovanGerb', 'PatrickMassot', 'github-actions', 'hrmacbeth', 'kim-em'] |
JovanGerb assignee:JovanGerb |
4-16454 4 days ago |
32-44539 1 month ago |
32-44522 32 days |
| 30870 |
tb65536 author:tb65536 |
refactor(FieldTheory/*): partially switch over from `Polynomial.Splits` to `Polynomial.Factors` |
This PR is part of a larger effort to switch over from `Polynomial.Splits` to `Polynomial.Factors`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
183/118 |
Mathlib/Algebra/CubicDiscriminant.lean,Mathlib/Algebra/Polynomial/Factors.lean,Mathlib/Algebra/Polynomial/Splits.lean,Mathlib/Analysis/Complex/Polynomial/GaussLucas.lean,Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean,Mathlib/FieldTheory/Finite/Basic.lean,Mathlib/FieldTheory/Finite/GaloisField.lean,Mathlib/FieldTheory/IsAlgClosed/AlgebraicClosure.lean,Mathlib/FieldTheory/IsAlgClosed/Basic.lean,Mathlib/FieldTheory/KummerExtension.lean,Mathlib/FieldTheory/Minpoly/ConjRootClass.lean,Mathlib/FieldTheory/PolynomialGaloisGroup.lean,Mathlib/FieldTheory/SeparableDegree.lean,Mathlib/FieldTheory/SplittingField/IsSplittingField.lean,Mathlib/LinearAlgebra/Matrix/Charpoly/Eigs.lean,Mathlib/LinearAlgebra/Matrix/Spectrum.lean,Mathlib/NumberTheory/Cyclotomic/Basic.lean,Mathlib/RingTheory/Discriminant.lean,Mathlib/RingTheory/Norm/Basic.lean,Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean,Mathlib/RingTheory/Polynomial/Vieta.lean,Mathlib/RingTheory/Trace/Basic.lean,Mathlib/Topology/Algebra/Polynomial.lean |
23 |
1 |
['github-actions'] |
riccardobrasca assignee:riccardobrasca |
4-1413 4 days ago |
4-4715 4 days ago |
4-4693 4 days |
| 30869 |
tb65536 author:tb65536 |
refactor(FieldTheory/IsAlgClosed,IsSepClosed): redefine in terms of `Polynomial.Factors` |
This PR redefines `IsAlgClosed` and `IsSepClosed` in terms of `Polynomial.Factors` rather than in terms of `Polynomial.Splits (RingHom.id k)`. This is part of a larger effort to switch over from `Polynomial.Splits` to `Polynomial.Factors`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
13/7 |
Mathlib/FieldTheory/IsAlgClosed/Basic.lean,Mathlib/FieldTheory/IsSepClosed.lean |
2 |
1 |
['github-actions'] |
riccardobrasca assignee:riccardobrasca |
4-1411 4 days ago |
4-37031 4 days ago |
4-37010 4 days |
| 30609 |
FlAmmmmING author:FlAmmmmING |
feat(Combinatorics/Enumerative/Catalan.lean): Add definition of large and small Schroder. |
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-combinatorics
|
128/1 |
Mathlib/Combinatorics/Enumerative/Catalan.lean |
1 |
1 |
['github-actions'] |
nobody |
4-233 4 days ago |
12-72977 12 days ago |
12-73021 12 days |
| 27433 |
YaelDillies author:YaelDillies |
refactor: make `⇑e⁻¹ = ⇑e.symm` simp |
The motivation here is that the spelling `⇑e⁻¹` is only available when `e` is an automorphism, while the `⇑e.symm` one is available for all isomorphisms. However we do not want to simplify `e⁻¹ = e.symm` (without the coercions to function) since `e⁻¹` is an algebraic expression and `e.symm` is not. We consider that applying the coercion to functions gets us out of algebra land, and therefore it is okay to "dealgebraise" the expression further.
From BrauerGroup and ClassFieldTheory
---
[](https://gitpod.io/from-referrer/)
|
CFT |
216/257 |
Mathlib/Algebra/Algebra/Equiv.lean,Mathlib/Algebra/Group/End.lean,Mathlib/Algebra/Module/Equiv/Basic.lean,Mathlib/Algebra/Order/Rearrangement.lean,Mathlib/Data/Fintype/Perm.lean,Mathlib/FieldTheory/KrullTopology.lean,Mathlib/GroupTheory/Perm/Basic.lean,Mathlib/GroupTheory/Perm/Centralizer.lean,Mathlib/GroupTheory/Perm/Cycle/Basic.lean,Mathlib/GroupTheory/Perm/Cycle/Factors.lean,Mathlib/GroupTheory/Perm/Finite.lean,Mathlib/GroupTheory/Perm/Sign.lean,Mathlib/GroupTheory/Perm/Support.lean,Mathlib/GroupTheory/SpecificGroups/Alternating.lean,Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean,Mathlib/Logic/Equiv/Set.lean |
16 |
10 |
['YaelDillies', 'dwrensha', 'eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot'] |
dwrensha assignee:dwrensha |
3-82564 3 days ago |
4-4445 4 days ago |
72-54533 72 days |
| 30880 |
themathqueen author:themathqueen |
feat(Analysis/InnerProductSpace): finite-dimensional inner product space with coalgebra implies an algebra structure |
A finite-dimensional inner product space with a coalgebra structure also has an algebra structure by taking adjoints of the comultiplication map and counit map, i.e., `x * y = (adjoint comul) (x ⊗ₜ y)` and `algebraMap = adjoint counit`.
TODO:
There is also the opposite implication, i.e., a finite-dimensional inner product space with an algebra structure implies a coalgebra where `counit = adjoint Algebra.linearMap` and `comul = adjoint mul'`.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
123/0 |
Mathlib.lean,Mathlib/Analysis/InnerProductSpace/Coalgebra.lean,Mathlib/Analysis/InnerProductSpace/TensorProduct.lean |
3 |
1 |
['github-actions'] |
nobody |
3-75556 3 days ago |
3-75896 3 days ago |
3-81475 3 days |
| 30881 |
FlAmmmmING author:FlAmmmmING |
feat(RingTheory/PowerSeries/Schroder.lean) : Define the generating function for large and small Schroder number |
Define the generating function for large and small Schroder number.
Main result : Prove some lemmas and the generating function of large Schroder.
Todo : Prove the generating function of small Schroder.
- depends on: #30609
---
[](https://gitpod.io/from-referrer/)
|
new-contributor |
349/1 |
Mathlib.lean,Mathlib/Combinatorics/Enumerative/Catalan.lean,Mathlib/RingTheory/PowerSeries/Schroder.lean |
3 |
1 |
['github-actions'] |
nobody |
3-74759 3 days ago |
3-80653 3 days ago |
3-80643 3 days |
| 30876 |
erdOne author:erdOne |
chore(RingTheory): redefine `FormallySmooth` in terms of `Ω[S⁄R]` and `H¹(L_{S/R})` |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
372/416 |
Mathlib/RingTheory/Etale/Basic.lean,Mathlib/RingTheory/Etale/Field.lean,Mathlib/RingTheory/Etale/Kaehler.lean,Mathlib/RingTheory/Etale/Pi.lean,Mathlib/RingTheory/RingHom/Etale.lean,Mathlib/RingTheory/RingHom/Smooth.lean,Mathlib/RingTheory/Smooth/Basic.lean,Mathlib/RingTheory/Smooth/Kaehler.lean,Mathlib/RingTheory/Smooth/Local.lean,Mathlib/RingTheory/Smooth/Locus.lean,Mathlib/RingTheory/Smooth/Pi.lean,Mathlib/RingTheory/Smooth/StandardSmoothCotangent.lean,Mathlib/RingTheory/Unramified/Basic.lean,Mathlib/RingTheory/Unramified/Pi.lean |
14 |
6 |
['erdOne', 'github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot'] |
nobody |
3-69563 3 days ago |
4-4429 4 days ago |
4-7902 4 days |
| 30132 |
callesonne author:callesonne |
feat(Bicategory/Functor/Strict): add `StrictPseudofunctor` |
This PR adds the notion of a strict pseudofunctor, where the coherence isomorphisms are equalities. This will be useful for #25561 where I define the bicategory of groupoids.
---
- [x] depends on: #30134
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
174/2 |
Mathlib/CategoryTheory/Bicategory/Functor/Strict.lean |
1 |
8 |
['callesonne', 'github-actions', 'joelriou', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
nobody |
3-69198 3 days ago |
3-69266 3 days ago |
4-75279 4 days |
| 27414 |
staroperator author:staroperator |
feat(ModelTheory): Semilinear sets are closed under intersection, difference and complement |
Separated from #27100. This PR proves that semilinear sets in cancellative monoids are closed under intersection, set difference and complement (requires finitely generated). We prove these results on `ℕ ^ k` first (which are private) and then generalize to any cancellative monoids.
---
- [x] depends on: #27082
- [x] depends on: #27086
- [x] depends on: #27088
- [x] depends on: #27096
- [x] depends on: #27342
- [x] depends on: #27955
- [x] depends on: #28670
- [x] depends on: #29032
- [x] depends on: #29034
- [x] depends on: #29035
- [x] depends on: #29749
- [x] depends on: #29784
- [x] depends on: #29793
- [x] depends on: #30840
---
[](https://gitpod.io/from-referrer/)
|
t-logic |
713/4 |
Mathlib.lean,Mathlib/ModelTheory/Arithmetic/Presburger/Semilinear/Basic.lean,Mathlib/ModelTheory/Arithmetic/Presburger/Semilinear/Defs.lean |
3 |
37 |
['YaelDillies', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'staroperator'] |
fpvandoorn assignee:fpvandoorn |
3-68770 3 days ago |
3-68770 3 days ago |
17-36560 17 days |
| 30584 |
xroblot author:xroblot |
feat(RingTheory): add `NormalClosure` |
---
|
t-ring-theory |
133/0 |
Mathlib.lean,Mathlib/RingTheory/NormalClosure.lean |
2 |
9 |
['github-actions', 'riccardobrasca', 'xroblot'] |
mariainesdff assignee:mariainesdff |
3-65767 3 days ago |
12-81247 12 days ago |
12-81243 12 days |
| 28769 |
chrisflav author:chrisflav |
feat(RingTheory/Extension/Cotangent): presentation is submersive if `I/I²` has a suitable basis |
Let `P` be a presentation of an algebra with kernel `I`. We show that if `I/I²` has a basis given by the images of the relations and the module of Kaehler differentials has a basis given by the differentials of the free generators (those that don't appear in the Jacobian matrix), then `P` is submersive.
We will later deduce from this a presentation-independent characterization of standard smooth algebras.
From Pi1.
---
- [x] depends on: #28767
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
305/11 |
Mathlib.lean,Mathlib/Algebra/Module/Submodule/Ker.lean,Mathlib/Algebra/Module/Submodule/LinearMap.lean,Mathlib/Algebra/Module/Submodule/Map.lean,Mathlib/Algebra/Module/Submodule/Range.lean,Mathlib/Analysis/InnerProductSpace/Symmetric.lean,Mathlib/Data/Finsupp/Basic.lean,Mathlib/LinearAlgebra/Basis/Exact.lean,Mathlib/LinearAlgebra/Finsupp/Defs.lean,Mathlib/LinearAlgebra/Finsupp/Span.lean,Mathlib/LinearAlgebra/Finsupp/Supported.lean,Mathlib/LinearAlgebra/Finsupp/VectorSpace.lean,Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean,Mathlib/LinearAlgebra/Projection.lean,Mathlib/RingTheory/Extension/Cotangent/Basic.lean,Mathlib/RingTheory/Extension/Cotangent/Free.lean |
16 |
7 |
['chrisflav', 'erdOne', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
nobody |
3-65760 3 days ago |
3-65760 3 days ago |
6-62107 6 days |
| 29253 |
FernandoChu author:FernandoChu |
feat(CategoryTheory): (Co)limits in preorders |
Characterize (co)limits in preorders as glbs/lubs, plus some other instances. |
large-import
new-contributor
t-category-theory
|
162/45 |
Mathlib/AlgebraicGeometry/Modules/Tilde.lean,Mathlib/CategoryTheory/Abelian/GrothendieckCategory/EnoughInjectives.lean,Mathlib/CategoryTheory/Discrete/Basic.lean,Mathlib/CategoryTheory/Limits/Preorder.lean,Mathlib/CategoryTheory/Limits/Shapes/IsTerminal.lean,Mathlib/CategoryTheory/Limits/Shapes/Preorder/Fin.lean,Mathlib/CategoryTheory/Limits/Shapes/Preorder/TransfiniteCompositionOfShape.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/InfSemilattice.lean,Mathlib/CategoryTheory/Sites/Plus.lean |
9 |
19 |
['FernandoChu', 'github-actions', 'joelriou'] |
joelriou assignee:joelriou |
3-61409 3 days ago |
4-55029 4 days ago |
47-17981 47 days |
| 30232 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Connectivity/Subgraph): add `ConnectedComponent.toSubgraph` |
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-combinatorics
|
43/0 |
Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean |
3 |
19 |
['SnirBroshi', 'YaelDillies', 'github-actions'] |
YaelDillies assignee:YaelDillies |
3-60118 3 days ago |
3-60118 3 days ago |
23-27315 23 days |
| 30887 |
vihdzp author:vihdzp |
chore: golf `finTwoArrowEquiv'` |
...and generalize some theorems around it.
---
#30538 got merged before I could fully realize these suggestions.
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
21/25 |
Mathlib/Algebra/BigOperators/Finsupp/Basic.lean,Mathlib/Algebra/BigOperators/Finsupp/Fin.lean |
2 |
1 |
['github-actions'] |
nobody |
3-57362 3 days ago |
3-61373 3 days ago |
3-61415 3 days |
| 30885 |
erdOne author:erdOne |
chore(RingTheory): better defeqs for `PrimeSpectrum.preimageOrderIsoTensorResidueField` |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
84/30 |
Mathlib/RingTheory/Ideal/Prime.lean,Mathlib/RingTheory/LocalRing/ResidueField/Fiber.lean,Mathlib/RingTheory/LocalRing/ResidueField/Ideal.lean |
3 |
1 |
['github-actions'] |
nobody |
3-55010 3 days ago |
3-63954 3 days ago |
3-64004 3 days |
| 27953 |
CoolRmal author:CoolRmal |
feat(ProbabilityTheory): Conditional Jensen's Inequality |
This PR adds conditional Jensen's inequality.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
526/10 |
Mathlib.lean,Mathlib/Analysis/NormedSpace/HahnBanach/Separation.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/CondJensen.lean,Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean |
5 |
4 |
['EtienneC30', 'github-actions', 'mathlib4-merge-conflict-bot'] |
sgouezel assignee:sgouezel |
3-53681 3 days ago |
19-25388 19 days ago |
27-61822 27 days |
| 30895 |
callesonne author:callesonne |
feat(Bicategory/Modification/Pseudo): define modifications between strong natural transformations of pseudofunctors |
This PR adds modifications between strong natural transformations of pseudofunctors. At the same time, it improves the existing code on modifications between oplax natural tranformations of oplax functors (by removing some simp lemmas).
This is a migration of #18254 to a fork.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
338/57 |
Mathlib.lean,Mathlib/CategoryTheory/Bicategory/FunctorBicategory/Oplax.lean,Mathlib/CategoryTheory/Bicategory/Modification/Oplax.lean,Mathlib/CategoryTheory/Bicategory/Modification/Pseudo.lean,Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Oplax.lean,Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Pseudo.lean |
6 |
1 |
['github-actions'] |
nobody |
3-52804 3 days ago |
3-54876 3 days ago |
3-54922 3 days |
| 30826 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Connectivity/Subgraph): map a walk to its own subgraph |
While this is not very interesting on its own, it opens the possibility of mapping a walk to any graph, given a graph homomorphism from the walk's subgraph.
---
Related: #30590
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
15/0 |
Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean |
1 |
1 |
['github-actions'] |
nobody |
3-50038 3 days ago |
5-61720 5 days ago |
5-61768 5 days |
| 30882 |
themathqueen author:themathqueen |
feat(Data/Nat/Fib): the Cassini and Catalan identities |
The [Cassini and Catalan identities](https://en.wikipedia.org/wiki/Cassini_and_Catalan_identities) are identities for the Fibonacci numbers.
* Cassini's identity: `fib (n + 1) * fib (n - 1) - fib n ^ 2 = (-1) ^ n` for nonzero `n`.
* Catalan's identity: `fib (x + a) ^ 2 - fib (x + 2 * a) * fib x = fib a ^ 2 * (-1) ^ x` for nonzero `x` and `a`.
---
[](https://gitpod.io/from-referrer/)
|
t-data
t-algebra
label:t-algebra$ |
93/0 |
Mathlib.lean,Mathlib/Data/Matrix/Mul.lean,Mathlib/Data/Nat/Fib/Lemmas.lean |
3 |
13 |
['github-actions', 'themathqueen', 'vihdzp'] |
nobody |
3-38560 3 days ago |
3-41965 3 days ago |
3-42689 3 days |
| 30389 |
euprunin author:euprunin |
fix: correctly apply `hint` priority (was always set to default 1000 due to a bug) |
Fixes #29831.
In addition to fixing the bug, this PR also adjusts the (now-working) tactic priorities to ensure that:
* `bound` is tested _after_ `aesop` (`bound` calls `aesop` and is therefore stronger)
* `group` is tested _after_ `ring` (`group` calls `ring` and is therefore stronger)
A bug in the parsing code below caused the priority value to be ignored, resulting in all hints using the default priority of 1000 regardless of the `register_hint` priority parameter:
```lean
elab (name := registerHintStx)
"register_hint" p:("(" "priority" ":=" num ")")? tac:tactic : command =>
liftTermElabM do
-- remove comments
let prio := match p with
| some stx =>
match stx.raw[3]?.bind Syntax.isNatLit? with
| some n => n
| none => 1000
| none => 1000
let tac : TSyntax `tactic := ⟨tac.raw.copyHeadTailInfoFrom .missing⟩
addHint prio tac
```
Fixed by simplifying the syntax to take a mandatory numeric priority argument and extracting it directly via `prio.raw.isNatLit?`, removing the index-based parsing and the silent fallback to 1000.
---
[](https://gitpod.io/from-referrer/)
|
t-meta
bug
|
81/46 |
Mathlib/Tactic/Abel.lean,Mathlib/Tactic/Bound.lean,Mathlib/Tactic/Common.lean,Mathlib/Tactic/ComputeDegree.lean,Mathlib/Tactic/Field.lean,Mathlib/Tactic/FieldSimp.lean,Mathlib/Tactic/Finiteness.lean,Mathlib/Tactic/GCongr.lean,Mathlib/Tactic/Group.lean,Mathlib/Tactic/Hint.lean,Mathlib/Tactic/Linarith.lean,Mathlib/Tactic/NoncommRing.lean,Mathlib/Tactic/NormNum/Core.lean,Mathlib/Tactic/Positivity/Core.lean,Mathlib/Tactic/Ring/RingNF.lean,MathlibTest/hint.lean |
16 |
8 |
['BoltonBailey', 'euprunin', 'github-actions', 'mathlib4-merge-conflict-bot'] |
nobody |
3-34437 3 days ago |
5-67011 5 days ago |
18-39416 18 days |
| 30436 |
wwylele author:wwylele |
feat(Topology/InfiniteSum): tprod_one_{add/sub}_ordered |
This extends the existing `Finset.prod_one_sub_ordered` to infinite sum/product, and also adds the more natural `add` version.
Together with some previous PRs about infinite sum/prod and powerseries, this is part of my effort of upstreaming useful stuff from https://github.com/wwylele/PentagonalNumberTheorem. It starts getting into niche lemma, so suggestions such that not wanting this in mathlib, or it should be stated in a different form, are all welcomed.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
44/0 |
Mathlib/Algebra/BigOperators/Ring/Finset.lean,Mathlib/Topology/Algebra/InfiniteSum/Ring.lean |
2 |
1 |
['github-actions'] |
grunweg assignee:grunweg |
3-32378 3 days ago |
10-57427 10 days ago |
17-77152 17 days |
| 30599 |
wwylele author:wwylele |
feat(RingTheory): geometric series of (Mv)PowerSeries |
Also abstracted the common part for both PowerSeries and normed rings into `Summable.tsum_pow_mul_one_sub` / `Summable.one_sub_mul_tsum_pow`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
111/15 |
Mathlib/Analysis/SpecificLimits/Normed.lean,Mathlib/RingTheory/MvPowerSeries/Order.lean,Mathlib/RingTheory/MvPowerSeries/PiTopology.lean,Mathlib/RingTheory/PowerSeries/Order.lean,Mathlib/RingTheory/PowerSeries/PiTopology.lean,Mathlib/Topology/Algebra/InfiniteSum/Ring.lean |
6 |
1 |
['github-actions'] |
erdOne assignee:erdOne |
3-32375 3 days ago |
10-56710 10 days ago |
13-31394 13 days |
| 30646 |
xroblot author:xroblot |
feat(RingTheory/Ideal): the inertia degree and ramification index are less than the rank |
Also prove that `primesOverFinset` is less than the rank. These are all easy consequences of [Ideal.sum_ramification_inertia](https://leanprover-community.github.io/mathlib4_docs/Mathlib/NumberTheory/RamificationInertia/Basic.html#Ideal.sum_ramification_inertia)
---
|
t-ring-theory |
50/9 |
Mathlib/NumberTheory/RamificationInertia/Basic.lean,Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean |
2 |
5 |
['erdOne', 'github-actions', 'xroblot'] |
erdOne assignee:erdOne |
3-32373 3 days ago |
10-65104 10 days ago |
11-2684 11 days |
| 30841 |
staroperator author:staroperator |
feat(SetTheory/ZFC): add `ZFSet.iUnion` |
which is just `sUnion (range f)`. We add a new definition for it instead of making `⋃ i, f i` a notation of `sUnion (range f)`, because the simp normal form of `(sUnion (range f)).toSet` is not `⋃ i, (f i).toSet`.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory
maintainer-merge
|
45/11 |
Mathlib/SetTheory/ZFC/Basic.lean,Mathlib/SetTheory/ZFC/Ordinal.lean,Mathlib/SetTheory/ZFC/Rank.lean,Mathlib/SetTheory/ZFC/VonNeumann.lean |
4 |
11 |
['YaelDillies', 'github-actions', 'staroperator', 'vihdzp'] |
nobody |
3-29435 3 days ago |
4-72288 4 days ago |
5-1320 5 days |
| 30853 |
JovanGerb author:JovanGerb |
feat(LinearAlgebra/AffineSpace/Simplex): `CoeFun` instance for `Simplex` |
This PR introduces the notation `s i` to refer to the `i`th vertex of simplex `s`, which replaces the current `s.points i`. It does this by adding a `CoeFun` instance.
I first tried using `FunLike`, but this came with some different problems related to discrimination tree indexing in `simp`.
---
[](https://gitpod.io/from-referrer/)
|
|
348/337 |
Archive/Imo/Imo2019Q2.lean,Mathlib/Analysis/Convex/Between.lean,Mathlib/Analysis/Normed/Affine/Simplex.lean,Mathlib/Geometry/Euclidean/Altitude.lean,Mathlib/Geometry/Euclidean/Angle/Sphere.lean,Mathlib/Geometry/Euclidean/Circumcenter.lean,Mathlib/Geometry/Euclidean/Incenter.lean,Mathlib/Geometry/Euclidean/MongePoint.lean,Mathlib/Geometry/Euclidean/Projection.lean,Mathlib/Geometry/Euclidean/SignedDist.lean,Mathlib/Geometry/Euclidean/Simplex.lean,Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean,Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean,Mathlib/LinearAlgebra/AffineSpace/Simplex/Centroid.lean |
14 |
5 |
['JovanGerb', 'github-actions', 'jsm28'] |
nobody |
3-26428 3 days ago |
4-76598 4 days ago |
4-76575 4 days |
| 30894 |
dupuisf author:dupuisf |
feat(CStarAlgebra): the log is operator monotone |
This PR shows that the logarithm is operator monotone, i.e. `CFC.log` is monotone on `{a : A | IsStrictlyPositive a}` where `A` is a unital C*-algebra.
Note that we rename `Mathlib.Analysis.SpecialFunctions.ContinuousFunctionalCalculus.ExpLog` to `Mathlib.Analysis.SpecialFunctions.ContinuousFunctionalCalculus.ExpLog.Basic` in order to add `Order.lean` in that folder with the main result.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
382/175 |
Mathlib.lean,Mathlib/Analysis/CStarAlgebra/Unitary/Connected.lean,Mathlib/Analysis/Complex/Exponential.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog/Basic.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog/Order.lean,Mathlib/Analysis/SpecialFunctions/Log/RpowTendsto.lean |
7 |
1 |
['github-actions'] |
nobody |
3-22386 3 days ago |
3-28407 3 days ago |
3-28390 3 days |
| 30679 |
themathqueen author:themathqueen |
feat(RingTheory/MatrixAlgebra): `Matrix.kronecker` as an algebra equivalence |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
32/0 |
Mathlib/RingTheory/MatrixAlgebra.lean |
1 |
2 |
['github-actions', 'themathqueen'] |
nobody |
2-80115 2 days ago |
3-58274 3 days ago |
9-69941 9 days |
| 25901 |
callesonne author:callesonne |
feat(Bicategory/Opposites): add 1-cell opposite bicategory |
This PR adds the 1-cell opposite bicategory, where only the 1-morphisms are reversed.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
166/13 |
Mathlib.lean,Mathlib/CategoryTheory/Bicategory/Opposites.lean,Mathlib/CategoryTheory/Opposites.lean |
3 |
15 |
['callesonne', 'github-actions', 'joelriou', 'leanprover-bot', 'leanprover-community-bot-assistant'] |
nobody |
2-77307 2 days ago |
3-43293 3 days ago |
3-58178 3 days |
| 30852 |
bryangingechen author:bryangingechen |
ci: wrapper script for grouping lake build output logs and extracting issues |
Currently the output of `lake build` and `lake build --no-build` in our build worfklows are each placed into collapsible log groups. This grouping is too coarse, since to find warnings and errors still takes scrolling or searching through potentially thousands of lines after opening the group.
This PR adds a helper script for use in GitHub actions workflows which wraps `lake build` and groups consecutive sequences of "normal", "info", "warning" and "error" log lines into separate collapsible log groups. For examples, see:
- [grouping of trace blocks from proof widgets](https://github.com/leanprover-community/mathlib4/actions/runs/18804230623/job/53656010644#step:20:31)
- [warning and error groups in Mathlib](https://github.com/leanprover-community/mathlib4/actions/runs/18811606357/job/53673576603#step:20:31)
- [another example of warning and error groups in Mathlib](https://github.com/leanprover-community/mathlib4/actions/runs/18811662691/job/53673707777#step:20:31)
Note that while a build is in progress, lines in an open log group are still printed and visible, so this change will not make it more difficult to see how far along a build is. As mentioned above, we're already grouping log output; this change attempts to make the grouping more helpful.
The wrapper script also saves details about issues in the build (`warning`, `error`, `info` messages from `lake build`) into a JSON file for future use, e.g. determining which PR in a bors batch might have an error.
Because our build steps do not have permission to write to `GITHUB_OUTPUT`, when we invoke this wrapper, we write the build summary file to `.lake/build_summary_*.json`.
cf. [#mathlib reviewers > grouping lake build output in GitHub actions logs](https://leanprover.zulipchat.com/#narrow/channel/345428-mathlib-reviewers/topic/grouping.20lake.20build.20output.20in.20GitHub.20actions.20logs/with/546907609)
Written with help from Claude and OpenAI Codex, but checked by me.
---
This is a version of #30836 re-opened from a branch in this for easier testing. |
CI |
1202/9 |
.github/build.in.yml,.github/workflows/bors.yml,.github/workflows/build-testing.yaml,.github/workflows/build.yml,.github/workflows/build_fork.yml,scripts/README.md,scripts/lake-build-with-retry.sh,scripts/lake-build-wrapper.py |
8 |
6 |
['bryangingechen', 'github-actions'] |
nobody |
2-72055 2 days ago |
3-27407 3 days ago |
4-72773 4 days |
| 30594 |
j-loreaux author:j-loreaux |
feat: generalize continuity results for the continuous functional calculus |
Under suitable conditions `x ↦ cfc f (a x)` is continuous. Previously these conditions were that there was a single compact set on which `f` was continuous, and which contained the spectra of all `a x`. However, this is a bit too stringent for some purposes and so we generalize it here. In particular, it suffices that the spectra `a x` are covered by a family of compact sets `s x` (on each of which `f` is continuous) satisfying the property that each `s x₀` contains the spectra `a x` for `x` sufficiently close to `x₀`.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
94/81 |
Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Continuity.lean |
1 |
2 |
['dupuisf', 'github-actions'] |
ADedecker assignee:ADedecker |
2-67497 2 days ago |
13-45277 13 days ago |
13-45267 13 days |
| 30901 |
bryangingechen author:bryangingechen |
ci: only run deprecated declaration removal if a PR doesn't already exist |
The action we're using to open PRs is designed to force-push over the branch it uses [by design](https://github.com/peter-evans/create-pull-request/blob/main/docs/common-issues.md#disable-force-updates-to-existing-pr-branches), but this can potentially wipe out work in progress on that branch. I use the same method as in [update_dependencies.yml](https://github.com/leanprover-community/mathlib4/blob/985bd66bf494c03376b6dbd2898f4873b5df6a77/.github/workflows/update_dependencies.yml#L41-L58) to only run that step if there's no open PR from the branch.
Also change the schedule to monthly, since every week might be too ambitious, given the pace of progress on #30759.
---
|
CI |
32/3 |
.github/workflows/remove_deprecated_decls.yml |
1 |
3 |
['bryangingechen', 'github-actions'] |
nobody |
2-65415 2 days ago |
3-49849 3 days ago |
3-49827 3 days |
| 30932 |
urkud author:urkud |
chore(TangentCone): split file |
It will be easier for me to generalize the definition this way.
---
[](https://gitpod.io/from-referrer/)
|
file-removed |
811/692 |
Mathlib.lean,Mathlib/Analysis/Calculus/Deriv/Basic.lean,Mathlib/Analysis/Calculus/FDeriv/Basic.lean,Mathlib/Analysis/Calculus/TangentCone.lean,Mathlib/Analysis/Calculus/TangentCone/Basic.lean,Mathlib/Analysis/Calculus/TangentCone/Defs.lean,Mathlib/Analysis/Calculus/TangentCone/DimOne.lean,Mathlib/Analysis/Calculus/TangentCone/Pi.lean,Mathlib/Analysis/Calculus/TangentCone/Prod.lean,Mathlib/Analysis/Calculus/TangentCone/ProperSpace.lean,Mathlib/Analysis/Calculus/TangentCone/Real.lean,Mathlib/Analysis/RCLike/TangentCone.lean,Mathlib/Geometry/Manifold/MFDeriv/Basic.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.lean |
14 |
2 |
['github-actions', 'urkud'] |
nobody |
2-59579 2 days ago |
2-64521 2 days ago |
2-70353 2 days |
| 29082 |
grunweg author:grunweg |
RFC: tag `IsInducing` and `Is{Open,Closed,}Embedding` with `fun_prop` |
I have not tested if this is usable in practice; perhaps it is not.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
37/5 |
Mathlib/Topology/Constructions.lean,Mathlib/Topology/Defs/Induced.lean,Mathlib/Topology/Maps/Basic.lean |
3 |
3 |
['github-actions', 'grunweg', 'jcommelin'] |
ocfnash assignee:ocfnash |
2-57374 2 days ago |
61-51045 2 months ago |
61-51075 61 days |
| 30843 |
kim-em author:kim-em |
chore: don't require README for scripts/ subdir contents |
Currently, if you create a subdirectory in `scripts/`, CI requires that the README file mentions each individual file in that subdirectory. The new behaviour only requires mentioning the subdirectory itself in the README file. |
t-linter
maintainer-merge
|
7/6 |
scripts/lint-style.lean |
1 |
5 |
['github-actions', 'grunweg', 'kim-em'] |
grunweg assignee:grunweg |
2-57107 2 days ago |
2-57107 2 days ago |
3-61697 3 days |
| 30946 |
jessealama author:jessealama |
feat(SetLike): add exists_not_mem_of_ne_top lemma |
Adds a bridging lemma for `SetLike` structures: if `s ≠ ⊤` and the top element coerces to the universal set, then there exists an element not in `s`.
This generalizes a pattern that was specific to `AffineSubspace` and makes it available for all `SetLike` structures (submodules, subalgebras, etc.) where `⊤ = univ`.
Extracted from #30854 per reviewer feedback: https://github.com/leanprover-community/mathlib4/pull/30854#discussion_r2462326156
---
**Potential reviewers** (recent contributors to `Mathlib/Data/SetLike/Basic.lean`):
- @kim-em
- @themathqueen |
t-data |
9/0 |
Mathlib/Data/SetLike/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
2-48287 2 days ago |
2-48295 2 days ago |
2-48340 2 days |
| 30948 |
jessealama author:jessealama |
feat(AffineSubspace): add nonemptiness lemmas for affine span of range |
This PR adds two small lemmas showing that if the affine span of the range of a function is nonempty, then the index type must be nonempty.
These lemmas were extracted from the closed PR #30854 following reviewer feedback to submit smaller, more focused PRs.
cc @eric-wieser @bryangingechen |
t-algebra label:t-algebra$ |
16/0 |
Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Defs.lean |
1 |
1 |
['github-actions'] |
nobody |
2-46707 2 days ago |
2-46714 2 days ago |
2-46760 2 days |
| 30669 |
harahu author:harahu |
doc(Algebra): typo fixes |
Found with help from Codex, curated by me.
I've tried to limit the PR to changes that are easy to verify. Should you find it difficult to review any particular part of this PR, know that I have nothing against trimming this PR down in favor of smaller free-standing PRs for the difficult-to-review parts.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
45/45 |
Mathlib/Algebra/AddConstMap/Basic.lean,Mathlib/Algebra/BigOperators/Pi.lean,Mathlib/Algebra/BrauerGroup/Defs.lean,Mathlib/Algebra/CharZero/AddMonoidHom.lean,Mathlib/Algebra/Field/Action/ConjAct.lean,Mathlib/Algebra/Field/Power.lean,Mathlib/Algebra/Field/ULift.lean,Mathlib/Algebra/GroupWithZero/Associated.lean,Mathlib/Algebra/Homology/ComplexShapeSigns.lean,Mathlib/Algebra/Homology/DerivedCategory/Basic.lean,Mathlib/Algebra/Homology/DerivedCategory/ShortExact.lean,Mathlib/Algebra/Homology/Factorizations/Basic.lean,Mathlib/Algebra/Homology/HomologySequenceLemmas.lean,Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean,Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean,Mathlib/Algebra/Homology/HomotopyCategory/ShortExact.lean,Mathlib/Algebra/Homology/HomotopyCategory/SingleFunctors.lean,Mathlib/Algebra/Homology/HomotopyCategory/Triangulated.lean,Mathlib/Algebra/Homology/HomotopyCofiber.lean,Mathlib/Algebra/Homology/Localization.lean,Mathlib/Algebra/Lie/Free.lean,Mathlib/Algebra/Lie/InvariantForm.lean,Mathlib/Algebra/Lie/Quotient.lean,Mathlib/Algebra/Lie/Sl2.lean,Mathlib/Algebra/Lie/Submodule.lean,Mathlib/Algebra/Lie/TraceForm.lean,Mathlib/Algebra/Order/Ring/Nat.lean,Mathlib/Algebra/Polynomial/Lifts.lean,Mathlib/Algebra/Polynomial/RuleOfSigns.lean,Mathlib/Algebra/SkewMonoidAlgebra/Single.lean |
30 |
1 |
['github-actions'] |
kim-em assignee:kim-em |
2-32354 2 days ago |
9-80873 9 days ago |
9-85521 9 days |
| 30213 |
SnirBroshi author:SnirBroshi |
feat(Data/List/GetD): golf and add lemmas for `get` and `getElem?` |
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
18/16 |
Mathlib/Data/List/GetD.lean |
1 |
11 |
['SnirBroshi', 'eric-wieser', 'github-actions', 'themathqueen'] |
nobody |
2-31140 2 days ago |
2-31140 2 days ago |
23-84575 23 days |
| 30954 |
chrisflav author:chrisflav |
chore(RingTheory/Extension/Presentation): unprivate auxiliary definition for composition |
This definition appears when unfolding `Presentation.comp`, so it should not be private. We also fix the name to make it convention compliant.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
14/13 |
Mathlib/RingTheory/Extension/Presentation/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
2-29329 2 days ago |
2-29406 2 days ago |
2-29384 2 days |
| 30214 |
SnirBroshi author:SnirBroshi |
feat(Data/List/Basic): add `Fin` variants of `*mem_iff_getElem` |
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
8/0 |
Mathlib/Data/List/Basic.lean |
1 |
4 |
['SnirBroshi', 'eric-wieser', 'github-actions'] |
nobody |
2-28950 2 days ago |
2-78338 2 days ago |
24-43737 24 days |
| 29956 |
SnirBroshi author:SnirBroshi |
feat(Algebra/Polynomial): small and useful lemmas |
added many small and useful lemmas about polynomials
---
Moves these 4 theorems from `Mathlib.Algebra.Polynomial.Monic` to `Mathlib.Algebra.Polynomial.Degree.Lemmas`:
- `degree_map_eq_of_injective`
- `natDegree_map_eq_of_injective`
- `leadingCoeff_map_of_injective`
- `nextCoeff_map`
`Monic.lean` imports `Lemmas.lean` so users are not affected.
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-algebra
label:t-algebra$ |
268/90 |
Mathlib/Algebra/Polynomial/AlgebraMap.lean,Mathlib/Algebra/Polynomial/Basic.lean,Mathlib/Algebra/Polynomial/Degree/Lemmas.lean,Mathlib/Algebra/Polynomial/Div.lean,Mathlib/Algebra/Polynomial/Eval/Coeff.lean,Mathlib/Algebra/Polynomial/Eval/Defs.lean,Mathlib/Algebra/Polynomial/Eval/Degree.lean,Mathlib/Algebra/Polynomial/FieldDivision.lean,Mathlib/Algebra/Polynomial/Monic.lean,Mathlib/Algebra/Polynomial/RingDivision.lean,Mathlib/Algebra/Polynomial/Roots.lean,Mathlib/Algebra/Polynomial/Splits.lean,Mathlib/FieldTheory/IsAlgClosed/Basic.lean,Mathlib/FieldTheory/IsSepClosed.lean,Mathlib/FieldTheory/NormalizedTrace.lean,Mathlib/RingTheory/Trace/Basic.lean |
16 |
69 |
['SnirBroshi', 'erdOne', 'github-actions', 'kckennylau', 'leanprover-bot', 'mathlib4-merge-conflict-bot', 'ocfnash'] |
ocfnash assignee:ocfnash |
2-24247 2 days ago |
2-25893 2 days ago |
30-77712 30 days |
| 30216 |
SnirBroshi author:SnirBroshi |
feat(Data/List/Basic): `get` is surjective iff every element is in the list |
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
16/0 |
Mathlib/Data/List/Basic.lean |
1 |
13 |
['SnirBroshi', 'eric-wieser', 'github-actions', 'themathqueen'] |
nobody |
2-23674 2 days ago |
2-28181 2 days ago |
23-78693 23 days |
| 30958 |
kim-em author:kim-em |
feat: preparations for LawfulOfScientific |
`LawfulOfScientific`, and grind support for it, will be added shortly. This is PR contains the prerequisites which can already go in `master`.
c.f. https://github.com/leanprover/lean4/pull/10971 and the [`lean-pr-testing-10971`](https://github.com/leanprover-community/mathlib4-nightly-testing/commit/4f3ca5121a48872248a70a5098b608cdd13caeca) branch. |
|
11/0 |
Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean,Mathlib/Data/Rat/Cast/Lemmas.lean |
2 |
1 |
['github-actions'] |
nobody |
2-20532 2 days ago |
2-20722 2 days ago |
2-20699 2 days |
| 29507 |
zhuyizheng author:zhuyizheng |
feat(MeasureTheory): derivative integrable functions |
Part of originally planned #29092. We prove that:
* If `f` is monotone on `a..b`, then `f'` is interval integrable on `a..b`.
* If `f` has bounded variation on `a..b`, then `f'` is interval integrable on `a..b`.
* If `f` is absolutely continuous on `a..b`, then `f'` exists a.e. on `a..b` and is interval
integrable on `a..b`.
---
- [x] depends on: #29504
[](https://gitpod.io/from-referrer/)
|
large-import
new-contributor
t-measure-probability
|
354/15 |
Mathlib.lean,Mathlib/Analysis/BoundedVariation.lean,Mathlib/Analysis/Calculus/Deriv/Slope.lean,Mathlib/LinearAlgebra/AffineSpace/Slope.lean,Mathlib/MeasureTheory/Function/AbsolutelyContinuous.lean,Mathlib/MeasureTheory/Function/L1Space/Integrable.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/DerivIntegrable.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/Slope.lean,Mathlib/Order/Monotone/Defs.lean |
9 |
13 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'sgouezel', 'zhuyizheng'] |
nobody |
2-13585 2 days ago |
6-16578 6 days ago |
16-47297 16 days |
| 30511 |
gasparattila author:gasparattila |
refactor: use `fun_prop` in `measurability` |
This PR changes the `measurability` tactic to use `fun_prop` for solving `Measurable` and similar goals. For backward compatibility, the `measurability` attribute is also changed to apply the `fun_prop` attribute.
---
[](https://gitpod.io/from-referrer/)
|
|
129/75 |
Mathlib/MeasureTheory/Constructions/BorelSpace/ContinuousLinearMap.lean,Mathlib/MeasureTheory/Constructions/Cylinders.lean,Mathlib/MeasureTheory/Function/SpecialFunctions/Inner.lean,Mathlib/MeasureTheory/Function/StronglyMeasurable/AEStronglyMeasurable.lean,Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean,Mathlib/MeasureTheory/Group/Arithmetic.lean,Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean,Mathlib/MeasureTheory/MeasurableSpace/Defs.lean,Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean,Mathlib/Tactic/Measurability.lean,MathlibTest/measurability.lean |
11 |
8 |
['fpvandoorn', 'gasparattila', 'github-actions'] |
dwrensha assignee:dwrensha |
1-82652 1 day ago |
15-59891 15 days ago |
15-60883 15 days |
| 30692 |
themathqueen author:themathqueen |
chore: rename **conjugate** to **star_left_conjugate** |
We change `_conjugate_` to `_star_left_conjugate_` and `_conjugate_'` to `_star_right_conjugate_` to avoid confusion since sometimes in some files it means `_ * _ * star _` and in others it means `star _ * _ * _`.
In particular,
`Algebra/Algebra/StrictPositivity`:
* `IsUnit.isStrictlyPositive_conjugate_iff` -> `IsUnit.isStrictlyPositive_star_right_conjugate_iff`
* `IsUnit.isStrictlyPositive_conjugate_iff'` -> `IsUnit.isStrictlyPositive_star_left_conjugate_iff`
`Algebra/Order/Star/Basic`:
* `conjugate_nonnneg` -> `star_left_conjugate_nonneg`
* `conjugate_nonneg'` -> `star_right_conjugate_nonneg`
* `conjugate_le_conjugate` -> `star_left_conjugate_le_conjugate`
* `conjugate_le_conjugate'` -> `star_right_conjugate_le_conjugate`
* `conjugate_lt_conjugate` -> `star_left_conjugate_lt_conjugate`
* `conjugate_lt_conjugate'` -> `star_right_conjugate_lt_conjugate`
* `conjugate_pos` -> `star_left_conjugate_pos`
* `conjugate_pos'` -> `star_right_conjugate_pos`
* `IsUnit.conjugate_nonneg_iff` -> `IsUnit.star_right_conjugate_nonneg_iff`
* `IsUnit.conjugate_nonneg_iff'` -> `IsUnit.star_left_conjugate_nonneg_iff`
`Analysis/CStarAlgebra/CFC/Order`:
* `CStarAlgebra.conjugate_le_norm_smul` -> `CStarAlgebra.star_left_conjugate_le_norm_smul`
* `CStarAlgebra.conjugate_le_norm_smul'` -> `CStarAlgebra.star_right_conjugate_le_norm_smul`
`LinearAlgebra/Matrix/PosDef`:
* `Matrix.IsUnit.posSemidef_conjugate_iff` -> `Matrix.IsUnit.posSemidef_star_right_conjugate_iff`
* `Matrix.IsUnit.posSemidef_conjugate_iff'` -> `Matrix.IsUnit.posSemidef_star_left_conjugate_iff`
* `Matrix.IsUnit.posDef_conjugate_iff` -> `Matrix.IsUnit.posDef_star_right_conjugate_iff`
* `Matrix.IsUnit.posDef_conjugate_iff'` -> `Matrix.IsUnit.posDef_star_left_conjugate_iff`
---
There's more to do, but will leave this for another PR.
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-analysis
label:t-algebra$ |
83/53 |
Mathlib/Algebra/Algebra/StrictPositivity.lean,Mathlib/Algebra/Order/Star/Basic.lean,Mathlib/Analysis/CStarAlgebra/ApproximateUnit.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean,Mathlib/Analysis/CStarAlgebra/Module/Defs.lean,Mathlib/LinearAlgebra/Matrix/PosDef.lean |
6 |
6 |
['github-actions', 'j-loreaux', 'mathlib4-merge-conflict-bot', 'themathqueen'] |
nobody |
1-79206 1 day ago |
5-59865 5 days ago |
9-32838 9 days |
| 26588 |
faenuccio author:faenuccio |
feat(Algebra/GroupWithZero/WithZero): add the multiplicative embedding with zero from the range |
We extend the embedding of the range of a `MonoidWithZeroHom` to the codomain by enriching it with the structure of an ordered, multiplicative embedding. In passing, we extend some results about the embedding of `WithZero` of the units of a group with zero, to the group itself.
Co-authored by: María Inés de Frutos Fernández @mariainesdff
---
- [x] depends on: #29594
- [x] depends on: #29644
[](https://gitpod.io/from-referrer/)
|
t-order
t-algebra
label:t-algebra$ |
114/2 |
Mathlib.lean,Mathlib/Algebra/GroupWithZero/Range.lean,Mathlib/Algebra/Order/GroupWithZero/Range.lean |
3 |
107 |
['YaelDillies', 'eric-wieser', 'faenuccio', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'pechersky'] |
YaelDillies assignee:YaelDillies |
1-74809 1 day ago |
1-74809 1 day ago |
35-12661 35 days |
| 30962 |
WangYiran01 author:WangYiran01 |
feat(Combinatorics/Enumerative): add lattice path lemmas and counts |
This PR adds definitions and theorems about monotone lattice paths:
- Defines `pathCount`, `pathCountFrom`, `SubdiagProp`, and related structures.
- Proves closed forms such as `pathCount_eq_closed`.
- Adds Dyck/ballot subdiagonal property (`SubdiagProp`).
All code builds successfully with `lake build`. |
new-contributor
t-combinatorics
|
64/0 |
Mathlib.lean,Mathlib/Combinatorics/Enumerative/RecLatticePath.lean |
2 |
1 |
['github-actions'] |
nobody |
1-74083 1 day ago |
2-8485 2 days ago |
2-8527 2 days |
| 30911 |
vihdzp author:vihdzp |
chore(Algebra/Group/Pi/Lemmas): golf using `aesop` / `grind` |
---
The new proof of `Pi.mulSingle_mul_mulSingle_eq_mulSingle_mul_mulSingle` is slower but arguably much more understandable.
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
6/28 |
Mathlib/Algebra/Group/Pi/Lemmas.lean |
1 |
10 |
['github-actions', 'grunweg', 'leanprover-bot', 'themathqueen', 'vihdzp'] |
nobody |
1-72920 1 day ago |
3-36503 3 days ago |
3-36547 3 days |
| 28836 |
yury-harmonic author:yury-harmonic |
feat: add `norm_num` extensions |
Add `norm_num` extensions for
- `Int.negOfNat`;
- `Nat.floor`, `Nat.ceil`, and `Int.round`.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
250/14 |
Mathlib/Algebra/Order/Floor/Semifield.lean,Mathlib/Data/NNRat/Floor.lean,Mathlib/Data/Rat/Floor.lean,Mathlib/Tactic/NormNum/Basic.lean,MathlibTest/norm_num_ext.lean |
5 |
18 |
['Ruben-VandeVelde', 'digama0', 'eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot', 'yury-harmonic'] |
j-loreaux assignee:j-loreaux |
1-72884 1 day ago |
5-68563 5 days ago |
18-20445 18 days |
| 29649 |
MichaelStollBayreuth author:MichaelStollBayreuth |
feat(Analysis/Normed/Algebra/GelfandMazur): new file |
This adds two versions of the *Gelfand-Mazur* *Theorem*:
```lean
NormedAlgebra.Complex.nonempty_algEquiv (F : Type*) [NormedRing F] [NormOneClass F]
[NormMulClass F] [NormedAlgebra ℂ F] [Nontrivial F] :
Nonempty (ℂ ≃ₐ[ℂ] F)
NormedAlgebra.Real.nonempty_algEquiv_or (F : Type*) [NormedField F] [NormedAlgebra ℝ F] :
Nonempty (F ≃ₐ[ℝ] ℝ) ∨ Nonempty (F ≃ₐ[ℝ] ℂ)
```
The version for complex algebras differs in its assumptions from the existing version [NormedRing.algEquivComplexOfComplete](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Normed/Algebra/Spectrum.html#NormedRing.algEquivComplexOfComplete) (nontrivial normed algebra with multiplicative norm vs. complete division ring with submultiplicative norm).
A version for real algebras is not yet in Mathlib; it is needed in the context of implementing (absolute) heights; see [Heights](https://github.com/MichaelStollBayreuth/Heights).
Following a suggestion by @j-loreaux, we also add some API for the `Bornology.cobounded` filter.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
543/3 |
Mathlib.lean,Mathlib/Analysis/Complex/PhragmenLindelof.lean,Mathlib/Analysis/Normed/Algebra/Basic.lean,Mathlib/Analysis/Normed/Algebra/GelfandMazur.lean,Mathlib/Topology/Bornology/BoundedOperation.lean,Mathlib/Topology/Bornology/Constructions.lean,docs/references.bib |
7 |
36 |
['MichaelStollBayreuth', 'github-actions', 'grunweg', 'j-loreaux', 'mathlib4-merge-conflict-bot'] |
j-loreaux assignee:j-loreaux |
1-72823 1 day ago |
1-72823 1 day ago |
31-77658 31 days |
| 27946 |
plp127 author:plp127 |
refactor: have `MetrizableSpace` not depend on `MetricSpace` |
Some theorems for uniform spaces with a countably generated uniformity do not mention their uniformity in any of the hypotheses or the conclusion (for example `UniformSpace.isCompact_iff_isSeqCompact`). This PR allows those theorems to be stated for (pseudo)metrizable spaces without importing the real numbers.
- Use `TopologicalSpace.pseudoMetrizableSpaceUniformity` to endow a pseudometrizable space with a compatible uniformity,
and use `TopologicalSpace.pseudoMetrizableSpaceUniformity_countably_generated` to show that this is countably generated.
- `TopologicalSpace.pseudoMetrizableSpacePseudoMetric` and `TopologicalSpace.metrizableSpaceMetric` have been moved to `Mathlib/Topology/Metrizable/Uniformity.lean`.
See also #2032
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
128/102 |
Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean,Mathlib/Topology/Compactness/PseudometrizableLindelof.lean,Mathlib/Topology/GDelta/MetrizableSpace.lean,Mathlib/Topology/Metrizable/Basic.lean,Mathlib/Topology/Metrizable/ContinuousMap.lean,Mathlib/Topology/Metrizable/Real.lean,Mathlib/Topology/Metrizable/Uniformity.lean |
7 |
15 |
['github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'plp127', 'urkud', 'vihdzp'] |
urkud assignee:urkud |
1-66274 1 day ago |
16-65504 16 days ago |
85-52526 85 days |
| 27971 |
smmercuri author:smmercuri |
feat: weak approximation theorems for infinite places of a number field |
Under the diagonal embedding into infinite places, a number field $K$ is dense inside both the product $\prod_{v \mid \infty} (K, v)$, where $(K, v)$ denotes $K$ equipped with $v$'s topology, and the infinite adele ring $\prod_v K_v$.
This PR continues the work from #22153.
Original PR: https://github.com/leanprover-community/mathlib4/pull/22153
---
- [x] depends on: #27969 |
FLT
t-algebra
t-number-theory
label:t-algebra$ |
98/2 |
Mathlib/Analysis/Normed/Field/WithAbs.lean,Mathlib/NumberTheory/NumberField/AdeleRing.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.lean |
3 |
5 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'smmercuri'] |
Vierkantor assignee:Vierkantor |
1-65541 1 day ago |
9-7954 9 days ago |
26-42503 26 days |
| 30972 |
mariainesdff author:mariainesdff |
feat(RingTheory): add (Mv)Polynomial.coe_smul |
Co-authored by : @AntoineChambert-Loir
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
8/0 |
Mathlib/RingTheory/MvPowerSeries/Basic.lean,Mathlib/RingTheory/PowerSeries/Basic.lean |
2 |
1 |
['github-actions'] |
nobody |
1-62645 1 day ago |
1-62669 1 day ago |
1-62704 1 day |
| 30494 |
kebekus author:kebekus |
feat: behaviour of Nevanlinna functions under multiplication |
Establish the behavior of Nevanlinna functions under multiplication.
This material is used in [Project VD](https://github.com/kebekus/ProjectVD), which aims to formalize Value Distribution Theory for meromorphic functions on the complex plane. The formula established here is part of a larger package discussing the behavior of the Nenvanlinna height under algebraic manipulations of the functions.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
233/0 |
Mathlib/Analysis/Complex/ValueDistribution/CharacteristicFunction.lean,Mathlib/Analysis/Complex/ValueDistribution/CountingFunction.lean,Mathlib/Analysis/Complex/ValueDistribution/ProximityFunction.lean,Mathlib/MeasureTheory/Integral/CircleAverage.lean,Mathlib/Topology/LocallyFinsupp.lean |
5 |
2 |
['github-actions', 'mathlib4-merge-conflict-bot'] |
j-loreaux assignee:j-loreaux |
1-62526 1 day ago |
1-62546 1 day ago |
16-16009 16 days |
| 30833 |
kckennylau author:kckennylau |
feat(Data): IsScalarTower for ZMod |
---
[](https://gitpod.io/from-referrer/)
|
|
29/0 |
Mathlib/Algebra/Algebra/ZMod.lean,Mathlib/Data/ZMod/Basic.lean |
2 |
9 |
['erdOne', 'github-actions', 'kckennylau', 'leanprover-bot'] |
nobody |
1-62240 1 day ago |
5-52045 5 days ago |
5-52022 5 days |
| 30974 |
mariainesdff author:mariainesdff |
feat(Algebra/Algebra/Basic): add RingHom.commSemiringToCommRing |
Co-authored by: @AntoineChambert-Loir
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
8/0 |
Mathlib/Algebra/Algebra/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
1-62204 1 day ago |
1-62211 1 day ago |
1-62250 1 day |
| 30976 |
mariainesdff author:mariainesdff |
feat(Data/Nat/Choose/Multinomial): add multinomial_eq_of_support_subset |
---
[](https://gitpod.io/from-referrer/)
|
t-data |
10/0 |
Mathlib/Data/Nat/Choose/Multinomial.lean |
1 |
n/a |
['github-actions'] |
nobody |
1-61409 1 day ago |
unknown |
unknown |
| 30959 |
euprunin author:euprunin |
chore(RingTheory/Polynomial): golf entire `degreeLT_succ_eq_degreeLE` using `rfl` |
---
Show trace profiling of degreeLT_succ_eq_degreeLE: 12 ms before, <10 ms after 🎉
### Trace profiling of `degreeLT_succ_eq_degreeLE` before PR 30959
```diff
diff --git a/Mathlib/RingTheory/Polynomial/Basic.lean b/Mathlib/RingTheory/Polynomial/Basic.lean
index 205bce7933..89ab41fcbc 100644
--- a/Mathlib/RingTheory/Polynomial/Basic.lean
+++ b/Mathlib/RingTheory/Polynomial/Basic.lean
@@ -158,6 +158,7 @@ theorem eval_eq_sum_degreeLTEquiv {n : ℕ} {p : R[X]} (hp : p ∈ degreeLT R n)
simp_rw [eval_eq_sum]
exact (sum_fin _ (by simp_rw [zero_mul, forall_const]) (mem_degreeLT.mp hp)).symm
+set_option trace.profiler true in
theorem degreeLT_succ_eq_degreeLE {n : ℕ} : degreeLT R (n + 1) = degreeLE R n := by
ext x
by_cases x_zero : x = 0
```
```
ℹ [1436/1436] Built Mathlib.RingTheory.Polynomial.Basic (2.4s)
info: Mathlib/RingTheory/Polynomial/Basic.lean:162:0: [Elab.async] [0.012225] elaborating proof of Polynomial.degreeLT_succ_eq_degreeLE
[Elab.definition.value] [0.011683] Polynomial.degreeLT_succ_eq_degreeLE
[Elab.step] [0.011420]
ext x
by_cases x_zero : x = 0
· simp_rw [x_zero, Submodule.zero_mem]
·
rw [mem_degreeLT, mem_degreeLE, ← natDegree_lt_iff_degree_lt (by rwa [ne_eq]), ← natDegree_le_iff_degree_le,
Nat.lt_succ]
[Elab.step] [0.011413]
ext x
by_cases x_zero : x = 0
· simp_rw [x_zero, Submodule.zero_mem]
·
rw [mem_degreeLT, mem_degreeLE, ← natDegree_lt_iff_degree_lt (by rwa [ne_eq]), ←
natDegree_le_iff_degree_le, Nat.lt_succ]
Build completed successfully (1436 jobs).
```
### Trace profiling of `degreeLT_succ_eq_degreeLE` after PR 30959
```diff
diff --git a/Mathlib/RingTheory/Polynomial/Basic.lean b/Mathlib/RingTheory/Polynomial/Basic.lean
index 205bce7933..5078d7c03c 100644
--- a/Mathlib/RingTheory/Polynomial/Basic.lean
+++ b/Mathlib/RingTheory/Polynomial/Basic.lean
@@ -158,12 +158,8 @@ theorem eval_eq_sum_degreeLTEquiv {n : ℕ} {p : R[X]} (hp : p ∈ degreeLT R n)
simp_rw [eval_eq_sum]
exact (sum_fin _ (by simp_rw [zero_mul, forall_const]) (mem_degreeLT.mp hp)).symm
-theorem degreeLT_succ_eq_degreeLE {n : ℕ} : degreeLT R (n + 1) = degreeLE R n := by
- ext x
- by_cases x_zero : x = 0
- · simp_rw [x_zero, Submodule.zero_mem]
- · rw [mem_degreeLT, mem_degreeLE, ← natDegree_lt_iff_degree_lt (by rwa [ne_eq]),
- ← natDegree_le_iff_degree_le, Nat.lt_succ]
+set_option trace.profiler true in
+theorem degreeLT_succ_eq_degreeLE {n : ℕ} : degreeLT R (n + 1) = degreeLE R n := rfl
/-- The equivalence between monic polynomials of degree `n` and polynomials of degree less than
`n`, formed by adding a term `X ^ n`. -/
```
```
✔ [1436/1436] Built Mathlib.RingTheory.Polynomial.Basic (2.4s)
Build completed successfully (1436 jobs).
```
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
1/6 |
Mathlib/RingTheory/Polynomial/Basic.lean |
1 |
1 |
['github-actions', 'vihdzp'] |
nobody |
1-54864 1 day ago |
2-13013 2 days ago |
2-13055 2 days |
| 30939 |
euprunin author:euprunin |
chore(NumberTheory/LegendreSymbol/QuadraticChar): golf `FiniteField.isSquare_odd_prime_iff` using `simp` |
---
Show trace profiling of FiniteField.isSquare_odd_prime_iff: 61 ms before, 139 ms after
### Trace profiling of `FiniteField.isSquare_odd_prime_iff` before PR 30939
```diff
diff --git a/Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean b/Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean
index e3281cd154..e042b8dd3f 100644
--- a/Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean
+++ b/Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean
@@ -94,6 +94,7 @@ theorem quadraticChar_odd_prime [DecidableEq F] (hF : ringChar F ≠ 2) {p : ℕ
(ne_of_eq_of_ne (ringChar_zmod_n p) hp₂.symm)
rwa [card p] at h
+set_option trace.profiler true in
/-- An odd prime `p` is a square in `F` iff the quadratic character of `ZMod p` does not
take the value `-1` on `χ₄#F * #F`. -/
theorem FiniteField.isSquare_odd_prime_iff (hF : ringChar F ≠ 2) {p : ℕ} [Fact p.Prime]
```
```
ℹ [2828/2828] Built Mathlib.NumberTheory.LegendreSymbol.QuadraticChar.GaussSum (2.6s)
info: Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean:98:0: [Elab.command] [0.019186] /-- An odd prime `p` is a square in `F` iff the quadratic character of `ZMod p` does not
take the value `-1` on `χ₄#F * #F`. -/
theorem isSquare_odd_prime_iff (hF : ringChar F ≠ 2) {p : ℕ} [Fact p.Prime] (hp : p ≠ 2) :
IsSquare (p : F) ↔ quadraticChar (ZMod p) (χ₄ (Fintype.card F) * Fintype.card F) ≠ -1 := by
classical
by_cases hFp : ringChar F = p
· rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar]
simp only [IsSquare.zero, Ne, true_iff, map_mul]
obtain ⟨n, _, hc⟩ := FiniteField.card F (ringChar F)
have hchar : ringChar F = ringChar (ZMod p) := by rw [hFp]; exact (ringChar_zmod_n p).symm
conv => enter [1, 1, 2]; rw [hc, Nat.cast_pow, map_pow, hchar, map_ringChar]
simp only [zero_pow n.ne_zero, mul_zero, zero_eq_neg, one_ne_zero, not_false_iff]
· rw [← Iff.not_left (@quadraticChar_neg_one_iff_not_isSquare F _ _ _ _), quadraticChar_odd_prime hF hp]
exact hFp
[Elab.definition.header] [0.018732] FiniteField.isSquare_odd_prime_iff
[Elab.step] [0.017563] expected type: Prop, term
IsSquare (p : F) ↔ quadraticChar (ZMod p) (χ₄ (Fintype.card F) * Fintype.card F) ≠ -1
[Elab.step] [0.017558] expected type: Prop, term
Iff✝ (IsSquare (p : F)) (quadraticChar (ZMod p) (χ₄ (Fintype.card F) * Fintype.card F) ≠ -1)
[Elab.step] [0.015040] expected type: Prop, term
quadraticChar (ZMod p) (χ₄ (Fintype.card F) * Fintype.card F) ≠ -1
[Elab.step] [0.015035] expected type: Prop, term
binrel% Ne✝ (quadraticChar (ZMod p) (χ₄ (Fintype.card F) * Fintype.card F)) (-1)
[Elab.step] [0.014678] expected type: , term
quadraticChar (ZMod p) (χ₄ (Fintype.card F) * Fintype.card F)
[Elab.step] [0.011485] expected type: ZMod p, term
(χ₄ (Fintype.card F) * Fintype.card F)
[Elab.step] [0.011479] expected type: ZMod p, term
χ₄ (Fintype.card F) * Fintype.card F
[Elab.step] [0.011471] expected type: ZMod p, term
binop% HMul.hMul✝ (χ₄ (Fintype.card F)) (Fintype.card F)
info: Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean:98:0: [Elab.command] [0.019295] /-- An odd prime `p` is a square in `F` iff the quadratic character of `ZMod p` does not
take the value `-1` on `χ₄#F * #F`. -/
theorem FiniteField.isSquare_odd_prime_iff (hF : ringChar F ≠ 2) {p : ℕ} [Fact p.Prime] (hp : p ≠ 2) :
IsSquare (p : F) ↔ quadraticChar (ZMod p) (χ₄ (Fintype.card F) * Fintype.card F) ≠ -1 := by
classical
by_cases hFp : ringChar F = p
· rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar]
simp only [IsSquare.zero, Ne, true_iff, map_mul]
obtain ⟨n, _, hc⟩ := FiniteField.card F (ringChar F)
have hchar : ringChar F = ringChar (ZMod p) := by rw [hFp]; exact (ringChar_zmod_n p).symm
conv => enter [1, 1, 2]; rw [hc, Nat.cast_pow, map_pow, hchar, map_ringChar]
simp only [zero_pow n.ne_zero, mul_zero, zero_eq_neg, one_ne_zero, not_false_iff]
· rw [← Iff.not_left (@quadraticChar_neg_one_iff_not_isSquare F _ _ _ _), quadraticChar_odd_prime hF hp]
exact hFp
info: Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean:98:0: [Elab.async] [0.062132] elaborating proof of FiniteField.isSquare_odd_prime_iff
[Elab.definition.value] [0.060946] FiniteField.isSquare_odd_prime_iff
[Elab.step] [0.060273] classical
by_cases hFp : ringChar F = p
· rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar]
simp only [IsSquare.zero, Ne, true_iff, map_mul]
obtain ⟨n, _, hc⟩ := FiniteField.card F (ringChar F)
have hchar : ringChar F = ringChar (ZMod p) := by rw [hFp]; exact (ringChar_zmod_n p).symm
conv => enter [1, 1, 2]; rw [hc, Nat.cast_pow, map_pow, hchar, map_ringChar]
simp only [zero_pow n.ne_zero, mul_zero, zero_eq_neg, one_ne_zero, not_false_iff]
· rw [← Iff.not_left (@quadraticChar_neg_one_iff_not_isSquare F _ _ _ _), quadraticChar_odd_prime hF hp]
exact hFp
[Elab.step] [0.060268] classical
by_cases hFp : ringChar F = p
· rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar]
simp only [IsSquare.zero, Ne, true_iff, map_mul]
obtain ⟨n, _, hc⟩ := FiniteField.card F (ringChar F)
have hchar : ringChar F = ringChar (ZMod p) := by rw [hFp]; exact (ringChar_zmod_n p).symm
conv => enter [1, 1, 2]; rw [hc, Nat.cast_pow, map_pow, hchar, map_ringChar]
simp only [zero_pow n.ne_zero, mul_zero, zero_eq_neg, one_ne_zero, not_false_iff]
· rw [← Iff.not_left (@quadraticChar_neg_one_iff_not_isSquare F _ _ _ _), quadraticChar_odd_prime hF hp]
exact hFp
[Elab.step] [0.060263] classical
by_cases hFp : ringChar F = p
· rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar]
simp only [IsSquare.zero, Ne, true_iff, map_mul]
obtain ⟨n, _, hc⟩ := FiniteField.card F (ringChar F)
have hchar : ringChar F = ringChar (ZMod p) := by rw [hFp]; exact (ringChar_zmod_n p).symm
conv => enter [1, 1, 2]; rw [hc, Nat.cast_pow, map_pow, hchar, map_ringChar]
simp only [zero_pow n.ne_zero, mul_zero, zero_eq_neg, one_ne_zero, not_false_iff]
· rw [← Iff.not_left (@quadraticChar_neg_one_iff_not_isSquare F _ _ _ _), quadraticChar_odd_prime hF hp]
exact hFp
[Elab.step] [0.060055]
by_cases hFp : ringChar F = p
· rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar]
simp only [IsSquare.zero, Ne, true_iff, map_mul]
obtain ⟨n, _, hc⟩ := FiniteField.card F (ringChar F)
have hchar : ringChar F = ringChar (ZMod p) := by rw [hFp]; exact (ringChar_zmod_n p).symm
conv => enter [1, 1, 2]; rw [hc, Nat.cast_pow, map_pow, hchar, map_ringChar]
simp only [zero_pow n.ne_zero, mul_zero, zero_eq_neg, one_ne_zero, not_false_iff]
· rw [← Iff.not_left (@quadraticChar_neg_one_iff_not_isSquare F _ _ _ _), quadraticChar_odd_prime hF hp]
exact hFp
[Elab.step] [0.060044]
by_cases hFp : ringChar F = p
· rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar]
simp only [IsSquare.zero, Ne, true_iff, map_mul]
obtain ⟨n, _, hc⟩ := FiniteField.card F (ringChar F)
have hchar : ringChar F = ringChar (ZMod p) := by rw [hFp]; exact (ringChar_zmod_n p).symm
conv => enter [1, 1, 2]; rw [hc, Nat.cast_pow, map_pow, hchar, map_ringChar]
simp only [zero_pow n.ne_zero, mul_zero, zero_eq_neg, one_ne_zero, not_false_iff]
· rw [← Iff.not_left (@quadraticChar_neg_one_iff_not_isSquare F _ _ _ _),
quadraticChar_odd_prime hF hp]
exact hFp
[Elab.step] [0.055777] ·
rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar]
simp only [IsSquare.zero, Ne, true_iff, map_mul]
obtain ⟨n, _, hc⟩ := FiniteField.card F (ringChar F)
have hchar : ringChar F = ringChar (ZMod p) := by rw [hFp]; exact (ringChar_zmod_n p).symm
conv => enter [1, 1, 2]; rw [hc, Nat.cast_pow, map_pow, hchar, map_ringChar]
simp only [zero_pow n.ne_zero, mul_zero, zero_eq_neg, one_ne_zero, not_false_iff]
[Elab.step] [0.055767]
rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar]
simp only [IsSquare.zero, Ne, true_iff, map_mul]
obtain ⟨n, _, hc⟩ := FiniteField.card F (ringChar F)
have hchar : ringChar F = ringChar (ZMod p) := by rw [hFp]; exact (ringChar_zmod_n p).symm
conv => enter [1, 1, 2]; rw [hc, Nat.cast_pow, map_pow, hchar, map_ringChar]
simp only [zero_pow n.ne_zero, mul_zero, zero_eq_neg, one_ne_zero, not_false_iff]
[Elab.step] [0.055761]
rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar]
simp only [IsSquare.zero, Ne, true_iff, map_mul]
obtain ⟨n, _, hc⟩ := FiniteField.card F (ringChar F)
have hchar : ringChar F = ringChar (ZMod p) := by rw [hFp]; exact (ringChar_zmod_n p).symm
conv => enter [1, 1, 2]; rw [hc, Nat.cast_pow, map_pow, hchar, map_ringChar]
simp only [zero_pow n.ne_zero, mul_zero, zero_eq_neg, one_ne_zero, not_false_iff]
[Elab.step] [0.013550] simp only [IsSquare.zero, Ne, true_iff, map_mul]
[Elab.step] [0.010623] obtain ⟨n, _, hc⟩ := FiniteField.card F (ringChar F)
[Elab.step] [0.014198] conv => enter [1, 1, 2]; rw [hc, Nat.cast_pow, map_pow, hchar, map_ringChar]
[Elab.step] [0.013464] enter [1, 1, 2]; rw [hc, Nat.cast_pow, map_pow, hchar, map_ringChar]
[Elab.step] [0.013460] enter [1, 1, 2]; rw [hc, Nat.cast_pow, map_pow, hchar, map_ringChar]
[Elab.step] [0.013234] rw [hc, Nat.cast_pow, map_pow, hchar, map_ringChar]
[Elab.step] [0.013208] rewrite [hc, Nat.cast_pow, map_pow, hchar, map_ringChar]
Build completed successfully (2828 jobs).
```
### Trace profiling of `FiniteField.isSquare_odd_prime_iff` after PR 30939
```diff
diff --git a/Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean b/Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean
index e3281cd154..1f73e5c70f 100644
--- a/Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean
+++ b/Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean
@@ -94,6 +94,7 @@ theorem quadraticChar_odd_prime [DecidableEq F] (hF : ringChar F ≠ 2) {p : ℕ
(ne_of_eq_of_ne (ringChar_zmod_n p) hp₂.symm)
rwa [card p] at h
+set_option trace.profiler true in
/-- An odd prime `p` is a square in `F` iff the quadratic character of `ZMod p` does not
take the value `-1` on `χ₄#F * #F`. -/
theorem FiniteField.isSquare_odd_prime_iff (hF : ringChar F ≠ 2) {p : ℕ} [Fact p.Prime]
@@ -102,11 +103,8 @@ theorem FiniteField.isSquare_odd_prime_iff (hF : ringChar F ≠ 2) {p : ℕ} [Fa
classical
by_cases hFp : ringChar F = p
· rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar]
- simp only [IsSquare.zero, Ne, true_iff, map_mul]
- obtain ⟨n, _, hc⟩ := FiniteField.card F (ringChar F)
- have hchar : ringChar F = ringChar (ZMod p) := by rw [hFp]; exact (ringChar_zmod_n p).symm
- conv => enter [1, 1, 2]; rw [hc, Nat.cast_pow, map_pow, hchar, map_ringChar]
- simp only [zero_pow n.ne_zero, mul_zero, zero_eq_neg, one_ne_zero, not_false_iff]
+ obtain ⟨⟩ := FiniteField.card F (ringChar F)
+ simp [*]
· rw [← Iff.not_left (@quadraticChar_neg_one_iff_not_isSquare F _ _ _ _),
quadraticChar_odd_prime hF hp]
exact hFp
```
```
ℹ [2828/2828] Built Mathlib.NumberTheory.LegendreSymbol.QuadraticChar.GaussSum (1.7s)
info: Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean:98:0: [Elab.command] [0.018569] /-- An odd prime `p` is a square in `F` iff the quadratic character of `ZMod p` does not
take the value `-1` on `χ₄#F * #F`. -/
theorem isSquare_odd_prime_iff (hF : ringChar F ≠ 2) {p : ℕ} [Fact p.Prime] (hp : p ≠ 2) :
IsSquare (p : F) ↔ quadraticChar (ZMod p) (χ₄ (Fintype.card F) * Fintype.card F) ≠ -1 := by
classical
by_cases hFp : ringChar F = p
· rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar]
obtain ⟨⟩ := FiniteField.card F (ringChar F)
simp [*]
· rw [← Iff.not_left (@quadraticChar_neg_one_iff_not_isSquare F _ _ _ _), quadraticChar_odd_prime hF hp]
exact hFp
[Elab.definition.header] [0.018106] FiniteField.isSquare_odd_prime_iff
[Elab.step] [0.016733] expected type: Prop, term
IsSquare (p : F) ↔ quadraticChar (ZMod p) (χ₄ (Fintype.card F) * Fintype.card F) ≠ -1
[Elab.step] [0.016726] expected type: Prop, term
Iff✝ (IsSquare (p : F)) (quadraticChar (ZMod p) (χ₄ (Fintype.card F) * Fintype.card F) ≠ -1)
[Elab.step] [0.014053] expected type: Prop, term
quadraticChar (ZMod p) (χ₄ (Fintype.card F) * Fintype.card F) ≠ -1
[Elab.step] [0.014046] expected type: Prop, term
binrel% Ne✝ (quadraticChar (ZMod p) (χ₄ (Fintype.card F) * Fintype.card F)) (-1)
[Elab.step] [0.013685] expected type: , term
quadraticChar (ZMod p) (χ₄ (Fintype.card F) * Fintype.card F)
[Elab.step] [0.010420] expected type: ZMod p, term
(χ₄ (Fintype.card F) * Fintype.card F)
[Elab.step] [0.010415] expected type: ZMod p, term
χ₄ (Fintype.card F) * Fintype.card F
[Elab.step] [0.010409] expected type: ZMod p, term
binop% HMul.hMul✝ (χ₄ (Fintype.card F)) (Fintype.card F)
info: Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean:98:0: [Elab.command] [0.018685] /-- An odd prime `p` is a square in `F` iff the quadratic character of `ZMod p` does not
take the value `-1` on `χ₄#F * #F`. -/
theorem FiniteField.isSquare_odd_prime_iff (hF : ringChar F ≠ 2) {p : ℕ} [Fact p.Prime] (hp : p ≠ 2) :
IsSquare (p : F) ↔ quadraticChar (ZMod p) (χ₄ (Fintype.card F) * Fintype.card F) ≠ -1 := by
classical
by_cases hFp : ringChar F = p
· rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar]
obtain ⟨⟩ := FiniteField.card F (ringChar F)
simp [*]
· rw [← Iff.not_left (@quadraticChar_neg_one_iff_not_isSquare F _ _ _ _), quadraticChar_odd_prime hF hp]
exact hFp
info: Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean:98:0: [Elab.async] [0.139820] elaborating proof of FiniteField.isSquare_odd_prime_iff
[Elab.definition.value] [0.138910] FiniteField.isSquare_odd_prime_iff
[Elab.step] [0.138469] classical
by_cases hFp : ringChar F = p
· rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar]
obtain ⟨⟩ := FiniteField.card F (ringChar F)
simp [*]
· rw [← Iff.not_left (@quadraticChar_neg_one_iff_not_isSquare F _ _ _ _), quadraticChar_odd_prime hF hp]
exact hFp
[Elab.step] [0.138464] classical
by_cases hFp : ringChar F = p
· rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar]
obtain ⟨⟩ := FiniteField.card F (ringChar F)
simp [*]
· rw [← Iff.not_left (@quadraticChar_neg_one_iff_not_isSquare F _ _ _ _), quadraticChar_odd_prime hF hp]
exact hFp
[Elab.step] [0.138459] classical
by_cases hFp : ringChar F = p
· rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar]
obtain ⟨⟩ := FiniteField.card F (ringChar F)
simp [*]
· rw [← Iff.not_left (@quadraticChar_neg_one_iff_not_isSquare F _ _ _ _), quadraticChar_odd_prime hF hp]
exact hFp
[Elab.step] [0.138002]
by_cases hFp : ringChar F = p
· rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar]
obtain ⟨⟩ := FiniteField.card F (ringChar F)
simp [*]
· rw [← Iff.not_left (@quadraticChar_neg_one_iff_not_isSquare F _ _ _ _), quadraticChar_odd_prime hF hp]
exact hFp
[Elab.step] [0.137991]
by_cases hFp : ringChar F = p
· rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar]
obtain ⟨⟩ := FiniteField.card F (ringChar F)
simp [*]
· rw [← Iff.not_left (@quadraticChar_neg_one_iff_not_isSquare F _ _ _ _),
quadraticChar_odd_prime hF hp]
exact hFp
[Elab.step] [0.133856] ·
rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar]
obtain ⟨⟩ := FiniteField.card F (ringChar F)
simp [*]
[Elab.step] [0.133848]
rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar]
obtain ⟨⟩ := FiniteField.card F (ringChar F)
simp [*]
[Elab.step] [0.133844]
rw [show (p : F) = 0 by rw [← hFp]; exact ringChar.Nat.cast_ringChar]
obtain ⟨⟩ := FiniteField.card F (ringChar F)
simp [*]
[Elab.step] [0.011009] obtain ⟨⟩ := FiniteField.card F (ringChar F)
[Elab.step] [0.113860] simp [*]
[Meta.synthInstance] [0.013335] ✅️ ExistsAddOfLE F
[Meta.synthInstance] [0.037076] ❌️ PosMulMono F
Build completed successfully (2828 jobs).
```
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory |
2/5 |
Mathlib/NumberTheory/LegendreSymbol/QuadraticChar/GaussSum.lean |
1 |
1 |
['github-actions'] |
nobody |
1-54702 1 day ago |
2-53995 2 days ago |
2-54046 2 days |
| 30861 |
euprunin author:euprunin |
chore(Algebra/Star): golf entire `coe_range` using `grind` |
---
Show trace profiling of coe_range: <10 ms before, <10 ms after 🎉
### Trace profiling of `coe_range` before PR 30861
```diff
diff --git a/Mathlib/Algebra/Star/NonUnitalSubalgebra.lean b/Mathlib/Algebra/Star/NonUnitalSubalgebra.lean
index 9b97bc24d4..30f849fa1e 100644
--- a/Mathlib/Algebra/Star/NonUnitalSubalgebra.lean
+++ b/Mathlib/Algebra/Star/NonUnitalSubalgebra.lean
@@ -449,6 +449,7 @@ theorem mem_range_self (φ : F) (x : A) :
φ x ∈ (NonUnitalStarAlgHom.range φ : NonUnitalStarSubalgebra R B) :=
(NonUnitalAlgHom.mem_range φ).2 ⟨x, rfl⟩
+set_option trace.profiler true in
@[simp, norm_cast]
theorem coe_range (φ : F) :
((NonUnitalStarAlgHom.range φ : NonUnitalStarSubalgebra R B) : Set B) = Set.range (φ : A → B) :=
```
```
ℹ [1015/1015] Built Mathlib.Algebra.Star.NonUnitalSubalgebra (8.8s)
info: Mathlib/Algebra/Star/NonUnitalSubalgebra.lean:453:0: [Elab.command] [0.015086] @[simp, norm_cast]
theorem coe_range (φ : F) :
((NonUnitalStarAlgHom.range φ : NonUnitalStarSubalgebra R B) : Set B) = Set.range (φ : A → B) := by ext;
rw [SetLike.mem_coe, mem_range]; rfl
Build completed successfully (1015 jobs).
```
### Trace profiling of `coe_range` after PR 30861
```diff
diff --git a/Mathlib/Algebra/Star/NonUnitalSubalgebra.lean b/Mathlib/Algebra/Star/NonUnitalSubalgebra.lean
index 9b97bc24d4..4bc82ae727 100644
--- a/Mathlib/Algebra/Star/NonUnitalSubalgebra.lean
+++ b/Mathlib/Algebra/Star/NonUnitalSubalgebra.lean
@@ -449,10 +449,12 @@ theorem mem_range_self (φ : F) (x : A) :
φ x ∈ (NonUnitalStarAlgHom.range φ : NonUnitalStarSubalgebra R B) :=
(NonUnitalAlgHom.mem_range φ).2 ⟨x, rfl⟩
+set_option trace.profiler true in
@[simp, norm_cast]
theorem coe_range (φ : F) :
- ((NonUnitalStarAlgHom.range φ : NonUnitalStarSubalgebra R B) : Set B) = Set.range (φ : A → B) :=
- by ext; rw [SetLike.mem_coe, mem_range]; rfl
+ ((NonUnitalStarAlgHom.range φ : NonUnitalStarSubalgebra R B) : Set B) =
+ Set.range (φ : A → B) := by
+ grind
theorem range_comp (f : A →⋆ₙₐ[R] B) (g : B →⋆ₙₐ[R] C) :
NonUnitalStarAlgHom.range (g.comp f) = (NonUnitalStarAlgHom.range f).map g :=
```
```
ℹ [1015/1015] Built Mathlib.Algebra.Star.NonUnitalSubalgebra (8.9s)
info: Mathlib/Algebra/Star/NonUnitalSubalgebra.lean:453:0: [Elab.command] [0.017641] @[simp, norm_cast]
theorem coe_range (φ : F) :
((NonUnitalStarAlgHom.range φ : NonUnitalStarSubalgebra R B) : Set B) = Set.range (φ : A → B) := by grind
Build completed successfully (1015 jobs).
```
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
3/2 |
Mathlib/Algebra/Star/NonUnitalSubalgebra.lean |
1 |
1 |
['github-actions'] |
nobody |
1-54580 1 day ago |
4-57293 4 days ago |
4-57344 4 days |
| 29610 |
llllvvuu author:llllvvuu |
feat(LinearAlgebra): define LinearMap.Eigenbasis |
Some theorems are left TODO for follow-up work.
The definition is from @eric-wieser ([#Is there code for X? > diagonalizable linear maps @ 💬](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/diagonalizable.20linear.20maps/near/539163222)).
Co-authored-by: Aristotle Harmonic
---
- [x] depends on: #29420 (golfs some `[Nontrivial R]` assumptions)
- [ ] depends on: #29791
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
458/5 |
Mathlib.lean,Mathlib/Analysis/InnerProductSpace/Spectrum.lean,Mathlib/LinearAlgebra/Eigenbasis.lean,Mathlib/LinearAlgebra/FreeModule/PID.lean,Mathlib/Order/CompactlyGenerated/Basic.lean,Mathlib/Order/CompleteLattice/Basic.lean |
6 |
29 |
['github-actions', 'kckennylau', 'llllvvuu', 'mathlib4-dependent-issues-bot'] |
nobody |
1-43889 1 day ago |
1-43891 1 day ago |
4-66196 4 days |
| 30984 |
erdOne author:erdOne |
feat(RingTheory): lemmas about scaleRoots |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
large-import
|
120/5 |
Mathlib/RingTheory/Polynomial/IntegralNormalization.lean,Mathlib/RingTheory/Polynomial/ScaleRoots.lean |
2 |
2 |
['erdOne', 'github-actions'] |
nobody |
1-40578 1 day ago |
1-43278 1 day ago |
1-43383 1 day |
| 24614 |
JovanGerb author:JovanGerb |
chore: rename field `inf` to `min` in `Lattice` |
As suggested by @eric-wieser, this PR renames the `sup` and `inf` fields in `Lattice` to `max` and `min`. This means that we now can extend `Lattice` and `LinearOrder` simultaneously without ending up with duplicate fields. This should be implemented in a future PR for existing classes like `CompleteLinearOrder`.
[Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.60sup.60.2F.60inf.60.20or.20.60max.60.2F.60min.60.20for.20set.20interval.20lemmas.3F)
---
[](https://gitpod.io/from-referrer/)
|
t-order |
181/187 |
Mathlib/Algebra/Field/Subfield/Basic.lean,Mathlib/Algebra/Group/Subgroup/Lattice.lean,Mathlib/Algebra/Group/Submonoid/Basic.lean,Mathlib/Algebra/Group/Subsemigroup/Basic.lean,Mathlib/Algebra/Lie/Subalgebra.lean,Mathlib/Algebra/Module/Submodule/Lattice.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/Kleene.lean,Mathlib/Algebra/Order/Ring/Idempotent.lean,Mathlib/Algebra/Ring/Subring/Basic.lean,Mathlib/Algebra/Ring/Subsemiring/Basic.lean,Mathlib/Algebra/Tropical/Lattice.lean,Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean,Mathlib/Analysis/BoxIntegral/Box/Basic.lean,Mathlib/Analysis/BoxIntegral/Partition/Basic.lean,Mathlib/Analysis/Convex/SimplicialComplex/Basic.lean,Mathlib/Analysis/Normed/Group/Seminorm.lean,Mathlib/Analysis/NormedSpace/ENormedSpace.lean,Mathlib/Analysis/NormedSpace/MStructure.lean,Mathlib/Analysis/Seminorm.lean,Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean,Mathlib/CategoryTheory/Sites/Coverage.lean,Mathlib/CategoryTheory/Sites/Grothendieck.lean,Mathlib/CategoryTheory/Sites/Pretopology.lean,Mathlib/CategoryTheory/Sites/Sieves.lean,Mathlib/CategoryTheory/Subobject/Lattice.lean,Mathlib/CategoryTheory/Subpresheaf/Basic.lean,Mathlib/Combinatorics/Digraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean,Mathlib/Computability/Reduce.lean,Mathlib/Data/DFinsupp/Order.lean,Mathlib/Data/Finset/Lattice/Basic.lean,Mathlib/Data/Multiset/UnionInter.lean,Mathlib/Data/Nat/PartENat.lean,Mathlib/Data/PEquiv.lean,Mathlib/Data/Real/Basic.lean,Mathlib/Data/Semiquot.lean,Mathlib/Data/Set/Basic.lean,Mathlib/Data/Setoid/Basic.lean,Mathlib/Data/Sum/Lattice.lean,Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean,Mathlib/Geometry/Manifold/ChartedSpace.lean,Mathlib/GroupTheory/Congruence/Defs.lean,Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Defs.lean,Mathlib/LinearAlgebra/LinearPMap.lean,Mathlib/MeasureTheory/Function/AEEqFun.lean,Mathlib/MeasureTheory/Function/SimpleFunc.lean,Mathlib/ModelTheory/Substructures.lean,Mathlib/Order/BooleanSubalgebra.lean,Mathlib/Order/Booleanisation.lean,Mathlib/Order/CompleteLattice/Defs.lean,Mathlib/Order/Concept.lean,Mathlib/Order/ConditionallyCompleteLattice/Defs.lean,Mathlib/Order/Copy.lean,Mathlib/Order/Filter/Basic.lean,Mathlib/Order/Filter/Germ/Basic.lean,Mathlib/Order/FixedPoints.lean,Mathlib/Order/GaloisConnection/Basic.lean,Mathlib/Order/Heyting/Basic.lean,Mathlib/Order/Hom/Order.lean,Mathlib/Order/Ideal.lean,Mathlib/Order/Interval/Basic.lean,Mathlib/Order/Lattice.lean,Mathlib/Order/Partition/Finpartition.lean,Mathlib/Order/Preorder/Finsupp.lean,Mathlib/Order/PropInstances.lean,Mathlib/Order/Sublattice.lean,Mathlib/Order/WithBot.lean,Mathlib/Probability/Process/Filtration.lean,Mathlib/RingTheory/Congruence/Basic.lean,Mathlib/RingTheory/Finiteness/Basic.lean,Mathlib/RingTheory/Finiteness/Small.lean,Mathlib/RingTheory/NonUnitalSubring/Basic.lean,Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean,Mathlib/RingTheory/TwoSidedIdeal/Lattice.lean,Mathlib/RingTheory/UniqueFactorizationDomain/FactorSet.lean,Mathlib/RingTheory/Valuation/ValuationSubring.lean,Mathlib/Topology/Algebra/Group/GroupTopology.lean,Mathlib/Topology/Algebra/Module/ClosedSubmodule.lean,Mathlib/Topology/Category/TopCat/OpenNhds.lean,Mathlib/Topology/LocallyFinsupp.lean,Mathlib/Topology/MetricSpace/BundledFun.lean,Mathlib/Topology/UniformSpace/Basic.lean |
84 |
14 |
['JovanGerb', 'bryangingechen', 'eric-wieser', 'github-actions', 'leanprover-bot', 'leanprover-community-bot-assistant', 'leanprover-community-mathlib4-bot'] |
Vierkantor assignee:Vierkantor |
1-32397 1 day ago |
8-51364 8 days ago |
10-50605 10 days |
| 30293 |
vlad902 author:vlad902 |
feat(SimpleGraph): there exists a maximal path/trail in a graph with finite edges |
Inspired by [this Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/Help.20me.20learn.20good.20style.3A.20IsTree/near/543395218)
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
27/1 |
Mathlib/Combinatorics/SimpleGraph/Paths.lean |
1 |
2 |
['github-actions', 'vlad902'] |
awainverse assignee:awainverse |
1-32395 1 day ago |
22-1569 22 days ago |
22-1602 22 days |
| 30678 |
YaelDillies author:YaelDillies |
refactor(Algebra/Quaternion): intermediate `Module` instance |
This `Module` instance allows me to not ungeneralise the `NoZeroSMulDivisors R ℍ[R,c₁,c₂,c₃]` in #30563.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
45/29 |
Mathlib/Algebra/Quaternion.lean |
1 |
20 |
['YaelDillies', 'eric-wieser', 'github-actions'] |
joelriou assignee:joelriou |
1-32393 1 day ago |
9-3320 9 days ago |
9-28060 9 days |
| 30694 |
themathqueen author:themathqueen |
chore(Analysis/CStarAlgebra/CFC/Order): relate section to strict positivity |
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
23/20 |
Mathlib/Analysis/CStarAlgebra/ApproximateUnit.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean |
2 |
2 |
['github-actions', 'grunweg'] |
sgouezel assignee:sgouezel |
1-32390 1 day ago |
9-52488 9 days ago |
9-52530 9 days |
| 30714 |
harahu author:harahu |
doc(Analysis): fix typos |
Found with help from Codex, curated by me.
I've tried to limit the PR to changes that are easy to verify. Should you find it difficult to review any particular part of this PR, know that I have nothing against trimming this PR down in favor of smaller free-standing PRs for the difficult-to-review parts.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
15/15 |
Mathlib/Analysis/Calculus/Gradient/Basic.lean,Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Analysis/ODE/PicardLindelof.lean,Mathlib/Analysis/Polynomial/Basic.lean,Mathlib/Analysis/Real/OfDigits.lean,Mathlib/Analysis/SpecialFunctions/Stirling.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean |
7 |
1 |
['github-actions'] |
grunweg assignee:grunweg |
1-32387 1 day ago |
8-84478 8 days ago |
9-1 9 days |
| 30717 |
kim-em author:kim-em |
chore: cleanup rwMerge tactic analysis linter |
Previously this would find a sequence of `rw`, and see if they could all be merged into a single one. Now it just tries to merge an adjacent pair of `rw`s. (In the event that 3 or more rewrites could be merged, this will now suggest a more conservative merge, but presumably subsequently suggest the further merges.)
Also removes a spurious `set_option grind.warning false`. |
t-meta |
8/5 |
Mathlib/Tactic/TacticAnalysis/Declarations.lean |
1 |
1 |
['github-actions'] |
thorimur assignee:thorimur |
1-32386 1 day ago |
8-84609 8 days ago |
8-84651 8 days |
| 30990 |
kckennylau author:kckennylau |
chore: move SModEq to a new folder |
Split off from #30989. I only move it to a new folder and do nothing else.
---
[](https://gitpod.io/from-referrer/)
|
|
160/156 |
Mathlib.lean,Mathlib/LinearAlgebra/SModEq.lean,Mathlib/LinearAlgebra/SModEq/Basic.lean,Mathlib/RingTheory/AdicCompletion/Basic.lean,Mathlib/RingTheory/PowerBasis.lean |
5 |
1 |
['github-actions'] |
nobody |
1-32098 1 day ago |
1-32354 1 day ago |
1-32331 1 day |
| 30988 |
erdOne author:erdOne |
feat(AlgebraicGeometry): descending affine cover of an inverse limit |
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-algebraic-geometry
|
356/32 |
Mathlib/Algebra/Category/Ring/Constructions.lean,Mathlib/AlgebraicGeometry/AffineTransitionLimit.lean,Mathlib/AlgebraicGeometry/Pullbacks.lean,Mathlib/AlgebraicGeometry/QuasiAffine.lean,Mathlib/Topology/LocalAtTarget.lean |
5 |
1 |
['github-actions'] |
nobody |
1-31432 1 day ago |
1-31432 1 day ago |
1-35102 1 day |
| 30983 |
erdOne author:erdOne |
feat(RingTheory): results on resultant |
Also changed the definition of `sylvesterMatrix` because the old definition has the wrong sign.
---
[](https://gitpod.io/from-referrer/)
|
|
303/33 |
Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean,Mathlib/Data/Multiset/Bind.lean,Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean,Mathlib/RingTheory/Polynomial/Resultant/Basic.lean,Mathlib/RingTheory/WittVector/MulCoeff.lean |
5 |
5 |
['erdOne', 'github-actions', 'kckennylau'] |
nobody |
1-31343 1 day ago |
1-46446 1 day ago |
1-46423 1 day |
| 30960 |
qawbecrdtey author:qawbecrdtey |
chore(Combinatorics/SimpleGraph/Walk): golf |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
74/150 |
Mathlib/Combinatorics/SimpleGraph/Walk.lean |
1 |
36 |
['SnirBroshi', 'adomani', 'github-actions', 'grunweg', 'leanprover-bot', 'qawbecrdtey'] |
nobody |
1-31208 1 day ago |
1-34687 1 day ago |
1-75995 1 day |
| 29960 |
yonggyuchoimath author:yonggyuchoimath |
feat(Algebra/Category/Ring): equalizers of pushout maps of tensor product inclusions |
This PR defines a ring map `S →ₗ[R] S ⊗[R] S : s ↦ (s ⊗ₜ[R] 1) - (1 ⊗ₜ[R] s)` for an `R`-algebra `S`, and show that its kernel is exactly (the image of) `R` if `S` is faithfully flat over `R`.
Changes:
* `TensorProduct.AlgebraTensorModule.distribBaseChange`: Origianlly takes `M` and `N`, where `M` is an `R`-module with an additional instance `IsScalarTower R A M`. This is unnecessary, so I changed the `M` and `N` into `N` and `Q`, now both of which are merely modules over `R`.
Main results :
* Add compatibility of `Algebra.TensorProduct.includeLeft` (or `Algebra.TensorProduct.includeRight`) with `TensorProduct.AlgebraTensorModule.distribBaseChange` and `LinearMap.lTensor`
* Define `Algebra.TensorProduct.includeLeftSubRight`, which is the `R`-linear map `S →ₗ[R] S ⊗[R] S` sending `s : S` to `(s ⊗ₜ[R] 1) - (1 ⊗ₜ[R] s)`.
* `Algebra.TensorProduct.exactIncludeLeftSubRight_of_faithfullyFlat`: the pair `algebraMap : R → S` and `includeLeftSubRight R S : S → S ⊗[R] S` is exact if `S` is a faithfully flat `R`-algebra.
---
- [x] depends on: #30806 |
new-contributor |
223/1 |
Mathlib.lean,Mathlib/LinearAlgebra/TensorProduct/Tower.lean,Mathlib/RingTheory/TensorProduct/IncludeLeftSubRight.lean,Mathlib/RingTheory/TensorProduct/Maps.lean |
4 |
7 |
['erdOne', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'yonggyuchoimath'] |
TwoFX assignee:TwoFX |
1-21305 1 day ago |
1-24576 1 day ago |
29-6555 29 days |
| 28973 |
YaelDillies author:YaelDillies |
feat(TensorProduct): `lTensor` as an `AlgHom` and other lemmas |
From Toric
Co-authored-by: Michał Mrugała
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
toric
|
20/6 |
Mathlib/RingTheory/TensorProduct/Basic.lean,Mathlib/RingTheory/TensorProduct/Maps.lean |
2 |
9 |
['YaelDillies', 'eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot', 'themathqueen'] |
mattrobball assignee:mattrobball |
1-8991 1 day ago |
1-9014 1 day ago |
62-77959 62 days |
| 29539 |
YaelDillies author:YaelDillies |
feat: monoid algebras are invariant under base change |
From Toric
Co-authored-by: Michał Mrugała
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
toric
large-import
|
112/6 |
Mathlib.lean,Mathlib/Algebra/MonoidAlgebra/Basic.lean,Mathlib/RingTheory/TensorProduct/MonoidAlgebra.lean |
3 |
6 |
['YaelDillies', 'github-actions', 'mathlib4-merge-conflict-bot', 'plp127'] |
mattrobball assignee:mattrobball |
1-8418 1 day ago |
1-8440 1 day ago |
47-46386 47 days |
| 28475 |
astrainfinita author:astrainfinita |
chore(Analysis/SpecificLimits/Basic): generalize lemmas |
---
- [ ] depends on: #28472
- [ ] depends on: #28474
- [ ] depends on: #30671
[](https://gitpod.io/from-referrer/)
|
t-analysis |
98/82 |
Counterexamples/DiscreteTopologyNonDiscreteUniformity.lean,Mathlib/Analysis/CStarAlgebra/Spectrum.lean,Mathlib/Analysis/Normed/Algebra/Exponential.lean,Mathlib/Analysis/PSeries.lean,Mathlib/Analysis/Real/Hyperreal.lean,Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean,Mathlib/Analysis/SpecialFunctions/OrdinaryHypergeometric.lean,Mathlib/Analysis/SpecificLimits/Basic.lean,Mathlib/Analysis/SpecificLimits/RCLike.lean,Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean,Mathlib/Dynamics/Ergodic/AddCircle.lean,Mathlib/NumberTheory/Padics/Hensel.lean |
12 |
3 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
nobody |
1-7824 1 day ago |
5-41082 5 days ago |
5-43162 5 days |
| 29186 |
winstonyin author:winstonyin |
feat: IsIntegralCurve for solutions to ODEs |
I define `IsIntegralCurve` etc. for solutions to ODEs on vector spaces. The translation and scaling lemmas are also included. This parallels `IsMIntegralCurve` etc. for manifolds.
Moved from #26534.
- [x] depends on: #26563
---
[](https://gitpod.io/from-referrer/)
|
t-dynamics
t-analysis
t-differential-geometry
|
298/100 |
Mathlib.lean,Mathlib/Analysis/ODE/Basic.lean,Mathlib/Analysis/ODE/Transform.lean,Mathlib/Geometry/Manifold/IntegralCurve/Basic.lean,Mathlib/Geometry/Manifold/IntegralCurve/Transform.lean |
5 |
2 |
['github-actions', 'mathlib4-dependent-issues-bot'] |
grunweg and sgouezel assignee:grunweg assignee:sgouezel |
1-6471 1 day ago |
58-52233 1 month ago |
58-52369 58 days |
| 28602 |
gmcninch-tufts author:gmcninch-tufts |
feat(Algebra/Polynomial/Module): prove equivalence of a certain tensor product with PolynomialModule |
For a commutative ring `R` and an `R`-module `M`, construct an equivalence between the `R[X]`-modules `R[X] ⊗[R] M` and
`PolynomialModule R M`.
This equivalence enables application of some base-change results to `PolynomialModule R M` .
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-algebra
label:t-algebra$ |
50/0 |
Mathlib.lean,Mathlib/Algebra/Polynomial/Module/Basic.lean,Mathlib/Algebra/Polynomial/Module/TensorProduct.lean |
3 |
17 |
['github-actions', 'gmcninch-tufts', 'kckennylau'] |
jcommelin assignee:jcommelin |
1-4327 1 day ago |
71-67869 2 months ago |
71-67905 71 days |
| 30975 |
mariainesdff author:mariainesdff |
feat(Data/Finsupp/Defs): add Finsupp.restrict |
Co-authored by: @AntoineChambert-Loir
---
[](https://gitpod.io/from-referrer/)
|
t-data |
49/0 |
Mathlib/Data/Finsupp/Defs.lean |
1 |
n/a |
['github-actions'] |
nobody |
1-4032 1 day ago |
unknown |
unknown |
| 30994 |
kim-em author:kim-em |
feat: `fix_deprecations.py` script |
|
CI |
132/0 |
scripts/README.md,scripts/fix_deprecations.py |
2 |
1 |
['github-actions'] |
nobody |
1-2458 1 day ago |
1-2461 1 day ago |
1-2506 1 day |
| 24669 |
qawbecrdtey author:qawbecrdtey |
feat(Analysis/Normed/Operator/LinearIsometry): added definition `LinearIsometryEquiv.prodComm` |
---
[](https://gitpod.io/from-referrer/)
This commit defines a `LinearIsometryEquiv`, and states some trivial theorems about it.
```lean
def prodComm [Module R E₂] : E × E₂ ≃ₗᵢ[R] E₂ × E
```
|
t-analysis |
8/1 |
Mathlib/Analysis/Normed/Operator/LinearIsometry.lean |
1 |
12 |
['Ruben-VandeVelde', 'eric-wieser', 'faenuccio', 'github-actions', 'j-loreaux', 'jcommelin', 'qawbecrdtey'] |
faenuccio assignee:faenuccio |
1-1884 1 day ago |
1-1884 1 day ago |
33-85424 33 days |
| 30697 |
themathqueen author:themathqueen |
chore(Algebra/Star/Unitary): rename `unitary.spectrum.unitary_conjugate` |
`unitary.spectrum.unitary_conjugate` and `unitary.spectrum.unitary_conjugate'` should be in the `_root_` namespace since they already have `unitary` in their name. We also rename them to `spectrum.unitary_star_conjugate_left` and `spectrum.unitary_star_conjugate_right` to match the renaming convention in #30692.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
14/9 |
Mathlib/Algebra/Star/Unitary.lean,Mathlib/LinearAlgebra/Matrix/HermitianFunctionalCalculus.lean |
2 |
7 |
['github-actions', 'riccardobrasca', 'themathqueen'] |
riccardobrasca assignee:riccardobrasca |
1-349 1 day ago |
1-349 1 day ago |
9-50241 9 days |
| 30949 |
jessealama author:jessealama |
feat(LinearAlgebra/AffineSpace): affine maps/equivs determined by values on spanning sets |
This PR adds two extensionality lemmas showing that affine maps (and automorphisms) are uniquely determined by their values on any set that affinely spans the entire space:
- `AffineMap.ext_of_span_eq_top`: If two affine maps agree on a spanning set, they are equal
- `AffineEquiv.ext_of_span_eq_top`: Specialization to affine automorphisms
These lemmas are useful for proving uniqueness of affine maps without requiring affine independence.
This is extracted from #30854 to make a smaller, more focused PR.
cc @eric-wieser @jsm28 (recent reviewers of `Combination.lean`) |
t-algebra label:t-algebra$ |
42/0 |
Mathlib/LinearAlgebra/AffineSpace/Combination.lean |
1 |
3 |
['github-actions', 'jessealama', 'jsm28'] |
nobody |
0-86237 23 hours ago |
2-45842 2 days ago |
2-45891 2 days |
| 30997 |
kex-y author:kex-y |
feat(Probability): Add predictable processes |
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
241/0 |
Mathlib.lean,Mathlib/Probability/Martingale/Basic.lean,Mathlib/Probability/Process/Predictable.lean |
3 |
1 |
['github-actions'] |
nobody |
0-85153 23 hours ago |
0-85218 23 hours ago |
0-85203 23 hours |
| 26136 |
vasnesterov author:vasnesterov |
feat(Topology/Instances): Cantor set is homeomorphic to `ℕ → Bool` |
* Prove that `Real.ofDigits` is a continuous map from `ℕ → Fin b` to `ℝ`.
* Prove that the Cantor set is homeomorphic to `ℕ → Bool`.
---
- [x] depends on: #26096
[](https://gitpod.io/from-referrer/)
|
t-topology |
89/1 |
Mathlib/Analysis/Real/OfDigits.lean,Mathlib/Topology/Instances/CantorSet.lean,scripts/noshake.json |
3 |
8 |
['alreadydone', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'vasnesterov'] |
nobody |
0-84273 23 hours ago |
0-84631 23 hours ago |
0-84755 23 hours |
| 30477 |
jsm28 author:jsm28 |
feat(Geometry/Euclidean/Angle/Bisector): oriented angle bisection and equal distance |
Add a lemma
```lean
lemma dist_orthogonalProjection_eq_iff_oangle_eq {p p' : P} {s₁ s₂ : AffineSubspace ℝ P}
[s₁.direction.HasOrthogonalProjection] [s₂.direction.HasOrthogonalProjection]
(hp' : p' ∈ s₁ ⊓ s₂)
(hne : haveI : Nonempty s₁ := ⟨p', hp'.1⟩; haveI : Nonempty s₂ := ⟨p', hp'.2⟩;
(orthogonalProjection s₁ p : P) ≠ orthogonalProjection s₂ p)
(hp₁ : haveI : Nonempty s₁ := ⟨p', hp'.1⟩; orthogonalProjection s₁ p ≠ p')
(hp₂ : haveI : Nonempty s₂ := ⟨p', hp'.2⟩; orthogonalProjection s₂ p ≠ p') :
haveI : Nonempty s₁ := ⟨p', hp'.1⟩
haveI : Nonempty s₂ := ⟨p', hp'.2⟩
dist p (orthogonalProjection s₁ p) = dist p (orthogonalProjection s₂ p) ↔
∡ (orthogonalProjection s₁ p : P) p' p = ∡ p p' (orthogonalProjection s₂ p) :=
```
that is an oriented angle analogue of the existing `dist_orthogonalProjection_eq_iff_angle_eq`. Because the minimal nondegeneracy conditions required for the two directions of this lemma are different (whereas the unoriented version doesn't need any nondegeneracy conditions), those two directions are added as separate lemmas, each with minimal nondegeneracy conditions, from which the `iff` version is then deduced.
---
- [ ] depends on: #30474
- [ ] depends on: #30476
- [ ] depends on: #30698
[](https://gitpod.io/from-referrer/)
|
large-import
t-euclidean-geometry
|
106/0 |
Mathlib/Geometry/Euclidean/Angle/Bisector.lean |
1 |
3 |
['github-actions', 'jsm28', 'mathlib4-dependent-issues-bot'] |
nobody |
0-83515 23 hours ago |
1-11893 1 day ago |
1-14220 1 day |
| 30995 |
kckennylau author:kckennylau |
feat(RingTheory): adic limit |
For an `I`-adically complete `M` we define `limit : AdicCompletion I M ≃ₗ[R] M`. This should make #30989 and subsequent PR's smoother. It is intended to be used together with [AdicCompletion.mk](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/AdicCompletion/Basic.html#AdicCompletion.mk) : `AdicCompletion.AdicCauchySequence I M →ₗ[R] AdicCompletion I M`.
We also introduce `adicExpansion (ϖ : R) (hϖ : ϖ ∈ I) : (ℕ → M) →ₗ[R] AdicCauchySequence I M`, which sends a sequence `a : ℕ → M` to the Cauchy sequence `∑ ϖ ^ i • a i`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
84/0 |
Mathlib.lean,Mathlib/RingTheory/AdicCompletion/Limit.lean |
2 |
3 |
['github-actions', 'jjdishere', 'kckennylau'] |
nobody |
0-82584 22 hours ago |
1-1912 1 day ago |
1-1950 1 day |
| 25856 |
MichaelStollBayreuth author:MichaelStollBayreuth |
perf(Data.Real.Sqrt): make Real.sqrt irreducible |
We try to see what happens if we make Real.sqrt irreducible.
There are cases where this makes unification very significantly faster, compare [#mathlib4 > Coercion triggers timeout @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Coercion.20triggers.20timeout/near/517177117).
(Migrated manually from #24752)
---
[](https://gitpod.io/from-referrer/)
|
migrated-from-branch
t-data
|
7/5 |
Mathlib/Data/Real/Sqrt.lean |
1 |
6 |
['MichaelStollBayreuth', 'github-actions', 'j-loreaux', 'leanprover-bot'] |
ericrbg assignee:ericrbg |
0-79605 22 hours ago |
58-51248 1 month ago |
127-77838 127 days |
| 30059 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(Mathlib/Algebra/QuadraticAlgebra): norm, star structure on quadratic alg. |
Define the norm and the star structure on a quadratic algebra.
Application to the units, the zero divisors and the field structure (when there is one).
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
382/1 |
Mathlib.lean,Mathlib/Algebra/Group/Basic.lean,Mathlib/Algebra/QuadraticAlgebra.lean,Mathlib/Algebra/QuadraticAlgebra/Basic.lean |
4 |
79 |
['AntoineChambert-Loir', 'eric-wieser', 'github-actions', 'j-loreaux', 'riccardobrasca'] |
riccardobrasca assignee:riccardobrasca |
0-78888 21 hours ago |
7-58965 7 days ago |
30-12247 30 days |
| 30993 |
euprunin author:euprunin |
chore(Analysis/Convex): golf `sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair` using `grind` |
---
Show trace profiling of sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair: 368 ms before, 510 ms after
### Trace profiling of `sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair` before PR 30993
```diff
diff --git a/Mathlib/Analysis/Convex/Between.lean b/Mathlib/Analysis/Convex/Between.lean
index c046576ad8..63c6b96cae 100644
--- a/Mathlib/Analysis/Convex/Between.lean
+++ b/Mathlib/Analysis/Convex/Between.lean
@@ -740,6 +740,7 @@ variable [Ring R] [LinearOrder R] [IsStrictOrderedRing R]
[AddCommGroup V] [Module R V] [AddTorsor V P]
variable {R}
+set_option trace.profiler true in
/-- Suppose lines from two vertices of a triangle to interior points of the opposite side meet at
`p`. Then `p` lies in the interior of the first (and by symmetry the other) segment from a
vertex to the point on the opposite side. -/
```
```
ℹ [1510/1510] Built Mathlib.Analysis.Convex.Between (3.4s)
info: Mathlib/Analysis/Convex/Between.lean:744:0: [Elab.command] [0.039396] /--
Suppose lines from two vertices of a triangle to interior points of the opposite side meet at
`p`. Then `p` lies in the interior of the first (and by symmetry the other) segment from a
vertex to the point on the opposite side. -/
theorem sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair [NoZeroSMulDivisors R V] {t : Affine.Triangle R P}
{i₁ i₂ i₃ : Fin 3} (h₁₂ : i₁ ≠ i₂) {p₁ p₂ p : P} (h₁ : Sbtw R (t.points i₂) p₁ (t.points i₃))
(h₂ : Sbtw R (t.points i₁) p₂ (t.points i₃)) (h₁' : p ∈ line[R, t.points i₁, p₁])
(h₂' : p ∈ line[R, t.points i₂, p₂]) : Sbtw R (t.points i₁) p p₁ :=
by
have h₁₃ : i₁ ≠ i₃ := by
rintro rfl
simp at h₂
have h₂₃ : i₂ ≠ i₃ := by
rintro rfl
simp at h₁
have h3 : ∀ i : Fin 3, i = i₁ ∨ i = i₂ ∨ i = i₃ := by omega
have hu : (Finset.univ : Finset (Fin 3)) = { i₁, i₂, i₃ } :=
by
clear h₁ h₂ h₁' h₂'
decide +revert
have hp : p ∈ affineSpan R (Set.range t.points) :=
by
have hle : line[R, t.points i₁, p₁] ≤ affineSpan R (Set.range t.points) :=
by
refine affineSpan_pair_le_of_mem_of_mem (mem_affineSpan R (Set.mem_range_self _)) ?_
have hle : line[R, t.points i₂, t.points i₃] ≤ affineSpan R (Set.range t.points) :=
by
refine affineSpan_mono R ?_
simp [Set.insert_subset_iff]
rw [AffineSubspace.le_def'] at hle
exact hle _ h₁.wbtw.mem_affineSpan
rw [AffineSubspace.le_def'] at hle
exact hle _ h₁'
have h₁i := h₁.mem_image_Ioo
have h₂i := h₂.mem_image_Ioo
rw [Set.mem_image] at h₁i h₂i
rcases h₁i with ⟨r₁, ⟨hr₁0, hr₁1⟩, rfl⟩
rcases h₂i with ⟨r₂, ⟨hr₂0, hr₂1⟩, rfl⟩
rcases eq_affineCombination_of_mem_affineSpan_of_fintype hp with ⟨w, hw, rfl⟩
have h₁s :=
sign_eq_of_affineCombination_mem_affineSpan_single_lineMap t.independent hw (Finset.mem_univ _)
(Finset.mem_univ _) (Finset.mem_univ _) h₁₂ h₁₃ h₂₃ hr₁0 hr₁1 h₁'
have h₂s :=
sign_eq_of_affineCombination_mem_affineSpan_single_lineMap t.independent hw (Finset.mem_univ _)
(Finset.mem_univ _) (Finset.mem_univ _) h₁₂.symm h₂₃ h₁₃ hr₂0 hr₂1 h₂'
rw [← Finset.univ.affineCombination_affineCombinationSingleWeights R t.points (Finset.mem_univ i₁), ←
Finset.univ.affineCombination_affineCombinationLineMapWeights t.points (Finset.mem_univ _)
(Finset.mem_univ _)] at h₁' ⊢
refine
Sbtw.affineCombination_of_mem_affineSpan_pair t.independent hw
(Finset.univ.sum_affineCombinationSingleWeights R (Finset.mem_univ _))
(Finset.univ.sum_affineCombinationLineMapWeights (Finset.mem_univ _) (Finset.mem_univ _) _) h₁'
(Finset.mem_univ i₁) ?_
rw [Finset.affineCombinationSingleWeights_apply_self, Finset.affineCombinationLineMapWeights_apply_of_ne h₁₂ h₁₃,
sbtw_one_zero_iff]
have hs : ∀ i : Fin 3, SignType.sign (w i) = SignType.sign (w i₃) :=
by
intro i
rcases h3 i with (rfl | rfl | rfl)
· exact h₂s
· exact h₁s
· rfl
have hss : SignType.sign (∑ i, w i) = 1 := by simp [hw]
have hs' := sign_sum Finset.univ_nonempty (SignType.sign (w i₃)) fun i _ => hs i
rw [hs'] at hss
simp_rw [hss, sign_eq_one_iff] at hs
refine ⟨hs i₁, ?_⟩
rw [hu] at hw
rw [Finset.sum_insert, Finset.sum_insert, Finset.sum_singleton] at hw
· by_contra hle
rw [not_lt] at hle
exact (hle.trans_lt (lt_add_of_pos_right _ (Left.add_pos (hs i₂) (hs i₃)))).ne' hw
· simpa using h₂₃
· simpa [not_or] using ⟨h₁₂, h₁₃⟩
[Elab.definition.header] [0.029190] sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair
[Elab.step] [0.013458] expected type: Prop, term
NoZeroSMulDivisors R V
info: Mathlib/Analysis/Convex/Between.lean:744:0: [Elab.async] [0.375398] elaborating proof of sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair
[Elab.definition.value] [0.368189] sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair
[Elab.step] [0.352778]
have h₁₃ : i₁ ≠ i₃ := by
rintro rfl
simp at h₂
have h₂₃ : i₂ ≠ i₃ := by
rintro rfl
simp at h₁
have h3 : ∀ i : Fin 3, i = i₁ ∨ i = i₂ ∨ i = i₃ := by omega
have hu : (Finset.univ : Finset (Fin 3)) = { i₁, i₂, i₃ } :=
by
clear h₁ h₂ h₁' h₂'
decide +revert
have hp : p ∈ affineSpan R (Set.range t.points) :=
by
have hle : line[R, t.points i₁, p₁] ≤ affineSpan R (Set.range t.points) :=
by
refine affineSpan_pair_le_of_mem_of_mem (mem_affineSpan R (Set.mem_range_self _)) ?_
have hle : line[R, t.points i₂, t.points i₃] ≤ affineSpan R (Set.range t.points) :=
by
refine affineSpan_mono R ?_
[… 1038 lines omitted …]
_a})
(Eq.symm
(Finset.affineCombination_affineCombinationLineMapWeights
Finset.univ t.points (Finset.mem_univ i₂)
(Finset.mem_univ i₃) r₁)))
(Eq.mp
(congrArg
(fun _a ↦
(Finset.affineCombination R Finset.univ t.points) w ∈
affineSpan R (insert _a ⋯))
(Eq.symm
(Finset.affineCombination_affineCombinationSingleWeights
R Finset.univ t.points (Finset.mem_univ i₁))))
h₁'))
h₂' h₁s)
fun h ↦
Eq.ndrec (motive := fun {i₃} ↦
i₁ ≠ i₃ →
i₂ ≠ i₃ →
(∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃) →
Finset.univ = {i₁, i₂, i₃} →
Sbtw R (t.points i₂) ⋯ (t.points i₃) → ⋯ → ⋯)
(fun h₁₃ h₂₃ h3 hu h₁ h₂ h₁' h₂' h₁s h₂s ↦
Eq.refl (SignType.sign (w i)))
h h₁₃ h₂₃ h3 hu h₁ h₂
(Eq.mp
(congrArg
(fun _a ↦
(Finset.affineCombination R Finset.univ t.points) w ∈
affineSpan R
{(Finset.affineCombination R Finset.univ t.points)
(Finset.affineCombinationSingleWeights R i₁),
_a})
(Eq.symm
(Finset.affineCombination_affineCombinationLineMapWeights
Finset.univ t.points (Finset.mem_univ i₂)
(Finset.mem_univ i₃) r₁)))
(Eq.mp
(congrArg
(fun _a ↦
(Finset.affineCombination R Finset.univ t.points) w ∈
affineSpan R (insert _a ⋯))
(Eq.symm
(Finset.affineCombination_affineCombinationSingleWeights
R Finset.univ t.points (Finset.mem_univ i₁))))
h₁'))
h₂' h₁s h₂s;
have hss :=
of_eq_true
(Eq.trans
(congrArg (fun x ↦ x = 1)
(Eq.trans (congrArg (⇑SignType.sign) hw)
(sign_pos (of_eq_true zero_lt_one._simp_1))))
(eq_self 1));
have hs' :=
sign_sum Finset.univ_nonempty (SignType.sign (w i₃)) fun i x ↦ hs i;
⟨Eq.mp
(forall_congr fun i ↦
sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair._simp_1_3)
(Eq.mp
(forall_congr fun i ↦
congrArg (Eq (SignType.sign (w i)))
(Eq.mp (congrArg (fun _a ↦ _a = 1) hs') hss))
hs)
i₁,
Decidable.byContradiction fun hle ↦
LT.lt.ne'
(LE.le.trans_lt
(Eq.mp (congrArg (fun _a ↦ _a) (propext not_lt)) hle)
(lt_add_of_pos_right (w i₁)
(Left.add_pos
(Eq.mp
(forall_congr fun i ↦
sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair._simp_1_3)
(Eq.mp (forall_congr fun i ↦ ⋯) hs) i₂)
(Eq.mp
(forall_congr fun i ↦
sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair._simp_1_3)
(Eq.mp (forall_congr fun i ↦ ⋯) hs) i₃))))
(Eq.mp
(congrArg (fun _a ↦ w i₁ + (w i₂ + _a) = 1)
(Finset.sum_singleton w i₃))
(Eq.mp
(congrArg (fun _a ↦ w i₁ + _a = 1)
(Finset.sum_insert
(Eq.mpr
(_root_.id (congrArg Not Finset.mem_singleton._simp_1))
h₂₃)))
(Eq.mp
(congrArg (fun _a ↦ _a = 1)
(Finset.sum_insert (Eq.mpr (_root_.id ⋯) ⟨h₁₂, h₁₃⟩)))
(Eq.mp (congrArg (fun _a ↦ ⋯ = 1) hu) hw))))⟩)))))))
(Eq.symm right) hp h₁' h₂')
right h₂ h₂')
right h₁ h₁'
info: Mathlib/Analysis/Convex/Between.lean:758:56: [Elab.async] [0.035119] Lean.addDecl
[Kernel] [0.035088] ✅️ typechecking declarations [sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair._proof_1_1]
info: Mathlib/Analysis/Convex/Between.lean:747:8: [Elab.async] [0.020899] Lean.addDecl
[Kernel] [0.020849] ✅️ typechecking declarations [sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair]
Build completed successfully (1510 jobs).
```
### Trace profiling of `sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair` after PR 30993
```diff
diff --git a/Mathlib/Analysis/Convex/Between.lean b/Mathlib/Analysis/Convex/Between.lean
index c046576ad8..eed42b41c6 100644
--- a/Mathlib/Analysis/Convex/Between.lean
+++ b/Mathlib/Analysis/Convex/Between.lean
@@ -740,6 +740,7 @@ variable [Ring R] [LinearOrder R] [IsStrictOrderedRing R]
[AddCommGroup V] [Module R V] [AddTorsor V P]
variable {R}
+set_option trace.profiler true in
/-- Suppose lines from two vertices of a triangle to interior points of the opposite side meet at
`p`. Then `p` lies in the interior of the first (and by symmetry the other) segment from a
vertex to the point on the opposite side. -/
@@ -801,14 +802,7 @@ theorem sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair [NoZeroSMulDivisors R V]
have hs' := sign_sum Finset.univ_nonempty (SignType.sign (w i₃)) fun i _ => hs i
rw [hs'] at hss
simp_rw [hss, sign_eq_one_iff] at hs
- refine ⟨hs i₁, ?_⟩
- rw [hu] at hw
- rw [Finset.sum_insert, Finset.sum_insert, Finset.sum_singleton] at hw
- · by_contra hle
- rw [not_lt] at hle
- exact (hle.trans_lt (lt_add_of_pos_right _ (Left.add_pos (hs i₂) (hs i₃)))).ne' hw
- · simpa using h₂₃
- · simpa [not_or] using ⟨h₁₂, h₁₃⟩
+ grind
end LinearOrderedRing
```
```
ℹ [1510/1510] Built Mathlib.Analysis.Convex.Between (3.3s)
info: Mathlib/Analysis/Convex/Between.lean:744:0: [Elab.command] [0.036769] /--
Suppose lines from two vertices of a triangle to interior points of the opposite side meet at
`p`. Then `p` lies in the interior of the first (and by symmetry the other) segment from a
vertex to the point on the opposite side. -/
theorem sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair [NoZeroSMulDivisors R V] {t : Affine.Triangle R P}
{i₁ i₂ i₃ : Fin 3} (h₁₂ : i₁ ≠ i₂) {p₁ p₂ p : P} (h₁ : Sbtw R (t.points i₂) p₁ (t.points i₃))
(h₂ : Sbtw R (t.points i₁) p₂ (t.points i₃)) (h₁' : p ∈ line[R, t.points i₁, p₁])
(h₂' : p ∈ line[R, t.points i₂, p₂]) : Sbtw R (t.points i₁) p p₁ :=
by
have h₁₃ : i₁ ≠ i₃ := by
rintro rfl
simp at h₂
have h₂₃ : i₂ ≠ i₃ := by
rintro rfl
simp at h₁
have h3 : ∀ i : Fin 3, i = i₁ ∨ i = i₂ ∨ i = i₃ := by omega
have hu : (Finset.univ : Finset (Fin 3)) = { i₁, i₂, i₃ } :=
by
clear h₁ h₂ h₁' h₂'
decide +revert
have hp : p ∈ affineSpan R (Set.range t.points) :=
by
have hle : line[R, t.points i₁, p₁] ≤ affineSpan R (Set.range t.points) :=
by
refine affineSpan_pair_le_of_mem_of_mem (mem_affineSpan R (Set.mem_range_self _)) ?_
have hle : line[R, t.points i₂, t.points i₃] ≤ affineSpan R (Set.range t.points) :=
by
refine affineSpan_mono R ?_
simp [Set.insert_subset_iff]
rw [AffineSubspace.le_def'] at hle
exact hle _ h₁.wbtw.mem_affineSpan
rw [AffineSubspace.le_def'] at hle
exact hle _ h₁'
have h₁i := h₁.mem_image_Ioo
have h₂i := h₂.mem_image_Ioo
rw [Set.mem_image] at h₁i h₂i
rcases h₁i with ⟨r₁, ⟨hr₁0, hr₁1⟩, rfl⟩
rcases h₂i with ⟨r₂, ⟨hr₂0, hr₂1⟩, rfl⟩
rcases eq_affineCombination_of_mem_affineSpan_of_fintype hp with ⟨w, hw, rfl⟩
have h₁s :=
sign_eq_of_affineCombination_mem_affineSpan_single_lineMap t.independent hw (Finset.mem_univ _)
(Finset.mem_univ _) (Finset.mem_univ _) h₁₂ h₁₃ h₂₃ hr₁0 hr₁1 h₁'
have h₂s :=
sign_eq_of_affineCombination_mem_affineSpan_single_lineMap t.independent hw (Finset.mem_univ _)
(Finset.mem_univ _) (Finset.mem_univ _) h₁₂.symm h₂₃ h₁₃ hr₂0 hr₂1 h₂'
rw [← Finset.univ.affineCombination_affineCombinationSingleWeights R t.points (Finset.mem_univ i₁), ←
Finset.univ.affineCombination_affineCombinationLineMapWeights t.points (Finset.mem_univ _)
(Finset.mem_univ _)] at h₁' ⊢
refine
Sbtw.affineCombination_of_mem_affineSpan_pair t.independent hw
(Finset.univ.sum_affineCombinationSingleWeights R (Finset.mem_univ _))
(Finset.univ.sum_affineCombinationLineMapWeights (Finset.mem_univ _) (Finset.mem_univ _) _) h₁'
(Finset.mem_univ i₁) ?_
rw [Finset.affineCombinationSingleWeights_apply_self, Finset.affineCombinationLineMapWeights_apply_of_ne h₁₂ h₁₃,
sbtw_one_zero_iff]
have hs : ∀ i : Fin 3, SignType.sign (w i) = SignType.sign (w i₃) :=
by
intro i
rcases h3 i with (rfl | rfl | rfl)
· exact h₂s
· exact h₁s
· rfl
have hss : SignType.sign (∑ i, w i) = 1 := by simp [hw]
have hs' := sign_sum Finset.univ_nonempty (SignType.sign (w i₃)) fun i _ => hs i
rw [hs'] at hss
simp_rw [hss, sign_eq_one_iff] at hs
grind
[Elab.definition.header] [0.027384] sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair
[Elab.step] [0.013866] expected type: Prop, term
NoZeroSMulDivisors R V
info: Mathlib/Analysis/Convex/Between.lean:744:0: [Elab.async] [0.517542] elaborating proof of sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair
[Elab.definition.value] [0.510462] sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair
[Elab.step] [0.494049]
have h₁₃ : i₁ ≠ i₃ := by
rintro rfl
simp at h₂
have h₂₃ : i₂ ≠ i₃ := by
rintro rfl
simp at h₁
have h3 : ∀ i : Fin 3, i = i₁ ∨ i = i₂ ∨ i = i₃ := by omega
have hu : (Finset.univ : Finset (Fin 3)) = { i₁, i₂, i₃ } :=
by
clear h₁ h₂ h₁' h₂'
decide +revert
have hp : p ∈ affineSpan R (Set.range t.points) :=
by
have hle : line[R, t.points i₁, p₁] ≤ affineSpan R (Set.range t.points) :=
by
refine affineSpan_pair_le_of_mem_of_mem (mem_affineSpan R (Set.mem_range_self _)) ?_
have hle : line[R, t.points i₂, t.points i₃] ≤ affineSpan R (Set.range t.points) :=
by
refine affineSpan_mono R ?_
simp [Set.insert_subset_iff]
rw [AffineSubspace.le_def'] at hle
exact hle _ h₁.wbtw.mem_affineSpan
rw [AffineSubspace.le_def'] at hle
exact hle _ h₁'
have h₁i := h₁.mem_image_Ioo
have h₂i := h₂.mem_image_Ioo
[… 1050 lines omitted …]
(Finset.affineCombination R Finset.univ t.points) w ∈
affineSpan R {_a, ⋯ r₁})
(Eq.symm
(Finset.affineCombination_affineCombinationSingleWeights
R Finset.univ t.points (Finset.mem_univ i₁))))
h₁'))
h₂' h₂s)
fun h ↦
Or.casesOn h
(fun h ↦
Eq.ndrec (motive := fun {i₂} ↦
i₁ ≠ i₂ →
i₂ ≠ i₃ →
(∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃) →
Finset.univ = {i₁, i₂, i₃} →
Sbtw R (t.points i₂) ⋯ (t.points i₃) → ⋯ → ⋯)
(fun h₁₂ h₂₃ h3 hu h₁ h₁' h₂' h₁s ↦ h₁s) h h₁₂ h₂₃ h3 hu h₁
(Eq.mp
(congrArg
(fun _a ↦
(Finset.affineCombination R Finset.univ t.points) w ∈
affineSpan R
{(Finset.affineCombination R Finset.univ t.points)
(Finset.affineCombinationSingleWeights R i₁),
_a})
(Eq.symm
(Finset.affineCombination_affineCombinationLineMapWeights
Finset.univ t.points (Finset.mem_univ i₂)
(Finset.mem_univ i₃) r₁)))
(Eq.mp
(congrArg
(fun _a ↦
(Finset.affineCombination R Finset.univ t.points) w ∈
affineSpan R (insert _a ⋯))
(Eq.symm
(Finset.affineCombination_affineCombinationSingleWeights
R Finset.univ t.points (Finset.mem_univ i₁))))
h₁'))
h₂' h₁s)
fun h ↦
Eq.ndrec (motive := fun {i₃} ↦
i₁ ≠ i₃ →
i₂ ≠ i₃ →
(∀ (i : Fin 3), i = i₁ ∨ i = i₂ ∨ i = i₃) →
Finset.univ = {i₁, i₂, i₃} →
Sbtw R (t.points i₂) ⋯ (t.points i₃) → ⋯ → ⋯)
(fun h₁₃ h₂₃ h3 hu h₁ h₂ h₁' h₂' h₁s h₂s ↦
Eq.refl (SignType.sign (w i)))
h h₁₃ h₂₃ h3 hu h₁ h₂
(Eq.mp
(congrArg
(fun _a ↦
(Finset.affineCombination R Finset.univ t.points) w ∈
affineSpan R
{(Finset.affineCombination R Finset.univ t.points)
(Finset.affineCombinationSingleWeights R i₁),
_a})
(Eq.symm
(Finset.affineCombination_affineCombinationLineMapWeights
Finset.univ t.points (Finset.mem_univ i₂)
(Finset.mem_univ i₃) r₁)))
(Eq.mp
(congrArg
(fun _a ↦
(Finset.affineCombination R Finset.univ t.points) w ∈
affineSpan R (insert _a ⋯))
(Eq.symm
(Finset.affineCombination_affineCombinationSingleWeights
R Finset.univ t.points (Finset.mem_univ i₁))))
h₁'))
h₂' h₁s h₂s;
have hss :=
of_eq_true
(Eq.trans
(congrArg (fun x ↦ x = 1)
(Eq.trans (congrArg (⇑SignType.sign) hw)
(sign_pos (of_eq_true zero_lt_one._simp_1))))
(eq_self 1));
have hs' :=
sign_sum Finset.univ_nonempty (SignType.sign (w i₃)) fun i x ↦ hs i;
sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair._proof_1_4 h₁₂ h₁₃ h₂₃ hu w
hw
(Eq.mp
(forall_congr fun i ↦
sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair._simp_1_3)
(Eq.mp
(forall_congr fun i ↦
congrArg (Eq (SignType.sign (w i)))
(Eq.mp (congrArg (fun _a ↦ _a = 1) hs') hss))
hs)))))))))
(Eq.symm right) hp h₁' h₂')
right h₂ h₂')
right h₁ h₁'
info: Mathlib/Analysis/Convex/Between.lean:758:56: [Elab.async] [0.034446] Lean.addDecl
[Kernel] [0.034414] ✅️ typechecking declarations [sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair._proof_1_1]
info: Mathlib/Analysis/Convex/Between.lean:805:2: [Elab.async] [0.010829] Lean.addDecl
[Kernel] [0.010814] ✅️ typechecking declarations [sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair._proof_1_4]
info: Mathlib/Analysis/Convex/Between.lean:747:8: [Elab.async] [0.019719] Lean.addDecl
[Kernel] [0.019644] ✅️ typechecking declarations [sbtw_of_sbtw_of_sbtw_of_mem_affineSpan_pair]
Build completed successfully (1510 jobs).
```
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
1/8 |
Mathlib/Analysis/Convex/Between.lean |
1 |
3 |
['euprunin', 'github-actions', 'grunweg'] |
grunweg assignee:grunweg |
0-76342 21 hours ago |
0-82122 22 hours ago |
0-85112 23 hours |
| 31001 |
gasparattila author:gasparattila |
fix(Tactic/FunProp): fix "loose bvar in expression" error |
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
1/1 |
Mathlib/Tactic/FunProp/Core.lean |
1 |
2 |
['github-actions', 'grunweg'] |
nobody |
0-76146 21 hours ago |
0-83311 23 hours ago |
0-83350 23 hours |
| 30928 |
themathqueen author:themathqueen |
chore(LinearAlgebra/Matrix/PosDef): rename `Matrix.InnerProductSpace.ofMatrix` |
Renames:
- `Matrix.NormedAddCommGroup.ofMatrix` -> `Matrix.PosDef.normedAddCommGroup`
- `Matrix.InnerProductSpace.ofMatrix` -> `Matrix.PosDef.innerProductSpace`
Also defines `Matrix.PosSemidef.seminormedAddCommGroup` and `Matrix.PosSemidef.innerProductSpace` for the pre-inner product space induced by a positive semi-definite matrix. (The positive definite version extends this, so they, of course, have the same inner product.)
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
45/24 |
Mathlib/LinearAlgebra/Matrix/LDL.lean,Mathlib/LinearAlgebra/Matrix/PosDef.lean |
2 |
15 |
['eric-wieser', 'github-actions', 'themathqueen'] |
nobody |
0-75206 20 hours ago |
2-74348 2 days ago |
2-75040 2 days |
| 25804 |
erdOne author:erdOne |
feat: `∑ z ∈ L, ‖z - x‖⁻ʳ` converges for lattices `L` |
---
[](https://gitpod.io/from-referrer/)
---
*This PR continues the work from #21673.*
*Original PR: https://github.com/leanprover-community/mathlib4/pull/21673* |
t-analysis |
320/0 |
Mathlib.lean,Mathlib/Algebra/BigOperators/Group/Finset/Disjoint.lean,Mathlib/Algebra/Module/ZLattice/Summable.lean,Mathlib/Order/Disjointed.lean |
4 |
3 |
['github-actions', 'wwylele'] |
fpvandoorn assignee:fpvandoorn |
0-74706 20 hours ago |
0-74706 20 hours ago |
77-9671 77 days |
| 28719 |
mitchell-horner author:mitchell-horner |
refactor: redefine `IsTuranMaximal` |
Redefined `IsTuranMaximal := G.IsExtremal (CliqueFree · (r + 1))` and
- replaced `classical` in `IsTuranMaximal.le_iff_eq` with `DecidableRel`
- refactored `turanGraph.instDecidableRelAdj`, `turanGraph_zero`, `exists_isTuranMaximal`
- added `open Fintype`
- replaced `simp only` with `rw` or `simp_rw`
---
- [x] depends on: #28721
- [x] depends on: #29054
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
33/46 |
Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean |
1 |
11 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'mitchell-horner', 'vihdzp'] |
kmill assignee:kmill |
0-74619 20 hours ago |
31-5988 1 month ago |
58-25110 58 days |
| 30973 |
vihdzp author:vihdzp |
feat: generalize `Finsupp.lex_lt_iff_of_unique` |
---
- [x] depends on: #30481
[](https://gitpod.io/from-referrer/)
|
t-order |
46/13 |
Mathlib/Data/DFinsupp/Lex.lean,Mathlib/Data/Finsupp/Lex.lean,Mathlib/Order/PiLex.lean |
3 |
3 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
nobody |
0-73585 20 hours ago |
0-73585 20 hours ago |
0-82454 22 hours |
| 29964 |
Vierkantor author:Vierkantor |
feat(TacticAnalysis): check if we are in a `try`/`anyGoals` context |
This PR adds a check if the tactic is being run in a `try` or `anyGoals` call, so that we do not add a warning for the original tactic failing in this context. This was the source of a few "original tactic failed" in the `grind` regression reports.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
84/36 |
Mathlib/Tactic/TacticAnalysis.lean,Mathlib/Tactic/TacticAnalysis/Declarations.lean,MathlibTest/TacticAnalysis.lean |
3 |
3 |
['github-actions', 'mathlib4-merge-conflict-bot'] |
adamtopaz assignee:adamtopaz |
0-71222 19 hours ago |
0-71242 19 hours ago |
28-58092 28 days |
| 30991 |
tb65536 author:tb65536 |
feat(Algebra/Group/Action/Defs): add `SMulDistribClass` |
This PR adds `SMulDistribClass` imposing `g • r • s = (g • r) • (g • s)`.
Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Typeclass.20for.20compatible.20group.20actions
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
27/5 |
Mathlib/Algebra/Algebra/Defs.lean,Mathlib/Algebra/Group/Action/Defs.lean |
2 |
2 |
['github-actions', 'riccardobrasca'] |
nobody |
0-70098 19 hours ago |
1-28956 1 day ago |
1-28934 1 day |
| 30650 |
JovanGerb author:JovanGerb |
perf(reassoc, to_app, elementwise): don't pass the same proof to the kernel again |
In `reassoc`, `to_app`, `elementwise`, the proof of the original lemma was being used to prove the modified lemma. This is silly, because the modified lemma can be proved using the original lemma directly. Hence, this PR modifies `addRelatedDecl` to include this optimization.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
12/12 |
Mathlib/Tactic/CategoryTheory/Elementwise.lean,Mathlib/Tactic/CategoryTheory/Reassoc.lean,Mathlib/Tactic/CategoryTheory/ToApp.lean,Mathlib/Util/AddRelatedDecl.lean |
4 |
5 |
['github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'plp127'] |
dwrensha assignee:dwrensha |
0-67350 18 hours ago |
10-61118 10 days ago |
10-64851 10 days |
| 31012 |
Ruben-VandeVelde author:Ruben-VandeVelde |
feat: {List,Multiset,Finset}.prod_le_sum |
---
[](https://gitpod.io/from-referrer/)
|
|
34/25 |
Mathlib/Algebra/MvPolynomial/Degrees.lean,Mathlib/Algebra/Order/BigOperators/Group/Finset.lean,Mathlib/Algebra/Order/BigOperators/Group/List.lean,Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean,Mathlib/Algebra/Polynomial/BigOperators.lean,Mathlib/Analysis/Normed/Group/Basic.lean |
6 |
1 |
['github-actions'] |
nobody |
0-67080 18 hours ago |
0-67153 18 hours ago |
0-67130 18 hours |
| 29788 |
robertmaxton42 author:robertmaxton42 |
feat (Topology): adds bundled continuous maps for sum, sigma, subtype, mapsto, inclusion |
Adds a collection of bundled continuous maps and homeomorphisms, and helper lemmas for working with their compositions.
Bundling of existing continuity lemmas:
* `ContinuousMap.subtypeVal`
* `ContinuousMap.inl` and `.inr`; `ContinuousMap.sum` bundles `Continuous.sumElim`; `ContinuousMap.sumMap`, which is a quotient map when both components are quotient maps
* `ContinuousMap.sigmaMap`, which is a quotient map when given a family of quotient maps
* `ContinuousMap.mapsTo` bundles `ContinuousOn.restrict_mapsTo`
New functions:
* `ContinuousMap.preimageValIncl : C(s ↓∩ t, t)` and `.inclPreimageVal C(s, t ↓∩ s)`, and their unbundled functions in `Set`
* `Homeomorph.Set.preimageVal` witnesses that the two are opposite directions of a homeomorphism
* Descending from a coherent set of subspaces is a quotient map
The primary use for these bundled maps is easy composition and the ability to introduce them by rewriting right-to-left: it is much more convenient to write `subtypeVal.comp _` than to use either the anonymous constructor (which doesn't work in any position without an expected type) or `ContinuousMap.mk` (which will disappear as soon as it is coerced to a function, making it difficult to use in mixed-categorical contexts where many maps can only be reduced by introducing a composition with some other map.)
This PR is part of a family of PRs that ultimately construct transformations in both directions between the concrete `Topology.RelCWComplex` and abstract `TopCat.RelativeCWComplex`. `.mapsTo` in particular bundles together a couple of potentially nontrivial proofs in a way that makes them easy to refer to later; I use it and `.subtypeVal` particularly heavily later in a dependent PR to build the cell inclusion maps on both sides of the equivalence.
---
[](https://gitpod.io/from-referrer/)
|
large-import |
226/3 |
Mathlib/Data/Set/Subset.lean,Mathlib/Topology/Category/TopCat/Limits/Products.lean,Mathlib/Topology/Coherent.lean,Mathlib/Topology/Constructions.lean,Mathlib/Topology/Constructions/SumProd.lean,Mathlib/Topology/ContinuousMap/Basic.lean,scripts/noshake.json |
7 |
7 |
['adamtopaz', 'github-actions', 'robertmaxton42'] |
adamtopaz assignee:adamtopaz |
0-66838 18 hours ago |
25-29897 25 days ago |
40-25977 40 days |
| 31010 |
kebekus author:kebekus |
feat: sums of meromorphic functions are meromorphic, Mark II |
In complete analogy to existing statements about products, establish in very few lines that sums of meromorphic functions are meromorphic. Fix several docstrings.
This is Mark II of my original PR #30587. I decided to open a new, clean PR after the original PR became too messy because of substantial changes to the original PR that then needed to be reverted.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
38/6 |
Mathlib/Analysis/Meromorphic/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
0-66831 18 hours ago |
0-69203 19 hours ago |
0-69242 19 hours |
| 29715 |
ADedecker author:ADedecker |
feat: generalize `IsClosed.vadd_right_of_isCompact` to proper actions |
I realized a few weeks after adding them to Mathlib that the more conceptual approach for lemmas of the form "`s • t` is closed when one of `s` and `t` is closed and the other is compact" is that of proper maps and proper actions. This PR switches to this approach.
More precisely:
- I refactored the proof [IsClosed.smul_left_of_isCompact](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Algebra/Group/Pointwise.html#IsClosed.smul_left_of_isCompact) in terms of properness. The proof is essentially the same length, but conceptually simpler.
- More importantly, I generalize [IsClosed.vadd_right_of_isCompact](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Algebra/Group/AddTorsor.html#IsClosed.vadd_right_of_isCompact) from topological torsors to proper actions. Note that I do not assume separation, which creates some troubles as compact sets are not closed...
---
- [x] depends on: #30387
- [x] depends on: #30406
- [ ] depends on: #30410
- [x] depends on: #30411
- [x] depends on: #30409
[](https://gitpod.io/from-referrer/)
|
t-topology |
72/42 |
Mathlib/Topology/Algebra/Group/AddTorsor.lean,Mathlib/Topology/Algebra/Group/Pointwise.lean,Mathlib/Topology/Algebra/ProperAction/Basic.lean |
3 |
4 |
['ADedecker', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
grunweg assignee:grunweg |
0-65636 18 hours ago |
4-63338 4 days ago |
28-12362 28 days |
| 31009 |
ADedecker author:ADedecker |
doc: mention freeness in `IsCancelSMul` |
Future work: come up with a mechanism for discovering these. I would advocate for a permanently deprecated alias `IsFreeAction` just for that purpose.
---
Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Free.20actions/near/546328709
[](https://gitpod.io/from-referrer/)
|
t-algebra
easy
documentation
label:t-algebra$ |
6/2 |
Mathlib/Algebra/Group/Action/Defs.lean |
1 |
1 |
['github-actions'] |
nobody |
0-65563 18 hours ago |
0-70347 19 hours ago |
0-70388 19 hours |
| 30371 |
EtienneC30 author:EtienneC30 |
feat: covarianceBilin of the push-forward measure |
---
- [x] depends on: #30324
- [x] depends on: #30362
From BrownianMotion
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
37/0 |
Mathlib/Probability/Moments/Basic.lean,Mathlib/Probability/Moments/CovarianceBilin.lean |
2 |
4 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
nobody |
0-65477 18 hours ago |
0-65479 18 hours ago |
0-67342 18 hours |
| 31016 |
Ruben-VandeVelde author:Ruben-VandeVelde |
feat: add List.le_prod_of_submultiplicative and friends |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
69/25 |
Mathlib/Algebra/BigOperators/Group/List/Defs.lean,Mathlib/Algebra/Order/BigOperators/Group/List.lean,Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean |
3 |
1 |
['github-actions'] |
nobody |
0-64457 17 hours ago |
0-64457 17 hours ago |
0-64612 17 hours |
| 30936 |
themathqueen author:themathqueen |
feat(Data/Int): define `Int.fib`, the extended version of `Nat.fib` onto the integers |
We define `Int.fib`, the integer version of `Nat.fib`, which satisfies `Int.fib 0 = 0`, `Int.fib 1 = 1`, and `Int.fib (n + 2) = Int.fib n + Int.fib (n + 1)`.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
91/0 |
Mathlib.lean,Mathlib/Data/Int/Fib.lean |
2 |
9 |
['github-actions', 'themathqueen', 'vihdzp'] |
nobody |
0-64264 17 hours ago |
1-67102 1 day ago |
2-62768 2 days |
| 30792 |
tb65536 author:tb65536 |
feat(FieldTheory/Galois/IsGaloisGroup): `IsGaloisGroup` is preserved by passing to the fraction field |
This PR shows that `IsGaloisGroup` is preserved by passing to the fraction field.
---
- [x] depends on: #30645
- [x] depends on: #30791
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
large-import
t-algebra
label:t-algebra$ |
61/1 |
Mathlib/FieldTheory/Galois/IsGaloisGroup.lean |
1 |
7 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'riccardobrasca', 'tb65536'] |
nobody |
0-63056 17 hours ago |
2-63124 2 days ago |
2-68972 2 days |
| 30909 |
vihdzp author:vihdzp |
chore(Logic/Equiv/Basic): golf using `aesop` / `grind` |
Lemmas about `Equiv.swap` are very heavy in casework, which is precisely what these tactics excel at.
---
[](https://gitpod.io/from-referrer/)
|
t-logic |
18/44 |
Mathlib/Data/Set/Prod.lean,Mathlib/Logic/Embedding/Basic.lean,Mathlib/Logic/Equiv/Basic.lean |
3 |
3 |
['github-actions', 'grunweg', 'themathqueen'] |
nobody |
0-62023 17 hours ago |
0-62023 17 hours ago |
1-39083 1 day |
| 30730 |
JovanGerb author:JovanGerb |
feat: new `by_cases!` tactic |
This PR defines the `by_cases! h : p` tactic, which is a macro for `by_cases h : p` followed by a `try push_neg at h` in the second goal. We use `try push_neg` instead of `push_neg` to make the tactic also succeed when no negation is pushed. Should there maybe be an optional linter telling you to use `by_cases` instead if possible?
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
33/0 |
Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/ByCases.lean,scripts/noshake.json |
4 |
2 |
['adamtopaz', 'github-actions'] |
adamtopaz assignee:adamtopaz |
0-61635 17 hours ago |
8-58459 8 days ago |
8-58500 8 days |
| 30662 |
urkud author:urkud |
feat(LocallyFinite): add `of_comp_surjective` |
---
Cleaning up old branches. Feel free to reject.
[](https://gitpod.io/from-referrer/)
|
maintainer-merge
t-topology
|
7/0 |
Mathlib/Topology/LocallyFinite.lean |
1 |
2 |
['Ruben-VandeVelde', 'github-actions', 'plp127'] |
j-loreaux assignee:j-loreaux |
0-61426 17 hours ago |
0-61426 17 hours ago |
10-42999 10 days |
| 29321 |
FormulaRabbit81 author:FormulaRabbit81 |
refactor(Topology): cleaner way to get metric spaces from emetric spaces |
---
- [x] depends on: #30721
- [x] depends on: #30722
[](https://gitpod.io/from-referrer/)
|
t-topology |
71/81 |
Mathlib/Analysis/Normed/Lp/PiLp.lean,Mathlib/Analysis/Normed/Lp/ProdLp.lean,Mathlib/Data/ENNReal/Real.lean,Mathlib/Topology/MetricSpace/Basic.lean,Mathlib/Topology/MetricSpace/Pseudo/Constructions.lean,Mathlib/Topology/MetricSpace/Pseudo/Defs.lean,Mathlib/Topology/MetricSpace/Pseudo/Pi.lean,Mathlib/Topology/MetricSpace/UniformConvergence.lean |
8 |
25 |
['FormulaRabbit81', 'YaelDillies', 'github-actions', 'j-loreaux', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'sgouezel'] |
nobody |
0-61275 17 hours ago |
0-64385 17 hours ago |
2-66686 2 days |
| 25945 |
adomani author:adomani |
feat: the empty line in commands linter |
This linter flags empty lines within a command.
It allows empty lines within doc-strings, module-docs and a couple of other "sensible" places.
It also skips files that are likely to contain meta-code, since there the use of empty lines in definition is more widespread.
This PR continues the work from #25236. |
large-import
t-linter
|
380/22 |
Mathlib.lean,Mathlib/Algebra/Polynomial/RuleOfSigns.lean,Mathlib/Analysis/Meromorphic/FactorizedRational.lean,Mathlib/CategoryTheory/Comma/StructuredArrow/CommaMap.lean,Mathlib/CategoryTheory/Monoidal/Opposite/Mon_.lean,Mathlib/Data/UInt.lean,Mathlib/Init.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean,Mathlib/RingTheory/Flat/TorsionFree.lean,Mathlib/RingTheory/HahnSeries/HahnEmbedding.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter/EmptyLine.lean,MathlibTest/EmptyLine.lean |
13 |
23 |
['adomani', 'bryangingechen', 'eric-wieser', 'github-actions', 'mathlib4-merge-conflict-bot'] |
bryangingechen assignee:bryangingechen |
0-60633 16 hours ago |
1-1932 1 day ago |
48-42274 48 days |
| 30683 |
YaelDillies author:YaelDillies |
chore: use `IsAddTorsionFree M` instead of `NoZeroSMulDivisors ℕ M`/`NoZeroSMulDivisors ℤ M` |
These are all equivalent spellings, but the former works without knowing about `Module`.
---
- [x] depends on: #30680
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
101/100 |
Mathlib/Algebra/Lie/Sl2.lean,Mathlib/Algebra/Lie/Weights/Chain.lean,Mathlib/Algebra/Lie/Weights/Killing.lean,Mathlib/Algebra/Module/Rat.lean,Mathlib/Algebra/Module/Torsion.lean,Mathlib/Algebra/Module/ZLattice/Basic.lean,Mathlib/Algebra/NoZeroSMulDivisors/Basic.lean,Mathlib/Algebra/Polynomial/Derivative.lean,Mathlib/Algebra/Polynomial/HasseDeriv.lean,Mathlib/Algebra/Ring/CharZero.lean,Mathlib/Analysis/Normed/Module/Ball/Action.lean,Mathlib/Analysis/Normed/Module/Basic.lean,Mathlib/GroupTheory/Subgroup/Saturated.lean,Mathlib/LinearAlgebra/Basis/Submodule.lean,Mathlib/LinearAlgebra/Reflection.lean,Mathlib/LinearAlgebra/RootSystem/Base.lean,Mathlib/LinearAlgebra/RootSystem/Basic.lean,Mathlib/LinearAlgebra/RootSystem/Chain.lean,Mathlib/LinearAlgebra/RootSystem/Defs.lean,Mathlib/LinearAlgebra/RootSystem/Finite/Lemmas.lean,Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Lemmas.lean,Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Relations.lean,Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Semisimple.lean,Mathlib/LinearAlgebra/RootSystem/Reduced.lean,Mathlib/MeasureTheory/Group/Integral.lean,Mathlib/RingTheory/Binomial.lean,Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean,Mathlib/RingTheory/PowerSeries/Derivative.lean,Mathlib/RingTheory/TensorProduct/Maps.lean,Mathlib/Topology/Category/Profinite/Nobeling/ZeroLimit.lean |
30 |
3 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
nobody |
0-60594 16 hours ago |
1-8789 1 day ago |
1-35889 1 day |
| 30848 |
YaelDillies author:YaelDillies |
refactor: define `<` on `WithBot`/`WithTop` as an inductive predicate |
Follow up to #19668, where I did the same for `LE` but forgot to do it for `LT`.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
52/39 |
Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Analysis/Analytic/OfScalars.lean,Mathlib/Analysis/Oscillation.lean,Mathlib/Order/WithBot.lean,Mathlib/RingTheory/PowerBasis.lean |
5 |
12 |
['JovanGerb', 'Vierkantor', 'YaelDillies', 'b-mehta', 'github-actions', 'vihdzp'] |
nobody |
0-59680 16 hours ago |
4-59203 4 days ago |
4-64075 4 days |
| 30242 |
YaelDillies author:YaelDillies |
chore: rename `mul_le_mul_right'` to `mul_le_mul_left` |
---
- [x] depends on: #30508
- [x] depends on: #30632
[](https://gitpod.io/from-referrer/)
|
t-order
t-algebra
label:t-algebra$ |
342/380 |
Archive/Wiedijk100Theorems/CubingACube.lean,Counterexamples/OrderedCancelAddCommMonoidWithBounds.lean,Mathlib/Algebra/Algebra/Operations.lean,Mathlib/Algebra/Group/UniqueProds/Basic.lean,Mathlib/Algebra/Lie/Subalgebra.lean,Mathlib/Algebra/Module/Submodule/Pointwise.lean,Mathlib/Algebra/MonoidAlgebra/Degree.lean,Mathlib/Algebra/Order/AbsoluteValue/Basic.lean,Mathlib/Algebra/Order/AddTorsor.lean,Mathlib/Algebra/Order/Field/Pi.lean,Mathlib/Algebra/Order/Group/Defs.lean,Mathlib/Algebra/Order/Group/Int.lean,Mathlib/Algebra/Order/Group/Nat.lean,Mathlib/Algebra/Order/Group/Opposite.lean,Mathlib/Algebra/Order/Group/PiLex.lean,Mathlib/Algebra/Order/Group/Units.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/GroupWithZero/Unbundled/Defs.lean,Mathlib/Algebra/Order/Monoid/Associated.lean,Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean,Mathlib/Algebra/Order/Monoid/Defs.lean,Mathlib/Algebra/Order/Monoid/OrderDual.lean,Mathlib/Algebra/Order/Monoid/Prod.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Units.lean,Mathlib/Algebra/Order/Nonneg/Ring.lean,Mathlib/Algebra/Order/Pi.lean,Mathlib/Algebra/Order/Positive/Ring.lean,Mathlib/Algebra/Order/Ring/Archimedean.lean,Mathlib/Algebra/Order/Ring/Basic.lean,Mathlib/Algebra/Order/Ring/Canonical.lean,Mathlib/Algebra/Order/Ring/Nat.lean,Mathlib/Algebra/Order/Ring/Rat.lean,Mathlib/Algebra/Order/Star/Basic.lean,Mathlib/Algebra/Order/ToIntervalMod.lean,Mathlib/Algebra/Tropical/Basic.lean,Mathlib/Analysis/CStarAlgebra/Multiplier.lean,Mathlib/Analysis/Matrix/Order.lean,Mathlib/Analysis/MeanInequalities.lean,Mathlib/Analysis/Normed/Group/Basic.lean,Mathlib/Analysis/Normed/Ring/Basic.lean,Mathlib/Analysis/Normed/Unbundled/SeminormFromConst.lean,Mathlib/Analysis/Normed/Unbundled/SmoothingSeminorm.lean,Mathlib/Analysis/NormedSpace/MStructure.lean,Mathlib/Analysis/PSeries.lean,Mathlib/Combinatorics/Additive/CauchyDavenport.lean,Mathlib/Combinatorics/Additive/Energy.lean,Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean,Mathlib/Combinatorics/SetFamily/Kleitman.lean,Mathlib/Computability/Language.lean,Mathlib/Data/ENNReal/Action.lean,Mathlib/Data/ENNReal/Basic.lean,Mathlib/Data/ENNReal/Inv.lean,Mathlib/Data/EReal/Inv.lean,Mathlib/Data/Finsupp/Lex.lean,Mathlib/Data/Int/Interval.lean,Mathlib/Data/Nat/Choose/Factorization.lean,Mathlib/Data/Nat/Fib/Zeckendorf.lean,Mathlib/Data/Nat/PartENat.lean,Mathlib/Data/Num/ZNum.lean,Mathlib/Data/Ordmap/Ordset.lean,Mathlib/Data/Real/Basic.lean,Mathlib/Data/Real/StarOrdered.lean,Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean,Mathlib/Geometry/Convex/Cone/Basic.lean,Mathlib/GroupTheory/DivisibleHull.lean,Mathlib/GroupTheory/MonoidLocalization/Order.lean,Mathlib/GroupTheory/Schreier.lean,Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean,Mathlib/MeasureTheory/Function/Intersectivity.lean,Mathlib/MeasureTheory/Function/SimpleFunc.lean,Mathlib/MeasureTheory/Integral/Bochner/VitaliCaratheodory.lean,Mathlib/MeasureTheory/Integral/Lebesgue/Add.lean,Mathlib/NumberTheory/EllipticDivisibilitySequence.lean,Mathlib/NumberTheory/FrobeniusNumber.lean,Mathlib/NumberTheory/Zsqrtd/Basic.lean,Mathlib/Order/Partition/Equipartition.lean,Mathlib/Probability/Independence/Integration.lean,Mathlib/Probability/Kernel/Defs.lean,Mathlib/RingTheory/DedekindDomain/Different.lean,Mathlib/RingTheory/DedekindDomain/Factorization.lean,Mathlib/RingTheory/HahnSeries/Lex.lean,Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean,Mathlib/SetTheory/Cardinal/Arithmetic.lean,Mathlib/SetTheory/Cardinal/Divisibility.lean,Mathlib/SetTheory/Cardinal/Order.lean,Mathlib/SetTheory/Cardinal/Regular.lean,Mathlib/SetTheory/Game/Basic.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean,Mathlib/SetTheory/Ordinal/Exponential.lean,Mathlib/SetTheory/Ordinal/FixedPoint.lean,Mathlib/SetTheory/Ordinal/NaturalOps.lean,Mathlib/SetTheory/Ordinal/Notation.lean,Mathlib/SetTheory/Ordinal/Principal.lean,Mathlib/SetTheory/PGame/Algebra.lean,Mathlib/SetTheory/Surreal/Basic.lean,Mathlib/Tactic/LinearCombination/Lemmas.lean,Mathlib/Tactic/Ring/Compare.lean,Mathlib/Topology/ContinuousMap/CompactlySupported.lean |
104 |
12 |
['JovanGerb', 'YaelDillies', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
nobody |
0-59276 16 hours ago |
0-80333 22 hours ago |
0-82904 23 hours |
| 31025 |
YaelDillies author:YaelDillies |
feat(Finset): interaction of `attach` and `cons` |
and golf the corresponding `insert` lemma. This lets us golf a proof by induction.
---
[](https://gitpod.io/from-referrer/)
|
|
10/8 |
Mathlib/Algebra/BigOperators/GroupWithZero/Finset.lean,Mathlib/Data/Finset/Image.lean |
2 |
1 |
['github-actions'] |
nobody |
0-57693 16 hours ago |
0-57767 16 hours ago |
0-57744 16 hours |
| 30053 |
vlad902 author:vlad902 |
feat(SimpleGraph): only the complete graph has chromatic number equal to its cardinality |
Prove that only the (finite) complete graph has chromatic number equal to its cardinality, thereby finishing an iff fully characterizing graphs with chromatic number equal to their cardinality.
- [ ] depends on: #30136
- [ ] depends on: #30137
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
21/0 |
Mathlib/Combinatorics/SimpleGraph/Coloring.lean |
1 |
8 |
['eric-wieser', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'vlad902'] |
nobody |
0-57600 16 hours ago |
0-57631 16 hours ago |
4-71254 4 days |
| 31026 |
YaelDillies author:YaelDillies |
feat: pullback `PosMulMono` |
and friends
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
27/0 |
Mathlib/Algebra/Order/GroupWithZero/Unbundled/Defs.lean |
1 |
0 |
[] |
nobody |
0-57499 15 hours ago |
0-57568 15 hours ago |
0-57545 15 hours |
| 29579 |
vlad902 author:vlad902 |
feat(SimpleGraph): characterize graphs with chromatic number 1 or 2 |
- [ ] depends on: #29578
- [ ] depends on: #30136 |
t-combinatorics |
38/7 |
Mathlib/Combinatorics/SimpleGraph/Coloring.lean,Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean |
2 |
8 |
['github-actions', 'jt496', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'vlad902'] |
nobody |
0-57448 15 hours ago |
0-57476 15 hours ago |
16-30993 16 days |
| 31027 |
YaelDillies author:YaelDillies |
chore: shortcut instance for `Nat` to be mul-torsion-free |
This instance can already be found by typeclass search using the fact that `Nat` is a `LinearOrderedCommMonoidWithZero`, but it is better practice to not rely on algebraic order theory to prove algebraic results about such basic types. Similarly for `IsAddTorsionFree Int`.
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-algebra
label:t-algebra$ |
7/1 |
Mathlib/Algebra/Group/Int/Defs.lean,Mathlib/Algebra/Group/Nat/Defs.lean,Mathlib/Algebra/Ring/Nat.lean |
3 |
1 |
['github-actions'] |
nobody |
0-57021 15 hours ago |
0-57021 15 hours ago |
0-57097 15 hours |
| 30877 |
YaelDillies author:YaelDillies |
feat(Algebra/MonoidAlgebra): extend the `R[M]` notation to `MonoidAlgebra R M` |
It currently only is notation for `AddMonoidAlgebra R M`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
205/160 |
Mathlib/Algebra/MonoidAlgebra/Basic.lean,Mathlib/Algebra/MonoidAlgebra/Defs.lean,Mathlib/Algebra/MonoidAlgebra/Lift.lean,Mathlib/Algebra/MonoidAlgebra/MapDomain.lean,Mathlib/Algebra/MonoidAlgebra/Module.lean,Mathlib/Algebra/MonoidAlgebra/NoZeroDivisors.lean,Mathlib/Algebra/MonoidAlgebra/Opposite.lean,Mathlib/Algebra/MonoidAlgebra/Support.lean,MathlibTest/Algebra/MonoidAlgebra/Defs.lean |
9 |
13 |
['YaelDillies', 'eric-wieser', 'github-actions', 'vihdzp'] |
nobody |
0-56070 15 hours ago |
0-56110 15 hours ago |
1-251 1 day |
| 30215 |
SnirBroshi author:SnirBroshi |
feat(Data/List/NodupEquivFin): add equiv with `count = 1` hypothesis |
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
8/2 |
Mathlib/Data/List/NodupEquivFin.lean |
1 |
5 |
['SnirBroshi', 'github-actions', 'jcommelin'] |
nobody |
0-52699 14 hours ago |
1-564 1 day ago |
24-43440 24 days |
| 30647 |
JovanGerb author:JovanGerb |
chore(Tactic/Ring): use Qq more honestly |
This PR removes almost all uses of `(q(...) : Expr)` in the `ring` tactic implementation.
This includes switching from `Ring`/`DivisionSemiring` to `CommRing`/`Semifield`, because then we can rely on `assumeInstancesCommute` to make Qq happy. This should not affect the generality of the `ring` tactic, because a `Ring`/`DivisionSemiring` that is also commutative is also a `CommRing`/`Semifield`.
I wanted to do some other work on `ring`, but that stumbled on the fact that some `q(...)` proof terms weren't actually being type checked properly by Qq. This PR fixes this.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
126/116 |
Mathlib/Tactic/Ring/Basic.lean |
1 |
9 |
['github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'thorimur'] |
thorimur assignee:thorimur |
0-52054 14 hours ago |
10-80226 10 days ago |
10-80214 10 days |
| 31007 |
kckennylau author:kckennylau |
feat(RingTheory): generalise perfection to monoids |
1. We generalise `PerfectRing` to monoids (without changing the name).
2. We move `Submonoid.perfection` and `Ring.Perfection` to the already existing `Perfection` namespace, which solves the problem that `Ring.Perfection` and its lemmas `Perfection.xxx` are in different namespaces. Also, the monoid perfection and right perfection have the same underlying set, so this unify the two approaches.
3. `Perfection.lift` is now generalised to monoids: `liftMonoidHom : (M →* N) ≃ (M →* Perfection N p)` where `M` is a perfect monoid.
---
This is in preparation for a future PR following #30989.
[](https://gitpod.io/from-referrer/)
|
|
246/100 |
Mathlib/FieldTheory/Perfect.lean,Mathlib/FieldTheory/PerfectClosure.lean,Mathlib/RingTheory/Perfection.lean,Mathlib/RingTheory/Perfectoid/Untilt.lean |
4 |
31 |
['github-actions', 'jjdishere', 'kckennylau', 'pechersky'] |
nobody |
0-52046 14 hours ago |
0-72330 20 hours ago |
0-72307 20 hours |
| 31030 |
bryangingechen author:bryangingechen |
chore: update PR template |
Add back instructions for adding co-authors via "Co-authored-by" lines.
bors wasn't handling them correctly until the fix announced here: [#mathlib4 > co-authored-by bors issue @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/co-authored-by.20bors.20issue/near/536137752)
---
[](https://gitpod.io/from-referrer/)
|
CI |
16/6 |
.github/PULL_REQUEST_TEMPLATE.md |
1 |
1 |
['github-actions'] |
nobody |
0-51353 14 hours ago |
0-51356 14 hours ago |
0-51394 14 hours |
| 31014 |
kckennylau author:kckennylau |
chore: deprecate frobenius_xxx lemmas |
e.g. `frobenius_add` should be replaced with `map_add _`.
---
[](https://gitpod.io/from-referrer/)
|
maintainer-merge
t-algebra
label:t-algebra$ |
24/24 |
Mathlib/Algebra/CharP/Frobenius.lean,Mathlib/FieldTheory/PerfectClosure.lean,Mathlib/RingTheory/Perfection.lean,Mathlib/RingTheory/RootsOfUnity/PrimitiveRoots.lean |
4 |
4 |
['github-actions', 'pechersky'] |
nobody |
0-49995 13 hours ago |
0-49995 13 hours ago |
0-65548 18 hours |
| 30182 |
urkud author:urkud |
feat(Calculus): derivative of `ContinuousMultilinearMap.compContinuousLinearMap` |
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
153/1 |
Mathlib.lean,Mathlib/Analysis/Calculus/FDeriv/ContinuousMultilinearMap.lean,Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean |
3 |
2 |
['PatrickMassot', 'github-actions', 'urkud'] |
hrmacbeth assignee:hrmacbeth |
0-49253 13 hours ago |
25-45020 25 days ago |
25-45056 25 days |
| 31031 |
gasparattila author:gasparattila |
feat(Topology/UniformSpace): define the Hausdorff uniformity |
This PR defines the Hausdorff uniformity on `Closeds`, `Compacts` and `NonemptyCompacts`. Since `Closeds` and `NonemptyCompacts` already have metrics, they are changed to use the newly defined uniformity.
---
[](https://gitpod.io/from-referrer/)
|
|
294/31 |
Mathlib.lean,Mathlib/Data/Rel.lean,Mathlib/Topology/MetricSpace/Closeds.lean,Mathlib/Topology/Order.lean,Mathlib/Topology/Sets/Compacts.lean,Mathlib/Topology/UniformSpace/Closeds.lean |
6 |
1 |
['github-actions'] |
nobody |
0-48883 13 hours ago |
0-48957 13 hours ago |
0-48934 13 hours |
| 31029 |
tb65536 author:tb65536 |
doc(FieldTheory/Galois/IsGaloisGroup): clarify terminological issues |
This PR expands to docstring of `FieldTheory/Galois/IsGaloisGroup.lean` to clarify the terminological issues that have been raised in this Zulip thread: https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2330791.20generalizing.20.60IsGaloisGroup.60
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
documentation
label:t-algebra$ |
14/3 |
Mathlib/FieldTheory/Galois/IsGaloisGroup.lean |
1 |
1 |
['github-actions'] |
nobody |
0-47856 13 hours ago |
0-47856 13 hours ago |
0-47834 13 hours |
| 27978 |
smmercuri author:smmercuri |
feat(InfinitePlace/Ramification): `LiesOver` class for absolute values and derived results on infinite places |
If `w` is an absolute value on `L/K` and `v` is an absolute value of `K` then `w.LiesOver v` is the class defining the property that `v` is the restriction of `w` to `K`.
This PR continues the work from #24881.
Original PR: https://github.com/leanprover-community/mathlib4/pull/24881
---
- [x] depends on: #27977 |
large-import
FLT
maintainer-merge
t-number-theory
|
61/0 |
Mathlib/Analysis/Normed/Ring/WithAbs.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Ramification.lean |
2 |
14 |
['MichaelStollBayreuth', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'smmercuri'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
0-47356 13 hours ago |
0-80774 22 hours ago |
26-20657 26 days |
| 26387 |
jjdishere author:jjdishere |
feat(RingTheory/WittVector): the Teichmuller series |
This PR continues the work from #22320.
Original PR: https://github.com/leanprover-community/mathlib4/pull/22320
In this PR, we show that every element `x` of the Witt vectors `𝕎 R` can be written as the (`p`-adic) summation of the Teichmuller series. Instead of using `tsum`, we only show that `p ^ (n + 1)` divides `x` minus the summation of the first `n + 1` terms of the Teichmuller series. We also show that if `p` divides the first (n + 1) coefficients of a Witt vector, then `p^(n+1)` divides the `n`-th ghost component.
#26396 depends on this PR. |
t-ring-theory |
199/2 |
Mathlib.lean,Mathlib/Algebra/Ring/Aut.lean,Mathlib/FieldTheory/Perfect.lean,Mathlib/RingTheory/WittVector/Basic.lean,Mathlib/RingTheory/WittVector/Complete.lean,Mathlib/RingTheory/WittVector/TeichmullerSeries.lean |
6 |
2 |
['github-actions', 'jjdishere'] |
nobody |
0-47003 13 hours ago |
0-47003 13 hours ago |
0-47096 13 hours |
| 31015 |
FormulaRabbit81 author:FormulaRabbit81 |
feat(Topology): obtain new distance structures on pseudo(e)metricspaces |
---
[](https://gitpod.io/from-referrer/)
The changes here were originally in #29321, and have been reviewed, but split off here for clarity. |
t-topology |
110/0 |
Mathlib/Topology/MetricSpace/Basic.lean |
1 |
4 |
['FormulaRabbit81', 'YaelDillies', 'github-actions', 'sgouezel'] |
nobody |
0-45922 12 hours ago |
0-50381 13 hours ago |
0-61373 17 hours |
| 31004 |
joelriou author:joelriou |
feat(CategoryTheory/Localization): action of a localizer morphism on SmallShiftedHom |
Co-authored-by: Nailin Guan <150537269+Thmoas-Guan@users.noreply.github.com>
Co-authored-by: Wang Jingting
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
260/4 |
Mathlib/CategoryTheory/Localization/SmallHom.lean,Mathlib/CategoryTheory/Localization/SmallShiftedHom.lean,Mathlib/CategoryTheory/NatIso.lean,Mathlib/CategoryTheory/Shift/Localization.lean,Mathlib/CategoryTheory/Shift/ShiftedHom.lean |
5 |
3 |
['github-actions', 'joelriou'] |
nobody |
0-45810 12 hours ago |
0-76282 21 hours ago |
0-76261 21 hours |
| 31021 |
EtienneC30 author:EtienneC30 |
feat: characterization of the product measure via bounded continuous functions |
Prove that the product of two finite measures `µ` and `ν` is the only finite measure `ξ` such that for all real bounded continuous functions `f` and `g` we have `∫ z, f z.1 * g z.2 ∂ξ = ∫ x, f x ∂μ * ∫ y, g y ∂ν`.
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-measure-probability
|
111/1 |
Mathlib/MeasureTheory/Measure/HasOuterApproxClosed.lean |
1 |
3 |
['EtienneC30', 'github-actions', 'sgouezel'] |
nobody |
0-45247 12 hours ago |
0-45351 12 hours ago |
0-51891 14 hours |
| 28819 |
ScottCarnahan author:ScottCarnahan |
feat (Data/Finsupp): define convolution smul for finsupps on formal functions |
This is a generalization of the multiplication action of the ring of Laurent polynomials on the space of formal power series with unbounded pole terms.
---
- [x] depends on: #28876
[](https://gitpod.io/from-referrer/)
|
|
86/0 |
Mathlib.lean,Mathlib/Data/Finsupp/PointwiseSMul.lean |
2 |
11 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'tb65536'] |
tb65536 assignee:tb65536 |
0-43795 12 hours ago |
20-42217 20 days ago |
21-50468 21 days |
| 30879 |
grunweg author:grunweg |
feat: beta and eta reduce in the `T%` elaborator |
I believe this is a nicer user experience. I suspect this explains some of type mismatches when trying to use it more, but have yet to test this.
---
- [x] depends on: #30413
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry
t-meta
|
65/18 |
Mathlib/Geometry/Manifold/Notation.lean,MathlibTest/DifferentialGeometry/Notation.lean |
2 |
9 |
['github-actions', 'grunweg', 'mathlib4-dependent-issues-bot', 'thorimur'] |
nobody |
0-43381 12 hours ago |
0-85092 23 hours ago |
0-85996 23 hours |
| 30891 |
ScottCarnahan author:ScottCarnahan |
feat (Algebra/Lie/Extension): construction of Lie algebra extensions from 2-cocycles |
This PR gives a construction of a Lie algebra extension from a 2-cocycle. The classification of extensions in terms of degree 2 cohomology is postponed to later PRs.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
195/8 |
Mathlib/Algebra/Lie/Extension.lean,docs/references.bib |
2 |
1 |
['github-actions'] |
nobody |
0-43307 12 hours ago |
3-57761 3 days ago |
3-57807 3 days |
| 29652 |
fmortimore author:fmortimore |
feat(Order): the Bourbaki–Witt theorem |
We prove the Bourbaki-Witt theorem, one of Wiedijk's 1000+ theorems
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-order
|
231/0 |
Mathlib.lean,Mathlib/Order/BourbakiWitt.lean,docs/1000.yaml |
3 |
48 |
['Vierkantor', 'eric-wieser', 'fmortimore', 'github-actions', 'wwylele'] |
Vierkantor assignee:Vierkantor |
0-43189 11 hours ago |
0-43189 11 hours ago |
31-12405 31 days |
| 31035 |
gasparattila author:gasparattila |
feat(Topology/Sets): `Singleton` instances for `(Nonempty)Compacts` |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
37/3 |
Mathlib/Topology/Sets/Compacts.lean |
1 |
1 |
['github-actions'] |
nobody |
0-41829 11 hours ago |
0-41843 11 hours ago |
0-41882 11 hours |
| 31036 |
chrisflav author:chrisflav |
chore(RingTheory): prerequisites for #31034 |
In particular, various lemmas on `Submodule.comap` for injective maps, lemmas about `Extension.Cotangent.mk` and a criterion for `IsLocalization.Away` for quotients.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
83/0 |
Mathlib/LinearAlgebra/Span/Basic.lean,Mathlib/RingTheory/Extension/Basic.lean,Mathlib/RingTheory/Ideal/Maps.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Localization/Away/Basic.lean |
5 |
1 |
['github-actions'] |
nobody |
0-41641 11 hours ago |
0-41711 11 hours ago |
0-41689 11 hours |
| 30957 |
chrisflav author:chrisflav |
chore(AlgebraicGeometry): remove unnecessary uses of `Hom.base` |
The locations were found by a linter, that flagged every occurrence of the chain `DFunLike.coe`, `CategoryTheory.ConcreteCategory.hom` , `AlgebraicGeometry.PresheafedSpace.Hom.base`, `AlgebraicGeometry.LocallyRingedSpace.Hom.toHom` , `AlgebraicGeometry.Scheme.Hom.toLRSHom'` and an explicit `.base` projection.
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry |
188/189 |
Mathlib/AlgebraicGeometry/AffineTransitionLimit.lean,Mathlib/AlgebraicGeometry/Cover/Directed.lean,Mathlib/AlgebraicGeometry/Cover/MorphismProperty.lean,Mathlib/AlgebraicGeometry/Cover/Open.lean,Mathlib/AlgebraicGeometry/Cover/Sigma.lean,Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean,Mathlib/AlgebraicGeometry/IdealSheaf/Functorial.lean,Mathlib/AlgebraicGeometry/IdealSheaf/Subscheme.lean,Mathlib/AlgebraicGeometry/Morphisms/Affine.lean,Mathlib/AlgebraicGeometry/Morphisms/Basic.lean,Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean,Mathlib/AlgebraicGeometry/Morphisms/Constructors.lean,Mathlib/AlgebraicGeometry/Morphisms/Descent.lean,Mathlib/AlgebraicGeometry/Morphisms/Flat.lean,Mathlib/AlgebraicGeometry/Morphisms/OpenImmersion.lean,Mathlib/AlgebraicGeometry/Morphisms/Preimmersion.lean,Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean,Mathlib/AlgebraicGeometry/Morphisms/Separated.lean,Mathlib/AlgebraicGeometry/Morphisms/Smooth.lean,Mathlib/AlgebraicGeometry/Morphisms/SurjectiveOnStalks.lean,Mathlib/AlgebraicGeometry/Morphisms/UnderlyingMap.lean,Mathlib/AlgebraicGeometry/Morphisms/UniversallyClosed.lean,Mathlib/AlgebraicGeometry/Morphisms/UniversallyInjective.lean,Mathlib/AlgebraicGeometry/Morphisms/UniversallyOpen.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Proper.lean,Mathlib/AlgebraicGeometry/QuasiAffine.lean,Mathlib/AlgebraicGeometry/Scheme.lean,Mathlib/AlgebraicGeometry/Sites/MorphismProperty.lean,Mathlib/AlgebraicGeometry/Sites/Small.lean |
30 |
1 |
['github-actions'] |
nobody |
0-41379 11 hours ago |
0-41380 11 hours ago |
0-41367 11 hours |
| 30595 |
winstonyin author:winstonyin |
feat: $C^n$ implicit function theorem |
I formalise a proof that the implicit function obtained from a $C^n$ implicit equation ($n \geq 1$) is $C^n$. Roughly speaking, given an equation $f : E \times F \to F$ that is smooth at $(a,b) : E\times F$ and whose derivative $f'$ is in some sense non-singular, then there exists a function $\phi : E \to F$ such that $\phi(a) = b$, $f(x, \phi(x)) = f(a,b)$ for all $x$ in a neighbourhood of $a$, and $\phi$ is $C^n$ at $a$.
The current implicit function theorem in Mathlib is quite general and not directly applicable to many familiar scenarios. The statements added by this PR correspond to, e.g., the way the theorem is described on Wikipedia, and will be directly useful for an upcoming formalisation of the smoothness theorem for flows of ODEs.
- [x] depends on: #30607
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
151/2 |
Mathlib.lean,Mathlib/Analysis/Calculus/Implicit.lean,Mathlib/Analysis/Calculus/ImplicitContDiff.lean |
3 |
29 |
['github-actions', 'grunweg', 'mathlib4-dependent-issues-bot', 'sgouezel', 'winstonyin'] |
grunweg assignee:grunweg |
0-40855 11 hours ago |
1-31726 1 day ago |
11-21616 11 days |
| 31003 |
themathqueen author:themathqueen |
feat(Algebra/Star/LinearMap): `star mul' = mul' ∘ TensorProduct.comm` and `star (f ⊗ₘ g) = star f ⊗ₘ star g` |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
easy
label:t-algebra$ |
30/8 |
Mathlib/Algebra/Star/LinearMap.lean,Mathlib/Algebra/Star/TensorProduct.lean |
2 |
2 |
['github-actions', 'themathqueen'] |
nobody |
0-40148 11 hours ago |
0-78547 21 hours ago |
0-78827 21 hours |
| 31037 |
chrisflav author:chrisflav |
feat(RingTheory): bijective descends along faithfully flat ring maps |
From Pi1.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
75/0 |
Mathlib.lean,Mathlib/RingTheory/Flat/FaithfullyFlat/Descent.lean,Mathlib/RingTheory/RingHomProperties.lean |
3 |
1 |
['github-actions'] |
nobody |
0-38433 10 hours ago |
0-40113 11 hours ago |
0-40090 11 hours |
| 30967 |
grunweg author:grunweg |
chore: mark measure_union_ne_top and friends with finiteness |
In some cases, add `≠ ∞` versions of existing `< ∞` lemmas, and tag those with finiteness.
Use this to golf one proof `by measurability` using finiteness, which is the morally correct proof.
Motivated by #30966.
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
21/6 |
Mathlib/MeasureTheory/Function/UnifTight.lean,Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean |
2 |
8 |
['github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot'] |
nobody |
0-37067 10 hours ago |
0-37067 10 hours ago |
1-68850 1 day |
| 31038 |
rudynicolop author:rudynicolop |
feat(Computability/NFA): NFA acceptsFrom definitions and lemmas |
This PR defines `NFA.acceptsFrom`, similar to [`DFA.acceptsFrom`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Computability/DFA.html#DFA.acceptsFrom), and provides helper lemmas.
---
[](https://gitpod.io/from-referrer/)
|
t-computability
new-contributor
|
71/2 |
Mathlib/Computability/NFA.lean |
1 |
1 |
['github-actions'] |
nobody |
0-33397 9 hours ago |
0-34573 9 hours ago |
0-34623 9 hours |
| 30987 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(LinearAlgebra/SpecialLinearGroup): special linear group of a module |
Define the special linear group of a module.
Relate it with `Matrix.SpecialLinearGroup`.
Several additional constructions.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
444/14 |
Mathlib.lean,Mathlib/LinearAlgebra/Charpoly/BaseChange.lean,Mathlib/LinearAlgebra/Determinant.lean,Mathlib/LinearAlgebra/GeneralLinearGroup.lean,Mathlib/LinearAlgebra/Matrix/Dual.lean,Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Defs.lean,Mathlib/LinearAlgebra/SpecialLinearGroup.lean,Mathlib/LinearAlgebra/TensorProduct/Tower.lean |
8 |
22 |
['AntoineChambert-Loir', 'github-actions', 'mattrobball', 'mcdoll'] |
nobody |
0-33251 9 hours ago |
0-33251 9 hours ago |
0-82296 22 hours |
| 25927 |
jjdishere author:jjdishere |
feat(RingTheory/AdicCompletion): more APIs for IsAdicComplete |
This PR continues the work from #21582.
Original PR: https://github.com/leanprover-community/mathlib4/pull/21582 |
t-ring-theory |
543/12 |
Mathlib/RingTheory/AdicCompletion/Basic.lean,Mathlib/RingTheory/AdicCompletion/RingHom.lean,Mathlib/RingTheory/Ideal/Quotient/Defs.lean,Mathlib/RingTheory/Ideal/Quotient/PowTransition.lean |
4 |
5 |
['github-actions', 'jjdishere'] |
nobody |
0-32381 8 hours ago |
85-1294 2 months ago |
9-35950 9 days |
| 27353 |
themathqueen author:themathqueen |
chore(LinearAlgebra/TensorProduct/Basic): more semi-linearizing |
Co-authored-by: Anatole Dedecker
---
This continues the work from: #27310 (original PR: #24208).
- [x] depends on: #27467
- [x] depends on: #27288
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
186/158 |
Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean,Mathlib/Algebra/Lie/TensorProduct.lean,Mathlib/Analysis/InnerProductSpace/TensorProduct.lean,Mathlib/CategoryTheory/Monoidal/Internal/Module.lean,Mathlib/LinearAlgebra/BilinearForm/TensorProduct.lean,Mathlib/LinearAlgebra/Coevaluation.lean,Mathlib/LinearAlgebra/Contraction.lean,Mathlib/LinearAlgebra/DirectSum/TensorProduct.lean,Mathlib/LinearAlgebra/Dual/Lemmas.lean,Mathlib/LinearAlgebra/TensorProduct/Basic.lean,Mathlib/LinearAlgebra/Trace.lean,Mathlib/RepresentationTheory/Rep.lean |
13 |
16 |
['eric-wieser', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'themathqueen'] |
jcommelin assignee:jcommelin |
0-32380 8 hours ago |
0-60898 16 hours ago |
3-36814 3 days |
| 27645 |
bjornsolheim author:bjornsolheim |
feat(Geometry/Convex/Cone): add pointed cone tensor products |
Define the minimal and maximal tensor product of pointed cones.
Prove that the minimal tensor product is less than or equal to the maximal tensor product.
---
- [ ] depends on: #25292
[](https://gitpod.io/from-referrer/)
|
t-convex-geometry
new-contributor
|
123/0 |
Mathlib.lean,Mathlib/Geometry/Convex/Cone/TensorProduct.lean |
2 |
3 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
YaelDillies assignee:YaelDillies |
0-32377 8 hours ago |
8-68010 8 days ago |
8-69812 8 days |
| 29279 |
Jlh18 author:Jlh18 |
feat: free groupoid on a category, free-forgetful adjunction |
- define `CategoryTheory.Category.FreeGroupoid` in a file of the same name
- show the universal property of this construction, as the initial category localizing all maps in the category. These are the defs `of`, `lift`, and their related theorems
- Show that this construction is functorial `CategoryTheory.Category.FreeGroupoid.map`
- Convert this to a functor `CategoryTheory.Category.Grpd.free` from `Cat` to `Grpd`, and show that it is left adjoint to the forgetful functor
- `CategoryTheory.Grpd.freeForgetAdjunction`
- [ ] depends on: #29278
- [ ] depends on: #30115
---
[](https://gitpod.io/from-referrer/)
|
large-import
new-contributor
t-category-theory
|
293/6 |
Mathlib.lean,Mathlib/CategoryTheory/Category/FreeGroupoid.lean,Mathlib/CategoryTheory/Groupoid.lean,Mathlib/CategoryTheory/Groupoid/FreeGroupoid.lean,Mathlib/CategoryTheory/Localization/Construction.lean,Mathlib/CategoryTheory/Localization/Predicate.lean,Mathlib/CategoryTheory/MorphismProperty/Basic.lean |
7 |
14 |
['Jlh18', 'MichaelStollBayreuth', 'github-actions', 'joelriou', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
adamtopaz assignee:adamtopaz |
0-32376 8 hours ago |
7-64285 7 days ago |
30-58893 30 days |
| 30398 |
joelriou author:joelriou |
feat(Algebra/Category/ModuleCat/Sheaf): `O_S ⟶ f_* O_X` and `f^* O_S ≅ O_X` |
---
- [x] depends on: #30403
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry
t-category-theory
|
193/4 |
Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Sheaf/Free.lean,Mathlib/Algebra/Category/ModuleCat/Sheaf/PullbackContinuous.lean,Mathlib/Algebra/Category/ModuleCat/Sheaf/PullbackFree.lean,Mathlib/CategoryTheory/Limits/Preserves/Shapes/Products.lean |
5 |
3 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
nobody |
0-32375 8 hours ago |
7-70417 7 days ago |
7-70413 7 days |
| 30416 |
SnirBroshi author:SnirBroshi |
feat(Logic/Relation): lemmas relating `Relation.Map` and `Function.onFun` |
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-logic
|
32/0 |
Mathlib/Logic/Relation.lean |
1 |
1 |
['github-actions'] |
nobody |
0-32374 8 hours ago |
18-51178 18 days ago |
18-53407 18 days |
| 30620 |
plp127 author:plp127 |
feat: copy LE and LT on preorder and partial order |
Adds `Preorder.copy` and `PartialOrder.copy` for replacing the le and lt with provably equal ones.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
22/0 |
Mathlib/Order/Defs/PartialOrder.lean |
1 |
1 |
['github-actions'] |
Vierkantor assignee:Vierkantor |
0-32372 8 hours ago |
12-41952 12 days ago |
12-41997 12 days |
| 30648 |
loefflerd author:loefflerd |
feat(NumberTheory/ModularForms): define the strict width of a subgroup |
We define the periods of a subgroup of GL(2, R) to be the `x` such that `!![1, x; 0, 1]` is in the subgroup, and the *strict width* to be the unique positive generator of this subgroup (when it exists).
This is a variant of a more familiar modular-forms concept, the *width*, which is the least positive `x` such that `± !![1, x; 0, 1]` is in the subgroup (note signs `±`). However, the strict width is the concept that's relevant for q-expansions.
---
Carved off from the WIP PR #30089.
- [x] depends on: #30461
- [x] depends on: #30471
[](https://gitpod.io/from-referrer/)
|
t-number-theory |
127/2 |
Mathlib/NumberTheory/ModularForms/Cusps.lean |
1 |
3 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
alreadydone assignee:alreadydone |
0-32371 8 hours ago |
0-41088 11 hours ago |
0-41989 11 hours |
| 30716 |
YaelDillies author:YaelDillies |
feat(Algebra/Module/Torsion): more instances |
Split `Algebra.Module.Torsion` into `Algebra.Module.Torsion.Free` for torsion-free modules and `Algebra.Module.Torsion.Basic` for torsion modules. Add prod and pi instances, as well as pullback instances and the fact that a torsion-free module over a char zero domain is a torsion-free group.
---
- [x] depends on: #30713
[](https://gitpod.io/from-referrer/)
|
file-removed |
212/54 |
Mathlib.lean,Mathlib/Algebra/CharP/LinearMaps.lean,Mathlib/Algebra/Lie/Weights/RootSystem.lean,Mathlib/Algebra/Module/DedekindDomain.lean,Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/Algebra/Module/Torsion/Field.lean,Mathlib/Algebra/Module/Torsion/Free.lean,Mathlib/Algebra/Module/Torsion/Pi.lean,Mathlib/Algebra/Module/Torsion/Prod.lean,Mathlib/Algebra/Polynomial/Module/FiniteDimensional.lean,Mathlib/LinearAlgebra/Dimension/Torsion/Basic.lean,Mathlib/LinearAlgebra/Dimension/Torsion/Finite.lean,Mathlib/LinearAlgebra/Reflection.lean,Mathlib/LinearAlgebra/RootSystem/Chain.lean,Mathlib/LinearAlgebra/Semisimple.lean,Mathlib/NumberTheory/NumberField/Cyclotomic/Basic.lean,Mathlib/NumberTheory/NumberField/FractionalIdeal.lean,Mathlib/NumberTheory/NumberField/Ideal/KummerDedekind.lean,Mathlib/NumberTheory/RamificationInertia/Unramified.lean,Mathlib/RingTheory/AdicCompletion/Algebra.lean,Mathlib/RingTheory/Flat/TorsionFree.lean,Mathlib/RingTheory/HopkinsLevitzki.lean,Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/LocalRing/Module.lean,Mathlib/RingTheory/Regular/IsSMulRegular.lean |
25 |
2 |
['github-actions', 'mathlib4-dependent-issues-bot'] |
bryangingechen assignee:bryangingechen |
0-32371 8 hours ago |
0-80466 22 hours ago |
0-82514 22 hours |
| 30745 |
astrainfinita author:astrainfinita |
chore(Data/Nat/{Factorial, Choose}/Cast): move lemmas about `Polynomial` |
The remaining lemmas in the files are unrelated to `ascPochhammer` and `descPochhammer`. This significantly reduces the imports.
---
[](https://gitpod.io/from-referrer/)
|
|
57/44 |
Mathlib/Analysis/SpecialFunctions/Pochhammer.lean,Mathlib/Data/Nat/Choose/Cast.lean,Mathlib/Data/Nat/Factorial/Cast.lean,Mathlib/RingTheory/Polynomial/Pochhammer.lean |
4 |
1 |
['github-actions'] |
RemyDegenne assignee:RemyDegenne |
0-32370 8 hours ago |
8-69 8 days ago |
8-46 8 days |
| 30754 |
Jlh18 author:Jlh18 |
feat (CategoryTheory/Comma/Over/Pushforward): define pushforwards |
Define what it means to be a pushforward, what it means to have pushforwards, and the pullback/pushforward adjunction when all pushforwards exist.
This is related to PRs #30375 and PR #29810
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
RFC
|
99/2 |
Mathlib.lean,Mathlib/CategoryTheory/Comma/Over/Pullback.lean,Mathlib/CategoryTheory/Comma/Over/Pushforward.lean |
3 |
2 |
['github-actions', 'joelriou'] |
nobody |
0-32368 8 hours ago |
7-51550 7 days ago |
7-60996 7 days |
| 30943 |
jsm28 author:jsm28 |
feat(Analysis/SpecialFunctions/Trigonometric/Angle): angles adding to 0 mod π |
Add lemmas that if two angles with the same nonzero sign add to 0 mod π, then the absolute values of the corresponding real numbers obtained with `toReal` (unoriented angles) add to π.
---
Feel free to golf.
[](https://gitpod.io/from-referrer/)
|
t-analysis |
38/0 |
Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean |
1 |
9 |
['github-actions', 'qawbecrdtey'] |
nobody |
0-30842 8 hours ago |
2-52361 2 days ago |
2-52340 2 days |
| 30429 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Connectivity): a graph is either connected or its complement is |
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-combinatorics
|
17/0 |
Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean |
1 |
1 |
['github-actions'] |
YaelDillies assignee:YaelDillies |
0-29379 8 hours ago |
18-18511 18 days ago |
18-18546 18 days |
| 31039 |
kim-em author:kim-em |
feat: tryAtEachStep linters run on a fraction of goals |
This PR allows us to run the `tryAtEachStep` linters on a deterministic fraction of all Mathlib goals, to enable faster benchmarks. |
t-meta |
36/16 |
Mathlib/Tactic/TacticAnalysis/Declarations.lean,MathlibTest/tryAtEachStep.lean |
2 |
1 |
['github-actions'] |
nobody |
0-28059 7 hours ago |
0-28068 7 hours ago |
0-28108 7 hours |
| 26857 |
Thmoas-Guan author:Thmoas-Guan |
feat(Algebra): define associated graded structure for abelian group |
In this PR we define the associated graded structure for abelian group when given a filtration and only give some basic lemmas about it.
Further results would be given in #26858
---
[](https://gitpod.io/from-referrer/)
migrated from #22631
|
t-algebra label:t-algebra$ |
153/0 |
Mathlib.lean,Mathlib/RingTheory/FilteredAlgebra/AssociatedGraded.lean |
2 |
13 |
['Thmoas-Guan', 'chrisflav', 'github-actions', 'mathlib4-merge-conflict-bot'] |
chrisflav assignee:chrisflav |
0-26463 7 hours ago |
46-24070 1 month ago |
18-81638 18 days |
| 26212 |
Thmoas-Guan author:Thmoas-Guan |
feat(Algebra): the Rees theorem for depth |
In this PR we proved the Rees theorem for depth.
Co-authored-by: Hu Yongle
---
- [ ] depends on: #27416
[](https://gitpod.io/from-referrer/)
|
large-import
t-algebra
label:t-algebra$ |
409/22 |
Mathlib.lean,Mathlib/Algebra/Category/Grp/Preadditive.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/Basic.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/Linear.lean,Mathlib/Algebra/Homology/DerivedCategory/Linear.lean,Mathlib/CategoryTheory/Shift/ShiftedHom.lean,Mathlib/RingTheory/Ideal/AssociatedPrime/Localization.lean,Mathlib/RingTheory/Regular/Category.lean,Mathlib/RingTheory/Regular/Depth.lean |
9 |
n/a |
['Thmoas-Guan', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
nobody |
0-25961 7 hours ago |
unknown |
unknown |
| 26219 |
Thmoas-Guan author:Thmoas-Guan |
feat(RingTheory/KrullDimension): Krull Dimension of quotient regular sequence |
We show that if M is a finite module over a Noetherian local ring R, [r₁, …, rₙ] is an M-sequence, then dim M⧸(r₁, …, rₙ)M + n = dim M.
Co-authored-by: Yongle Hu @mbkybky
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
225/15 |
Mathlib.lean,Mathlib/LinearAlgebra/Quotient/Basic.lean,Mathlib/RingTheory/Ideal/MinimalPrime/Localization.lean,Mathlib/RingTheory/Jacobson/Ideal.lean,Mathlib/RingTheory/KrullDimension/Module.lean,Mathlib/RingTheory/KrullDimension/Regular.lean,Mathlib/RingTheory/LocalRing/MaximalIdeal/Basic.lean,Mathlib/RingTheory/Nakayama.lean,Mathlib/RingTheory/Support.lean |
9 |
n/a |
['Thmoas-Guan', 'chrisflav', 'github-actions', 'leanprover-community-bot-assistant', 'mbkybky'] |
chrisflav assignee:chrisflav |
0-22718 6 hours ago |
unknown |
unknown |
| 30842 |
kim-em author:kim-em |
feat: add Aristotle task for command palette |
---
[](https://gitpod.io/from-referrer/)
|
CI |
135/6 |
.vscode/tasks.json,scripts/README.md,scripts/aristotle/README.md,scripts/lint-style.lean |
4 |
14 |
['eric-wieser', 'euprunin', 'github-actions', 'kim-em', 'vikram-shanker'] |
nobody |
0-16021 4 hours ago |
5-21731 5 days ago |
5-21771 5 days |
| 31044 |
kim-em author:kim-em |
chore: deprecation in LongestPole utility |
|
|
1/1 |
LongestPole/Main.lean |
1 |
1 |
['github-actions'] |
nobody |
0-15962 4 hours ago |
0-16028 4 hours ago |
0-16005 4 hours |
| 30771 |
dagurtomas author:dagurtomas |
chore(CategoryTheory): move `Closed` directory into `Monoidal` |
---
[](https://gitpod.io/from-referrer/)
|
file-removed |
34/34 |
Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean,Mathlib/CategoryTheory/Category/Cat/CartesianClosed.lean,Mathlib/CategoryTheory/Distributive/Monoidal.lean,Mathlib/CategoryTheory/Limits/Sifted.lean,Mathlib/CategoryTheory/Monoidal/Braided/Reflection.lean,Mathlib/CategoryTheory/Monoidal/Closed/Basic.lean,Mathlib/CategoryTheory/Monoidal/Closed/Cartesian.lean,Mathlib/CategoryTheory/Monoidal/Closed/Enrichment.lean,Mathlib/CategoryTheory/Monoidal/Closed/Functor.lean,Mathlib/CategoryTheory/Monoidal/Closed/FunctorCategory/Basic.lean,Mathlib/CategoryTheory/Monoidal/Closed/FunctorCategory/Complete.lean,Mathlib/CategoryTheory/Monoidal/Closed/FunctorCategory/Groupoid.lean,Mathlib/CategoryTheory/Monoidal/Closed/FunctorToTypes.lean,Mathlib/CategoryTheory/Monoidal/Closed/Ideal.lean,Mathlib/CategoryTheory/Monoidal/Closed/Types.lean,Mathlib/CategoryTheory/Monoidal/Closed/Zero.lean,Mathlib/CategoryTheory/Monoidal/DayConvolution/Closed.lean,Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean,Mathlib/CategoryTheory/Monoidal/Subcategory.lean,Mathlib/CategoryTheory/Preadditive/Projective/Internal.lean,Mathlib/CategoryTheory/Sites/CartesianClosed.lean,Mathlib/CategoryTheory/Sites/Monoidal.lean,Mathlib/Condensed/CartesianClosed.lean,Mathlib/Condensed/Light/CartesianClosed.lean |
25 |
3 |
['github-actions', 'mathlib4-merge-conflict-bot'] |
nobody |
0-15524 4 hours ago |
0-19862 5 hours ago |
7-4407 7 days |
| 31043 |
kim-em author:kim-em |
experiment: remove unneeded shortcut instances |
|
t-ring-theory |
0/33 |
Mathlib/RingTheory/Kaehler/Basic.lean |
1 |
4 |
['github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot'] |
nobody |
0-13849 3 hours ago |
0-13849 3 hours ago |
0-17114 4 hours |
| 30473 |
CoolRmal author:CoolRmal |
feat(ComplexAnalysis): Cauchy's Integral Formula for Higher Order Derivatives |
This PR adds the following `iteratedDeriv_eq_smul_circleIntegral` and `norm_iteratedDeriv_le_aux`. The first one expresses the `n`-th order derivative of a differentiable function as a circle integral. The second one proves an estimate for the `n`-th order derivative.
Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Cauchy's.20integral.20formula
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-analysis
|
124/6 |
Mathlib/Analysis/Complex/CauchyIntegral.lean,Mathlib/Analysis/Complex/Liouville.lean,Mathlib/Analysis/Complex/LocallyUniformLimit.lean |
3 |
16 |
['CoolRmal', 'github-actions', 'loefflerd', 'wwylele'] |
ADedecker assignee:ADedecker |
0-12205 3 hours ago |
16-51892 16 days ago |
16-51924 16 days |
| 30781 |
joelriou author:joelriou |
feat(CategoryTheory): characterization of `κ`-filtered categories |
We characterize a concrete characterization of `κ`-filtered categories in terms of the existence of an upper bound of a `κ`-bounded family objects, and the coequalization of a `κ`-bounded family of morphisms between fixed objects.
---
- [x] depends on: #30633
- [x] depends on: #30634
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
74/1 |
Mathlib/CategoryTheory/Presentable/IsCardinalFiltered.lean |
1 |
3 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
nobody |
0-9416 2 hours ago |
0-9416 2 hours ago |
0-9394 2 hours |
| 30727 |
joelriou author:joelriou |
feat(CategoryTheory/Presentable): presentable objects in `Type` |
In this file, we show that if `κ : Cardinal.{u}` is a regular cardinal, then `X : Type u` is `κ`-presentable in the category of types iff `HasCardinalLT X κ` holds.
---
- [x] depends on: #30633
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
152/0 |
Mathlib.lean,Mathlib/CategoryTheory/Limits/Types/Filtered.lean,Mathlib/CategoryTheory/Presentable/Type.lean |
3 |
2 |
['github-actions', 'mathlib4-dependent-issues-bot'] |
nobody |
0-9047 2 hours ago |
0-9047 2 hours ago |
0-10989 3 hours |
| 26374 |
joelriou author:joelriou |
feat(CategoryTheory): existence of right derived functors using derivability structures |
In this PR, we formalize an existence theorem for right derived functors which appeared in the article _Structures de dérivabilité_ by Bruno Kahn and Georges Maltsiniotis, Adv. Math. 218 (2008).
---
- [x] depends on: #26036
- [ ] depends on: #30382
This PR continues the work from #22508.
Original PR: https://github.com/leanprover-community/mathlib4/pull/22508 |
t-category-theory |
307/18 |
Mathlib.lean,Mathlib/CategoryTheory/Functor/KanExtension/Pointwise.lean,Mathlib/CategoryTheory/GuitartExact/KanExtension.lean,Mathlib/CategoryTheory/Iso.lean,Mathlib/CategoryTheory/Limits/Final.lean,Mathlib/CategoryTheory/Localization/DerivabilityStructure/Basic.lean,Mathlib/CategoryTheory/Localization/DerivabilityStructure/PointwiseRightDerived.lean |
7 |
4 |
['github-actions', 'joelriou', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] |
nobody |
0-8593 2 hours ago |
0-31698 8 hours ago |
4-19935 4 days |
| 30386 |
joelriou author:joelriou |
feat(CategoryTheory): Guitart exact squares and "base change" for left Kan extensions |
Given a Guitart exact square `w : T ⋙ R ⟶ L ⋙ B`, we show that under suitable assumptions, the base change morphism `(whiskeringLeft C₁ C₂ D).obj T ⋙ L.lan ⟶ R.lan ⋙ (whiskeringLeft C₃ C₄ D).obj B` is an isomorphism.
---
- [x] depends on: #30382
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
69/1 |
Mathlib/CategoryTheory/Functor/KanExtension/Adjunction.lean,Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean,Mathlib/CategoryTheory/GuitartExact/KanExtension.lean |
3 |
3 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
nobody |
0-8423 2 hours ago |
0-8423 2 hours ago |
0-20077 5 hours |
| 29543 |
joelriou author:joelriou |
feat(CategoryTheory): a property of objects is a strong generator if any object is a colimit of objects satisfying the property |
---
- [x] depends on: #29519
- [x] depends on: #30269
- [x] depends on: #30294
- [x] depends on: #29518
[](https://gitpod.io/from-referrer/)
|
large-import
t-category-theory
|
55/4 |
Mathlib/CategoryTheory/Generator/Basic.lean,Mathlib/CategoryTheory/Generator/StrongGenerator.lean,Mathlib/CategoryTheory/Presentable/CardinalFilteredPresentation.lean |
3 |
5 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
nobody |
0-7618 2 hours ago |
0-7618 2 hours ago |
0-9294 2 hours |
| 30160 |
joelriou author:joelriou |
feat(CategoryTheory/ObjectProperty): closure of a property under certain colimits |
In this PR, we dualize a few notions about `ObjectProperty` and we use this to dualize the main result about limits in #29854 for colimits: given a property `P` of objects in a category `C` and family of categories `J : α → Type _`, we introduce the closure `P.colimitsClosure J` of `P` under colimits of shapes `J a` for all `a : α`, and under certain smallness circumstances, we show that its essentially small.
---
- [x] depends on: #29851
- [x] depends on: #29881
- [x] depends on: #29903
- [x] depends on: #29854
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
338/3 |
Mathlib.lean,Mathlib/CategoryTheory/ObjectProperty/ColimitsClosure.lean,Mathlib/CategoryTheory/ObjectProperty/ColimitsOfShape.lean,Mathlib/CategoryTheory/ObjectProperty/LimitsClosure.lean,Mathlib/CategoryTheory/ObjectProperty/LimitsOfShape.lean,Mathlib/CategoryTheory/ObjectProperty/Small.lean |
6 |
6 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
nobody |
0-7347 2 hours ago |
0-7347 2 hours ago |
0-7324 2 hours |
| 30069 |
IvanRenison author:IvanRenison |
feat(Combinatorics/SimpleGraph): add lemma `IsTree.dist_ne_of_adj` and necessary lemmas |
This contribution was created as part of the Utrecht Summerschool "Formalizing Mathematics in Lean" in July 2025.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
34/0 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean |
1 |
8 |
['github-actions', 'mathlib4-merge-conflict-bot', 'themathqueen', 'vlad902'] |
kmill assignee:kmill |
0-5940 1 hour ago |
16-7250 16 days ago |
28-56854 28 days |
| 28001 |
daefigueroa author:daefigueroa |
feat(Dynamics): add results on topologically transitive monoid actions |
We define topological transitivity for monoid actions on topological spaces, prove basic facts about topologically transitive actions and give some characterizations of topological transitivity.
---
This contribution was created as part of the Utrecht Summerschool "Formalizing Mathematics in Lean" in July 2025.
[](https://gitpod.io/from-referrer/) |
new-contributor
t-dynamics
|
107/0 |
Mathlib.lean,Mathlib/Dynamics/Transitive.lean |
2 |
2 |
['github-actions', 'mathlib4-merge-conflict-bot'] |
sgouezel assignee:sgouezel |
0-3344 55 minutes ago |
11-2928 11 days ago |
11-7483 11 days |
| 30518 |
euprunin author:euprunin |
chore(Cache): remove "No files to download" message. make `lake exe cache get` less verbose |
Fixes #27038.
---
[](https://gitpod.io/from-referrer/)
|
maintainer-merge
CI
|
28/29 |
Cache/IO.lean,Cache/Requests.lean |
2 |
11 |
['YaelDillies', 'euprunin', 'github-actions'] |
nobody |
0-2092 34 minutes ago |
12-59799 12 days ago |
15-53870 15 days |
| 31048 |
grunweg author:grunweg |
chore: make MDifferentiableAt.mfderiv_prod an alias. |
It duplicates a lemma above, but having this name is nice for discoverability.
---
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry |
2/8 |
Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean |
1 |
1 |
['github-actions'] |
nobody |
0-2009 33 minutes ago |
0-2014 33 minutes ago |
0-2056 34 minutes |
| 31050 |
EtienneC30 author:EtienneC30 |
feat: independence from a stochastic process |
Prove that a stochastic process $(X\_s)\_{s \in S}$ is independent from a random variable $Y$ if for all $s_1, ..., s_p \in S$ the family $(X_{s_1}, ..., X_{s_p})$ is independent from $Y$. Use this to refactor proofs.
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
70/34 |
Mathlib/Probability/Independence/Process.lean |
1 |
1 |
['github-actions'] |
nobody |
0-1507 25 minutes ago |
0-1649 27 minutes ago |
0-1627 27 minutes |
| 30665 |
alreadydone author:alreadydone |
feat(Algebra): congruence relation respecting SMul |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
197/18 |
Mathlib.lean,Mathlib/Algebra/Colimit/Module.lean,Mathlib/Algebra/Module/Congruence/Defs.lean,Mathlib/GroupTheory/Congruence/Defs.lean,Mathlib/RingTheory/Finiteness/Cardinality.lean,Mathlib/RingTheory/Spectrum/Prime/FreeLocus.lean |
6 |
14 |
['ADedecker', 'alreadydone', 'github-actions'] |
ADedecker assignee:ADedecker |
0-1469 24 minutes ago |
0-38149 10 hours ago |
10-7990 10 days |