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-54252 2 months ago |
85-54252 2 months ago |
134-22963 134 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-54146 2 months ago |
85-54146 2 months ago |
172-11195 172 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-85320 2 months ago |
117-10398 3 months ago |
117-10433 117 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-85319 2 months ago |
90-34968 2 months ago |
117-22803 117 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 |
82-49096 2 months ago |
94-32393 3 months ago |
94-32418 94 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-85336 2 months ago |
141-72646 4 months ago |
157-18172 157 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-85311 2 months ago |
80-12147 2 months ago |
80-12184 80 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-85326 2 months ago |
82-20618 2 months ago |
82-81514 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-85334 2 months ago |
82-17403 2 months ago |
82-17439 82 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-85331 2 months ago |
80-30261 2 months ago |
80-30300 80 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-85340 2 months ago |
76-58276 2 months ago |
76-58314 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 |
67-31728 2 months ago |
103-60174 3 months ago |
103-60208 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-85306 2 months ago |
74-9758 2 months ago |
74-9732 74 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-85311 2 months ago |
74-81659 2 months ago |
74-81634 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-85308 2 months ago |
77-67524 2 months ago |
77-70225 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-85337 2 months ago |
75-29137 2 months ago |
79-46826 79 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 |
63-32291 2 months ago |
112-86398 3 months ago |
113-34 113 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 |
63-26567 2 months ago |
171-23932 5 months ago |
218-76140 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-56959 2 months ago |
123-78175 4 months ago |
123-82917 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-56715 2 months ago |
131-7878 4 months ago |
131-12480 131 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-64958 1 month ago |
58-70004 1 month ago |
123-40483 123 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-59440 1 month ago |
101-36264 3 months ago |
101-36307 101 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-61988 1 month ago |
85-54374 2 months ago |
129-10587 129 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 |
54-51384 1 month ago |
54-51384 1 month ago |
60-37565 60 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 |
54-29980 1 month ago |
61-53869 2 months ago |
63-24473 63 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 |
52-50018 1 month ago |
74-56473 2 months ago |
74-56505 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 |
46-20230 1 month ago |
46-20255 1 month ago |
194-7968 194 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-85317 1 month ago |
62-51549 2 months ago |
62-51565 62 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-53804 1 month ago |
196-52036 6 months ago |
252-12745 252 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-85312 1 month ago |
52-53870 1 month ago |
79-31225 79 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-57725 1 month ago |
168-40762 5 months ago |
253-13785 253 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 |
44-32713 1 month ago |
44-32721 1 month ago |
108-47022 108 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 |
44-31863 1 month ago |
48-26294 1 month ago |
132-26335 132 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 |
41-20990 1 month ago |
76-8381 2 months ago |
76-9835 76 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 |
41-7591 1 month ago |
41-7591 1 month ago |
41-58973 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-85320 1 month ago |
48-24753 1 month ago |
48-25404 48 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-71334 1 month ago |
50-75923 1 month ago |
98-42999 98 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 |
40-10764 1 month ago |
52-46716 1 month ago |
52-46758 52 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-85332 1 month ago |
48-30174 1 month ago |
48-30212 48 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 |
39-8666 1 month ago |
47-28480 1 month ago |
47-30765 47 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 |
37-1256 1 month ago |
37-1256 1 month ago |
48-31456 48 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-85326 1 month ago |
44-13642 1 month ago |
44-13618 44 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 |
36-12694 1 month ago |
44-23645 1 month ago |
44-23621 44 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 |
35-28581 1 month ago |
66-18818 2 months ago |
66-18851 66 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 |
35-19895 1 month ago |
51-14067 1 month ago |
64-29978 64 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-85324 1 month ago |
42-38881 1 month ago |
46-51801 46 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-85325 1 month ago |
41-57299 1 month ago |
49-76845 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-85319 1 month ago |
41-32845 1 month ago |
41-49372 41 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-85314 1 month ago |
45-41024 1 month ago |
45-41007 45 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-66850 1 month ago |
49-29285 1 month ago |
49-29260 49 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-55571 1 month ago |
138-39683 4 months ago |
138-39658 138 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-85327 1 month ago |
54-24404 1 month ago |
54-24446 54 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-59865 1 month ago |
60-84992 1 month ago |
60-85024 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-85311 29 days ago |
37-44175 1 month ago |
37-44152 37 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-85303 28 days ago |
36-36678 1 month ago |
36-36655 36 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-55560 28 days ago |
29-41282 29 days ago |
128-21692 128 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 |
28-35653 28 days ago |
28-35653 28 days ago |
108-36875 108 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 |
28-16528 28 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 |
27-52837 27 days ago |
64-71680 2 months ago |
71-41147 71 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 |
26-44864 26 days ago |
36-34022 1 month ago |
42-73059 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-85332 25 days ago |
33-54080 1 month ago |
33-54113 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-55109 25 days ago |
53-63026 1 month ago |
53-63059 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-54105 25 days ago |
139-37518 4 months ago |
139-37492 139 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 |
25-45390 25 days ago |
45-74335 1 month ago |
45-77558 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-63213 24 days ago |
62-54070 2 months ago |
157-20116 157 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 |
24-47038 24 days ago |
24-47038 24 days ago |
47-73553 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 |
24-36487 24 days ago |
25-9399 25 days ago |
39-45727 39 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 |
24-25676 24 days ago |
86-52308 2 months ago |
127-61712 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 |
24-16529 24 days ago |
63-19272 2 months ago |
113-4278 113 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-85504 23 days ago |
77-31821 2 months ago |
114-11136 114 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-85329 23 days ago |
31-21719 1 month ago |
32-35124 32 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-85131 23 days ago |
24-27260 24 days ago |
24-27292 24 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-73436 23 days ago |
23-75120 23 days ago |
70-69265 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 |
23-28110 23 days ago |
23-28110 23 days ago |
72-57978 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 |
23-27611 23 days ago |
64-53384 2 months ago |
64-53360 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 |
23-13840 23 days ago |
23-14299 23 days ago |
46-51595 46 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-85332 22 days ago |
30-59420 1 month ago |
30-60998 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-85327 22 days ago |
30-30197 1 month ago |
30-30829 30 days |
| 29361 |
FlAmmmmING author:FlAmmmmING |
feat: Catalan generating function as a formal power series |
We introduce the Catalan generating function as a formal power series over `ℕ`.
## Main Definitions
* `PowerSeries.catalanSeries`: The Catalan generating function as a power series.
## Main Results
* `PowerSeries.sum_coeff_X_catalanSeries`: When `n` is a natural number,
each term in the sum `coeff i X * catalan (n - i)` is 0 except for `i = 1`.
* `PowerSeries.coeff_X_mul_catalanSeries`: The coefficient of `X * catalanSeries` at `X^n` is
`catalan (n - 1)` when `n > 0`.
* `PowerSeries.catalanSeries_one_add_X_mul_self_sq`: The Catalan generating function satisfies the
equation `catalanSeries = 1 + X * catalanSeries ^ 2`.
---
[](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-61929 21 days ago |
54-58004 1 month ago |
54-58033 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-85323 20 days ago |
28-58211 28 days ago |
28-58189 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-85323 20 days ago |
28-9179 28 days ago |
28-9212 28 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-61731 20 days ago |
20-61731 20 days ago |
53-64700 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 |
20-44668 20 days ago |
20-85139 20 days ago |
20-85176 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 |
20-26352 20 days ago |
38-38893 1 month ago |
38-38902 38 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 |
20-22784 20 days ago |
37-15214 1 month ago |
37-80676 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 |
20-16370 20 days ago |
34-18290 1 month ago |
34-18266 34 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 |
20-10891 20 days ago |
20-10891 20 days ago |
73-27241 73 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 |
20-9193 20 days ago |
91-75342 2 months ago |
91-75327 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 |
20-8208 20 days ago |
90-33678 2 months ago |
90-33723 90 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-85330 19 days ago |
42-47930 1 month ago |
42-47974 42 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-85328 19 days ago |
27-48339 27 days ago |
27-48442 27 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-85324 19 days ago |
27-11658 27 days ago |
27-11692 27 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-78411 19 days ago |
53-11847 1 month ago |
55-34800 55 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 |
19-42429 19 days ago |
104-23053 3 months ago |
104-27361 104 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 |
19-38154 19 days ago |
19-38473 19 days ago |
87-75966 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 |
19-37719 19 days ago |
23-70195 23 days ago |
50-1867 50 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-85440 18 days ago |
136-44381 4 months ago |
136-44421 136 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-85340 18 days ago |
35-28863 1 month ago |
35-28902 35 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-85335 18 days ago |
26-76634 26 days ago |
26-76669 26 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 |
18-33147 18 days ago |
31-21597 1 month ago |
31-32828 31 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 |
18-31066 18 days ago |
41-3741 1 month ago |
41-10740 41 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 |
18-19314 18 days ago |
26-40183 26 days ago |
26-40233 26 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 |
18-17834 18 days ago |
25-9340 25 days ago |
25-9376 25 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 |
18-14150 18 days ago |
20-77625 20 days ago |
32-15208 32 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-85314 16 days ago |
24-33628 24 days ago |
29-44088 29 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 |
16-49090 16 days ago |
26-29871 26 days ago |
26-29902 26 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 |
16-42596 16 days ago |
16-42596 16 days ago |
16-45644 16 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-85324 15 days ago |
23-7095 23 days ago |
23-7130 23 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-56480 15 days ago |
57-1022 1 month ago |
90-62284 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-53142 15 days ago |
41-47802 1 month ago |
88-67822 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 |
15-44027 15 days ago |
80-20507 2 months ago |
94-13334 94 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-81622 14 days ago |
15-15578 15 days ago |
15-15615 15 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-56642 14 days ago |
15-79324 15 days ago |
15-79361 15 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 |
14-36333 14 days ago |
15-45902 15 days ago |
15-45934 15 days |
| 28546 |
Sfgangloff author:Sfgangloff |
feat(SymbolicDynamics): basic setup of Zd, full shift, cylinders, pat… |
# Symbolic dynamics on groups: core API and entropy along finite shapes
This PR adds a **group-generic** foundation for symbolic dynamics over an arbitrary group `G`, together with convenient specializations for `ℤ` and `ℤ^d`.
## Summary of additions
- **Full shift and shift action**
- `abbrev FullShift (A G) := G → A` (inherits product topology from the Π-type).
- Right shift `shift g x` with convention `(shift g x) h = x (h * g)`.
- **Cylinders and topology**
- `cylinder U x : Set (G → A)` for finite `U : Finset G`.
- Cylinders are open under `[DiscreteTopology A]`; with a finite alphabet they are also closed.
- Equality with dependent products:
`cylinder U x = Set.pi (↑U) (fun i => ({x i} : Set A))`, enabling use of the `Set.pi` API.
- **Patterns, occurrences, and subshifts**
- `Pattern A G` with finite `support : Finset G` and `data : support → A`.
- `Pattern.occursIn p x g` (occurrence at translate `g`) and the expected shift law.
- `forbids F` and `Subshift A G` (closed, shift-invariant subsets).
- `FixedSupport A G U` with an equivalence to `(U → A)` to obtain finiteness.
- **Language on finite shapes and counting**
- `languageOn X U`, `languageCardOn X U`, and `patternCountOn Y U`.
- **Entropy along a shape sequence**
- `limsupAtTop` (as an `sInf` of eventual upper bounds).
- `entropyAlong X F hF := limsup (log (patternCountOn X (F n) + 1) / |F n|)`
for any nonempty finite shapes `F : ℕ → Finset G` (the `+ 1` avoids `log 0`).
- **Specializations**
- `IntShapes`: segments `[-n,n]` on `Multiplicative ℤ`, with `entropy_Z`.
- `ZdShapes`: boxes `[-n,n]^d` on `ℤ^d` (as functions `Fin d → ℤ`), with `entropy_Zd`.
## Mathematical remarks
- The API is **shape-parametric**: entropy is defined along user-provided finite shapes.
- On **amenable** groups, using a **Følner** sequence yields a canonical value (Ornstein–Weiss).
This PR does not assume amenability; the family of shapes is an explicit input.
## Motivation
Provide a clean, reusable base for symbolic dynamics on groups in mathlib.
## Future work
- Add a Følner predicate and prove shape-independence / limit existence on amenable groups.
- Expand the `ℤ`/`ℤ^d` toolkit (alternative shapes, mixing, factors).
- Develop 1D theory and, longer-term, multidimensional SFT results (e.g. along the lines of Hochman–Meyerovitch).
|
new-contributor
t-dynamics
|
751/0 |
Mathlib.lean,Mathlib/Dynamics/SymbolicDynamics/Basic.lean,Mathlib/Tactic/ToAdditive/GuessName.lean |
3 |
84 |
['Sfgangloff', 'eric-wieser', 'github-actions', 'kckennylau', 'sgouezel'] |
sgouezel assignee:sgouezel |
14-32052 14 days ago |
14-32052 14 days ago |
58-49581 58 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-85321 13 days ago |
26-51077 26 days ago |
26-51111 26 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-85319 13 days ago |
21-53373 21 days ago |
21-53848 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-76317 13 days ago |
13-76317 13 days ago |
13-76377 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 |
13-12192 13 days ago |
15-23620 15 days ago |
32-77010 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-85250 12 days ago |
12-85262 12 days ago |
12-85306 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 |
12-51166 12 days ago |
20-50704 20 days ago |
20-51102 20 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 |
12-32184 12 days ago |
28-3126 28 days ago |
28-62142 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 |
12-29331 12 days ago |
30-26172 1 month ago |
31-82077 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 |
12-10015 12 days ago |
12-10015 12 days ago |
81-62429 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 |
12-1517 12 days ago |
15-13779 15 days ago |
15-13818 15 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-85345 11 days ago |
19-45938 19 days ago |
20-24600 20 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 |
11-47063 11 days ago |
21-18604 21 days ago |
21-22487 21 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 |
11-22257 11 days ago |
11-23957 11 days ago |
14-83448 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 |
11-18851 11 days ago |
12-26181 12 days ago |
12-26226 12 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 |
11-14984 11 days ago |
67-47645 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 |
5-30561 5 days ago |
11-83173 11 days ago |
21-45384 21 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-85290 10 days ago |
21-50612 21 days ago |
21-50588 21 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-85288 10 days ago |
18-57833 18 days ago |
18-57866 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-85287 10 days ago |
18-35246 18 days ago |
18-35280 18 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-67924 10 days ago |
18-6014 18 days ago |
18-6970 18 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-55177 10 days ago |
41-61884 1 month ago |
41-61916 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 |
10-3682 10 days ago |
43-40661 1 month ago |
43-56867 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-85314 9 days ago |
66-35569 2 months ago |
92-26563 92 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-85313 9 days ago |
43-85340 1 month ago |
65-53437 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-85312 9 days ago |
63-55427 2 months ago |
63-55466 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-85311 9 days ago |
17-83407 17 days ago |
18-32008 18 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-85310 9 days ago |
17-74474 17 days ago |
19-5858 19 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-61676 9 days ago |
43-32818 1 month ago |
43-32851 43 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-61094 9 days ago |
9-61356 9 days ago |
32-84221 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-52955 9 days ago |
9-52977 9 days ago |
75-53863 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 |
9-38054 9 days ago |
27-28914 27 days ago |
27-28892 27 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 |
9-30675 9 days ago |
9-30675 9 days ago |
61-59964 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 |
9-26596 9 days ago |
9-27302 9 days ago |
51-16850 51 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 |
9-16657 9 days ago |
9-16658 9 days ago |
9-16701 9 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-85319 8 days ago |
35-20375 1 month ago |
53-16571 53 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-85313 8 days ago |
16-75962 16 days ago |
16-76000 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-81260 8 days ago |
21-16285 21 days ago |
21-16317 21 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 |
8-51157 8 days ago |
19-38763 19 days ago |
19-38806 19 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 |
8-36407 8 days ago |
8-36434 8 days ago |
35-64054 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 |
8-35088 8 days ago |
8-35149 8 days ago |
9-3956 9 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 |
8-15246 8 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-85302 7 days ago |
15-13128 15 days ago |
15-13166 15 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-60192 7 days ago |
86-25315 2 months ago |
101-36629 101 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-59930 7 days ago |
7-59951 7 days ago |
84-42315 84 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-59881 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-53872 7 days ago |
8-11506 8 days ago |
8-11544 8 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-53862 7 days ago |
8-43355 8 days ago |
8-43397 8 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-53856 7 days ago |
8-19374 8 days ago |
8-19420 8 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-53840 7 days ago |
8-37713 8 days ago |
8-37779 8 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-53759 7 days ago |
9-6548 9 days ago |
30-40660 30 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 |
7-46268 7 days ago |
27-12842 27 days ago |
27-12819 27 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 |
7-46071 7 days ago |
7-46091 7 days ago |
47-44727 47 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 |
7-43918 7 days ago |
7-59987 7 days ago |
7-59998 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 |
7-43326 7 days ago |
7-43326 7 days ago |
7-43387 7 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 |
7-18821 7 days ago |
7-20431 7 days ago |
7-20684 7 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 |
7-17155 7 days ago |
7-17389 7 days ago |
108-38235 108 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 |
7-10481 7 days ago |
7-16200 7 days ago |
7-16243 7 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-85318 6 days ago |
171-3312 5 months ago |
237-3285 237 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-85313 6 days ago |
24-1617 24 days ago |
24-1655 24 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-85311 6 days ago |
21-31212 21 days ago |
21-31248 21 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-85310 6 days ago |
21-25613 21 days ago |
21-25649 21 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-85306 6 days ago |
14-38315 14 days ago |
14-38355 14 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-82854 6 days ago |
7-14515 7 days ago |
7-14492 7 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-82150 6 days ago |
24-35650 24 days ago |
24-35689 24 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-79126 6 days ago |
8-17383 8 days ago |
52-58775 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-69990 6 days ago |
6-81918 6 days ago |
26-45978 26 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-69144 6 days ago |
6-69170 6 days ago |
35-77687 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-53204 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 |
6-52383 6 days ago |
6-52383 6 days ago |
125-55117 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 |
6-45969 6 days ago |
6-57429 6 days ago |
14-28467 14 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 |
6-41658 6 days ago |
9-27907 9 days ago |
130-10482 130 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 |
6-35688 6 days ago |
6-35697 6 days ago |
6-35739 6 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 |
6-33003 6 days ago |
6-33003 6 days ago |
7-42124 7 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 |
6-31590 6 days ago |
6-31600 6 days ago |
6-31640 6 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 |
6-24652 6 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 |
6-7975 6 days ago |
6-7997 6 days ago |
52-10153 52 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-86337 5 days ago |
6-30394 6 days ago |
8-75676 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-85336 5 days ago |
42-46139 1 month ago |
51-33627 51 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-85336 5 days ago |
51-83281 1 month ago |
51-83257 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-85327 5 days ago |
13-30289 13 days ago |
13-30272 13 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-56786 5 days ago |
5-56804 5 days ago |
92-17637 92 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-56512 5 days ago |
6-35874 6 days ago |
9-7199 9 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 |
5-52673 5 days ago |
5-57063 5 days ago |
5-57385 5 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 |
5-39458 5 days ago |
62-15170 2 months ago |
68-42454 68 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 |
5-37256 5 days ago |
5-37256 5 days ago |
34-21793 34 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 |
5-35929 5 days ago |
5-35980 5 days ago |
10-6389 10 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 |
5-35492 5 days ago |
5-35603 5 days ago |
5-35580 5 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 |
5-27514 5 days ago |
5-33096 5 days ago |
5-33142 5 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 |
5-17815 5 days ago |
37-31014 1 month ago |
37-32294 37 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 |
5-16981 5 days ago |
6-27051 6 days ago |
6-27093 6 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 |
5-15778 5 days ago |
6-30664 6 days ago |
6-30710 6 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 |
5-6000 5 days ago |
5-6073 5 days ago |
5-12521 5 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-85327 4 days ago |
48-83733 1 month ago |
48-83725 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-85324 4 days ago |
19-6838 19 days ago |
19-6870 19 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-85323 4 days ago |
18-58838 18 days ago |
18-58879 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-75997 4 days ago |
20-5497 20 days ago |
20-5534 20 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-73041 4 days ago |
4-73045 4 days ago |
4-73090 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-72309 4 days ago |
5-42250 5 days ago |
20-2358 20 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-69392 4 days ago |
33-11077 1 month ago |
33-11060 33 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-54351 4 days ago |
4-57653 4 days ago |
4-57630 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-54349 4 days ago |
5-3569 5 days ago |
5-3547 5 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-53171 4 days ago |
13-39515 13 days ago |
13-39558 13 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 |
4-49102 4 days ago |
4-57383 4 days ago |
73-21070 73 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 |
4-42094 4 days ago |
4-42434 4 days ago |
4-48012 4 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 |
4-41297 4 days ago |
4-47191 4 days ago |
4-47180 4 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 |
4-36101 4 days ago |
4-57367 4 days ago |
4-60839 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 |
4-35736 4 days ago |
4-35804 4 days ago |
5-41817 5 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 |
4-35308 4 days ago |
4-35308 4 days ago |
18-3097 18 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 |
4-32298 4 days ago |
4-32298 4 days ago |
7-28645 7 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 |
4-27947 4 days ago |
5-21567 5 days ago |
47-70918 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 |
4-26656 4 days ago |
4-26656 4 days ago |
23-80253 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 |
4-23900 4 days ago |
4-27911 4 days ago |
4-27952 4 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 |
4-21548 4 days ago |
4-30492 4 days ago |
4-30541 4 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 |
4-19342 4 days ago |
4-21414 4 days ago |
4-21459 4 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 |
4-16576 4 days ago |
6-28258 6 days ago |
6-28305 6 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 |
4-5098 4 days ago |
4-8503 4 days ago |
4-9226 4 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 |
4-975 4 days ago |
6-33549 6 days ago |
19-5953 19 days |
| 30436 |
wwylele author:wwylele |
feat(Topology/InfiniteSum): tprod_one_{add/sub}_ordered |
This extends the existing `Finset.prod_one_sub_ordered` to infinite sum/product, and also adds the more natural `add` version.
Together with some previous PRs about infinite sum/prod and powerseries, this is part of my effort of upstreaming useful stuff from https://github.com/wwylele/PentagonalNumberTheorem. It starts getting into niche lemma, so suggestions such that not wanting this in mathlib, or it should be stated in a different form, are all welcomed.
---
[](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-85316 3 days ago |
11-23965 11 days ago |
18-43689 18 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-85313 3 days ago |
11-23248 11 days ago |
13-84331 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-85311 3 days ago |
11-31642 11 days ago |
11-55621 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-82373 3 days ago |
5-38826 5 days ago |
5-54257 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-79366 3 days ago |
5-43136 5 days ago |
5-43112 5 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-75324 3 days ago |
3-81345 3 days ago |
3-81327 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 |
3-46653 3 days ago |
4-24812 4 days ago |
10-36478 10 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 |
3-43845 3 days ago |
4-9831 4 days ago |
4-24716 4 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 |
3-38593 3 days ago |
3-80345 3 days ago |
5-39310 5 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 |
3-34035 3 days ago |
14-11815 14 days ago |
14-11804 14 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 |
3-31953 3 days ago |
4-16387 4 days ago |
4-16364 4 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 |
3-26117 3 days ago |
3-31059 3 days ago |
3-36890 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 |
3-14825 3 days ago |
3-14833 3 days ago |
3-14877 3 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 |
3-13245 3 days ago |
3-13252 3 days ago |
3-13297 3 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-85292 2 days ago |
10-47411 10 days ago |
10-52058 10 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-84078 2 days ago |
2-84078 2 days ago |
24-51113 24 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-82267 2 days ago |
2-82344 2 days ago |
2-82321 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-81888 2 days ago |
3-44876 3 days ago |
25-10275 25 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-77185 2 days ago |
2-78831 2 days ago |
31-44250 31 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-76612 2 days ago |
2-81119 2 days ago |
24-45231 24 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-73470 2 days ago |
2-73660 2 days ago |
2-73636 2 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 |
2-49190 2 days ago |
16-26429 16 days ago |
16-27420 16 days |
| 30962 |
WangYiran01 author:WangYiran01 |
feat(Combinatorics/Enumerative): add lattice path lemmas and counts |
This PR adds definitions and theorems about monotone lattice paths:
- Defines `pathCount`, `pathCountFrom`, `SubdiagProp`, and related structures.
- Proves closed forms such as `pathCount_eq_closed`.
- Adds Dyck/ballot subdiagonal property (`SubdiagProp`).
All code builds successfully with `lake build`. |
new-contributor
t-combinatorics
|
64/0 |
Mathlib.lean,Mathlib/Combinatorics/Enumerative/RecLatticePath.lean |
2 |
1 |
['github-actions'] |
nobody |
2-40621 2 days ago |
2-61423 2 days ago |
2-61464 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 |
2-39458 2 days ago |
4-3041 4 days ago |
4-3084 4 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 |
2-39422 2 days ago |
6-35101 6 days ago |
18-73383 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 |
2-39361 2 days ago |
2-39361 2 days ago |
32-44195 32 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 |
2-32812 2 days ago |
17-32042 17 days ago |
86-19064 86 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 |
2-29183 2 days ago |
2-29207 2 days ago |
2-29241 2 days |
| 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 |
2-29064 2 days ago |
2-29084 2 days ago |
16-68946 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 |
2-28778 2 days ago |
6-18583 6 days ago |
6-18559 6 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 |
2-28742 2 days ago |
2-28749 2 days ago |
2-28787 2 days |
| 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 |
2-27947 2 days 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 |
2-21402 2 days ago |
2-65951 2 days ago |
2-65992 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 |
2-21240 2 days ago |
3-20533 3 days ago |
3-20583 3 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 |
2-21118 2 days ago |
5-23831 5 days ago |
5-23881 5 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 |
2-10427 2 days ago |
2-10429 2 days ago |
5-32733 5 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 |
2-7116 2 days ago |
2-9816 2 days ago |
2-9920 2 days |
| 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-85335 1 day ago |
9-17902 9 days ago |
11-17143 11 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-85333 1 day ago |
22-54507 22 days ago |
22-54539 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-85331 1 day ago |
9-56258 9 days ago |
9-80997 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-85328 1 day ago |
10-19026 10 days ago |
10-19067 10 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-85325 1 day ago |
9-51016 9 days ago |
9-52938 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-85324 1 day ago |
9-51147 9 days ago |
9-51188 9 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-85036 1 day ago |
1-85292 1 day ago |
1-85268 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-84370 1 day ago |
1-84370 1 day ago |
2-1639 2 days |
| 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-84281 1 day ago |
2-12984 2 days ago |
2-12960 2 days |
| 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-84146 1 day ago |
2-1225 2 days ago |
2-42532 2 days |
| 29960 |
yonggyuchoimath author:yonggyuchoimath |
feat(Algebra/Category/Ring): equalizers of pushout maps of tensor product inclusions |
This PR defines a ring map `S →ₗ[R] S ⊗[R] S : s ↦ (s ⊗ₜ[R] 1) - (1 ⊗ₜ[R] s)` for an `R`-algebra `S`, and show that its kernel is exactly (the image of) `R` if `S` is faithfully flat over `R`.
Changes:
* `TensorProduct.AlgebraTensorModule.distribBaseChange`: Origianlly takes `M` and `N`, where `M` is an `R`-module with an additional instance `IsScalarTower R A M`. This is unnecessary, so I changed the `M` and `N` into `N` and `Q`, now both of which are merely modules over `R`.
Main results :
* Add compatibility of `Algebra.TensorProduct.includeLeft` (or `Algebra.TensorProduct.includeRight`) with `TensorProduct.AlgebraTensorModule.distribBaseChange` and `LinearMap.lTensor`
* Define `Algebra.TensorProduct.includeLeftSubRight`, which is the `R`-linear map `S →ₗ[R] S ⊗[R] S` sending `s : S` to `(s ⊗ₜ[R] 1) - (1 ⊗ₜ[R] s)`.
* `Algebra.TensorProduct.exactIncludeLeftSubRight_of_faithfullyFlat`: the pair `algebraMap : R → S` and `includeLeftSubRight R S : S → S ⊗[R] S` is exact if `S` is a faithfully flat `R`-algebra.
---
- [x] depends on: #30806 |
new-contributor |
223/1 |
Mathlib.lean,Mathlib/LinearAlgebra/TensorProduct/Tower.lean,Mathlib/RingTheory/TensorProduct/IncludeLeftSubRight.lean,Mathlib/RingTheory/TensorProduct/Maps.lean |
4 |
7 |
['erdOne', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'yonggyuchoimath'] |
TwoFX assignee:TwoFX |
1-74243 1 day ago |
1-77514 1 day ago |
29-59493 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-61929 1 day ago |
1-61952 1 day ago |
63-44497 63 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-61356 1 day ago |
1-61378 1 day ago |
48-12923 48 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-60762 1 day ago |
6-7620 6 days ago |
6-9699 6 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-59409 1 day ago |
59-18771 1 month ago |
59-18907 59 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-57265 1 day ago |
72-34407 2 months ago |
72-34442 72 days |
| 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-55396 1 day ago |
1-55399 1 day ago |
1-55443 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-54822 1 day ago |
1-54822 1 day ago |
34-51962 34 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 |
1-52775 1 day ago |
3-12380 3 days ago |
3-12428 3 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 |
1-51691 1 day ago |
1-51756 1 day ago |
1-51740 1 day |
| 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 |
1-50811 1 day ago |
1-51169 1 day ago |
1-51293 1 day |
| 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 |
1-50053 1 day ago |
1-64831 1 day ago |
1-67157 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 |
1-49122 1 day ago |
1-54850 1 day ago |
1-54887 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 |
1-46143 1 day ago |
59-17786 1 month ago |
128-44376 128 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 |
1-45426 1 day ago |
8-25503 8 days ago |
30-65185 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 |
5 |
['euprunin', 'github-actions', 'grunweg'] |
grunweg assignee:grunweg |
1-42880 1 day ago |
1-48660 1 day ago |
1-51649 1 day |
| 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 |
1-42684 1 day ago |
1-49849 1 day ago |
1-49887 1 day |
| 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 |
1-41744 1 day ago |
3-40886 3 days ago |
3-41577 3 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 |
1-41244 1 day ago |
1-41244 1 day ago |
77-62609 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 |
1-41157 1 day ago |
31-58926 1 month ago |
58-78048 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 |
1-40123 1 day ago |
1-40123 1 day ago |
1-48991 1 day |
| 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 |
1-37760 1 day ago |
1-37780 1 day ago |
29-24630 29 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 |
1-36636 1 day ago |
1-81894 1 day ago |
1-81871 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 |
1-33888 1 day ago |
11-27656 11 days ago |
11-31388 11 days |
| 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 |
1-33376 1 day ago |
25-82835 25 days ago |
40-78914 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 |
1-33369 1 day ago |
1-35741 1 day ago |
1-35779 1 day |
| 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 |
1-32174 1 day ago |
5-29876 5 days ago |
28-65299 28 days |
| 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 |
1-32015 1 day ago |
1-32017 1 day ago |
1-33879 1 day |
| 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 |
1-30995 1 day ago |
1-30995 1 day ago |
1-31149 1 day |
| 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 |
1-29594 1 day ago |
3-29662 3 days ago |
3-35509 3 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 |
1-28561 1 day ago |
1-28561 1 day ago |
2-5620 2 days |
| 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 |
1-28173 1 day ago |
9-24997 9 days ago |
9-25037 9 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 |
1-27171 1 day ago |
1-54870 1 day ago |
49-8812 49 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 |
1-27132 1 day ago |
1-61727 1 day ago |
2-2426 2 days |
| 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 |
1-26218 1 day ago |
5-25741 5 days ago |
5-30612 5 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 |
1-25814 1 day ago |
1-46871 1 day ago |
1-49442 1 day |
| 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 |
1-24138 1 day ago |
1-24169 1 day ago |
5-37792 5 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 |
1 |
['github-actions'] |
nobody |
1-24037 1 day ago |
1-24039 1 day ago |
1-24082 1 day |
| 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 |
1-23986 1 day ago |
1-24014 1 day ago |
16-83930 16 days |
| 30877 |
YaelDillies author:YaelDillies |
feat(Algebra/MonoidAlgebra): extend the `R[M]` notation to `MonoidAlgebra R M` |
It currently only is notation for `AddMonoidAlgebra R M`.
---
[](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 |
1-22608 1 day ago |
1-22648 1 day ago |
1-53188 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 |
1-19237 1 day ago |
1-53502 1 day ago |
25-9978 25 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 |
1-18592 1 day ago |
11-46764 11 days ago |
11-46751 11 days |
| 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 |
1-17891 1 day ago |
1-17894 1 day ago |
1-17931 1 day |
| 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 |
1-14394 1 day ago |
1-14394 1 day ago |
1-14371 1 day |
| 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 |
1-12348 1 day ago |
1-42820 1 day ago |
1-42798 1 day |
| 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 |
1-10333 1 day ago |
21-8755 21 days ago |
22-17006 22 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 |
1-9919 1 day ago |
1-51630 1 day ago |
1-52533 1 day |
| 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 |
1-9727 1 day ago |
1-9727 1 day ago |
31-65342 31 days |
| 31036 |
chrisflav author:chrisflav |
chore(RingTheory): prerequisites for #31034 |
In particular, various lemmas on `Submodule.comap` for injective maps, lemmas about `Extension.Cotangent.mk` and a criterion for `IsLocalization.Away` for quotients.
---
[](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 |
1-8179 1 day ago |
1-8249 1 day ago |
1-8226 1 day |
| 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 |
1-7917 1 day ago |
1-7918 1 day ago |
1-7904 1 day |
| 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 |
1-6686 1 day ago |
1-45085 1 day ago |
1-45364 1 day |
| 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 |
1-4971 1 day ago |
1-6651 1 day ago |
1-6627 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-86335 23 hours ago |
1-1111 1 day ago |
1-1160 1 day |
| 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-86189 23 hours ago |
0-86189 23 hours ago |
1-48833 1 day |
| 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-85319 23 hours ago |
85-54232 2 months ago |
9-35950 9 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-85314 23 hours ago |
8-30823 8 days ago |
31-25430 31 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'] |
dagurtomas assignee:dagurtomas |
0-85313 23 hours ago |
8-36955 8 days ago |
8-36950 8 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'] |
awainverse assignee:awainverse |
0-85312 23 hours ago |
19-17716 19 days ago |
19-19944 19 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-85310 23 hours ago |
13-8490 13 days ago |
13-8534 13 days |
| 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-85309 23 hours ago |
1-47004 1 day ago |
1-49051 1 day |
| 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-85309 23 hours ago |
1-7626 1 day ago |
1-8526 1 day |
| 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'] |
adamtopaz assignee:adamtopaz |
0-85306 23 hours ago |
8-18088 8 days ago |
8-27533 8 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-83780 23 hours ago |
3-18899 3 days ago |
3-18877 3 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-80997 22 hours ago |
0-81006 22 hours ago |
0-81045 22 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$ |
137/0 |
Mathlib.lean,Mathlib/RingTheory/FilteredAlgebra/AssociatedGraded.lean |
2 |
15 |
['Thmoas-Guan', 'chrisflav', 'github-actions', 'mathlib4-merge-conflict-bot'] |
chrisflav assignee:chrisflav |
0-79401 22 hours ago |
1-38974 1 day ago |
20-34185 20 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$ |
258/10 |
Mathlib/Algebra/Category/Grp/Preadditive.lean,Mathlib/RingTheory/Ideal/AssociatedPrime/Localization.lean,Mathlib/RingTheory/Regular/Category.lean,Mathlib/RingTheory/Regular/Depth.lean |
4 |
n/a |
['Thmoas-Guan', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
nobody |
0-78899 21 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-75656 21 hours ago |
unknown |
unknown |
| 31044 |
kim-em author:kim-em |
chore: deprecation in LongestPole utility |
|
|
1/1 |
LongestPole/Main.lean |
1 |
1 |
['github-actions'] |
nobody |
0-68900 19 hours ago |
0-68966 19 hours ago |
0-68942 19 hours |
| 30771 |
dagurtomas author:dagurtomas |
chore(CategoryTheory): move `Closed` directory into `Monoidal` |
---
[](https://gitpod.io/from-referrer/)
|
file-removed |
36/36 |
Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean,Mathlib/AlgebraicTopology/SimplicialSet/Monoidal.lean,Mathlib/AlgebraicTopology/SimplicialSet/NerveAdjunction.lean,Mathlib/CategoryTheory/Category/Cat/CartesianClosed.lean,Mathlib/CategoryTheory/Distributive/Monoidal.lean,Mathlib/CategoryTheory/Limits/Sifted.lean,Mathlib/CategoryTheory/Monoidal/Braided/Reflection.lean,Mathlib/CategoryTheory/Monoidal/Closed/Basic.lean,Mathlib/CategoryTheory/Monoidal/Closed/Cartesian.lean,Mathlib/CategoryTheory/Monoidal/Closed/Enrichment.lean,Mathlib/CategoryTheory/Monoidal/Closed/Functor.lean,Mathlib/CategoryTheory/Monoidal/Closed/FunctorCategory/Basic.lean,Mathlib/CategoryTheory/Monoidal/Closed/FunctorCategory/Complete.lean,Mathlib/CategoryTheory/Monoidal/Closed/FunctorCategory/Groupoid.lean,Mathlib/CategoryTheory/Monoidal/Closed/FunctorToTypes.lean,Mathlib/CategoryTheory/Monoidal/Closed/Ideal.lean,Mathlib/CategoryTheory/Monoidal/Closed/Types.lean,Mathlib/CategoryTheory/Monoidal/Closed/Zero.lean,Mathlib/CategoryTheory/Monoidal/DayConvolution/Closed.lean,Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean,Mathlib/CategoryTheory/Monoidal/Subcategory.lean,Mathlib/CategoryTheory/Preadditive/Projective/Internal.lean,Mathlib/CategoryTheory/Sites/CartesianClosed.lean,Mathlib/CategoryTheory/Sites/Monoidal.lean,Mathlib/Condensed/CartesianClosed.lean,Mathlib/Condensed/Light/CartesianClosed.lean |
27 |
3 |
['github-actions', 'mathlib4-merge-conflict-bot'] |
nobody |
0-68462 19 hours ago |
0-68532 19 hours ago |
7-72915 7 days |
| 30473 |
CoolRmal author:CoolRmal |
feat(ComplexAnalysis): Cauchy's Integral Formula for Higher Order Derivatives |
This PR adds the following `iteratedDeriv_eq_smul_circleIntegral` and `norm_iteratedDeriv_le_aux`. The first one expresses the `n`-th order derivative of a differentiable function as a circle integral. The second one proves an estimate for the `n`-th order derivative.
Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Cauchy's.20integral.20formula
---
[](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 |
17 |
['CoolRmal', 'github-actions', 'loefflerd', 'wwylele'] |
ADedecker assignee:ADedecker |
0-65143 18 hours ago |
17-18430 17 days ago |
17-18461 17 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-62354 17 hours ago |
0-62354 17 hours ago |
0-62331 17 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-61985 17 hours ago |
0-61985 17 hours ago |
0-63926 17 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
- [x] depends on: #30382
This PR continues the work from #22508.
Original PR: https://github.com/leanprover-community/mathlib4/pull/22508 |
t-category-theory |
145/6 |
Mathlib.lean,Mathlib/CategoryTheory/Iso.lean,Mathlib/CategoryTheory/Localization/DerivabilityStructure/Basic.lean,Mathlib/CategoryTheory/Localization/DerivabilityStructure/PointwiseRightDerived.lean |
4 |
7 |
['github-actions', 'joelriou', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] |
nobody |
0-61531 17 hours ago |
0-61534 17 hours ago |
4-81441 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-61361 17 hours ago |
0-61361 17 hours ago |
0-73014 20 hours |
| 28336 |
joelriou author:joelriou |
feat(AlgebraicTopology/SimplicialSet): a helper structure to construct pairings |
In this PR, we introduce an helper structure `Subcomplex.PairingCore` in order to construct a pairing for a subcomplex of a simplicial set. The main differences with `Subcomplex.Pairing` are that we provide an index type `ι` in order to parametrize type (I) and type (II) simplices, and that the dimensions of these are definitionally `d` or `d + 1`.
---
- [ ] depends on: #28332
- [x] depends on: #28330
- [x] depends on: #28224
- [x] depends on: #27968
- [x] depends on: #28034
- [x] depends on: #26076
[](https://gitpod.io/from-referrer/)
|
t-algebraic-topology |
461/0 |
Mathlib.lean,Mathlib/AlgebraicTopology/SimplicialSet/AnodyneExtensions/IsUniquelyCodimOneFace.lean,Mathlib/AlgebraicTopology/SimplicialSet/AnodyneExtensions/Pairing.lean,Mathlib/AlgebraicTopology/SimplicialSet/AnodyneExtensions/PairingCore.lean,Mathlib/AlgebraicTopology/SimplicialSet/NonDegenerateSimplicesSubcomplex.lean,docs/references.bib |
6 |
5 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
nobody |
0-60982 16 hours ago |
7-45610 7 days ago |
0-2 2 seconds |
| 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-58878 16 hours ago |
16-60188 16 days ago |
29-23392 29 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-55030 15 hours ago |
0-55030 15 hours ago |
16-20407 16 days |
| 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-54445 15 hours ago |
0-54587 15 hours ago |
0-54564 15 hours |
| 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 |
0-50655 14 hours ago |
2-41347 2 days ago |
35-65598 35 days |
| 30696 |
joelriou author:joelriou |
feat(Order/Category): `PardOrdEmb` has filtered colimits |
---
- [x] depends on: #30693
[](https://gitpod.io/from-referrer/)
|
large-import
t-order
|
161/2 |
Mathlib/CategoryTheory/Limits/Types/Filtered.lean,Mathlib/Order/Category/PartOrdEmb.lean |
2 |
2 |
['github-actions', 'mathlib4-dependent-issues-bot'] |
nobody |
0-49565 13 hours ago |
0-49565 13 hours ago |
0-49595 13 hours |
| 30505 |
mariainesdff author:mariainesdff |
feat(NumberTheory/FunctionField/Ostrowski): prove Ostrowski's theorem for K(X) |
We prove Ostrowski's theorem for the field of rational functions `K(X)`, where `K` is any field.
Co-authored-by: @xgenereux
---
- [ ] depends on: #30404
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-number-theory
label:t-algebra$ |
348/2 |
Mathlib.lean,Mathlib/FieldTheory/RatFunc/AsPolynomial.lean,Mathlib/NumberTheory/RatFunc/Ostrowski.lean |
3 |
3 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
nobody |
0-48854 13 hours ago |
0-51077 14 hours ago |
0-51454 14 hours |
| 31051 |
joelriou author:joelriou |
chore(CategoryTheory): adding grind annotations for `op_comp` and `Quiver.Hom.comp_toLoc` |
This shall be used in #30189.
---
I have used `grind =`. In the application to #30189, any of `grind =`, `grind =_` or `grind _=_` would work. I am not sure which one is the best option.
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
2/2 |
Mathlib/CategoryTheory/Bicategory/LocallyDiscrete.lean,Mathlib/CategoryTheory/Opposites.lean |
2 |
3 |
['github-actions', 'joelriou', 'leanprover-bot'] |
nobody |
0-47969 13 hours ago |
0-47969 13 hours ago |
0-47946 13 hours |
| 30492 |
joelriou author:joelriou |
feat(CategoryTheory): the orthogonal-reflection construction |
Given `W : MorphismProperty C` (which should be small) and assuming the existence of certain colimits in `C`, we construct a morphism `toSucc W Z : Z ⟶ succ W Z` for any `Z : C`. This morphism belongs to `LeftBousfield.W W.isLocal` and is an isomorphism iff `Z` belongs to `W.isLocal`. The main definition is a fix to the (wrong) construction in the book *Locally presentable and accessible categories* by Adámek and Rosický.
In a future PR, we shall consider a transfinite iteration of this construction.
---
- [x] depends on: #30472
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
253/0 |
Mathlib.lean,Mathlib/CategoryTheory/Presentable/OrthogonalReflection.lean |
2 |
7 |
['github-actions', 'joelriou', 'kim-em', 'mathlib4-dependent-issues-bot'] |
nobody |
0-47778 13 hours ago |
0-57845 16 hours ago |
6-7943 6 days |
| 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 it is 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 |
7 |
['github-actions', 'joelriou', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
nobody |
0-47744 13 hours ago |
0-60285 16 hours ago |
0-60262 16 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-47622 13 hours ago |
0-60556 16 hours ago |
0-62231 17 hours |
| 31012 |
Ruben-VandeVelde author:Ruben-VandeVelde |
feat: {List,Multiset,Finset}.prod_le_sum |
---
[](https://gitpod.io/from-referrer/)
|
t-data |
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-46603 12 hours ago |
0-46603 12 hours ago |
1-33667 1 day |
| 31054 |
jsm28 author:jsm28 |
feat(LinearAlgebra/AffineSpace/Simplex/Basic): faces and `reindex` |
Add lemmas about the set of vertices of a `face` or `faceOpposite` of `Simplex.reindex`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
14/0 |
Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
0-46395 12 hours ago |
0-46459 12 hours ago |
0-46436 12 hours |
| 31043 |
kim-em author:kim-em |
chore: remove unneeded shortcut instances |
It seems all but one of the shortcut instances here have no effect. |
t-ring-theory |
0/33 |
Mathlib/RingTheory/Kaehler/Basic.lean |
1 |
4 |
['github-actions', 'leanprover-bot', 'leanprover-community-mathlib4-bot'] |
nobody |
0-46195 12 hours ago |
0-66787 18 hours ago |
0-70051 19 hours |
| 31055 |
jsm28 author:jsm28 |
feat(Geometry/Euclidean/Projection): `orthogonalProjectionSpan_congr` |
Add a congruence lemma for `orthogonalProjectionSpan` applied to two simplices with the same set of vertices, analogous to and proved using `orthogonalProjection_congr`, and a variant
`orthogonalProjectionSpan_reindex`.
---
[](https://gitpod.io/from-referrer/)
|
t-euclidean-geometry |
10/0 |
Mathlib/Geometry/Euclidean/Projection.lean |
1 |
0 |
[] |
nobody |
0-46124 12 hours ago |
0-46195 12 hours ago |
0-46172 12 hours |
| 30348 |
RemyDegenne author:RemyDegenne |
feat: convergence in probability implies convergence in distribution |
Prove that convergence in probability implies convergence in distribution, as well as Slutsky's theorem on the convergence of a product of random variables (since those two facts follow from the same lemma).
---
- [x] depends on: #30346
- [x] depends on: #30385
- [x] depends on: #30402
- [x] depends on: #30540
- [x] depends on: #30585
- [x] depends on: #30742
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
231/2 |
Mathlib/MeasureTheory/Function/ConvergenceInDistribution.lean,Mathlib/Topology/EMetricSpace/Lipschitz.lean,docs/1000.yaml |
3 |
4 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
nobody |
0-46051 12 hours ago |
0-46051 12 hours ago |
0-46028 12 hours |
| 31040 |
kim-em author:kim-em |
chore: deprecate `Mul.toSMul` in favour of lean4 instance |
|
t-algebra label:t-algebra$ |
9/7 |
Mathlib/Algebra/Algebra/Defs.lean,Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/RingTheory/Kaehler/Basic.lean,MathlibTest/instance_diamonds.lean |
4 |
3 |
['JovanGerb', 'github-actions', 'kim-em'] |
nobody |
0-45993 12 hours ago |
0-77784 21 hours ago |
0-77823 21 hours |
| 31053 |
kebekus author:kebekus |
feat: establish behavior of Nevanlinna functions when taking powers |
Establish the behavior of Nevanlinna functions when taking powers.
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 |
53/1 |
Mathlib/Analysis/Complex/ValueDistribution/CharacteristicFunction.lean,Mathlib/Analysis/Complex/ValueDistribution/CountingFunction.lean,Mathlib/Analysis/Complex/ValueDistribution/ProximityFunction.lean |
3 |
1 |
['github-actions'] |
nobody |
0-45513 12 hours ago |
0-46617 12 hours ago |
0-46654 12 hours |
| 30660 |
urkud author:urkud |
feat(Paracompact): add `ParacompactSpace.of_hasBasis` |
---
Cleaning up old branches. I don't have any applications in mind right now,
so feel free to reject.
- [x] depends on: #30662
[](https://gitpod.io/from-referrer/)
|
t-topology |
15/0 |
Mathlib/Topology/Compactness/Paracompact.lean |
1 |
2 |
['github-actions', 'mathlib4-dependent-issues-bot'] |
nobody |
0-41005 11 hours ago |
0-43040 11 hours ago |
0-46937 13 hours |
| 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 |
0-36768 10 hours ago |
9-60892 9 days ago |
27-9041 27 days |
| 26039 |
tsuki8 author:tsuki8 |
feat(RingTheory/MvPolynomial/{MonomialOrder,Ideal}): leadingTerm |
define the leadingTerm and prove some lemmas related to the def
`leadingTerm`: the leading term of `f` for the monomial ordering `m`
some basic lemmas about leadingTerm including:
1. `leadingTerm_eq_zero_iff`
2. `leadingTerm_image_sdiff_singleton_zero`
3. `leadingTerm_image_insert_zero`
4. `leadingTerm_zero`
5. `leadingTerm_degree_eq`
6. `leadingTerm_degree_eq'`
some lemmas about the degree of `f - m.leadingTerm f`:
1. `degree_sub_leadingTerm`
2. `degree_sub_leadingTerm_lt_degree`
3. `degree_sub_leadingTerm_lt_iff`
also some lemmas about leading terms and ideals:
1. `span_leadingTerm_sdiff_singleton_zero`
2. `span_leadingTerm_insert_zero`
3. `span_leadingTerm_eq_span_monomial`
4. `span_leadingTerm_eq_span_monomial'`
Co-authored-by: Junyu Guo @Hagb
---
- [x] depends on: #24361
- [x] depends on: #26148
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
large-import
new-contributor
|
163/1 |
Mathlib/RingTheory/MvPolynomial/Ideal.lean,Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean |
2 |
29 |
['Hagb', 'chrisflav', 'github-actions', 'kim-em', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
chrisflav assignee:chrisflav |
0-36565 10 hours ago |
0-36565 10 hours ago |
12-82252 12 days |
| 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-36418 10 hours ago |
8-53007 8 days ago |
8-52983 8 days |
| 31060 |
gasparattila author:gasparattila |
feat(Topology/MetricSpace): Hausdorff distance of singleton sets |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
17/1 |
Mathlib/Topology/MetricSpace/Closeds.lean,Mathlib/Topology/MetricSpace/HausdorffDistance.lean |
2 |
1 |
['github-actions'] |
nobody |
0-34644 9 hours ago |
0-34655 9 hours ago |
0-34695 9 hours |
| 31063 |
ADedecker author:ADedecker |
feat: biUnion_inter_of_pairwise_disjoint |
A basic order/set lemma: given a family `f` of pairwise disjoint sets, one has `⋃ i ∈ (s ∩ t), f i = (⋃ i ∈ s, f i) ∩ (⋃ i ∈ t, f i)`.
Prompted by #30109
---
[](https://gitpod.io/from-referrer/)
|
|
39/0 |
Mathlib/Data/Set/Lattice/Image.lean,Mathlib/Order/CompleteBooleanAlgebra.lean |
2 |
1 |
['github-actions'] |
nobody |
0-32676 9 hours ago |
0-32757 9 hours ago |
0-32733 9 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 |
6 |
['YaelDillies', 'github-actions', 'plp127'] |
nobody |
0-32376 8 hours ago |
1-24305 1 day ago |
1-24281 1 day |
| 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 |
101/0 |
Mathlib.lean,Mathlib/Data/Int/Fib.lean |
2 |
9 |
['github-actions', 'themathqueen', 'vihdzp'] |
nobody |
0-31008 8 hours ago |
2-33640 2 days ago |
3-29305 3 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-30165 8 hours ago |
1-38868 1 day ago |
1-38844 1 day |
| 31005 |
grunweg author:grunweg |
chore: golf using finiteness |
Benchmark before landing!
---
- [x] depends on: #30967
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
53/60 |
Archive/Wiedijk100Theorems/BallotProblem.lean,Mathlib/Analysis/Convex/Integral.lean,Mathlib/Analysis/SpecialFunctions/MulExpNegMulSqIntegral.lean,Mathlib/Dynamics/Ergodic/RadonNikodym.lean,Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean,Mathlib/MeasureTheory/Constructions/ProjectiveFamilyContent.lean,Mathlib/MeasureTheory/Function/Intersectivity.lean,Mathlib/MeasureTheory/Function/L1Space/Integrable.lean,Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean,Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean,Mathlib/MeasureTheory/Function/LpSpace/Indicator.lean,Mathlib/MeasureTheory/Integral/Indicator.lean,Mathlib/MeasureTheory/Measure/Real.lean,Mathlib/MeasureTheory/Measure/Typeclasses/Finite.lean |
14 |
8 |
['github-actions', 'grunweg', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'mathlib4-dependent-issues-bot'] |
nobody |
0-29402 8 hours ago |
0-30765 8 hours ago |
0-35090 9 hours |
| 30318 |
joelriou author:joelriou |
feat(Algebra/ModuleCat/Presheaf): composition of pushforwards and pullbacks and compatibilites |
The composition of two pullback functors on presheaves of modules `pullback φ ⋙ pullback ψ` identifies to the pullback of the composition. We show compatibilites for these isomorphisms: they are deduced from similar identifies for pushforwards (in which case they are `rfl`).
---
- [x] depends on: #30335
This PR continues the work from #17589.
Original PR: https://github.com/leanprover-community/mathlib4/pull/17589 |
t-algebra
t-algebraic-geometry
t-category-theory
label:t-algebra$ |
121/14 |
Mathlib/Algebra/Category/ModuleCat/Presheaf/Pullback.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Pushforward.lean,Mathlib/CategoryTheory/Adjunction/CompositionIso.lean |
3 |
3 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
nobody |
0-27619 7 hours ago |
0-27641 7 hours ago |
0-27663 7 hours |
| 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-26206 7 hours ago |
1-13541 1 day ago |
1-13633 1 day |
| 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/)
|
t-topology |
290/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-25966 7 hours ago |
0-51370 14 hours ago |
1-15471 1 day |
| 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/)
|
t-measure-probability |
132/0 |
Mathlib.lean,Mathlib/MeasureTheory/Measure/HasOuterApproxClosedProd.lean |
2 |
5 |
['EtienneC30', 'github-actions', 'sgouezel'] |
nobody |
0-20296 5 hours ago |
0-20324 5 hours ago |
1-3093 1 day |
| 31011 |
YuvalFilmus author:YuvalFilmus |
feat: properties of Chebyshev polynomials over the reals |
Added several properties of the Chebyshev polynomials:
- Degrees of T_n, U_n
- Leading coefficients of T_n, U_n
- Evaluations ofT_n, U_n at the endpoints ±1
- T_n is bounded on [-1, 1], and vice versa
- Zeroes of T_n and U_n, and extrema of T_n
- Normalized T_n minimizes the maximum absolute value over [-1, 1] for monic polynomials
---
[](https://gitpod.io/from-referrer/)
|
new-contributor |
1004/5 |
Mathlib.lean,Mathlib/Analysis/SpecialFunctions/Arsinh.lean,Mathlib/RingTheory/Polynomial/Chebyshev.lean,Mathlib/RingTheory/Polynomial/ChebyshevReal/Basic.lean,Mathlib/RingTheory/Polynomial/ChebyshevReal/Monic.lean |
5 |
8 |
['YuvalFilmus', 'github-actions', 'plp127'] |
nobody |
0-19778 5 hours ago |
1-32591 1 day ago |
1-32620 1 day |
| 31041 |
urkud author:urkud |
feat: add `Filter.HasBasis` for `map₂` and pointwise ops |
---
[](https://gitpod.io/from-referrer/)
|
t-order |
56/1 |
Mathlib/Order/Filter/NAry.lean,Mathlib/Order/Filter/Pointwise.lean,Mathlib/Topology/Algebra/GroupWithZero.lean |
3 |
2 |
['github-actions', 'urkud'] |
nobody |
0-18659 5 hours ago |
0-73210 20 hours ago |
0-73257 20 hours |
| 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/2 |
Mathlib/NumberTheory/NumberField/InfinitePlace/Ramification.lean |
1 |
5 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'smmercuri', 'xroblot'] |
alexjbest assignee:alexjbest |
0-18171 5 hours ago |
0-18499 5 hours ago |
30-45294 30 days |
| 31042 |
urkud author:urkud |
chore(ConstMulAction): generalize some lemmas |
... from `MulAction` to `SMul`.
---
[](https://gitpod.io/from-referrer/)
|
t-topology
easy
|
17/17 |
Mathlib/Topology/Algebra/ConstMulAction.lean |
1 |
1 |
['github-actions'] |
nobody |
0-13487 3 hours ago |
0-13487 3 hours ago |
0-71420 19 hours |
| 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 |
0-13445 3 hours ago |
6-26403 6 days ago |
9-85775 9 days |
| 31068 |
euprunin author:euprunin |
chore(RingTheory/TensorProduct): golf entire `toLinearEquiv_tensorTensorTensorComm` using `rfl` |
---
Show trace profiling of tensorTensorTensorComm_toLinearEquiv: 106 ms before, 108 ms after
### Trace profiling of `tensorTensorTensorComm_toLinearEquiv` before PR 31068
```diff
diff --git a/Mathlib/RingTheory/TensorProduct/Maps.lean b/Mathlib/RingTheory/TensorProduct/Maps.lean
index 306ce39fe8..2cecdcdad7 100644
--- a/Mathlib/RingTheory/TensorProduct/Maps.lean
+++ b/Mathlib/RingTheory/TensorProduct/Maps.lean
@@ -563,6 +563,7 @@ theorem tensorTensorTensorComm_symm :
(tensorTensorTensorComm R R' S T A B C D).symm = tensorTensorTensorComm R S R' T A C B D := by
ext; rfl
+set_option trace.profiler true in
theorem tensorTensorTensorComm_toLinearEquiv :
(tensorTensorTensorComm R R' S T A B C D).toLinearEquiv =
TensorProduct.AlgebraTensorModule.tensorTensorTensorComm R R' S T A B C D := rfl
```
```
ℹ [1143/1143] Built Mathlib.RingTheory.TensorProduct.Maps (10s)
info: Mathlib/RingTheory/TensorProduct/Maps.lean:567:0: [Elab.command] [0.166028] theorem tensorTensorTensorComm_toLinearEquiv :
(tensorTensorTensorComm R R' S T A B C D).toLinearEquiv =
TensorProduct.AlgebraTensorModule.tensorTensorTensorComm R R' S T A B C D :=
rfl
[Elab.definition.header] [0.090617] Algebra.TensorProduct.tensorTensorTensorComm_toLinearEquiv
[Elab.step] [0.090572] expected type: Sort ?u.373873, term
(tensorTensorTensorComm R R' S T A B C D).toLinearEquiv =
TensorProduct.AlgebraTensorModule.tensorTensorTensorComm R R' S T A B C D
[Elab.step] [0.090562] expected type: Sort ?u.373873, term
binrel% Eq✝ (tensorTensorTensorComm R R' S T A B C D).toLinearEquiv
(TensorProduct.AlgebraTensorModule.tensorTensorTensorComm R R' S T A B C D)
[Elab.step] [0.066197] expected type: , term
(tensorTensorTensorComm R R' S T A B C D).toLinearEquiv
[Meta.synthInstance] [0.015274] ✅️ Semiring (A ⊗[R'] B ⊗[S] (C ⊗[R] D))
[Meta.synthInstance] [0.013378] ✅️ apply @instSemiring to Semiring (A ⊗[R'] B ⊗[S] (C ⊗[R] D))
[Meta.synthInstance.tryResolve] [0.013349] ✅️ Semiring
(A ⊗[R'] B ⊗[S] (C ⊗[R] D)) ≟ Semiring (A ⊗[R'] B ⊗[S] (C ⊗[R] D))
[Meta.isDefEq] [0.012486] ✅️ Semiring (A ⊗[R'] B ⊗[S] (C ⊗[R] D)) =?= Semiring (?m.107 ⊗[?m.106] ?m.108)
[Meta.isDefEq] [0.012467] ✅️ A ⊗[R'] B ⊗[S] (C ⊗[R] D) =?= ?m.107 ⊗[?m.106] ?m.108
[Meta.synthInstance] [0.014208] ✅️ Semiring (A ⊗[S] C ⊗[R'] (B ⊗[R] D))
[Meta.synthInstance] [0.012340] ✅️ apply @instSemiring to Semiring (A ⊗[S] C ⊗[R'] (B ⊗[R] D))
[Meta.synthInstance.tryResolve] [0.012311] ✅️ Semiring
(A ⊗[S] C ⊗[R'] (B ⊗[R] D)) ≟ Semiring (A ⊗[S] C ⊗[R'] (B ⊗[R] D))
[Meta.isDefEq] [0.011375] ✅️ Semiring (A ⊗[S] C ⊗[R'] (B ⊗[R] D)) =?= Semiring (?m.107 ⊗[?m.106] ?m.108)
[Meta.isDefEq] [0.011361] ✅️ A ⊗[S] C ⊗[R'] (B ⊗[R] D) =?= ?m.107 ⊗[?m.106] ?m.108
[Meta.synthInstance] [0.015176] ✅️ Algebra T (A ⊗[R'] B ⊗[S] (C ⊗[R] D))
[Meta.synthInstance] [0.013122] ✅️ Algebra T (A ⊗[S] C ⊗[R'] (B ⊗[R] D))
[Elab.step] [0.015134] expected type: , term
TensorProduct.AlgebraTensorModule.tensorTensorTensorComm R R' S T A B C D
[Elab.attribute] [0.057374] applying []
[Meta.isDefEq] [0.056849] ✅️ (tensorTensorTensorComm R R' S T A B C
D).toLinearEquiv =?= AlgebraTensorModule.tensorTensorTensorComm R R' S T A B C D
[Meta.isDefEq] [0.056586] ✅️ (tensorTensorTensorComm R R' S T A B C
D).toLinearEquiv =?= (AlgebraTensorModule.assoc R S T (A ⊗[R'] B) C D).symm ≪≫ₗ
AlgebraTensorModule.congr (AlgebraTensorModule.rightComm S R' T A B C) (LinearEquiv.refl R D) ≪≫ₗ
AlgebraTensorModule.assoc R R' T (A ⊗[S] C) B D
[Meta.isDefEq] [0.056542] ✅️ { toFun := ⇑(tensorTensorTensorComm R R' S T A B C D), map_add' := ⋯,
map_smul' := ⋯, invFun := ⇑(tensorTensorTensorComm R R' S T A B C D).symm, left_inv := ⋯,
right_inv :=
⋯ } =?= (AlgebraTensorModule.assoc R S T (A ⊗[R'] B) C D).symm ≪≫ₗ
AlgebraTensorModule.congr (AlgebraTensorModule.rightComm S R' T A B C) (LinearEquiv.refl R D) ≪≫ₗ
AlgebraTensorModule.assoc R R' T (A ⊗[S] C) B D
[Meta.isDefEq] [0.056481] ✅️ { toFun := ⇑(tensorTensorTensorComm R R' S T A B C D), map_add' := ⋯,
map_smul' := ⋯, invFun := ⇑(tensorTensorTensorComm R R' S T A B C D).symm, left_inv := ⋯,
right_inv :=
⋯ } =?= let __src :=
↑(AlgebraTensorModule.assoc R R' T (A ⊗[S] C) B D) ∘ₗ
↑((AlgebraTensorModule.assoc R S T (A ⊗[R'] B) C D).symm ≪≫ₗ
AlgebraTensorModule.congr (AlgebraTensorModule.rightComm S R' T A B C) (LinearEquiv.refl R D));
let __src_1 :=
((AlgebraTensorModule.assoc R S T (A ⊗[R'] B) C D).symm ≪≫ₗ
AlgebraTensorModule.congr (AlgebraTensorModule.rightComm S R' T A B C)
(LinearEquiv.refl R D)).toEquiv.trans
(AlgebraTensorModule.assoc R R' T (A ⊗[S] C) B D).toEquiv;
{ toLinearMap := __src, invFun := __src_1.invFun, left_inv := ⋯, right_inv := ⋯ }
[Meta.isDefEq] [0.056477] ✅️ { toFun := ⇑(tensorTensorTensorComm R R' S T A B C D), map_add' := ⋯,
map_smul' := ⋯, invFun := ⇑(tensorTensorTensorComm R R' S T A B C D).symm, left_inv := ⋯,
right_inv :=
⋯ } =?= {
toLinearMap :=
↑(AlgebraTensorModule.assoc R R' T (A ⊗[S] C) B D) ∘ₗ
↑((AlgebraTensorModule.assoc R S T (A ⊗[R'] B) C D).symm ≪≫ₗ
AlgebraTensorModule.congr (AlgebraTensorModule.rightComm S R' T A B C)
(LinearEquiv.refl R D)),
invFun :=
(((AlgebraTensorModule.assoc R S T (A ⊗[R'] B) C D).symm ≪≫ₗ
AlgebraTensorModule.congr (AlgebraTensorModule.rightComm S R' T A B C)
(LinearEquiv.refl R D)).toEquiv.trans
(AlgebraTensorModule.assoc R R' T (A ⊗[S] C) B D).toEquiv).invFun,
left_inv := ⋯, right_inv := ⋯ }
[Meta.isDefEq] [0.022637] ✅️ { toFun := ⇑(tensorTensorTensorComm R R' S T A B C D), map_add' := ⋯,
map_smul' :=
⋯ } =?= ↑(AlgebraTensorModule.assoc R R' T (A ⊗[S] C) B D) ∘ₗ
↑((AlgebraTensorModule.assoc R S T (A ⊗[R'] B) C D).symm ≪≫ₗ
AlgebraTensorModule.congr (AlgebraTensorModule.rightComm S R' T A B C) (LinearEquiv.refl R D))
[Meta.isDefEq] [0.022566] ✅️ { toFun := ⇑(tensorTensorTensorComm R R' S T A B C D), map_add' := ⋯,
map_smul' :=
⋯ } =?= {
toFun :=
⇑↑(AlgebraTensorModule.assoc R R' T (A ⊗[S] C) B D) ∘
⇑↑((AlgebraTensorModule.assoc R S T (A ⊗[R'] B) C D).symm ≪≫ₗ
AlgebraTensorModule.congr (AlgebraTensorModule.rightComm S R' T A B C)
(LinearEquiv.refl R D)),
map_add' := ⋯, map_smul' := ⋯ }
[Meta.isDefEq] [0.020947] ✅️ { toFun := ⇑(tensorTensorTensorComm R R' S T A B C D),
map_add' :=
⋯ } =?= {
toFun :=
⇑↑(AlgebraTensorModule.assoc R R' T (A ⊗[S] C) B D) ∘
⇑↑((AlgebraTensorModule.assoc R S T (A ⊗[R'] B) C D).symm ≪≫ₗ
AlgebraTensorModule.congr (AlgebraTensorModule.rightComm S R' T A B C)
(LinearEquiv.refl R D)),
map_add' := ⋯ }
[Meta.isDefEq] [0.018768] ✅️ ⇑(tensorTensorTensorComm R R' S T A B C
D) =?= ⇑↑(AlgebraTensorModule.assoc R R' T (A ⊗[S] C) B D) ∘
⇑↑((AlgebraTensorModule.assoc R S T (A ⊗[R'] B) C D).symm ≪≫ₗ
AlgebraTensorModule.congr (AlgebraTensorModule.rightComm S R' T A B C)
(LinearEquiv.refl R D))
[Meta.isDefEq] [0.018708] ✅️ ⇑(tensorTensorTensorComm R R' S T A B C
[… 9176 lines omitted …]
B)
C
D).toEquiv.symm.invFun
((AlgebraTensorModule.congr
(AlgebraTensorModule.rightComm
S
R'
T
A
B
C)
(LinearEquiv.refl
R
D)).toEquiv.symm
((AlgebraTensorModule.assoc
R
R'
T
(A ⊗[S]
C)
B
D).toEquiv.symm
x))
[Meta.isDefEq] [0.010105] ✅️ Quot.lift
⇑(FreeAddMonoid.lift
fun
mn ↦
((LinearMap.toAddMonoidHom'.comp
(↑R
(AlgebraTensorModule.lift
(AlgebraTensorModule.lcurry
R
S
T
C
D
(A ⊗[R']
B ⊗[S]
(C ⊗[R]
D)) ∘ₗ
AlgebraTensorModule.mk
S
T
(A ⊗[R']
B)
(C ⊗[R]
D)))).toAddMonoidHom)
mn.1)
mn.2)
⋯
((AlgebraTensorModule.congr
(AlgebraTensorModule.rightComm
S
R'
T
A
B
C)
(LinearEquiv.refl
R
D)).toEquiv.symm
((AlgebraTensorModule.assoc
R
R'
T
(A ⊗[S]
C)
B
D).toEquiv.symm
x)) =?= (AlgebraTensorModule.assoc
R
S
T
(A ⊗[R']
B)
C
D).toEquiv.symm.2
((AlgebraTensorModule.congr
(AlgebraTensorModule.rightComm
S
R'
T
A
B
C)
(LinearEquiv.refl
R
D)).toEquiv.symm
((AlgebraTensorModule.assoc
R
R'
T
(A ⊗[S]
C)
B
D).toEquiv.symm
x))
info: Mathlib/RingTheory/TensorProduct/Maps.lean:567:8: [Elab.async] [0.036806] Lean.addDecl
[Kernel] [0.036485] ✅️ typechecking declarations [Algebra.TensorProduct.tensorTensorTensorComm_toLinearEquiv]
Build completed successfully (1143 jobs).
```
### Trace profiling of `tensorTensorTensorComm_toLinearEquiv` after PR 31068
```diff
diff --git a/Mathlib/RingTheory/TensorProduct/Maps.lean b/Mathlib/RingTheory/TensorProduct/Maps.lean
index 306ce39fe8..0b64bbcc94 100644
--- a/Mathlib/RingTheory/TensorProduct/Maps.lean
+++ b/Mathlib/RingTheory/TensorProduct/Maps.lean
@@ -563,6 +563,7 @@ theorem tensorTensorTensorComm_symm :
(tensorTensorTensorComm R R' S T A B C D).symm = tensorTensorTensorComm R S R' T A C B D := by
ext; rfl
+set_option trace.profiler true in
theorem tensorTensorTensorComm_toLinearEquiv :
(tensorTensorTensorComm R R' S T A B C D).toLinearEquiv =
TensorProduct.AlgebraTensorModule.tensorTensorTensorComm R R' S T A B C D := rfl
@@ -570,9 +571,8 @@ theorem tensorTensorTensorComm_toLinearEquiv :
@[simp]
theorem toLinearEquiv_tensorTensorTensorComm :
(tensorTensorTensorComm R R R R A B C D).toLinearEquiv =
- _root_.TensorProduct.tensorTensorTensorComm R A B C D := by
- apply LinearEquiv.toLinearMap_injective
- ext; simp
+ _root_.TensorProduct.tensorTensorTensorComm R A B C D :=
+ rfl
lemma map_bijective {f : A →ₐ[R] B} {g : C →ₐ[R] D}
(hf : Function.Bijective f) (hg : Function.Bijective g) :
```
```
ℹ [1143/1143] Built Mathlib.RingTheory.TensorProduct.Maps (10s)
info: Mathlib/RingTheory/TensorProduct/Maps.lean:567:0: [Elab.command] [0.165081] theorem tensorTensorTensorComm_toLinearEquiv :
(tensorTensorTensorComm R R' S T A B C D).toLinearEquiv =
TensorProduct.AlgebraTensorModule.tensorTensorTensorComm R R' S T A B C D :=
rfl
[Elab.definition.header] [0.090612] Algebra.TensorProduct.tensorTensorTensorComm_toLinearEquiv
[Elab.step] [0.090565] expected type: Sort ?u.373873, term
(tensorTensorTensorComm R R' S T A B C D).toLinearEquiv =
TensorProduct.AlgebraTensorModule.tensorTensorTensorComm R R' S T A B C D
[Elab.step] [0.090555] expected type: Sort ?u.373873, term
binrel% Eq✝ (tensorTensorTensorComm R R' S T A B C D).toLinearEquiv
(TensorProduct.AlgebraTensorModule.tensorTensorTensorComm R R' S T A B C D)
[Elab.step] [0.066117] expected type: , term
(tensorTensorTensorComm R R' S T A B C D).toLinearEquiv
[Meta.synthInstance] [0.015330] ✅️ Semiring (A ⊗[R'] B ⊗[S] (C ⊗[R] D))
[Meta.synthInstance] [0.013416] ✅️ apply @instSemiring to Semiring (A ⊗[R'] B ⊗[S] (C ⊗[R] D))
[Meta.synthInstance.tryResolve] [0.013387] ✅️ Semiring
(A ⊗[R'] B ⊗[S] (C ⊗[R] D)) ≟ Semiring (A ⊗[R'] B ⊗[S] (C ⊗[R] D))
[Meta.isDefEq] [0.012537] ✅️ Semiring (A ⊗[R'] B ⊗[S] (C ⊗[R] D)) =?= Semiring (?m.107 ⊗[?m.106] ?m.108)
[Meta.isDefEq] [0.012522] ✅️ A ⊗[R'] B ⊗[S] (C ⊗[R] D) =?= ?m.107 ⊗[?m.106] ?m.108
[Meta.synthInstance] [0.014508] ✅️ Semiring (A ⊗[S] C ⊗[R'] (B ⊗[R] D))
[Meta.synthInstance] [0.012399] ✅️ apply @instSemiring to Semiring (A ⊗[S] C ⊗[R'] (B ⊗[R] D))
[Meta.synthInstance.tryResolve] [0.012368] ✅️ Semiring
(A ⊗[S] C ⊗[R'] (B ⊗[R] D)) ≟ Semiring (A ⊗[S] C ⊗[R'] (B ⊗[R] D))
[Meta.isDefEq] [0.011416] ✅️ Semiring (A ⊗[S] C ⊗[R'] (B ⊗[R] D)) =?= Semiring (?m.107 ⊗[?m.106] ?m.108)
[Meta.isDefEq] [0.011402] ✅️ A ⊗[S] C ⊗[R'] (B ⊗[R] D) =?= ?m.107 ⊗[?m.106] ?m.108
[Meta.synthInstance] [0.014666] ✅️ Algebra T (A ⊗[R'] B ⊗[S] (C ⊗[R] D))
[Meta.synthInstance] [0.013201] ✅️ Algebra T (A ⊗[S] C ⊗[R'] (B ⊗[R] D))
[Elab.step] [0.015177] expected type: , term
TensorProduct.AlgebraTensorModule.tensorTensorTensorComm R R' S T A B C D
[Elab.attribute] [0.056242] applying []
[Meta.isDefEq] [0.055715] ✅️ (tensorTensorTensorComm R R' S T A B C
D).toLinearEquiv =?= AlgebraTensorModule.tensorTensorTensorComm R R' S T A B C D
[Meta.isDefEq] [0.055451] ✅️ (tensorTensorTensorComm R R' S T A B C
D).toLinearEquiv =?= (AlgebraTensorModule.assoc R S T (A ⊗[R'] B) C D).symm ≪≫ₗ
AlgebraTensorModule.congr (AlgebraTensorModule.rightComm S R' T A B C) (LinearEquiv.refl R D) ≪≫ₗ
AlgebraTensorModule.assoc R R' T (A ⊗[S] C) B D
[Meta.isDefEq] [0.055410] ✅️ { toFun := ⇑(tensorTensorTensorComm R R' S T A B C D), map_add' := ⋯,
map_smul' := ⋯, invFun := ⇑(tensorTensorTensorComm R R' S T A B C D).symm, left_inv := ⋯,
right_inv :=
⋯ } =?= (AlgebraTensorModule.assoc R S T (A ⊗[R'] B) C D).symm ≪≫ₗ
AlgebraTensorModule.congr (AlgebraTensorModule.rightComm S R' T A B C) (LinearEquiv.refl R D) ≪≫ₗ
AlgebraTensorModule.assoc R R' T (A ⊗[S] C) B D
[Meta.isDefEq] [0.055351] ✅️ { toFun := ⇑(tensorTensorTensorComm R R' S T A B C D), map_add' := ⋯,
map_smul' := ⋯, invFun := ⇑(tensorTensorTensorComm R R' S T A B C D).symm, left_inv := ⋯,
right_inv :=
⋯ } =?= let __src :=
↑(AlgebraTensorModule.assoc R R' T (A ⊗[S] C) B D) ∘ₗ
↑((AlgebraTensorModule.assoc R S T (A ⊗[R'] B) C D).symm ≪≫ₗ
AlgebraTensorModule.congr (AlgebraTensorModule.rightComm S R' T A B C) (LinearEquiv.refl R D));
let __src_1 :=
((AlgebraTensorModule.assoc R S T (A ⊗[R'] B) C D).symm ≪≫ₗ
AlgebraTensorModule.congr (AlgebraTensorModule.rightComm S R' T A B C)
(LinearEquiv.refl R D)).toEquiv.trans
(AlgebraTensorModule.assoc R R' T (A ⊗[S] C) B D).toEquiv;
{ toLinearMap := __src, invFun := __src_1.invFun, left_inv := ⋯, right_inv := ⋯ }
[Meta.isDefEq] [0.055348] ✅️ { toFun := ⇑(tensorTensorTensorComm R R' S T A B C D), map_add' := ⋯,
map_smul' := ⋯, invFun := ⇑(tensorTensorTensorComm R R' S T A B C D).symm, left_inv := ⋯,
right_inv :=
⋯ } =?= {
toLinearMap :=
↑(AlgebraTensorModule.assoc R R' T (A ⊗[S] C) B D) ∘ₗ
↑((AlgebraTensorModule.assoc R S T (A ⊗[R'] B) C D).symm ≪≫ₗ
AlgebraTensorModule.congr (AlgebraTensorModule.rightComm S R' T A B C)
(LinearEquiv.refl R D)),
invFun :=
(((AlgebraTensorModule.assoc R S T (A ⊗[R'] B) C D).symm ≪≫ₗ
AlgebraTensorModule.congr (AlgebraTensorModule.rightComm S R' T A B C)
(LinearEquiv.refl R D)).toEquiv.trans
(AlgebraTensorModule.assoc R R' T (A ⊗[S] C) B D).toEquiv).invFun,
left_inv := ⋯, right_inv := ⋯ }
[Meta.isDefEq] [0.022168] ✅️ { toFun := ⇑(tensorTensorTensorComm R R' S T A B C D), map_add' := ⋯,
map_smul' :=
⋯ } =?= ↑(AlgebraTensorModule.assoc R R' T (A ⊗[S] C) B D) ∘ₗ
↑((AlgebraTensorModule.assoc R S T (A ⊗[R'] B) C D).symm ≪≫ₗ
AlgebraTensorModule.congr (AlgebraTensorModule.rightComm S R' T A B C) (LinearEquiv.refl R D))
[Meta.isDefEq] [0.022095] ✅️ { toFun := ⇑(tensorTensorTensorComm R R' S T A B C D), map_add' := ⋯,
map_smul' :=
⋯ } =?= {
toFun :=
⇑↑(AlgebraTensorModule.assoc R R' T (A ⊗[S] C) B D) ∘
⇑↑((AlgebraTensorModule.assoc R S T (A ⊗[R'] B) C D).symm ≪≫ₗ
AlgebraTensorModule.congr (AlgebraTensorModule.rightComm S R' T A B C)
(LinearEquiv.refl R D)),
map_add' := ⋯, map_smul' := ⋯ }
[Meta.isDefEq] [0.020470] ✅️ { toFun := ⇑(tensorTensorTensorComm R R' S T A B C D),
map_add' :=
⋯ } =?= {
toFun :=
⇑↑(AlgebraTensorModule.assoc R R' T (A ⊗[S] C) B D) ∘
⇑↑((AlgebraTensorModule.assoc R S T (A ⊗[R'] B) C D).symm ≪≫ₗ
AlgebraTensorModule.congr (AlgebraTensorModule.rightComm S R' T A B C)
(LinearEquiv.refl R D)),
map_add' := ⋯ }
[Meta.isDefEq] [0.018357] ✅️ ⇑(tensorTensorTensorComm R R' S T A B C
D) =?= ⇑↑(AlgebraTensorModule.assoc R R' T (A ⊗[S] C) B D) ∘
⇑↑((AlgebraTensorModule.assoc R S T (A ⊗[R'] B) C D).symm ≪≫ₗ
AlgebraTensorModule.congr (AlgebraTensorModule.rightComm S R' T A B C)
(LinearEquiv.refl R D))
[Meta.isDefEq] [0.018297] ✅️ ⇑(tensorTensorTensorComm R R' S T A B C
[… 9201 lines omitted …]
B)
C
D).toEquiv.symm.invFun
((AlgebraTensorModule.congr
(AlgebraTensorModule.rightComm
S
R'
T
A
B
C)
(LinearEquiv.refl
R
D)).toEquiv.symm
((AlgebraTensorModule.assoc
R
R'
T
(A ⊗[S]
C)
B
D).toEquiv.symm
x))
[Meta.isDefEq] [0.010251] ✅️ Quot.lift
⇑(FreeAddMonoid.lift
fun
mn ↦
((LinearMap.toAddMonoidHom'.comp
(↑R
(AlgebraTensorModule.lift
(AlgebraTensorModule.lcurry
R
S
T
C
D
(A ⊗[R']
B ⊗[S]
(C ⊗[R]
D)) ∘ₗ
AlgebraTensorModule.mk
S
T
(A ⊗[R']
B)
(C ⊗[R]
D)))).toAddMonoidHom)
mn.1)
mn.2)
⋯
((AlgebraTensorModule.congr
(AlgebraTensorModule.rightComm
S
R'
T
A
B
C)
(LinearEquiv.refl
R
D)).toEquiv.symm
((AlgebraTensorModule.assoc
R
R'
T
(A ⊗[S]
C)
B
D).toEquiv.symm
x)) =?= (AlgebraTensorModule.assoc
R
S
T
(A ⊗[R']
B)
C
D).toEquiv.symm.2
((AlgebraTensorModule.congr
(AlgebraTensorModule.rightComm
S
R'
T
A
B
C)
(LinearEquiv.refl
R
D)).toEquiv.symm
((AlgebraTensorModule.assoc
R
R'
T
(A ⊗[S]
C)
B
D).toEquiv.symm
x))
info: Mathlib/RingTheory/TensorProduct/Maps.lean:567:8: [Elab.async] [0.036306] Lean.addDecl
[Kernel] [0.036270] ✅️ typechecking declarations [Algebra.TensorProduct.tensorTensorTensorComm_toLinearEquiv]
Build completed successfully (1143 jobs).
```
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
2/3 |
Mathlib/RingTheory/TensorProduct/Maps.lean |
1 |
1 |
['github-actions'] |
nobody |
0-11885 3 hours ago |
0-12306 3 hours ago |
0-12341 3 hours |
| 31072 |
euprunin author:euprunin |
golf(Combinatorics/Quiver/Path): golf `exists_eq_comp_and_notMem_tail_of_mem_vertices` using `grind` |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
1/12 |
Mathlib/Combinatorics/Quiver/Path/Vertices.lean |
1 |
1 |
['github-actions'] |
nobody |
0-10041 2 hours ago |
0-10044 2 hours ago |
0-10086 2 hours |
| 31033 |
sinhp author:sinhp |
feat (CategoryTheory): Chosen Pullbacks |
We develop a computable implementation of pullbacks, by introducing a new type-class `ChosenPullback`. The non-computable `HasPullbacksAlong` and `HasPullbacks` predicates yield instances of `ChosenPullback` (using global choice), but interestingly in the category of types every morphism has chosen pullbacks. Also, we prove that in cartesian monoidal categories, morphisms to the terminal object and the product projections have chosen pullbacks. We prove that `ChosenPullback` has good closure properties, e.g., id, isos have chosen pullbacks, and composition of morphisms with chosen pullbacks have chosen pullbacks.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
216/0 |
Mathlib.lean,Mathlib/CategoryTheory/LocallyCartesianClosed/ChosenPullback.lean |
2 |
18 |
['github-actions', 'joelriou', 'sinhp'] |
nobody |
0-9011 2 hours ago |
0-9011 2 hours ago |
0-35633 9 hours |
| 31064 |
sinhp author:sinhp |
feat(CategoryTheory): semicartesian monoidal categories |
This PR refactors Cartesian Monoidal Categories through Semicartesian Monoidal Categories.
There are interesting weaker settings where it is too much to ask the full monoidal structure to be given by the cartesian structure, but reasonable for the monoidal unit to be terminal. A category like this is usually referred to as "Semicartesian". In semicartesian setting we have `fst (X Y : C) : X ⊗ Y ⟶ X` and `snd (X Y : C) : X ⊗ Y ⟶ Y` for free, but without their universal property.
https://ncatlab.org/nlab/show/semicartesian+monoidal+category
This PR makes`CartesianMonoidalCategory` an extension of `SemiCartesianMonoidalCategory`
Some examples of semicartesian but not cartesian monoidal categories:
- The opposite of the category FinInj of finite sets with injections.
- The category of nominal sets.
- The category of commutative (semi-) rings.
Personally, I need semicartesian structure for two other downstream projects where the use cases are natural number objects in semicartesian monoidal categories and the category of context of certain type theories.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
65/45 |
Mathlib/CategoryTheory/Monoidal/Cartesian/Basic.lean |
1 |
3 |
['github-actions', 'joelriou', 'sinhp'] |
nobody |
0-8281 2 hours ago |
0-29403 8 hours ago |
0-29443 8 hours |
| 30176 |
mcdoll author:mcdoll |
feat(Analysis/Distribution): Multiplication of two functions of temperate growth is of temperate growth |
---
- [x] depends on: #30553
[](https://gitpod.io/from-referrer/)
|
t-analysis |
48/3 |
Mathlib/Analysis/Distribution/SchwartzSpace.lean,Mathlib/Analysis/Distribution/TemperateGrowth.lean |
2 |
6 |
['ADedecker', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'mcdoll'] |
sgouezel assignee:sgouezel |
0-7557 2 hours ago |
0-7577 2 hours ago |
11-11557 11 days |
| 29888 |
mcdoll author:mcdoll |
chore(Analysis/Normed/Operator): move extension to a new file |
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 |
121/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 |
4 |
['github-actions', 'grunweg', 'mcdoll'] |
hrmacbeth assignee:hrmacbeth |
0-6709 1 hour ago |
0-6709 1 hour ago |
36-83112 36 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/)
|
maintainer-merge
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 |
17 |
['eric-wieser', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'themathqueen'] |
jcommelin assignee:jcommelin |
0-1785 29 minutes ago |
1-27436 1 day ago |
4-3351 4 days |