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 |
| 33372 |
kex-y author:kex-y |
feat(Probability): Countable infimum of stopping times is a stopping time |
---
- [x] depends on: #33371
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
brownian
|
83/0 |
Mathlib/Probability/Process/Stopping.lean |
1 |
3 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
RemyDegenne assignee:RemyDegenne |
35-35739 1 month ago |
38-73900 38 days ago |
38-73582 38 days |
| 27599 |
mitchell-horner author:mitchell-horner |
feat(Combinatorics/SimpleGraph): define `CompleteEquipartiteSubgraph` |
Define the complete equipartite subgraphs in `r` parts each of size `t` in `G` as the `r` subsets of vertices each of size `t` such that vertices in distinct subsets are adjacent.
In this case `Nonempty (G.CompleteEquipartiteSubgraph r t)` is equivalent to `completeEquipartiteGraph r t ⊑ G`, that is, finding `r` subsets of vertices each of size `t` in `G` such that vertices in distinct subsets are adjacent is equivalent to finding an injective homomorphism from `completeEquipartiteGraph r t` to `G`.
---
- [x] depends on: #27597
- [x] depends on: #30287
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
173/7 |
Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean |
1 |
34 |
['YaelDillies', 'b-mehta', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'mitchell-horner'] |
YaelDillies assignee:YaelDillies |
35-310 1 month ago |
34-85837 34 days ago |
106-55198 106 days |
| 31891 |
jsm28 author:jsm28 |
feat(Geometry/Euclidean/Sphere/OrthRadius): lemmas for setting up and using polars |
Add further lemmas about `orthRadius` that are of use in setting up and using poles and polars. In particular,
`ncard_inter_orthRadius_eq_two_of_dist_lt_radius` is the key part of showing that, in two dimensions, there are exactly two tangents to a circle from a point outside that circle (where the points of tangency lie on the polar of the point from which the two tangents are drawn).
---
Feel free to golf the proof of `ncard_inter_orthRadius_eq_two_of_dist_lt_radius`, it could probably be rather shorter.
---
- [ ] depends on: #32296
[](https://gitpod.io/from-referrer/)
|
t-euclidean-geometry |
261/7 |
Mathlib/Geometry/Euclidean/Sphere/OrthRadius.lean,Mathlib/Geometry/Euclidean/Sphere/Tangent.lean |
2 |
27 |
['eric-wieser', 'github-actions', 'jsm28', 'mathlib4-dependent-issues-bot'] |
JovanGerb assignee:JovanGerb |
31-39939 1 month ago |
31-39144 31 days ago |
82-26481 82 days |
| 33786 |
hdmkindom author:hdmkindom |
feat(Analysis/Matrix): add Jacobian matrix for matrix-valued functions |
This PR introduces the Jacobian matrix for matrix-valued functions `F : Matrix m n ℝ → Matrix p q ℝ`.
The Jacobian matrix `jacobianMatrix F X` at point `X` is indexed by `(p × q) × (m × n)`, where each entry represents the partial derivative with respect to a basis element. To handle instance-mismatch issues with matrix norms, we use local Frobenius norm instances.
mkdir Analysis/Matrix/Jacobian.lean
## Main definitions
- `jacobianMatrix F X`: The Jacobian matrix at point `X`, defined by `jacobianMatrix F X (i, k) (j, l) = (fderiv ℝ F X (Matrix.single j l 1)) i k`
## Main theorems
- `fderiv_eq_jacobian_mul`: Express the Fréchet derivative as a contraction with the Jacobian
- `jacobianMatrix_comp`: Chain rule for Jacobian matrices
- `jacobianMatrix_linear`, `jacobianMatrix_id`, `jacobianMatrix_const`: Basic properties
- `jacobianMatrix_add`, `jacobianMatrix_smul`: Linearity properties
|
t-analysis
new-contributor
|
219/0 |
Mathlib.lean,Mathlib/Analysis/Matrix/Jacobian.lean |
2 |
1 |
['github-actions'] |
ADedecker assignee:ADedecker |
30-35737 30 days ago |
33-70412 33 days ago |
34-14432 34 days |
| 33292 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/LineGraph): lift copies/isomorphisms to line-graph |
---
Non-injective homomorphisms (`G →g G'`) cannot be lifted to a homomorphism on line-graphs (`G.lineGraph →g G'.lineGraph`) because e.g. `∀ k > 1` there is a homomorphism from `pathGraph k` to `G'` iff `G'` has an edge, and `∀ n > 0, (pathGraph (n + 1)).lineGraph ≃ pathGraph n`, but there is no homomorphism from `pathGraph k` to `pathGraph 1` because it has no edges.
So for `G := pathGraph 3` and `G' := pathGraph 2` there is a `G →g G'` but no `G.lineGraph →g G'.lineGraph`.
But we can lift `Copy`/`Embedding`/`Iso`.
[](https://gitpod.io/from-referrer/)
|
large-import
t-combinatorics
|
47/4 |
Mathlib/Combinatorics/SimpleGraph/LineGraph.lean,Mathlib/Data/Sym/Sym2.lean |
2 |
1 |
['github-actions'] |
b-mehta assignee:b-mehta |
29-35715 29 days ago |
47-15952 47 days ago |
48-37536 48 days |
| 33527 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Connectivity/Subgraph): `w.toSubgraph ≤ G' ↔ w.edgeSet ⊆ G'.edgeSet` |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
9/1 |
Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean |
1 |
4 |
['Rida-Hamadani', 'SnirBroshi', 'github-actions'] |
kmill assignee:kmill |
29-35711 29 days ago |
39-51441 39 days ago |
39-51123 39 days |
| 30112 |
gaetanserre author:gaetanserre |
feat(Probability.Kernel): add representation of kernel as a map of a uniform measure |
Add results about isolation of kernels randomness. In particular, it shows that one
can write a Markov kernel as the map by a deterministic of a uniform measure on `[0, 1]`.
It corresponds to Lemma 4.22 in "[Foundations of Modern Probability](https://link.springer.com/book/10.1007/978-3-030-61871-1)" by Olav Kallenberg, 2021.
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
189/0 |
Mathlib.lean,Mathlib/MeasureTheory/Constructions/UnitInterval.lean,Mathlib/Probability/Kernel/Representation.lean |
3 |
10 |
['DavidLedvinka', 'RemyDegenne', 'gaetanserre', 'github-actions', 'mathlib4-merge-conflict-bot'] |
RemyDegenne assignee:RemyDegenne |
28-75228 28 days ago |
28-73517 28 days ago |
65-67592 65 days |
| 31425 |
robertmaxton42 author:robertmaxton42 |
feat(Topology): implement delaborators for non-standard topology notation |
Add delaborators for unary and binary notation related to non-standard topologies in the TopologicalSpace namespace.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
250/4 |
Mathlib.lean,Mathlib/Topology/Defs/Basic.lean,Mathlib/Util/DelabNonCanonical.lean,MathlibTest/Delab/TopologicalSpace.lean |
4 |
45 |
['eric-wieser', 'github-actions', 'jcommelin', 'kckennylau', 'robertmaxton42'] |
PatrickMassot assignee:PatrickMassot |
26-10579 26 days ago |
26-8593 26 days ago |
80-6924 80 days |
| 33838 |
chainstart author:chainstart |
feat(NumberTheory): add unitary divisors and unitary perfect numbers |
## Summary
This PR introduces the unitary divisor sum function σ* to Mathlib and proves that no odd unitary perfect numbers exist.
## Main Definitions
- `Nat.UnitaryDivisor d n`: A divisor `d` of `n` is unitary if `gcd(d, n/d) = 1`
- `Nat.unitaryDivisors n`: The `Finset` of all unitary divisors of `n`
- `Nat.unitaryDivisorSum n` (notation `σ*`): Sum of all unitary divisors
- `Nat.UnitaryPerfect n`: `n` is unitary perfect if `σ*(n) = 2n`
## Main Theorems
**Multiplicativity:**
- `unitaryDivisorSum_mul`: For coprime `m`, `n`, `σ*(mn) = σ*(m) · σ*(n)`
- Proved via explicit bijection between unitary divisors of `mn` and pairs of unitary divisors
**Prime Powers:**
- `unitaryDivisors_prime_pow`: The unitary divisors of `p^k` are exactly `{1, p^k}`
- `unitaryDivisorSum_prime_pow`: For prime `p` and `k ≥ 1`, `σ*(p^k) = p^k + 1`
**Unitary Perfect Numbers:**
- `no_odd_unitary_perfect`: There are no odd unitary perfect numbers > 1 (Subbarao-Warren 1966)
- `UnitaryPerfect.even`: Every unitary perfect number is even
- `UnitaryPerfect.eq_two_pow_mul_odd`: Every unitary perfect number has form `2^a · k` with `a ≥ 1`, `k` odd
## Mathematical Background
A unitary perfect number is a positive integer `n` such that the sum of its unitary divisors equals `2n`. This generalizes the classical perfect numbers. Only five unitary perfect numbers are known: 6, 60, 90, 87360, and one with 24 digits.
The main theorem (no odd unitary perfect numbers) was originally proved by Subbarao & Warren (1966) using prime factorization arguments. Our formalization uses `Nat.recOnPrimeCoprime` for structural induction.
## References
- Subbarao, M. V., & Warren, L. J. (1966). Unitary perfect numbers. *Canadian Mathematical Bulletin*, 9(2), 147-153.
- Wall, C. R. (1975). The fifth unitary perfect number. *Canadian Mathematical Bulletin*, 18(1), 115-122.
## Code Statistics
- **Files**: 2
- **Lines**: ~520
- **Theorems**: 21 public declarations
- **Sorry count**: 0
## Checklist
- [x] All theorem names follow mathlib conventions
- [x] All lines ≤ 100 characters
- [x] All public theorems have docstrings
- [x] No `sorry` or `admit`
- [x] Code builds successfully
- [ ] CI tests pass (awaiting verification) |
new-contributor
t-number-theory
|
554/0 |
Mathlib.lean,Mathlib/NumberTheory/UnitaryDivisor.lean,Mathlib/NumberTheory/UnitaryPerfect.lean |
3 |
17 |
['Ruben-VandeVelde', 'SnirBroshi', 'chainstart', 'github-actions', 'riccardobrasca', 'tb65536'] |
riccardobrasca assignee:riccardobrasca |
25-75387 25 days ago |
25-80938 25 days ago |
31-74556 31 days |
| 33712 |
wangying11123 author:wangying11123 |
feat(Geometry/Euclidean/Angle/Unoriented/Projection): Add sameray_orthogonalProjection_vsub_of_angle_lt |
Add sameray_orthogonalProjection_vsub_of_angle_lt
`sameray_orthogonalProjection_vsub_of_angle_lt`
When an angle is acute, the vector to the orthogonal projection lies in the same ray as the given direction vector. |
new-contributor
t-euclidean-geometry
|
20/0 |
Mathlib/Geometry/Euclidean/Angle/Unoriented/Projection.lean |
1 |
3 |
['JovanGerb', 'github-actions'] |
JovanGerb assignee:JovanGerb |
24-38204 24 days ago |
28-69561 28 days ago |
33-73495 33 days |
| 34091 |
staroperator author:staroperator |
feat(SetTheory/Cardinal): generalize infinite pigeonhole principle |
1. generalize `infinite_pigeonhole_card_lt` and `exists_infinite_fiber` only to require the domain `β` to be infinite instead of codomain `α`.
2. add `exists_uncountable_fiber` for uncountable sets.
3. fix a TODO in `le_range_of_union_finset_eq_top` (and also golf).
PS: thanks ChatGPT for providing the informal proofs.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
41/20 |
Mathlib/LinearAlgebra/Basis/Cardinality.lean,Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean,Mathlib/SetTheory/Cardinal/Pigeonhole.lean |
3 |
1 |
['github-actions'] |
vihdzp assignee:vihdzp |
23-24276 23 days ago |
25-22163 25 days ago |
25-24289 25 days |
| 33291 |
BoltonBailey author:BoltonBailey |
refactor(Computability): file for state transition systems |
This PR makes a new file to contain content having to do with state transition systems defined by a function `σ → Option σ`. This content was previously split over `PostTuringMachine.lean` and `TMComputable.lean`, but since these definitions don't only apply to Turing machines in particular, it seems sensible to refactor them and remove them from the `Turing` namespace and put them in a new `StateTransition` namespace.
---
[](https://gitpod.io/from-referrer/)
|
maintainer-merge
t-computability
|
313/234 |
Mathlib.lean,Mathlib/Computability/PostTuringMachine.lean,Mathlib/Computability/StateTransition.lean,Mathlib/Computability/TMConfig.lean,Mathlib/Computability/TMToPartrec.lean,Mathlib/Computability/TuringMachine.lean |
6 |
10 |
['BoltonBailey', 'YaelDillies', 'github-actions'] |
YaelDillies assignee:YaelDillies |
22-33255 22 days ago |
22-33821 22 days ago |
43-37510 43 days |
| 33840 |
vihdzp author:vihdzp |
feat(SetTheory/Ordinal/CantorNormalForm): Evaluate a Finsupp as a CNF |
Used in the CGT repo.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
191/18 |
Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/CantorNormalForm.lean |
2 |
3 |
['github-actions', 'plp127', 'vihdzp'] |
alreadydone assignee:alreadydone |
22-6479 22 days ago |
31-36242 31 days ago |
31-40992 31 days |
| 33901 |
martinwintermath author:martinwintermath |
feat(LinearAlgebra/Span): add inter/union/sInf/sSup lemmas for Submodule.span |
This PR adds theorems about the interaction of `Submodule.span` with the lattice operations:
* `inter`, `sInf` and `biInter` lemmas for `Submodule.span`
* `union`, `sSup` and `biUnion` lemmas for `Submodule.span`
It also adds `@[simp]` to `span_union`
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-algebra
label:t-algebra$ |
25/0 |
Mathlib/LinearAlgebra/Span/Defs.lean |
1 |
3 |
['github-actions', 'themathqueen'] |
kim-em assignee:kim-em |
21-84111 21 days ago |
29-67882 29 days ago |
29-67564 29 days |
| 33793 |
LTolDe author:LTolDe |
feat(MeasureTheory/Constructions/Polish/Basic): add lemma AnalyticSet.inter_nonempty_of_nowhereMeagre |
add lemma AnalyticSet.inter_nonempty_of_nowhereMeagre, the main ingredient for the proof of the **Effros' Theorem**, see [#mathlib4 > Effros Theorem](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Effros.20Theorem/with/566543328)
introduce definition of a nowhere meagre set
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
new-contributor
|
37/0 |
Mathlib/MeasureTheory/Constructions/Polish/Basic.lean,Mathlib/Order/Filter/Basic.lean,Mathlib/Topology/GDelta/Basic.lean |
3 |
2 |
['MichaelStollBayreuth', 'github-actions'] |
kex-y assignee:kex-y |
21-70838 21 days ago |
21-68321 21 days ago |
33-68959 33 days |
| 33121 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Hasse): paths in a graph are isomorphic to path graphs |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
44/1 |
Mathlib/Combinatorics/SimpleGraph/Hasse.lean |
1 |
21 |
['MrQubo', 'SnirBroshi', 'github-actions', 'mitchell-horner'] |
b-mehta assignee:b-mehta |
21-42659 21 days ago |
22-80712 22 days ago |
53-44879 53 days |
| 34025 |
lua-vr author:lua-vr |
feat(Integral.Bochner.Set): add `tendsto_setIntegral_of_monotone₀` |
Adds the lemma `tendsto_setIntegral_of_monotone₀`, a version of `tendsto_setIntegral_of_monotone` requiring only `AEMeasurableSet` in the hypotheses. The previous version is redefined as a specialization.
Also renames `integral_union_ae` to `setIntegral_union₀` for consistency with the rest of the library (it matches the existing `setIntegral_union`).
---
[](https://gitpod.io/from-referrer/)
Re-opened from #33206 and now taking respect for Windows users (thanks @ADedecker :). |
t-measure-probability |
27/13 |
Mathlib/MeasureTheory/Integral/Bochner/Set.lean |
1 |
1 |
['github-actions'] |
kex-y assignee:kex-y |
21-35713 21 days ago |
27-26378 27 days ago |
27-28725 27 days |
| 33039 |
euprunin author:euprunin |
chore(Data/List): deprecate `ext_get_iff` |
---
[](https://gitpod.io/from-referrer/)
|
t-data |
1/7 |
Mathlib/Data/List/Basic.lean |
1 |
5 |
['euprunin', 'github-actions', 'jcommelin'] |
kim-em and pechersky assignee:kim-em assignee:pechersky |
20-50057 20 days ago |
48-46444 48 days ago |
49-23230 49 days |
| 31364 |
YaelDillies author:YaelDillies |
feat: binomial random graphs |
From LeanCamCombi and formal-conjectures
---
- [x] depends on: #31391
- [x] depends on: #31392
- [x] depends on: #31393
- [x] depends on: #31394
- [x] depends on: #31396
- [x] depends on: #31397
- [x] depends on: #31398
- [x] depends on: #31442
- [x] depends on: #31443
- [x] depends on: #31445
- [x] depends on: #31908
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
t-measure-probability
|
170/0 |
Mathlib.lean,Mathlib/MeasureTheory/Constructions/SimpleGraph.lean,Mathlib/Probability/Combinatorics/BinomialRandomGraph/Defs.lean,Mathlib/Probability/Combinatorics/README.md |
4 |
25 |
['DavidLedvinka', 'LibertasSpZ', 'YaelDillies', 'eric-wieser', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
EtienneC30 assignee:EtienneC30 |
18-83919 18 days ago |
18-83082 18 days ago |
62-26800 62 days |
| 34383 |
bjornsolheim author:bjornsolheim |
feat(Geometry/Convex/Cone): monotonicity and map lemmas for min/max cone tensor products |
Add minTensorProduct_mono, maxTensorProduct_mono, minTensorProduct_map_le, maxTensorProduct_map_le.
---
[](https://gitpod.io/from-referrer/)
|
t-convex-geometry |
40/0 |
Mathlib/Geometry/Convex/Cone/TensorProduct.lean |
1 |
1 |
['github-actions'] |
nobody |
18-54944 18 days ago |
18-54101 18 days ago |
18-53783 18 days |
| 30640 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Acyclic): acyclic and bridge theorems |
---
- [x] depends on: #30542
- [x] depends on: #30570
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
75/79 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean |
2 |
8 |
['SnirBroshi', 'b-mehta', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
b-mehta assignee:b-mehta |
18-39629 18 days ago |
18-38544 18 days ago |
64-7753 64 days |
| 33443 |
sahanwijetunga author:sahanwijetunga |
feat: Define Isometries of Bilinear Spaces |
---
We define Isometries of Bilinear Spaces, closely following the implementation of isometries of quadratic spaces.
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
275/0 |
Mathlib.lean,Mathlib/LinearAlgebra/BilinearForm/Isometry.lean,Mathlib/LinearAlgebra/BilinearForm/IsometryEquiv.lean |
3 |
1 |
['github-actions'] |
mattrobball assignee:mattrobball |
18-35724 18 days ago |
28-36645 28 days ago |
41-63170 41 days |
| 34144 |
IvanRenison author:IvanRenison |
feat(Data/ENat): add lemma `ENat.iInf_eq_coe_iff` |
Co-authored-by: SnirBroshi <26556598+SnirBroshi@users.noreply.github.com>
---
[Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/ENat.2EiInf_eq_nat_iff/with/568699219)
[](https://gitpod.io/from-referrer/)
|
t-data |
21/0 |
Mathlib/Data/ENat/Lattice.lean,Mathlib/Order/ConditionallyCompleteLattice/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean |
3 |
13 |
['IvanRenison', 'Ruben-VandeVelde', 'SnirBroshi', 'eric-wieser', 'github-actions'] |
TwoFX assignee:TwoFX |
18-35716 18 days ago |
22-83399 22 days ago |
23-4409 23 days |
| 34153 |
euprunin author:euprunin |
feat: add `grind_pattern` for `Finset.card_{empty,singleton}` |
---
As suggested by @JovanGerb in https://github.com/leanprover-community/mathlib4/pull/33119#issuecomment-3682874125.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
4/0 |
Mathlib/Data/Finset/Card.lean |
1 |
3 |
['euprunin', 'github-actions', 'leanprover-radar'] |
TwoFX assignee:TwoFX |
18-35715 18 days ago |
23-48928 23 days ago |
23-48610 23 days |
| 32260 |
jsm28 author:jsm28 |
feat(Geometry/Euclidean/Angle/Oriented/Affine): oriented angle bisection and halving unoriented angles |
Add lemmas relating points bisecting an oriented angle to explicit expressions for one unoriented angle in relation to half another unoriented angle.
---
Feel free to golf.
---
- [ ] depends on: #32259
[](https://gitpod.io/from-referrer/)
|
t-euclidean-geometry |
107/0 |
Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean,Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean |
2 |
5 |
['github-actions', 'jsm28', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'wwylele'] |
JovanGerb assignee:JovanGerb |
17-67770 17 days ago |
17-72744 17 days ago |
57-46645 57 days |
| 34112 |
euprunin author:euprunin |
chore: golf using `grind` and add `grind` annotations |
---
The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (shown if ≥10 ms before or after):
* `Quandle.conj_swap`: 63 ms before, 35 ms after 🎉
* `Quiver.stronglyConnectedComponent_singleton_iff`: 17 ms before, 84 ms after
* `Finset.memberSubfamily_union_nonMemberSubfamily`: <10 ms before, 94 ms after
* `Finset.mem_sigmaLift`: 58 ms before, 72 ms after
* `Equiv.Perm.support_swap_mul_eq`: 41 ms before, 109 ms after
* `FirstOrder.Language.Theory.IsComplete.eq_complete_theory`: 13 ms before, 47 ms after
This golfing PR is batched under the following guidelines:
* Up to ~5 changed files per PR
* Up to ~25 changed declarations per PR
* Up to ~100 changed lines per PR
---
[](https://gitpod.io/from-referrer/)
|
|
15/72 |
Mathlib/Algebra/Quandle.lean,Mathlib/Combinatorics/Quiver/ConnectedComponent.lean,Mathlib/Combinatorics/SetFamily/Compression/Down.lean,Mathlib/Computability/EpsilonNFA.lean,Mathlib/Computability/NFA.lean,Mathlib/Data/Finset/Sigma.lean,Mathlib/Data/Multiset/AddSub.lean,Mathlib/Data/Multiset/Replicate.lean,Mathlib/GroupTheory/Perm/Support.lean,Mathlib/ModelTheory/Satisfiability.lean,Mathlib/ModelTheory/Semantics.lean |
11 |
3 |
['euprunin', 'github-actions', 'leanprover-radar'] |
robin-carlier assignee:robin-carlier |
17-49642 17 days ago |
24-56290 24 days ago |
24-55972 24 days |
| 33909 |
YaelDillies author:YaelDillies |
feat(SetTheory/Cardinal): more lemmas about `ENat` |
and deduplicate a few pairs.
From ProofBench
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
76/46 |
Mathlib/Data/Finite/Card.lean,Mathlib/Data/Set/Card.lean,Mathlib/LinearAlgebra/Matrix/Rank.lean,Mathlib/RingTheory/Length.lean,Mathlib/SetTheory/Cardinal/ENat.lean,Mathlib/SetTheory/Cardinal/Finite.lean,Mathlib/SetTheory/Cardinal/NatCount.lean,Mathlib/SetTheory/Cardinal/ToNat.lean |
8 |
3 |
['github-actions', 'mathlib4-merge-conflict-bot', 'vihdzp'] |
alreadydone assignee:alreadydone |
17-35721 17 days ago |
20-47506 20 days ago |
24-60792 24 days |
| 33280 |
michelsol author:michelsol |
feat(MeasureTheory/Integral/IntervalIntegral): add variant `integral_deriv_eq_sub_uIoo` of 2nd theorem of calculus. |
Add a continuous on uIcc, differentiable on uIoo, deriv version of the 2nd fundamental theorem of calculus.
This corresponds to what is written [here](https://en.wikipedia.org/wiki/Fundamental_theorem_of_calculus#Second_part).
For example it makes it easier to compute the integral :
```lean4
∫ x : ℝ in 0..1, (√(1 - x ^ 2))⁻¹ = ∫ x : ℝ in 0..1, deriv arcsin x = arcsin 1 - arcsin 0
```
It is not possible to use [`interval_deriv_eq_sub`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.html#intervalIntegral.integral_deriv_eq_sub) which requires differentiability on all of [0,1], as `arcsin` isn't differentiable at 1.
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
new-contributor
maintainer-merge
|
14/0 |
Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.lean |
1 |
4 |
['EtienneC30', 'github-actions'] |
EtienneC30 assignee:EtienneC30 |
16-63224 16 days ago |
48-60368 48 days ago |
48-60050 48 days |
| 31613 |
xyzw12345 author:xyzw12345 |
feat(RepresentationTheory/GroupCohomology): Non-abelian Group Cohomology |
In this PR, we develop the theory of non-abelian group cohomology, following the section in GTM 67 - Local Fields by Jean-Pierre Serre. We defined H0 and H1, constructed the connection maps, proved the long exact sequence, and constructed natural isomorphisms between our H0, H1 and the existing `groupCohomology` API.
Co-authored by:
Jiedong Jiang @jjdishere
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
large-import
label:t-algebra$ |
634/0 |
Mathlib.lean,Mathlib/GroupTheory/Subgroup/Center.lean,Mathlib/RepresentationTheory/Homological/GroupCohomology/NonAbelian.lean,Mathlib/RepresentationTheory/Rep.lean |
4 |
8 |
['eric-wieser', 'github-actions', 'kbuzzard', 'mathlib4-merge-conflict-bot', 'xyzw12345'] |
eric-wieser assignee:eric-wieser |
16-56211 16 days ago |
17-3069 17 days ago |
28-66672 28 days |
| 34137 |
goliath-klein author:goliath-klein |
refactor(PiTensorProduct/{InjectiveNorm, ProjectiveNorm}): Remove `injectiveSeminorm` |
Currently, `injectiveSeminorm` is extensionally equal to `projectiveSeminorm`. Both implement what is commonly called the "projective tensor norm".
# Background
(C.f. [[Diestel et al.]](https://www.ams.org/bookstore/pspdf/mbk-52-prev.pdf)). On the algebraic tensor product of two Banach spaces X, Y, there are two distinguished norms. First the projective norm, or "largest reasonable crossnorm". Two equivalent expressions for it are:
(L1) `‖u‖_∧ = sup { sum_i ‖x_i‖ ‖y_i‖ | sum_i x_i ⊗ y_i = u }`,
(L2) `‖u‖_∧ = norm of the linear map that sends b : B(X,Y; 𝕂) to (lift b) u`,
where `B(X,Y; Z)` is the set of bounded bilinear maps into a normed space `Z`.
Second, there is the injective norm, or "smallest reasonable crossnorm":
(S) `‖u‖_∨` = norm of the bilinear map that sends `f : X', g : Y'` to `(f⊗g) u`.
# Mathlib
The formalization treats tensor products of seminormed spaces over normed fields. In this context, `projectiveSeminorm` implements (L1). But `injectiveSeminorm u` doesn't implement (S), but the following variant of (L2):
(L2') `sup_Z { norm of map sending b : B(X,Y; Z) to (lift b) u }.`
In fact, `injectiveSeminorm = projectiveSeminorm `. The upper bound is proven in Mathlib. Equality is attained (somewhat tautologically) by choosing `Z` to be `X ⊗ Y` endowed with the projective seminorm.
`projectiveSeminorm` is defined first; `injectiveSeminorm` builds on it. Then the theory of an isometric version of `PiTensorProduct.lift` is based on `injectiveSeminorm`.
# Proposed change
This PR deprecates `injectiveSeminorm` and ports all applications to (L1). This doesn't actually require too much work, leads to the same mathematical theory, and significantly reduces complexity (and potential for confusion!).
There is a [companion PR](https://github.com/leanprover-community/mathlib4/pull/33969) which formalizes the equality of the current definitions and has a WIP / RFC implementation of the injective seminorm as commonly understood.
Deprecations:
- injectiveSeminorm
- injectiveSeminorm_apply
- norm_eval_le_injectiveSeminorm
- injectiveSeminorm_le_projectiveSeminorm
- injectiveSeminorm_tprod_le
- Mathlib.Analysis.Normed.Module.PiTensorProduct.InjectiveSeminorm
---
Co-authored-by: Davood H. H. Tehrani
[](https://gitpod.io/from-referrer/)
|
new-contributor |
169/207 |
Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/ProjectiveSeminorm.lean,Mathlib/LinearAlgebra/PiTensorProduct.lean |
3 |
7 |
['Ruben-VandeVelde', 'dupuisf', 'github-actions', 'goliath-klein'] |
dupuisf assignee:dupuisf |
16-50337 16 days ago |
16-52469 16 days ago |
20-36476 20 days |
| 34298 |
CoolRmal author:CoolRmal |
feat(MeasureTheory): Integral over Ioi tends to zero |
This PR proves that if `f` is integrable on `Ioi a`, then `∫ x in Ioi (b i), f x ∂μ` tends to zero as `b i` tends to infinity. This is an easy corollary of `intervalIntegral_tendsto_integral_Ioi`.
---
- [x] depends on #34197
- [x] depends on #34289
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
20/0 |
Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean |
1 |
1 |
['github-actions'] |
thorimur assignee:thorimur |
16-35718 16 days ago |
16-48711 16 days ago |
20-16478 20 days |
| 34154 |
euprunin author:euprunin |
chore: golf using `grind` and add `grind` annotations |
---
The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (shown if ≥10 ms before or after):
* `SimplicialObject.Splitting.IndexSet.eqId_iff_len_eq`: <10 ms before, 41 ms after
* `Orientation.nonneg_inner_and_areaForm_eq_zero_iff_sameRay`: 311 ms before, 284 ms after 🎉
* `UV.compression_self`: 29 ms before, 19 ms after 🎉
* `AkraBazziRecurrence.GrowsPolynomially.eventually_atTop_nonneg_or_nonpos`: 2828 ms before, 1399 ms after 🎉
* `Cycle.chain_iff_pairwise`: <10 ms before, 149 ms after
* `List.dlookup_kunion_left`: 21 ms before, 104 ms after
* `Polynomial.isRoot_of_isRoot_iff_dvd_derivative_mul`: 106 ms before, 183 ms after
* `IsSepClosed.exists_root_C_mul_X_pow_add_C_mul_X_add_C`: 405 ms before, 291 ms after 🎉
* `InnerProductGeometry.norm_add_eq_add_norm_iff_angle_eq_zero`: 425 ms before, 309 ms after 🎉
* `Monoid.CoprodI.Word.mem_equivPair_tail_iff`: 161 ms before, 263 ms after
* `pathComponent_congr`: <10 ms before, 31 ms after
* `preCantorSet_antitone`: 2147 ms before, 683 ms after 🎉
* `tendstoLocallyUniformlyOn_iff_filter`: 11 ms before, 71 ms after
This golfing PR is batched under the following guidelines:
* Up to ~5 changed files per PR
* Up to ~25 changed declarations per PR
* Up to ~100 changed lines per PR
---
[](https://gitpod.io/from-referrer/)
|
|
21/100 |
Mathlib/Algebra/Polynomial/Degree/Defs.lean,Mathlib/Algebra/Polynomial/Degree/Operations.lean,Mathlib/Algebra/Polynomial/Div.lean,Mathlib/AlgebraicTopology/SimplicialObject/Split.lean,Mathlib/Analysis/InnerProductSpace/TwoDim.lean,Mathlib/Combinatorics/SetFamily/Compression/UV.lean,Mathlib/Data/List/Cycle.lean,Mathlib/Data/List/Sigma.lean,Mathlib/Data/Opposite.lean,Mathlib/FieldTheory/IsAlgClosed/Basic.lean,Mathlib/FieldTheory/IsSepClosed.lean,Mathlib/Geometry/Euclidean/Angle/Unoriented/Basic.lean,Mathlib/GroupTheory/CoprodI.lean,Mathlib/Topology/Connected/PathConnected.lean,Mathlib/Topology/UniformSpace/LocallyUniformConvergence.lean |
15 |
8 |
['Parcly-Taxel', 'euprunin', 'github-actions', 'leanprover-radar', 'mathlib4-merge-conflict-bot', 'tb65536'] |
kim-em assignee:kim-em |
16-16850 16 days ago |
16-14242 16 days ago |
16-61050 16 days |
| 33458 |
NoneMore author:NoneMore |
feat(ModelTheory): add lifting for embeddings to languages with constants |
Prepare for a generalized Tarski-Vaught test with a set as input instead of a substructure.
---
[](https://gitpod.io/from-referrer/)
|
t-logic
new-contributor
|
35/0 |
Mathlib/ModelTheory/ElementaryMaps.lean,Mathlib/ModelTheory/LanguageMap.lean |
2 |
3 |
['Citronhat', 'github-actions'] |
fpvandoorn assignee:fpvandoorn |
15-7780 15 days ago |
15-6919 15 days ago |
40-85534 40 days |
| 33963 |
gasparattila author:gasparattila |
feat(Topology/UniformSpace/Closeds): completeness of `(Nonempty)Compacts` |
This PR generalizes the completeness result of `NonemptyCompacts` from metric spaces to uniform spaces.
---
- [x] depends on: #34036
[](https://gitpod.io/from-referrer/)
|
t-topology |
71/8 |
Mathlib/Topology/MetricSpace/Closeds.lean,Mathlib/Topology/UniformSpace/Closeds.lean |
2 |
3 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
PatrickMassot assignee:PatrickMassot |
14-81932 14 days ago |
14-81085 14 days ago |
25-64029 25 days |
| 34268 |
gasparattila author:gasparattila |
feat(Topology/Sets): continuity of operations on `(Nonempty)Compacts` |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
144/17 |
Mathlib/Topology/Sets/Compacts.lean,Mathlib/Topology/Sets/VietorisTopology.lean,Mathlib/Topology/UniformSpace/Closeds.lean |
3 |
2 |
['github-actions', 'mathlib4-merge-conflict-bot'] |
PatrickMassot assignee:PatrickMassot |
14-81273 14 days ago |
14-79734 14 days ago |
20-49493 20 days |
| 34270 |
gasparattila author:gasparattila |
feat(Topology/UniformSpace/Closeds): `(Nonempty)Compacts.toCloseds` is a closed embedding |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
36/35 |
Mathlib/Topology/MetricSpace/Closeds.lean,Mathlib/Topology/UniformSpace/Closeds.lean |
2 |
2 |
['github-actions', 'mathlib4-merge-conflict-bot'] |
PatrickMassot assignee:PatrickMassot |
14-80781 14 days ago |
14-79927 14 days ago |
20-49745 20 days |
| 34192 |
bwangpj author:bwangpj |
feat(MeasureTheory): mulEquivHaarChar_eq_one_of_compactSpace |
From FLT.
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
16/0 |
Mathlib/MeasureTheory/Measure/Haar/MulEquivHaarChar.lean |
1 |
2 |
['github-actions', 'mathlib4-merge-conflict-bot'] |
RemyDegenne assignee:RemyDegenne |
14-46046 14 days ago |
14-45372 14 days ago |
19-73241 19 days |
| 33764 |
IvanRenison author:IvanRenison |
feat(Combinatorics/SimpleGraph/Diam): drop `Finite α` from `ediam_le_two_mul_radius` |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
22/5 |
Mathlib/Combinatorics/SimpleGraph/Diam.lean |
1 |
4 |
['IvanRenison', 'Rida-Hamadani', 'github-actions', 'vlad902'] |
kmill assignee:kmill |
14-35699 14 days ago |
27-43798 27 days ago |
34-57120 34 days |
| 34123 |
staroperator author:staroperator |
feat(Data/Set/Finite): finite distributivity for complete distributive lattices |
---
[](https://gitpod.io/from-referrer/)
|
t-order |
52/0 |
Mathlib/Data/Set/Finite/Lattice.lean |
1 |
11 |
['github-actions', 'plp127', 'staroperator'] |
bryangingechen assignee:bryangingechen |
14-35696 14 days ago |
23-54592 23 days ago |
23-77115 23 days |
| 30526 |
SnirBroshi author:SnirBroshi |
chore(Logic/Relation): use `≤` to spell subrelation |
Replace every `∀ x y, r x y → r' x y` with `r ≤ r'`
---
[](https://gitpod.io/from-referrer/)
|
t-logic |
161/136 |
Mathlib.lean,Mathlib/Algebra/Category/Grp/FilteredColimits.lean,Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean,Mathlib/Algebra/Category/MonCat/FilteredColimits.lean,Mathlib/CategoryTheory/Action.lean,Mathlib/CategoryTheory/ConnectedComponents.lean,Mathlib/CategoryTheory/Filtered/Connected.lean,Mathlib/CategoryTheory/IsConnected.lean,Mathlib/CategoryTheory/Limits/Final.lean,Mathlib/CategoryTheory/Limits/Types/Coequalizers.lean,Mathlib/CategoryTheory/Limits/Types/Filtered.lean,Mathlib/Combinatorics/Enumerative/DyckWord.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Computability/ContextFreeGrammar.lean,Mathlib/Computability/TMConfig.lean,Mathlib/Data/PFunctor/Multivariate/M.lean,Mathlib/Data/Quot.lean,Mathlib/FieldTheory/PerfectClosure.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean,Mathlib/Logic/Relation.lean,Mathlib/Order/Basic.lean,Mathlib/Order/Defs/Prop.lean,Mathlib/Order/Interval/Finset/Basic.lean,Mathlib/Order/WellFoundedSet.lean,Mathlib/SetTheory/Surreal/Multiplication.lean,Mathlib/Topology/Gluing.lean |
26 |
11 |
['SnirBroshi', 'github-actions', 'mathlib4-merge-conflict-bot', 'thorimur', 'vihdzp'] |
thorimur assignee:thorimur |
14-28731 14 days ago |
16-46860 16 days ago |
25-6077 25 days |
| 34423 |
euprunin author:euprunin |
chore: golf using `grind` and add `grind` annotation |
---
The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (shown if ≥10 ms before or after):
* `SubMulAction.ofStabilizer.isMultiplyPretransitive`: 242 ms before, 303 ms after
* `Equiv.Perm.nodup_of_pairwise_disjoint`: <10 ms before, 100 ms after
* `LucasLehmer.norm_num_ext.sModNat_eq_sMod`: 950 ms before, 758 ms after 🎉
* `IicProdIoc_preimage`: 70 ms before, 174 ms after
This golfing PR is batched under the following guidelines:
* Up to ~5 changed files per PR
* Up to ~25 changed declarations per PR
* Up to ~100 changed lines per PR
---
[](https://gitpod.io/from-referrer/)
|
|
8/38 |
Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean,Mathlib/GroupTheory/Perm/Support.lean,Mathlib/NumberTheory/LucasLehmer.lean,Mathlib/Probability/Kernel/IonescuTulcea/Maps.lean |
4 |
3 |
['euprunin', 'github-actions', 'leanprover-radar'] |
eric-wieser assignee:eric-wieser |
14-3152 14 days ago |
17-42504 17 days ago |
17-42186 17 days |
| 33416 |
vihdzp author:vihdzp |
chore(Order/GameAdd): add `elab_as_elim` attributes |
This PR does three things:
- Rename `GameAdd.fix` to the more illustrative `GameAdd.recursion`
- Add `elab_as_elim` attributes on `GameAdd.recursion`
- Deprecate the duplicate `GameAdd.induction`
---
[](https://gitpod.io/from-referrer/)
|
t-order |
24/14 |
Mathlib/Order/GameAdd.lean,Mathlib/SetTheory/PGame/Order.lean,Mathlib/SetTheory/ZFC/Ordinal.lean |
3 |
1 |
['github-actions'] |
alreadydone assignee:alreadydone |
13-75035 13 days ago |
43-32863 43 days ago |
43-32545 43 days |
| 27100 |
staroperator author:staroperator |
feat(ModelTheory): Presburger definability and semilinear sets |
This PR formalizes the classical result that Presburger definable sets are the same as semilinear sets. As an application of this result, we show that the graph of multiplication is not Presburger definable.
---
- [x] depends on: #26896
- [x] depends on: #27081
- [x] depends on: #27087
- [x] depends on: #27414
- [x] depends on: #32123
---
[](https://gitpod.io/from-referrer/)
|
t-logic
large-import
|
278/0 |
Mathlib.lean,Mathlib/ModelTheory/Arithmetic/Presburger/Definability.lean,Mathlib/ModelTheory/Arithmetic/Presburger/Semilinear/Defs.lean,docs/references.bib |
4 |
8 |
['awainverse', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'staroperator'] |
fpvandoorn assignee:fpvandoorn |
13-58268 13 days ago |
13-57100 13 days ago |
75-18735 75 days |
| 34092 |
staroperator author:staroperator |
feat(SetTheory/ZFC): properties of `ZFSet.omega` |
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
77/10 |
Mathlib/SetTheory/ZFC/Basic.lean,Mathlib/SetTheory/ZFC/Ordinal.lean,Mathlib/SetTheory/ZFC/PSet.lean |
3 |
25 |
['Komyyy', 'github-actions', 'mathlib4-merge-conflict-bot', 'staroperator', 'vihdzp'] |
alreadydone assignee:alreadydone |
13-57670 13 days ago |
13-56748 13 days ago |
25-2530 25 days |
| 34138 |
pfaffelh author:pfaffelh |
feat(MeasureTheory): Introduce `MassFunction α` giving rise to a `Measure α ⊤` |
Define `MassFunction α := α → ℝ≥0∞`
Define `toMeasure (w : MassFunction α) : @Measure α ⊤` as a sum of diracs
Show properties of the resulting objects
This PR intends to start a more userfriendly interaction with probability mass functions (`PMF`). There are two main differences between `MassFunction` and `PMF`:
* `PMF` hast the additional property `HasSum 1`, making the resulting measure a probability measure. (For `MassFunction`, I intend to use the typeclass `IsProbabilityMeasure`in a later PR instead.)
* The `toMeasure` function of `MassFunction` directly defines the measure as a sum of diracs, which immediately makes computations possible.
Discussion thread on [zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/PMF.20Refactor.3A.20FunLike.20vs.20Definition.20Change)
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
new-contributor
|
224/0 |
Mathlib.lean,Mathlib/Algebra/GroupWithZero/Indicator.lean,Mathlib/Data/Set/Pairwise/Basic.lean,Mathlib/MeasureTheory/Measure/MassFunction.lean |
4 |
10 |
['DavidLedvinka', 'github-actions', 'metakunt', 'pfaffelh'] |
EtienneC30 assignee:EtienneC30 |
13-54165 13 days ago |
13-51087 13 days ago |
23-43272 23 days |
| 34189 |
bwangpj author:bwangpj |
feat(MeasureTheory/Measure): haarScalarFactor_map |
From FLT.
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
FLT
|
38/16 |
Mathlib/MeasureTheory/Measure/Haar/Unique.lean |
1 |
6 |
['ADedecker', 'bwangpj', 'github-actions'] |
RemyDegenne assignee:RemyDegenne |
13-51325 13 days ago |
13-50401 13 days ago |
20-12929 20 days |
| 33288 |
vihdzp author:vihdzp |
chore(Combinatorics/SimpleGraph/Paths): review API |
This PR does the following:
- Add `grind` annotations.
- Rename theorems `X_isY` to the more idiomatic `isY_X`.
- Remove many redundant namespaces.
- Golf accordingly.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
154/122 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean,Mathlib/Combinatorics/SimpleGraph/Metric.lean,Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Maps.lean |
6 |
2 |
['github-actions', 'mathlib4-merge-conflict-bot'] |
b-mehta assignee:b-mehta |
13-49812 13 days ago |
13-48921 13 days ago |
38-66649 38 days |
| 33817 |
FlAmmmmING author:FlAmmmmING |
fix(Combinatorics/Enumerative/Schroder.lean): Fix the definition and theorem of smallSchroder. |
In the previous definition, the small Schröder numbers were defined as
```LaTeX
s_0 = 1, s_1 = 1, s_2 = 1, s_3 = 3...
```
, which does not match the sequence listed in OEIS A006318. Moreover, this definition makes it difficult to correctly write the generating function for the small Schröder numbers. This PR fixes this issue.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-combinatorics
large-import
|
61/39 |
Mathlib/Combinatorics/Enumerative/Schroder.lean |
1 |
19 |
['FlAmmmmING', 'github-actions', 'vihdzp'] |
awainverse assignee:awainverse |
13-35712 13 days ago |
22-14712 22 days ago |
32-51600 32 days |
| 34227 |
stepan2698-cpu author:stepan2698-cpu |
feat: If sum of densities is at least one, the sumset covers the naturals |
Proves an outstanding TODO item from Mathlib.Combinatorics.Schnirelmann : shows that if the sum of two densities is at least one, the sumset covers the positive naturals.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
51/1 |
Mathlib/Combinatorics/Schnirelmann.lean |
1 |
3 |
['github-actions', 'grunweg', 'kbuzzard'] |
awainverse assignee:awainverse |
13-35709 13 days ago |
21-37688 21 days ago |
21-52385 21 days |
| 34387 |
plp127 author:plp127 |
chore: don't expose `Shrink` |
Mark `Shrink` and `equivShrink` as `@[no_expose]`. This ensures downstream files using the module system can't take advantage of the specific definition of `Shrink` as an application of `Classical.choose`.
See also [#general > Cardinality model incompatible with Lean compiler @ 💬](https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/Cardinality.20model.20incompatible.20with.20Lean.20compiler/near/538013012) on Zulip for an example of bad things that can happen if `Shrink` is exposed.
---
[](https://gitpod.io/from-referrer/)
|
t-logic |
2/1 |
Mathlib/Logic/Small/Defs.lean |
1 |
2 |
['github-actions', 'plp127', 'vihdzp'] |
awainverse assignee:awainverse |
13-35706 13 days ago |
18-46047 18 days ago |
18-45729 18 days |
| 34539 |
grunweg author:grunweg |
feat(Cache): continue trying to download if the first repository had some errors |
For me, it happens occasionally when working on a mathlib PR that downloading from mathlib, just one file fails.
(This is more likely when e.g. modifying a syntax linter, so all of mathlib has to be rebuilt, and the mathlib cache has no hits.)
Right now, lake exe cache get then skips downloading files from my fork.
This is not helpful; these cache files are the ones I would have liked to download.
In such situations, I have to manually retry the command. Depending on my network, this can happen several times.
This PR changes the cache to keep downloading from the second (or third, fourth, ...) repository.
To prevent lots of wasted work, we only do so if the number of failed downloads is small (at most 10).
---
The second commit is optional: I'm happy to remove it, if you feel strongly about this.
[](https://gitpod.io/from-referrer/)
|
CI
maintainer-merge
|
38/31 |
Cache/Requests.lean |
1 |
8 |
['bryangingechen', 'github-actions', 'grunweg'] |
kim-em assignee:kim-em |
13-13716 13 days ago |
14-3780 14 days ago |
14-33244 14 days |
| 34029 |
lua-vr author:lua-vr |
feat(Order/PartialSups): add exists_partialSups_eq |
In a linear order, there exists an index `j ≤ i` for which `partialSups f i = f j`.
---
Adapted from a proof generated by Aristotle.
[](https://gitpod.io/from-referrer/)
|
t-order |
20/0 |
Mathlib/Order/PartialSups.lean |
1 |
1 |
['github-actions', 'plp127'] |
bryangingechen assignee:bryangingechen |
12-76087 12 days ago |
27-25753 27 days ago |
27-25435 27 days |
| 34028 |
floor-licker author:floor-licker |
feat(SimpleGraph): add max-flow/min-cut weak duality |
This PR introduces a basic s–t flow setup for undirected SimpleGraphs and proves the standard weak-duality
inequality: for any feasible flow f and any s–t cut S, value f ≤ cutCapacity S.
This is a small, self-contained lemma I extracted while working on larger graph-theoretic formalizations, in particular, results that will ultimately rely on a full max-flow/min-cut theorem. The full MFMC equality/existence statement is not included here. This is the weak-duality direction (∀ f S, value f ≤ cutCapacity S).
|
t-combinatorics
new-contributor
|
169/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/MaxFlowMinCut.lean |
2 |
13 |
['SnirBroshi', 'floor-licker', 'github-actions'] |
kmill assignee:kmill |
12-35719 12 days ago |
16-74477 16 days ago |
25-49459 25 days |
| 34625 |
Ruben-VandeVelde author:Ruben-VandeVelde |
chore: deprecate aliases of Classical lemmas |
These are reexported in Init.Classical "for Mathlib compat".
---
[](https://gitpod.io/from-referrer/)
|
t-logic |
10/13 |
Mathlib/Analysis/Polynomial/MahlerMeasure.lean,Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean,Mathlib/Logic/Basic.lean |
3 |
3 |
['Ruben-VandeVelde', 'github-actions', 'vihdzp'] |
nobody |
12-6259 12 days ago |
12-40611 12 days ago |
12-40293 12 days |
| 33143 |
wwylele author:wwylele |
feat(PowerSeries): pentagonal number theorem |
The proof is split in two files: `Mathlib/Topology/Algebra/InfiniteSum/Pentagonal.lean` for the algebraic part, and `Mathlib/RingTheory/PowerSeries/Pentagonal.lean` for the summability part. In the near future, I also plan to prove the real/complex version that branches off from the algebraic part.
---
- [ ] depends on: #30436
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
331/1 |
Mathlib.lean,Mathlib/RingTheory/PowerSeries/Pentagonal.lean,Mathlib/Topology/Algebra/InfiniteSum/Pentagonal.lean,docs/1000.yaml |
4 |
18 |
['copilot-pull-request-reviewer', 'github-actions', 'jcommelin', 'mathlib4-dependent-issues-bot', 'vihdzp', 'wwylele'] |
kex-y assignee:kex-y |
11-47862 11 days ago |
13-49362 13 days ago |
47-16119 47 days |
| 34364 |
YuvalFilmus author:YuvalFilmus |
feat(Chebyshev/RootsExtrema): bound iterated derivatives of Chebyshev T on [-1, 1] |
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
72/4 |
Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/RootsExtrema.lean,Mathlib/RingTheory/Polynomial/Chebyshev.lean |
2 |
12 |
['YuvalFilmus', 'eric-wieser', 'github-actions'] |
eric-wieser assignee:eric-wieser |
11-47533 11 days ago |
15-4704 15 days ago |
18-75891 18 days |
| 34406 |
Ruben-VandeVelde author:Ruben-VandeVelde |
feat: Fin.tail_vecCons |
---
[](https://gitpod.io/from-referrer/)
|
t-data |
6/6 |
Mathlib/Analysis/Distribution/SchwartzSpace/Deriv.lean,Mathlib/Data/Fin/VecNotation.lean |
2 |
1 |
['github-actions'] |
adamtopaz assignee:adamtopaz |
11-47498 11 days ago |
17-66713 17 days ago |
17-66395 17 days |
| 33520 |
NoneMore author:NoneMore |
feat(ModelTheory/ElementarySubstructures): add a variant of Tarski-Vaught test taking sets as input |
There should exist an `ElementarySubstructure.copy` such that we can directly bundle the set itself instaed of its closure as an elementary substructure.
The other direction depends on #33458.
---
[](https://gitpod.io/from-referrer/)
|
t-logic
new-contributor
|
55/0 |
Mathlib/ModelTheory/ElementarySubstructures.lean |
1 |
3 |
['Citronhat', 'NoneMore', 'github-actions'] |
awainverse assignee:awainverse |
11-35670 11 days ago |
15-12732 15 days ago |
39-83097 39 days |
| 33850 |
YuvalFilmus author:YuvalFilmus |
feat(Chebyshev/ChebyshevGauss): Chebyshev–Gauss formula |
We prove the Chebyshev–Gauss quadrature formula, which reduces an integral with respect to the Chebyshev weight function to a finite sum.
---
- [ ] depends on: #33676
[](https://gitpod.io/from-referrer/)
|
t-analysis |
167/0 |
Mathlib.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/ChebyshevGauss.lean |
2 |
4 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
ADedecker assignee:ADedecker |
11-35669 11 days ago |
15-9243 15 days ago |
15-8925 15 days |
| 34489 |
xroblot author:xroblot |
feat(NumberField/CyclotomicField): first results about Galois theory |
This PR specializes the results of `Mathlib.NumberTheory.Cyclotomic.Gal` to the case of number fields.
Main results:
- Define the isomorphism between `Gal(ℚ(ζₙ)/ℚ)` and `(ℤ/nℤ)ˣ`
- Let `m ∣ n`. Prove the following diagram commutes:
```
Gal(ℚ(ζₙ)/ℚ) ≃ (ℤ/nℤ)ˣ
↓ ↓
Gal(ℚ(ζₘ)/ℚ) ≃ (ℤ/mℤ)ˣ
```
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory |
83/0 |
Mathlib.lean,Mathlib/NumberTheory/NumberField/Cyclotomic/Galois.lean,Mathlib/RingTheory/RootsOfUnity/PrimitiveRoots.lean |
3 |
1 |
['github-actions'] |
jcommelin assignee:jcommelin |
11-35665 11 days ago |
15-65065 15 days ago |
15-64747 15 days |
| 34521 |
huaizhangchu author:huaizhangchu |
feat(MeasureTheory): add measurableEmbedding_natCast |
This PR adds a lemma stating that the coercion from `ℕ` to `ℝ` is a measurable embedding.
```lean
lemma measurableEmbedding_natCast : MeasurableEmbedding (Nat.cast : ℕ → ℝ) :=
Nat.isClosedEmbedding_coe_real.measurableEmbedding
```
This is useful for proving properties about discrete probability distributions on `ℕ` by lifting them to `ℝ` and will be used in #34435. |
t-measure-probability
new-contributor
|
3/0 |
Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean |
1 |
1 |
['github-actions'] |
kex-y assignee:kex-y |
11-35662 11 days ago |
14-73341 14 days ago |
14-76521 14 days |
| 33791 |
PhoenixIra author:PhoenixIra |
feat: Generalization of FixedPointApproximants to CompletePartialOrder |
---
This PR provides a generalization of FixedPointApproximants to CompletePartialOrder. Not every theorem can be generalized, as sometimes we require additional conditions (namely `x ≤ f x`) in order to guarantee that the set is directed and thus the supremum is well-defined. This is not necessary in a CompleteLattice.
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-order
|
223/100 |
Mathlib/Order/CompletePartialOrder.lean,Mathlib/SetTheory/Ordinal/FixedPointApproximants.lean |
2 |
20 |
['PhoenixIra', 'github-actions', 'vihdzp'] |
PhoenixIra and vihdzp assignee:PhoenixIra assignee:vihdzp |
11-93 11 days ago |
22-60847 22 days ago |
22-60529 22 days |
| 33275 |
YuvalFilmus author:YuvalFilmus |
feat(Trigonometric/Chebyshev/Extremal): Chebyshev polynomials maximize iterated derivatives |
We prove that Chebyshev polynomials maximized iterated derivatives at points x≥1.
---
- [x] depends on: #33259
- [x] depends on: #33274
[](https://gitpod.io/from-referrer/)
|
t-analysis |
74/1 |
Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/Extremal.lean |
1 |
6 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
dupuisf assignee:dupuisf |
10-86346 10 days ago |
19-41394 19 days ago |
19-81404 19 days |
| 33449 |
yuanyi-350 author:yuanyi-350 |
feat(ProbabilityTheory): Add Poisson limit theorem |
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
129/2 |
Mathlib.lean,Mathlib/Probability/Distributions/Poisson.lean,Mathlib/Probability/Distributions/PoissonLimitThm.lean,Mathlib/Probability/ProbabilityMassFunction/Binomial.lean,docs/1000.yaml |
5 |
12 |
['EtienneC30', 'github-actions', 'vihdzp'] |
EtienneC30 assignee:EtienneC30 |
10-70153 10 days ago |
10-69337 10 days ago |
41-78739 41 days |
| 33928 |
jsm28 author:jsm28 |
feat(Combinatorics/Tiling/TileSet): indexed families of tiles |
Define the type `TileSet` for indexed families of tiles (in a discrete context), and some associated definitions (including `symmetryGroup`) and API lemmas.
`TileSet` can be used for tilings of the whole space; for tilings of part of the space; for patches of tiles (extracted from a tiling by considering tiles meeting some set of points, or considered on their own without extracting from a tiling); for multiple tilings (covering the space more than once). In particular, the fact that people study multiple tilings provides a clear justification for using indexed families rather than sets of tiles, and basic definitions and API lemmas generally work for all these different uses of `TileSet` (sometimes with weak constraints such as tiles being finite, nonempty and only having finitely many tiles meeting any point of the space).
Definitions for saying e.g. "this `TileSet` is a tiling of the whole space" are to be included in subsequent files in subsequent PRs.
From AperiodicMonotilesLean.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
460/0 |
Mathlib.lean,Mathlib/Combinatorics/Tiling/TileSet.lean |
2 |
22 |
['b-mehta', 'eric-wieser', 'github-actions', 'jsm28', 'vihdzp'] |
kmill assignee:kmill |
10-65009 10 days ago |
10-64258 10 days ago |
29-40841 29 days |
| 33189 |
peabrainiac author:peabrainiac |
feat(Geometry/Manifold): the interior of a manifold is open |
Show that the interior and boundary of manifolds are well-defined in the sense that the definition of interior points does not depend on a choice of chart, and conclude that the interior and boundary of manifolds are open resp. closed.
We only do this for $C^1$ manifolds because while it holds for finite-dimensional topological manifolds too, it is not clear to me whether it holds for infinite-dimensional topological manifolds, so that the finite-dimensional topological case probably needs to be treated separately from this infinite-dimensional $C^1$ case anyway.
---
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry |
190/11 |
Mathlib/Geometry/Manifold/IsManifold/ExtChartAt.lean,Mathlib/Geometry/Manifold/IsManifold/InteriorBoundary.lean,Mathlib/Topology/Closure.lean |
3 |
26 |
['Komyyy', 'github-actions', 'grunweg', 'peabrainiac'] |
grunweg assignee:grunweg |
10-54457 10 days ago |
unknown |
unknown |
| 34230 |
smmercuri author:smmercuri |
refactor: use 1-field structure to define the `WithAbs` type synonym |
Following the Zulip threads [here](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/defeq.20abuse.20in.20.60WithLp.60/near/526234806) and [here](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/defeq.20abuse.20in.20.60WithAbs.60.2F.60WithVal.60/with/569663323) and using `WithLp` as a template, we refactor the `WithAbs` type synonym as a 1-field structure. The main benefit being that it prevents defeq abuse.
---
- [x] depends on: #34313
[](https://gitpod.io/from-referrer/)
|
large-import |
314/114 |
Mathlib/Analysis/AbsoluteValue/Equivalence.lean,Mathlib/Analysis/Normed/Field/WithAbs.lean,Mathlib/Analysis/Normed/Ring/WithAbs.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Completion.lean |
5 |
7 |
['github-actions', 'leanprover-radar', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'smmercuri'] |
dupuisf assignee:dupuisf |
10-35696 10 days ago |
13-70248 13 days ago |
15-49595 15 days |
| 34588 |
Ruben-VandeVelde author:Ruben-VandeVelde |
feat: add generalizations of some padicVal{Nat,Int} lemmas |
Also drop the unnecessary primality condition from padicValInt_dvd.
From flt-regular.
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory |
34/16 |
Mathlib/NumberTheory/Padics/PadicVal/Basic.lean,Mathlib/NumberTheory/Padics/PadicVal/Defs.lean |
2 |
1 |
['github-actions'] |
mariainesdff assignee:mariainesdff |
10-35686 10 days ago |
13-40650 13 days ago |
13-40332 13 days |
| 34171 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Hasse): Define the Eulerian path of a path graph |
---
Such statements are left for a future PR, since they add imports so we probably want to split them into a separate file:
```lean
theorem IsEulerian.ofPathGraph : ofPathGraph n |>.IsEulerian := by sorry
theorem IsHamiltonian.ofPathGraph : ofPathGraph n |>.IsHamiltonian := by sorry
theorem exists_path_iff_isContained_pathGraph :
(∃ (u v : V) (w : G.Path u v), w.val.support.length = n) ↔ pathGraph n ⊑ G := by
sorry
```
(the last statement also requires #33121, this PR gives the right-to-left implication and that PR gives the left-to-right)
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
37/1 |
Mathlib/Combinatorics/SimpleGraph/Hasse.lean |
1 |
9 |
['SnirBroshi', 'github-actions', 'vihdzp', 'vlad902'] |
kmill assignee:kmill |
10-17168 10 days ago |
21-40666 21 days ago |
22-71558 22 days |
| 33082 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(GroupTheory/SpecificGroups/Alternating/Simple): the alternating group on at least 5 letters is simple. |
This is the conclusion of the story of the proof of simplicity of the alternating group using the
Iwasawa criterion.
* `Equiv.Perm.iwasawaStructure_two`:
the natural `IwasawaStructure` of `Equiv.Perm α` acting on `Nat.Combination α 2`
Its commutative subgroups consist of the permutations with support
in a given element of `Nat.Combination α 2`.
They are cyclic of order 2.
* `alternatingGroup_of_le_of_normal`:
If `α` has at least 5 elements, then a nontrivial normal subgroup
of `Equiv.Perm α` contains the alternating group.
* `alternatingGroup.iwasawaStructure_three`:
the natural `IwasawaStructure` of `alternatingGroup α` acting on `Nat.Combination α 3`
Its commutative subgroups consist of the permutations with support
in a given element of `Nat.Combination α 2`.
They are cyclic of order 3.
* `alternatingGroup.iwasawaStructure_three`:
the natural `IwasawaStructure` of `alternatingGroup α` acting on `Nat.Combination α 4`
Its commutative subgroups consist of the permutations of
cycleType (2, 2) with support in a given element of `Nat.Combination α 2`.
They have order 4 and exponent 2 (`IsKleinFour`).
* `alternatingGroup.normal_subgroup_eq_bot_or_eq_top`:
If `α` has at least 5 elements, then a nontrivial normal subgroup of `alternatingGroup` is `⊤`.
* `alternatingGroup.isSimpleGroup`:
If `α` has at least 5 elements, then `alternatingGroup α`
is a simple group.
---
- [x] depends on: #34307
- [x] depends on: #34308
[](https://gitpod.io/from-referrer/)
|
t-group-theory |
459/5 |
Mathlib.lean,Mathlib/GroupTheory/Perm/ConjAct.lean,Mathlib/GroupTheory/Perm/Finite.lean,Mathlib/GroupTheory/Perm/Support.lean,Mathlib/GroupTheory/SpecificGroups/Alternating.lean,Mathlib/GroupTheory/SpecificGroups/Alternating/MaximalSubgroups.lean,Mathlib/GroupTheory/SpecificGroups/Alternating/Simple.lean,Mathlib/GroupTheory/SpecificGroups/KleinFour.lean |
8 |
54 |
['AntoineChambert-Loir', 'Ruben-VandeVelde', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'tb65536'] |
mattrobball assignee:mattrobball |
9-79972 9 days ago |
9-81191 9 days ago |
10-8672 10 days |
| 34455 |
vihdzp author:vihdzp |
chore(NumberTheory/MahlerMeasure): turn `BoxPoly` notation into a def |
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory |
22/24 |
Mathlib/NumberTheory/MahlerMeasure.lean |
1 |
10 |
['MichaelStollBayreuth', 'fbarroero', 'github-actions', 'jcommelin', 'vihdzp'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
9-67341 9 days ago |
9-72560 9 days ago |
16-44027 16 days |
| 34477 |
spanning-tree author:spanning-tree |
refactor(Order): make CompletePartialOrder extend OrderBot |
Make `CompletePartialOrder` extend `OrderBot`, and add a constructor `completePartialOrderOfLubOfDirected`. Previously, `CompletePartialOrder` had an implicit bottom element but did not extend OrderBot explicitly.
Breaking change: `CompletePartialOrder` instances must provide `⊥` and `bot_le`, or use the constructor.
See discussion in [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.3E.20complete.20partial.20order.20and.20domain.20theory.20formalization).
---
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
|
15/1 |
Mathlib/Order/CompletePartialOrder.lean |
1 |
2 |
['Citronhat', 'github-actions'] |
pechersky assignee:pechersky |
9-35688 9 days ago |
13-70380 13 days ago |
16-24608 16 days |
| 34664 |
GrigorenkoPV author:GrigorenkoPV |
feat(SetTheory/Ordinal/Arithmetic): prove isSuccPrelimit_iff_omega0_dvd |
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory
new-contributor
|
36/15 |
Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Exponential.lean,Mathlib/SetTheory/Ordinal/Notation.lean |
3 |
8 |
['GrigorenkoPV', 'github-actions', 'vihdzp'] |
vihdzp assignee:vihdzp |
8-71030 8 days ago |
9-74394 9 days ago |
11-30822 11 days |
| 34375 |
jvanwinden author:jvanwinden |
feat(MeasureTheory/Function/AEEqOfLIntegral): introduce lemmas for rewriting a.e. inequalities |
Introduce the following lemmas:
- ae_le_const_iff_forall_gt_imp_ae_lt,
- ae_const_le_iff_forall_lt_imp_ae_gt,
- ae_le_const_iff_forall_gt_imp_ae_le,
- ae_const_le_iff_forall_lt_imp_ae_ge,
which can be used get an epsilon of room in a.e. inequalities, with the epsilon being outside the a.e. quantifier. The 'le/ge' variants require a dense ordering.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
24/0 |
Mathlib/MeasureTheory/Function/AEEqOfLIntegral.lean |
1 |
4 |
['github-actions', 'jvanwinden', 'urkud'] |
kex-y assignee:kex-y |
8-69511 8 days ago |
18-70929 18 days ago |
18-70611 18 days |
| 34779 |
tb65536 author:tb65536 |
refactor(Computability/TMComputable): generalize from `FinEncoding` |
Much of `TMComputable.lean` is stated in terms of `FinEncoding` when only the `encode` function is used. This PR generalizes statements in `TMComputable.lean` to take in just the `encode` function, making them easier to use (since one does not have to additionally provide a `decode` function and a proof of `decode_encode`).
---
[](https://gitpod.io/from-referrer/)
|
t-computability |
39/38 |
Mathlib/Computability/TMComputable.lean |
1 |
1 |
['github-actions'] |
nobody |
8-65865 8 days ago |
8-65865 8 days ago |
8-65547 8 days |
| 32570 |
ksenono author:ksenono |
feat(Combinatorics/SimpleGraph): bipartite subgraphs and vertex-disjoint graphs for Konig's theorem |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
22/0 |
Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean |
2 |
19 |
['SnirBroshi', 'github-actions', 'jcommelin', 'ksenono', 'vlad902'] |
kmill assignee:kmill |
8-45479 8 days ago |
8-45479 8 days ago |
60-76165 60 days |
| 32555 |
ksenono author:ksenono |
feat(Combinatorics/SimpleGraph/Matching): maximum and maximal matchings for Konig's theorem |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
127/0 |
Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean |
2 |
24 |
['SnirBroshi', 'github-actions', 'jcommelin', 'ksenono'] |
awainverse assignee:awainverse |
8-44306 8 days ago |
8-44306 8 days ago |
61-13013 61 days |
| 34636 |
CoolRmal author:CoolRmal |
feat(MeasureTheory/Analysis): the Fourier coefficients of a function can be computed by integrating over a box |
The main result proved in this PR is `integral_preimage`, which is the analogue of the one-dimensional result: [UnitAddCircle.integral_preimage](https://leanprover-community.github.io/mathlib4_docs/Mathlib/MeasureTheory/Integral/IntervalIntegral/Periodic.html#UnitAddCircle.integral_preimage). This theorem allows us to compute an integral over UnitAddTorus as an integral over a box in the Euclidean space. As an application, I prove that the Fourier coefficients of a function can be computed by integrating over a box.
The main motivation for this PR is the higher dimensional Poisson summation formula, which is needed in the [Sphere Packing project](https://github.com/thefundamentaltheor3m/Sphere-Packing-Lean).
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
80/0 |
Mathlib/Analysis/Fourier/AddCircleMulti.lean,Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean |
2 |
1 |
['github-actions'] |
RemyDegenne assignee:RemyDegenne |
8-35695 8 days ago |
11-56684 11 days ago |
11-57651 11 days |
| 31449 |
kim-em author:kim-em |
feat(SemilocallySimplyConnected): definition and alternative formulation |
Note: Proofs in this PR were developed with assistance from Claude. |
t-topology |
266/0 |
Mathlib.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/FundamentalGroup.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/SemilocallySimplyConnected.lean,Mathlib/Topology/Path.lean |
5 |
15 |
['ADedecker', 'alreadydone', 'github-actions', 'jcommelin', 'kim-em', 'mathlib4-merge-conflict-bot'] |
jcommelin assignee:jcommelin |
8-26179 8 days ago |
8-24694 8 days ago |
58-76935 58 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 |
8 |
['github-actions', 'j-loreaux', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'yoh-tanimoto'] |
fpvandoorn assignee:fpvandoorn |
8-13615 8 days ago |
8-12404 8 days ago |
105-7650 105 days |
| 34191 |
IlPreteRosso author:IlPreteRosso |
feat(Topology/Algebra/InfiniteSum): Discrete Convolution API 1st PR |
Defines the very basics of the discrete convolution API. In analogy with [MeasureTheory.Convolution](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Convolution.html#MeasureTheory.convolution).
Main definitions include
- `mulFiber`, `convolution`, `ConvolutionExists`, `ConvolutionExists.add_distrib`, `ConvolutionExistsAt.smul_convolution`, `mulFiber_swapEquiv`, `convolution_comm`
RM:
- The main docstring is *as is*
- Next step is triple sum intrastrcutre + `assoc` theorems for convolution (long)
Continues the work from #33411 and #33410 (splitting into shorter PRs, carries over the modifications from previous reviews) |
t-topology
new-contributor
|
277/0 |
Mathlib.lean,Mathlib/Topology/Algebra/InfiniteSum/DiscreteConvolution.lean |
2 |
18 |
['IlPreteRosso', 'github-actions', 'j-loreaux'] |
PatrickMassot assignee:PatrickMassot |
7-64585 7 days ago |
7-63963 7 days ago |
16-64404 16 days |
| 34402 |
loefflerd author:loefflerd |
feat(Analysis/Complex/UpperHalfPlane): invariant measure |
Add the invariant measure on the upper half-plane (& prove that it is indeed invariant).
Also includes various minor improvements to upper half-plane & related code:
* improve documentation of `GeneralLinearGroup/FinTwo.lean`
* remove no-longer-needed coercion notation
---
- [x] depends on: #34597
[](https://gitpod.io/from-referrer/)
|
large-import
t-analysis
|
276/47 |
Mathlib.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Manifold.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Measure.lean,Mathlib/Analysis/Complex/UpperHalfPlane/MoebiusAction.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean,Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/FinTwo.lean,Mathlib/NumberTheory/ModularForms/Basic.lean |
7 |
6 |
['github-actions', 'loefflerd', 'mathlib-dependent-issues', 'urkud'] |
ADedecker assignee:ADedecker |
7-52110 7 days ago |
7-51239 7 days ago |
12-49145 12 days |
| 34557 |
kim-em author:kim-em |
feat(Topology/Homotopy): add Path.subpathOn for restricting paths to subintervals |
This PR adds `Path.subpathOn`, which extracts a subpath from a path γ on an interval [a, b] ⊆ [0, 1] by reparametrizing via the affine map t ↦ a + t(b - a).
### Main results
- `Path.subpathOn`: definition of the restricted path
- `Path.subpathOn_trans`: composing subpaths is homotopic to the combined subpath
- `Path.subpathOn_self`: the trivial subpath [a,a] is homotopic to the constant path
- `Path.subpathOn_zero_one`: the full subpath [0,1] is homotopic to the original path
- Quotient-level versions of these theorems
This material is split out from https://github.com/leanprover-community/mathlib4/pull/31576 to allow independent review. PR #31576 will depend on this PR once merged.
🤖 Prepared with Claude Code |
t-topology |
216/0 |
Mathlib.lean,Mathlib/Topology/Homotopy/Path.lean,Mathlib/Topology/UnitInterval.lean,Mathlib/Topology/UnitInterval/ConvexSpace.lean |
4 |
3 |
['github-actions', 'jcommelin'] |
jcommelin assignee:jcommelin |
7-30652 7 days ago |
11-16641 11 days ago |
11-45073 11 days |
| 34558 |
kim-em author:kim-em |
feat(Topology): add StrictMono finite partition lemmas and path partitioning |
This PR adds:
**In `UnitInterval.lean`:**
- `exists_strictMono_Icc_subset_open_cover_Icc`: finite partition with strictly monotone points indexed by `Fin (n + 1)` for general closed intervals
- `exists_strictMono_Icc_subset_open_cover_unitInterval`: the unit interval version
- `continuous_convexCombo`: continuity of convex combinations
**In `Path.lean`:**
- `Path.exists_partition_in_cover`: Lebesgue partition lemma for paths - any open cover of a path's range can be refined to a finite partition
- `Path.exists_partition_with_property`: neighborhood version - if every point on a path has a neighborhood with property P, get a partition with each segment in such a neighborhood
These are useful for path homotopy arguments where a finite, strict partition is needed.
This is split out from https://github.com/leanprover-community/mathlib4/pull/31576 to allow independent review.
🤖 Prepared with Claude Code |
t-topology |
174/0 |
Mathlib/Topology/Path.lean,Mathlib/Topology/UnitInterval.lean |
2 |
12 |
['botbaki-review', 'github-actions', 'kim-em'] |
jcommelin assignee:jcommelin |
7-30651 7 days ago |
12-4482 12 days ago |
14-12286 14 days |
| 34632 |
mitchell-horner author:mitchell-horner |
feat(Combinatorics/SimpleGraph): add `BipartiteDoubleCover` |
`bipartiteDoubleCover G` has two vertices `inl v` and `inr v` for each vertex `v` in `G` such that `inl v` (`inr v`) is adjacent to `inr w` (`inl w`) iff `v` is adjacent to `w` in `G`.
---
This comes from splitting up #25841 into smaller PRs.
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
87/0 |
Mathlib/Combinatorics/SimpleGraph/Bipartite.lean |
1 |
10 |
['github-actions', 'mitchell-horner', 'vihdzp', 'vlad902'] |
kmill assignee:kmill |
7-30649 7 days ago |
11-27043 11 days ago |
12-28284 12 days |
| 34671 |
SnirBroshi author:SnirBroshi |
feat(Data/Sym/Sym2): `fromRel` is injective & more |
---
[](https://gitpod.io/from-referrer/)
|
t-data |
23/9 |
Mathlib/Data/Sym/Sym2.lean |
1 |
1 |
['github-actions'] |
TwoFX assignee:TwoFX |
7-30647 7 days ago |
11-11514 11 days ago |
11-11196 11 days |
| 34693 |
SnirBroshi author:SnirBroshi |
feat(Data/Finite/Card): `Nat.card`/`ENat.card` is strictly monotonic on finite sets |
---
[](https://gitpod.io/from-referrer/)
|
t-data |
31/4 |
Mathlib/Data/Finite/Card.lean |
1 |
1 |
['github-actions'] |
TwoFX assignee:TwoFX |
7-30645 7 days ago |
10-53751 10 days ago |
10-53433 10 days |
| 28248 |
YaelDillies author:YaelDillies |
feat: binomial random variables |
Define the binomial distribution and compute the expectation, variance, conditional variance of a binomial random variable.
From MiscYD
---
- [x] depends on: #31908
- [x] depends on: #31910
- [x] depends on: #31942
- [x] depends on: #31947
- [x] depends on: #34367
- [x] depends on: #34370
- [x] depends on: #34374
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
232/0 |
Mathlib.lean,Mathlib/MeasureTheory/Integral/Bochner/Set.lean,Mathlib/Probability/Distributions/Binomial.lean |
3 |
61 |
['DavidLedvinka', 'RemyDegenne', 'YaelDillies', 'eric-wieser', 'github-actions', 'kex-y', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'pfaffelh', 'themathqueen'] |
kex-y assignee:kex-y |
7-13612 7 days ago |
7-12497 7 days ago |
31-85458 31 days |
| 34427 |
CoolRmal author:CoolRmal |
feat(MeasureTheory): Strong measurability is preserved under division in a group with zero |
I proved that if `f,g` are two strongly measurable functions taking values in a group with zero, then `f/g` is still strongly measurable.
As mentioned over here [#Is there code for X? > StronglyMeaurable.div₀](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/StronglyMeaurable.2Ediv.E2.82.80/with/569988425), I probably should also change the name of [MeasureTheory.StronglyMeasurable.div](https://leanprover-community.github.io/mathlib4_docs/Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.html#MeasureTheory.StronglyMeasurable.div) into `StronglyMeasurable.div'` according to the docstring of [ContinuousDiv](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Algebra/Group/Defs.html#ContinuousDiv). If I do this, then @to_additive will generate a theorem named `StronglyMeasurable.sub'`, which is a bit weird, so I am unsure whether I should change these names.
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
37/8 |
Mathlib/MeasureTheory/Function/StronglyMeasurable/AEStronglyMeasurable.lean,Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean,Mathlib/Probability/Process/Adapted.lean |
3 |
3 |
['CoolRmal', 'EtienneC30', 'github-actions'] |
kex-y assignee:kex-y |
7-6928 7 days ago |
7-5934 7 days ago |
15-47953 15 days |
| 34193 |
bwangpj author:bwangpj |
feat(Topology/Algebra/Ring): ContinuousAddEquiv.mulLeft, mulRight |
The additive homeomorphism from a topological ring to itself, induced by left/right multiplication by a unit.
From FLT.
---
[](https://gitpod.io/from-referrer/)
|
t-topology
FLT
|
25/0 |
Mathlib/Topology/Algebra/Ring/Basic.lean |
1 |
7 |
['bwangpj', 'dagurtomas', 'eric-wieser', 'github-actions'] |
dagurtomas assignee:dagurtomas |
6-64851 6 days ago |
22-4217 22 days ago |
22-6256 22 days |
| 26377 |
Whysoserioushah author:Whysoserioushah |
feat(RingTheory/SimpleRing/TensorProduct): tensor product of a simple algebra and a central simple algebra is simple |
co-authored-by: @jjaassoonn
---
|
t-ring-theory
large-import
|
326/8 |
Mathlib.lean,Mathlib/RingTheory/SimpleRing/TensorProduct.lean,Mathlib/RingTheory/TwoSidedIdeal/Kernel.lean,Mathlib/RingTheory/TwoSidedIdeal/Lattice.lean,Mathlib/RingTheory/TwoSidedIdeal/Operations.lean |
5 |
68 |
['Ruben-VandeVelde', 'Whysoserioushah', 'eric-wieser', 'github-actions', 'kbuzzard', 'kckennylau', 'mathlib4-merge-conflict-bot', 'vlad902'] |
kbuzzard assignee:kbuzzard |
6-58087 6 days ago |
6-57914 6 days ago |
23-21143 23 days |
| 30077 |
agjftucker author:agjftucker |
feat(Analysis/Calculus/ImplicitFunction): define implicitFunctionOfBivariate |
Containing a specialization of the implicit function theorem to a curried bivariate function.
---
This PR is a synthesis of material from others which have failed to make progress. But there seems always to have been a different reason for it, so I'm afraid I keep trying where maybe I shouldn't. I think in this PR I have incorporated the great majority of suggestions already made (that I understood!).
#26985 reviewed by j-loreaux and later on by winstonyin.
#16743 and #26300 reviewed by sgouezel.
[Zulip chat](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Inverse.20function.20theorem.20and.20ContinuousLinearEquiv/with/567586606) with Yury Kudryashov.
[](https://gitpod.io/from-referrer/)
|
t-analysis |
397/145 |
Mathlib.lean,Mathlib/Analysis/Calculus/FDeriv/Partial.lean,Mathlib/Analysis/Calculus/Implicit.lean,Mathlib/Analysis/Calculus/ImplicitContDiff.lean,Mathlib/Analysis/Calculus/ImplicitFunction/Bivariate.lean,Mathlib/Analysis/Calculus/ImplicitFunction/ProdDomain.lean |
6 |
2 |
['github-actions', 'mathlib4-merge-conflict-bot'] |
sgouezel assignee:sgouezel |
6-35805 6 days ago |
9-60101 9 days ago |
9-59783 9 days |
| 34709 |
dennj author:dennj |
feat(Analysis/ODE): add discrete Grönwall inequality |
## Summary
Add discrete Grönwall inequality to `Mathlib/Analysis/ODE/DiscreteGronwall.lean`
Provides bounds for recurrence inequalities of the form `u(n+1) ≤ c(n) * u(n) + b(n)`
### Main results
- `discrete_gronwall_prod_general`: Product form working over any linearly ordered commutative ring
- `prod_one_add_Ico_mono`: Auxiliary lemma for product comparisons over subintervals
- `discrete_gronwall`: Classical exponential bound `u(n) ≤ (u(n₀) + ∑ b(k)) * exp(∑ c(i))` (ℝ-specific)
- `discrete_gronwall_Ico`: Uniform bound over a finite interval (ℝ-specific)
## Related work
Complements the continuous Grönwall inequality in `Mathlib.Analysis.ODE.Gronwall`
## References
* Grönwall, T. H. (1919). "Note on the derivatives with respect to a parameter of the solutions of a system of differential equations". *Annals of Mathematics*, 20(4), 292–296.
|
t-analysis
new-contributor
|
174/0 |
Mathlib.lean,Mathlib/Analysis/ODE/DiscreteGronwall.lean |
2 |
1 |
['github-actions'] |
ADedecker assignee:ADedecker |
6-35803 6 days ago |
10-24338 10 days ago |
10-24020 10 days |
| 34729 |
vihdzp author:vihdzp |
chore: `no_expose` various `Ordinal` definitions |
These all have convoluted definitions that are better characterized by their API, or (in the case of `Ordinal.ToType`) are defined through choice and have no useful definitional equalities.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
13/11 |
Mathlib/SetTheory/Ordinal/Basic.lean,Mathlib/SetTheory/Ordinal/Exponential.lean |
2 |
3 |
['github-actions', 'leanprover-radar', 'vihdzp'] |
b-mehta assignee:b-mehta |
6-35802 6 days ago |
9-65588 9 days ago |
9-65270 9 days |
| 34821 |
kim-em author:kim-em |
chore: add GitHub Apps validation script and config |
This PR adds tooling to validate the GitHub Apps configuration after the recent bot account migration.
**New files:**
- `.github/github-apps.yml` - Documents all 8 GitHub Apps with their IDs, secrets, and workflow usage
- `scripts/validate-github-apps.sh` - Validates apps exist, secrets are present, and workflows reference correct secrets
- `.github/workflows/validate-github-apps.yml` - Weekly CI to run validation
**Validation checks:**
- App exists with expected ID via GitHub API
- App is installed and not suspended
- Required secrets exist in each repository
- Workflow files reference the correct secrets
- Warns about undocumented `MATHLIB_*` secrets
**Issue found:** The validation script discovered that `MATHLIB_AUTO_MERGE_APP_ID` and `MATHLIB_AUTO_MERGE_PRIVATE_KEY` secrets are missing. These need to be added for the `mathlib-auto-merge` app (ID: 2784285).
**Requirements:** `gh`, `yq`, and `jq` must be installed to run the script locally.
🤖 Prepared with Claude Code |
CI |
642/0 |
.github/github-apps.yml,.github/workflows/validate-github-apps.yml,scripts/README.md,scripts/validate-github-apps.sh |
4 |
2 |
['bryangingechen', 'github-actions'] |
bryangingechen assignee:bryangingechen |
5-72687 5 days ago |
8-22317 8 days ago |
8-26875 8 days |
| 34440 |
grunweg author:grunweg |
feat: linter for name components in uppercase |
Per the naming convention, these are errors (unless they are an abbreviation).
Mathlib has *many* violations at the moment: for this reason, we add this as an environment linter
and automatically add all current exceptions. Once these have been fixed, converting to a syntax linter
is desirable.
Until then, track the number of such exceptions as technical debt.
---
[Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/naming.20convention.20linter/with/570617527)
Note to self: wait for CI, then do a final nolints update. and try to implement the follow-up soon
[](https://gitpod.io/from-referrer/)
|
t-linter
large-import
maintainer-merge
|
1018/9 |
Mathlib/Tactic/Linter/Style.lean,MathlibTest/DoubleUnderscore.lean,MathlibTest/HashLint.lean,MathlibTest/Lint.lean,MathlibTest/LintStyle.lean,scripts/nolints.json,scripts/technical-debt-metrics.sh |
7 |
18 |
['github-actions', 'grunweg', 'joneugster'] |
joneugster assignee:joneugster |
5-71459 5 days ago |
5-68027 5 days ago |
7-70138 7 days |
| 34182 |
IlPreteRosso author:IlPreteRosso |
feat(Data/Finsupp/Single, Data/Finsupp/Indicator): Add set_indicator_singleton, indicator_singleton; golfed single_eq_set_indicator, single_eq_indicator |
[Mathlib.Data.Finsupp.Single](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finsupp/Single.html#Finsupp.single)
- Add `set_indicator_singleton`, golfed `single_eq_set_indicator`
[Mathlib.Data.Finsupp.Indicator](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finsupp/Indicator.html#Finsupp.indicator_apply)
- Add `indicator_singleton`, golfed `single_eq_indicator`
Continues the work from #34095 |
large-import
t-data
new-contributor
|
17/17 |
Mathlib/Data/Finsupp/Indicator.lean,Mathlib/Data/Finsupp/Single.lean |
2 |
29 |
['IlPreteRosso', 'eric-wieser', 'github-actions', 'mathlib-bors', 'urkud'] |
eric-wieser and urkud assignee:urkud assignee:eric-wieser |
5-65496 5 days ago |
22-18000 22 days ago |
22-24510 22 days |
| 34215 |
justus-springer author:justus-springer |
feat(FieldTheory/RatFunc): Degree of field extension K(X)/K(f) |
Prove that the degree of the field extension K(X)/K(f) of a rational function f equals the maximum of the degrees of its numerator and denominator. This is a crucial lemma towards proving Luroth's theorem.
This contribution was created as part of the Heidelberg Lean workshop "Formalising algebraic geometry" in November 2025.
Co-authored-by: Miriam Philipp @miriamphilipp
Co-authored-by: Junyan Xu @alreadydone
---
- [ ] depends on: #34212
- [ ] depends on: #34213
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
228/0 |
Mathlib.lean,Mathlib/FieldTheory/RatFunc/Luroth.lean |
2 |
8 |
['alreadydone', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'tb65536'] |
jcommelin assignee:jcommelin |
5-65103 5 days ago |
5-64393 5 days ago |
14-79823 14 days |
| 34151 |
gasparattila author:gasparattila |
feat(Topology/Sets): product of `Closeds` |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
30/0 |
Mathlib/Topology/MetricSpace/Closeds.lean,Mathlib/Topology/Sets/Closeds.lean,Mathlib/Topology/Sets/Compacts.lean |
3 |
1 |
['github-actions'] |
PatrickMassot assignee:PatrickMassot |
5-59706 5 days ago |
5-58558 5 days ago |
23-52936 23 days |
| 34386 |
plp127 author:plp127 |
chore(Order/RelClasses): resolve TODO |
Resolves TODO in Mathlib/Order/RelClasses by removing `Eq.subset` and renaming `Eq.subset'` to `Eq.subset`.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
9/11 |
Mathlib/Combinatorics/Matroid/Basic.lean,Mathlib/Data/Finset/Card.lean,Mathlib/Data/Set/Basic.lean,Mathlib/Data/Set/Card.lean,Mathlib/Order/RelClasses.lean,Mathlib/Topology/IsLocalHomeomorph.lean |
6 |
7 |
['Vierkantor', 'github-actions', 'plp127', 'vihdzp'] |
Vierkantor assignee:Vierkantor |
5-48565 5 days ago |
5-47786 5 days ago |
18-3727 18 days |
| 33252 |
SnirBroshi author:SnirBroshi |
chore(Combinatorics/SimpleGraph/Coloring): use `IsIndepSet` instead of `IsAntichain` to spell "a color class is an independent set" |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
6/2 |
Mathlib/Combinatorics/SimpleGraph/Coloring.lean,Mathlib/Combinatorics/SimpleGraph/Partition.lean |
2 |
1 |
['github-actions'] |
nobody |
5-39586 5 days ago |
37-43088 37 days ago |
12-38825 12 days |
| 34099 |
mcdoll author:mcdoll |
feat(Analysis/Distribution): Fourier multiplier |
We define Fourier multiplier with temperate growth functions acting on Schwartz functions as well as tempered distributions.
We prove that the directional derivative and the Laplacian can be represented as Fourier multiplier.
---
- [x] depends on: #34100
- [x] depends on: #34285
- [x] depends on: #34294
[](https://gitpod.io/from-referrer/)
|
t-analysis |
217/0 |
Mathlib.lean,Mathlib/Analysis/Distribution/FourierMultiplier.lean |
2 |
4 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
ADedecker assignee:ADedecker |
5-35797 5 days ago |
9-13823 9 days ago |
10-16281 10 days |
| 34674 |
Citronhat author:Citronhat |
feat(Algebra/Order/Ring): replace ENNReal lemmas with WithTop versions |
* Add `WithTop` versions of basic multiplicative order lemmas.
* Use the new `WithTop` lemmas to replace `ENNReal` proofs and address six TODOs.
* Fix a typo in the `pos_of_ne_zero` alias name. |
new-contributor
t-algebra
label:t-algebra$ |
46/15 |
Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean,Mathlib/Algebra/Order/Ring/WithTop.lean,Mathlib/Data/ENNReal/Operations.lean |
3 |
4 |
['Citronhat', 'Ruben-VandeVelde', 'github-actions'] |
dagurtomas assignee:dagurtomas |
5-35793 5 days ago |
9-7320 9 days ago |
10-79194 10 days |
| 34757 |
Hagb author:Hagb |
feat(Algebra/MvPolynomial/Rename): some lemmas about `rename` and `killCompl` |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
66/1 |
Mathlib/Algebra/MvPolynomial/Rename.lean |
1 |
1 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
5-35783 5 days ago |
9-14677 9 days ago |
9-14359 9 days |
| 34760 |
astrainfinita author:astrainfinita |
chore: use `RelHomClass` in `IsChain.image` |
---
[](https://gitpod.io/from-referrer/)
|
t-order |
22/23 |
Counterexamples/AharoniKorman.lean,Mathlib/Order/Height.lean,Mathlib/Order/Preorder/Chain.lean |
3 |
1 |
['github-actions'] |
Vierkantor assignee:Vierkantor |
5-35781 5 days ago |
9-8422 9 days ago |
9-8104 9 days |
| 34785 |
bwangpj author:bwangpj |
feat: closed subgroup of profinite group is intersection of open subgroups containing it |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
37/4 |
Mathlib/Topology/Algebra/ClopenNhdofOne.lean |
1 |
1 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
5-35778 5 days ago |
8-62311 8 days ago |
8-61993 8 days |
| 34788 |
justus-springer author:justus-springer |
feat(Algebra/Polynomial/AlgebraMap): add Polynomial.aeval_eq_aeval_map |
This lemma is a special case of `Polynomial.map_aeval_eq_aeval_map` when `U = T` and `ψ` the identity.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
6/0 |
Mathlib/Algebra/Polynomial/AlgebraMap.lean |
1 |
2 |
['github-actions'] |
eric-wieser assignee:eric-wieser |
5-35777 5 days ago |
8-60271 8 days ago |
8-59953 8 days |
| 32455 |
vihdzp author:vihdzp |
feat: order topologies of successor orders |
---
Co-authored by @j-loreaux
[](https://gitpod.io/from-referrer/)
|
t-topology
t-order
maintainer-merge
|
126/43 |
Mathlib.lean,Mathlib/Order/Cover.lean,Mathlib/SetTheory/Ordinal/Topology.lean,Mathlib/Topology/Order/SuccPred.lean |
4 |
6 |
['dagurtomas', 'github-actions', 'mathlib-merge-conflicts', 'plp127', 'vihdzp'] |
pechersky assignee:pechersky |
5-32707 5 days ago |
5-30078 5 days ago |
69-11821 69 days |
| 28682 |
Thmoas-Guan author:Thmoas-Guan |
feat(RingTheory): definition of regular local ring |
In this PR, we give the definition of regular local ring.
The class `IsRegularLocalRing` is defined as `(maximalIdeal R).spanFinrank = ringKrullDim R`
We also established the lemma `IsRegularLocalRing.iff_finrank_cotangentSpace` proving this definition is equivalent to the cotangent space version.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
133/0 |
Mathlib.lean,Mathlib/LinearAlgebra/Span/Basic.lean,Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean,Mathlib/RingTheory/RegularLocalRing/Defs.lean |
5 |
51 |
['Thmoas-Guan', 'chrisflav', 'github-actions', 'mathlib4-merge-conflict-bot', 'mbkybky'] |
chrisflav assignee:chrisflav |
5-685 5 days ago |
4-84902 4 days ago |
14-73693 14 days |
| 32058 |
Thmoas-Guan author:Thmoas-Guan |
feat(Algebra): category version Baer criterion |
In this PR, we added the cateory version of Baer criterion stating that `M` is injective iff `Ext^1(R/I, M)` vanish for all ideal I.
---
- [ ] depends on: #32316
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-category-theory
label:t-algebra$ |
133/0 |
Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Baer.lean |
2 |
5 |
['github-actions', 'joelriou', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
dagurtomas assignee:dagurtomas |
4-81486 4 days ago |
4-81486 4 days ago |
4-81168 4 days |
| 32245 |
erdOne author:erdOne |
feat(RingTheory): the `coassoc_simps` simp set |
From Toric
Co-authored-by: Yaël Dillies
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
toric
t-meta
|
815/0 |
Mathlib.lean,Mathlib/RingTheory/Coalgebra/CoassocSimps.lean,Mathlib/Tactic/Attr/Register.lean,MathlibTest/RingTheory/CoassocSimps.lean |
4 |
3 |
['erdOne', 'github-actions', 'riccardobrasca'] |
mattrobball assignee:mattrobball |
4-78068 4 days ago |
11-3020 11 days ago |
11-2702 11 days |
| 33403 |
xroblot author:xroblot |
feat(GroupTheory/FiniteAbelian): prove that the restriction map is surjective |
Let `G` be a finite commutative group and let `H` be a subgroup. If `M` is a commutative monoid
such that `G →* Mˣ` and `H →* Mˣ` are both finite (this is the case for example if `M` is a
commutative domain), then any homomorphism `H →* Mˣ` can be extended to an homomorphism `G →* Mˣ`.
---
[](https://gitpod.io/from-referrer/)
|
t-group-theory |
98/13 |
Mathlib/Algebra/Group/Submonoid/Operations.lean,Mathlib/GroupTheory/Exponent.lean,Mathlib/GroupTheory/FiniteAbelian/Duality.lean,Mathlib/GroupTheory/QuotientGroup/Basic.lean,Mathlib/NumberTheory/MulChar/Duality.lean,Mathlib/RingTheory/RootsOfUnity/Basic.lean |
6 |
9 |
['Ruben-VandeVelde', 'github-actions', 'robin-carlier', 'xroblot'] |
urkud assignee:urkud |
4-76858 4 days ago |
4-74907 4 days ago |
42-48802 42 days |
| 17129 |
joneugster author:joneugster |
feat(Tactic/Linter): add unicode linter for unicode variant-selectors |
- add an addition to the unicode linter ensuring variant-selector only appear on specified characters and also ensuring these characters always have the correct variant selector to avoid confusions.
- fix a bug from #34022 which broke autofixing
- some smaller refactors
- add `String.printCodepointHex` analog to the existing `printCodepointHex` which has been renamed to `Char.printCodepointHex`
- pass the next char to `findBadUnicodeAux` to make it easier to consider a pair of consecutive characters
- add some `ToString` instances to the test file to help debugging. (I really needed them badly...)
- automatic fixes flagged by this linter
Unicode characters can be followed by one of the two "variant-selectors" `\FE0E` (text) or `\FE0F` (emoji).
These appear to the user as a single unicode character and they might copy them by accident. For example `✝️` (`\u271d\uFE0F`), `✝` (`\u271d`) and `✝︎` (`\u271d\uFE0E`) are three variants of the "same" unicode character. The one without variant-selector might display as either emoji or not, depending on the user's device and font.
(e.g. for me it is an emoji while editing this message, but a text when previewing)
Everything flagged by this linter can be fixed fully automatically with `lake exe lint-style --fix` or by commenting `bot fix style` on the PR.
---
- tracking PR: #16215
## Testing:
First, drop the last commit from this PR (which includes only the autofixed style issues)
Then call `lake exe lint-style`. You should see 13 new style errors.
Next, add the following line to `nolints-style.txt`:
```
Mathlib/GroupTheory/GroupExtension/Defs.lean : line 26 : ERR_UNICODE_VARIANT : Unexpected unicode variant selector: "↗︎" (U+2197;U+fe0e). Consider deleting it.
```
now `lake exe lint-style` should only display 9 style errors. These can be applied with `lake exe lint-style --fix`.
Next, remove the changes from `nolints-style.txt`. You should then see another 2 errors which can be fixed again.
## Zulip discussions:
- https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Whitelist.20for.20Unicode.3F
- https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Lean.20specific.20font
## Related PRs:
- leanprover/lean4#5015 added some emoji-variant selectors to Emojis used in `Lean` itself.
[](https://gitpod.io/from-referrer/)
|
t-linter |
288/56 |
Mathlib/GroupTheory/GroupExtension/Defs.lean,Mathlib/Tactic/Hint.lean,Mathlib/Tactic/Linter/TextBased.lean,Mathlib/Tactic/Linter/TextBased/UnicodeLinter.lean,Mathlib/Tactic/Widget/Calc.lean,Mathlib/Tactic/Widget/CongrM.lean,Mathlib/Tactic/Widget/Conv.lean,Mathlib/Tactic/Widget/GCongr.lean,MathlibTest/LintStyle.lean,MathlibTest/hint.lean,MathlibTest/hintAll.lean |
11 |
32 |
['YaelDillies', 'adomani', 'adomasbaliuka', 'github-actions', 'grunweg', 'joneugster', 'kim-em', 'leanprover-community-bot-assistant'] |
grunweg assignee:grunweg |
4-73632 4 days ago |
unknown |
unknown |
| 34730 |
xroblot author:xroblot |
feat(RingTheory/Ideal): isomorphism between `stabilizer G Q / inertia G Q` and the Galois group of the residue fields extension |
Construct the isomorphism
```lean4
MulAction.stabilizer G Q ⧸ (Q.inertia G).subgroupOf (MulAction.stabilizer G Q) ≃* Gal((B ⧸ Q)/(A ⧸ P))
```
where `Q` is a prime ideal of `B` above the ideal `P` of `A`.
Also included
- add the following abbreviation to make it easier to refer to the inertia group of an ideal
```lean4
abbrev Ideal.inertia (I : Ideal B) : Subgroup G := AddSubgroup.inertia I.toAddSubgroup G
```
- golf the proofs of `ncard_primesOver_mul_card_inertia_mul_finrank`
- add
```lean4
lemma card_stabilizer_eq :
Nat.card (MulAction.stabilizer G P) = p.ramificationIdxIn S * p.inertiaDegIn S
```
---
- [x] depends on: #34772
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
62/31 |
Mathlib/NumberTheory/RamificationInertia/Galois.lean,Mathlib/RingTheory/Frobenius.lean,Mathlib/RingTheory/Ideal/Defs.lean,Mathlib/RingTheory/Ideal/Over.lean,Mathlib/RingTheory/Ideal/Pointwise.lean,Mathlib/RingTheory/Invariant/Basic.lean,Mathlib/RingTheory/Polynomial/Morse.lean |
7 |
17 |
['AntoineChambert-Loir', 'github-actions', 'mathlib-dependent-issues', 'tb65536', 'xroblot'] |
riccardobrasca assignee:riccardobrasca |
4-70195 4 days ago |
4-70262 4 days ago |
3-59766 3 days |
| 34622 |
vihdzp author:vihdzp |
feat: Nat/Int casts on char two rings |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
49/7 |
Mathlib/Algebra/CharP/Two.lean,Mathlib/Data/Set/Insert.lean |
2 |
10 |
['erdOne', 'eric-wieser', 'github-actions', 'vihdzp'] |
erdOne assignee:erdOne |
4-64163 4 days ago |
4-62765 4 days ago |
12-13212 12 days |
| 21838 |
joneugster author:joneugster |
feat(Cache): Allow arguments of the form `Mathlib.Data.+` which correspond to a folder but not a file |
Extend `lake exe cache get` to get cache for all files inside a specified folder, as well as the dependencies of these files.
his can be used as `lake exe cache get Mathlib/Data/` or `lake exe cache get Mathlib.Data.+`. There is also the syntax `lake exe cache get Mathlib.Data.*` which means either file or folder.
---
- [x] depends on: #21834
[](https://gitpod.io/from-referrer/)
|
CI
t-meta
|
59/24 |
Cache/IO.lean,Cache/Main.lean |
2 |
17 |
['eric-wieser', 'github-actions', 'joneugster', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mergify'] |
eric-wieser assignee:eric-wieser |
4-62211 4 days ago |
4-84755 4 days ago |
11-47642 11 days |
| 34755 |
Hagb author:Hagb |
feat(Logic/Basic): `a ∧ (a → b) ↔ a ∧ b` and `(a → b) ∧ a ↔ b ∧ a` |
It can be used to prove goal like `a ∧ b` where `h : a` can help
prove `b`.
---
[](https://gitpod.io/from-referrer/)
|
t-logic |
9/1 |
Mathlib/Combinatorics/Matroid/Closure.lean,Mathlib/Logic/Basic.lean |
2 |
5 |
['Hagb', 'github-actions', 'joneugster', 'leanprover-radar'] |
dagurtomas assignee:dagurtomas |
4-61984 4 days ago |
9-13280 9 days ago |
9-12962 9 days |
| 34954 |
brianrabern author:brianrabern |
feat(Combinatorics/SimpleGraph/Acyclic): add colorable and chromaticN… |
…umber bridges for acyclic and tree graphs
Add thin bridge lemmas expressing that acyclic graphs (forests) and trees
are 2-colorable, and that their chromatic number is at most 2, directly
in terms of `Colorable` and `chromaticNumber`.
The existing `IsAcyclic.isBipartite` already proves this via the
definitional equality `IsBipartite = Colorable 2`, but these bridges
improve discoverability for users who reason about `Colorable` or
`chromaticNumber` without passing through `IsBipartite`.
This is a first step toward building out the graph coloring API.
New declarations:
- `IsAcyclic.colorable_two`
- `IsTree.colorable_two`
- `IsAcyclic.chromaticNumber_le_two`
- `IsTree.chromaticNumber_le_two`
All are one-line proofs reusing existing results; no new imports needed.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
16/0 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean |
1 |
1 |
['github-actions'] |
nobody |
4-59679 4 days ago |
unknown |
unknown |
| 34598 |
A-M-Berns author:A-M-Berns |
feat(Geometry/Polygon): nondegeneracy conditions and interconversion with Affine.Triangle |
This PR implements suggestions provided in [this comment](https://github.com/leanprover-community/mathlib4/pull/34393#issuecomment-3810047384) by @jsm28: interconversion between `Polygon P 3` and `Affine.Triangle` as well as the nondegeneracy conditions `NondegenerateVertices` and `NondegenerateEdges`. I tried to keep typeclass restrictions as minimal as possible.
---
|
new-contributor
t-euclidean-geometry
maintainer-merge
|
114/5 |
Mathlib/Geometry/Polygon/Basic.lean |
1 |
17 |
['A-M-Berns', 'github-actions', 'jcommelin', 'jsm28'] |
jsm28 assignee:jsm28 |
4-47908 4 days ago |
4-47223 4 days ago |
11-73913 11 days |
| 34702 |
pfaffelh author:pfaffelh |
feat(Data/FinsetPowerset): The set `{v : List.Vector Bool n | v.val.count = k}` has cardinality `n.choose k` |
Show that `{v : List.Vector Bool n | v.val.count = k}` has cardinality `n.choose k`.
The proof builds on `powersetCard k s` (the subsets of `s : Finset _` with cardinality `k`), and an equivalence to the above set.
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-data
|
52/1 |
Mathlib/Data/Finset/Powerset.lean,Mathlib/Data/Fintype/Pi.lean,Mathlib/Logic/Equiv/Fintype.lean |
3 |
25 |
['DavidLedvinka', 'b-mehta', 'eric-wieser', 'github-actions', 'joneugster', 'pfaffelh'] |
nobody |
4-41499 4 days ago |
4-38744 4 days ago |
9-30708 9 days |
| 33348 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(LinearAlgebra/Transvection): characterization of transvections among dilatransvections |
WIP.
* `LinearEquiv.fixedReduce`. Pass a linear equivalence to the quotient by a fixed subspace.
* Characterize transvections among dilatransvections by the fact that their reduction is the identity.
---
- [x] depends on: #33347
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
279/3 |
Mathlib/LinearAlgebra/Transvection.lean |
1 |
6 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
dagurtomas assignee:dagurtomas |
4-35309 4 days ago |
7-54264 7 days ago |
7-70835 7 days |
| 33985 |
YellPika author:YellPika |
feat(Order/OmegaCompletePartialOrder): `OmegaCompletePartialOrder` instance for `Sum` with basic `ωScottContinuous` lemmas |
This PR adds an `OmegaCompletePartialOrder` instance for `Sum`, along with `ωScottContinuous` lemmas for basic operations (`inl`, `inr`, `elim`). Appropriate lemmas are marked with `@[fun_prop]` so that the `fun_prop` tactic can automatically deduce `ωScottContinuous` proofs for functions involving `Sum`s (e.g. see the proof of `Sum.ωScottContinuous_map`).
---
- [x] depends on: #33941
[](https://gitpod.io/from-referrer/)
|
new-contributor
large-import
t-order
|
183/1 |
Mathlib/Data/Sum/Basic.lean,Mathlib/Data/Sum/Order.lean,Mathlib/Order/OmegaCompletePartialOrder.lean,Mathlib/Order/ScottContinuity.lean |
4 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
Vierkantor assignee:Vierkantor |
4-35308 4 days ago |
8-21397 8 days ago |
8-41515 8 days |
| 34054 |
YellPika author:YellPika |
feat(Order/OmegaCompletePartialOrder): OmegaCompletePartialOrder instance for `Sigma` with basic `ωScottContinuous` lemmas |
This PR adds an `OmegaCompletePartialOrder` instance for `Sigma` along with `ωScottContinuous` lemmas for basic operations (`mk`, `fst`, `snd`). Appropriate lemmas are marked with `@[fun_prop]` so that the `fun_prop` tactic can automatically deduce `ωScottContinuous` proofs for functions involving `Sigma`s.
---
- [x] depends on: #33941
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-order
please-merge-master
|
168/0 |
Mathlib/Data/Sigma/Order.lean,Mathlib/Order/OmegaCompletePartialOrder.lean |
2 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
Vierkantor assignee:Vierkantor |
4-35307 4 days ago |
8-22603 8 days ago |
8-22285 8 days |
| 34770 |
CoolRmal author:CoolRmal |
feat: generalize Submartingale.expected_stoppedValue_mono to processes taking values in an ordered module |
I generalize the Submartingale.expected_stoppedValue_mono to processes taking values in a normed ordered module with a ClosedIciTopology. I think this generalization is meaningful because there are many nontrivial examples satisfying these hypothesis. e.g. ℝⁿ equipped with product ordering, Lp spaces.
I also replaced the finiteness of measure in several theorems by the assumption that the the filtration is sigma finite.
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
brownian
|
10/8 |
Mathlib/Probability/Martingale/OptionalStopping.lean |
1 |
4 |
['CoolRmal', 'github-actions'] |
EtienneC30 assignee:EtienneC30 |
4-35304 4 days ago |
7-54937 7 days ago |
8-315 8 days |
| 34792 |
fpvandoorn author:fpvandoorn |
feat: review lemmas about tendsto and group operations |
* Add `Filter.tendsto_mul_const_iff`, `Filter.tendsto_const_mul_iff` and `Filter.tendsto_div_const_iff'`.
* prime `Filter.tendsto_const_div_iff` (since it's about `Group` not `GroupWithZero`
* Generalize a few results to nonabelian groups. In `Filter.tendsto_const_div_iff` this required changing `ContinuousDiv` to `IsTopologicalGroup` (which is actually equivalent for groups).
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
36/22 |
Mathlib/Topology/Algebra/Group/Basic.lean |
1 |
1 |
['github-actions'] |
ocfnash assignee:ocfnash |
4-35303 4 days ago |
7-74154 7 days ago |
7-73836 7 days |
| 33257 |
NickAdfor author:NickAdfor |
feat(Combinatorics/SimpleGraph/Bipartite): Odd Cycle Theorem (A Solution to TODO) |
Prove bipartite iff all cycles are even
This PR formalizes the classical graph theory theorem: a graph is bipartite if and only if all its cycles have even length.
Co-authored-by: Nick Adfor
Co-authored-by: Yue Sun
Co-authored-by: Aristotle AI
---
## Main results
- `SimpleGraph.bipartite_iff_all_cycles_even` : the main equivalence theorem
## Key supporting lemmas
- `SimpleGraph.even_length_iff_same_color` : parity lemma for 2-colorings
- `SimpleGraph.even_length_iff_even_bypass_length` : bypass length parity
- `SimpleGraph.even_cycle_length_of_path` : cycle construction lemma
- `SimpleGraph.bypass_eq_nil_of_closed` : closed path properties
## Proof outline
1. For bipartite graphs: use the 2-coloring to show that in a 2-coloring, a walk has even length iff its endpoints have the same color.
2. For cycles (start = end), this forces even length.
3. For the converse: if all cycles are even, construct a 2-coloring using the `two_colorable_iff_forall_loop_even` characterization.
4. Show this coloring is valid using bypass operations and path properties.
## Technical notes
- Uses `SimpleGraph.Walk` for path/cycle representation
- Handles both `IsPath` and `IsCycle` predicates
- Uses bypass operations (`takeUntil`, `dropUntil`, `bypass`) to analyze walks
- Requires `DecidableEq V` for some lemmas
- Uses classical logic for case analysis
## Reviewer notes
- The proof uses induction on walks and case analysis on colorings
- Some lemmas (like `even_length_iff_same_color`) could be extracted to more general locations
- All theorems are in the `SimpleGraph` namespace
- The `bipartite_iff_all_cycles_even` theorem provides the complete characterization |
t-combinatorics
new-contributor
|
164/8 |
Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean |
2 |
70 |
['IvanRenison', 'NickAdfor', 'Rida-Hamadani', 'SnirBroshi', 'github-actions', 'kmill', 'mitchell-horner', 'vihdzp', 'vlad902'] |
nobody |
4-33882 4 days ago |
4-34290 4 days ago |
12-34771 12 days |
| 33668 |
Citronhat author:Citronhat |
feat(PMF): add lintegral formulas for PMF |
This PR introduces two lemmas describing the `lintegral` of a function with respect to the measure induced by a probability mass function:
- `PMF.lintegral_eq_tsum`
- `PMF.lintegral_eq_sum`
These are the `ℝ≥0∞` analogues of the existing Bochner `integral` formulas `integral_eq_tsum` and `integral_eq_sum`. They could be useful for reasoning about expectations and integrability.
In addition, the proof of `integral_eq_sum` is simplified by deriving it directly from `integral_eq_tsum` using `tsum_fintype`. |
t-measure-probability
new-contributor
|
14/5 |
Mathlib/Probability/ProbabilityMassFunction/Integrals.lean |
1 |
2 |
['DavidLedvinka', 'github-actions'] |
kex-y assignee:kex-y |
4-33770 4 days ago |
36-40042 36 days ago |
36-71402 36 days |
| 33249 |
Rida-Hamadani author:Rida-Hamadani |
feat(SimpleGraph): `take` is path if original walk is path |
Proves that taking or dropping the first `n` consecution darts from a path gives another path.
---
- [x] depends on: #26614
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
32/0 |
Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Data/List/Infix.lean |
2 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] |
nobody |
4-32031 4 days ago |
4-58651 4 days ago |
4-58333 4 days |
| 33688 |
Citronhat author:Citronhat |
feat(PMF): add expectation lemmas for Poisson PMF |
This PR adds some basic results about the Poisson distribution, its `PMF`, and its expectation.
**New lemmas:**
* `poissonPMF_apply` — an unfolding lemma for `poissonPMF`.
* `poissonPMFReal_mul_eq_succ_mul` — the standard recursion identity for the Poisson mass function.
* `poissonPMFReal_hasSum_nmul` — shows that `fun n ↦ poissonPMFReal r n * n` has sum `r`.
* `poissonPMF_tsum_nmul` — the corresponding identity at the level of the `PMF`.
* `poissonPMF_coe_tsum_nmul` — the same result after coercion to `ℝ`.
Both `ℝ`-valued and `ℝ≥0∞`-valued formulations are included so that these results can be used conveniently in both Lebesgue and Bochner integration contexts. |
new-contributor
t-measure-probability
|
21/0 |
Mathlib/Probability/Distributions/Poisson.lean |
1 |
6 |
['Citronhat', 'DavidLedvinka', 'github-actions'] |
urkud assignee:urkud |
4-32014 4 days ago |
35-46047 35 days ago |
36-41218 36 days |
| 34699 |
tb65536 author:tb65536 |
feat(RingTheory/Lasker): prove first uniqueness theorem for primary decomposition |
This PR proves the first uniqueness theorem for primary decomposition: In any minimal primary decomposition `I = ⨅ i, q_i`, the ideals `√(q_i : M)` are exactly the associated primes of `I`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
38/6 |
Mathlib/RingTheory/IsPrimary.lean,Mathlib/RingTheory/Lasker.lean |
2 |
7 |
['erdOne', 'github-actions', 'tb65536'] |
mariainesdff assignee:mariainesdff |
3-41711 3 days ago |
3-40667 3 days ago |
10-42655 10 days |
| 34093 |
YellPika author:YellPika |
feat(Order/OmegaCompletePartialOrder): add `OmegaCompletePartialOrder` instance for `Option` with basic `ωScottContinuous` lemmas |
---
- [x] depends on: #33941
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
|
297/0 |
Mathlib.lean,Mathlib/Data/Option/Order.lean,Mathlib/Order/Monotone/Basic.lean,Mathlib/Order/OmegaCompletePartialOrder.lean |
4 |
5 |
['YellPika', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
pechersky assignee:pechersky |
3-35789 3 days ago |
8-17158 8 days ago |
8-16840 8 days |
| 34143 |
Parcly-Taxel author:Parcly-Taxel |
chore: make Dyck word definitions public |
* `equivTreeToFun` -> `toTree`
* `equivTreeInvFun` -> `ofTree`
Also remove the two `unusedHavesSuffices` nolints from a time when the linter was not as discerning. |
t-combinatorics
tech debt
maintainer-merge
|
29/51 |
Mathlib/Combinatorics/Enumerative/DyckWord.lean |
1 |
12 |
['Komyyy', 'Parcly-Taxel', 'Vierkantor', 'github-actions', 'vihdzp'] |
jcommelin assignee:jcommelin |
3-35788 3 days ago |
9-6931 9 days ago |
23-67709 23 days |
| 34266 |
gasparattila author:gasparattila |
feat(Topology/Sets): basis of `(Nonempty)Compacts` |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
147/0 |
Mathlib/Topology/Bases.lean,Mathlib/Topology/Sets/VietorisTopology.lean |
2 |
2 |
['github-actions', 'mathlib4-merge-conflict-bot'] |
PatrickMassot assignee:PatrickMassot |
3-35787 3 days ago |
14-79590 14 days ago |
20-52737 20 days |
| 34435 |
huaizhangchu author:huaizhangchu |
feat(Probability): convolution of Poisson distributions |
This PR proves that the convolution of two Poisson distributions is again a Poisson distribution:
`Poisson(r₁) ∗ Poisson(r₂) = Poisson(r₁ + r₂)`
## Main results
- `poissonMeasureReal_charFun`: characteristic function of Poisson distribution is `exp(r(exp(it) - 1))`
- `poissonMeasureReal_conv_poissonMeasureReal`: convolution of Poisson distributions on ℝ
- `poissonMeasure_conv_poissonMeasure`: convolution of Poisson distributions on ℕ
- `poissonMeasure_add_poissonMeasure_of_indepFun`: sum of independent Poisson random variables
## Proof strategy
Uses characteristic functions: `φ(t) = exp(r(eⁱᵗ - 1))`, then pulls back from ℝ to ℕ. |
t-measure-probability
large-import
new-contributor
|
110/1 |
Mathlib/Probability/Distributions/Poisson.lean |
1 |
14 |
['CoolRmal', 'DavidLedvinka', 'github-actions', 'huaizhangchu'] |
RemyDegenne assignee:RemyDegenne |
3-35784 3 days ago |
6-85990 6 days ago |
8-27527 8 days |
| 34559 |
sgouezel author:sgouezel |
feat: bounded variation functions have left and right limits, and limits at infinity |
Needed for #34055.
---
Everything in the PR is on the same topic, which is why I have kept it as a single PR. I can split it into two parts if it's too long, though, just tell me!
[](https://gitpod.io/from-referrer/)
|
t-topology |
475/13 |
Mathlib/Topology/EMetricSpace/BoundedVariation.lean |
1 |
13 |
['AntoineChambert-Loir', 'botbaki-review', 'github-actions', 'jsm28', 'sgouezel'] |
dagurtomas assignee:dagurtomas |
3-35783 3 days ago |
7-7407 7 days ago |
14-4712 14 days |
| 34676 |
joneugster author:joneugster |
chore(Algebra/CharP/MixedCharZero): update file to make use to the module system |
- mark all declarations in the file as `private` or `public`
- remove `@[exposed] public section`
- reduce `public` imports
- fix some wording and drop a random `example` which shouldn't be there
---
I've used this file to better understand the module system and its future implications for mathlib. The file is IMO ideal since it's an old toy example of mine which is a leaf that isn't imported in mathlib anywhere else (yet).
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
35/31 |
Mathlib/Algebra/CharP/MixedCharZero.lean |
1 |
2 |
['github-actions', 'vihdzp'] |
eric-wieser assignee:eric-wieser |
3-35780 3 days ago |
11-517 11 days ago |
11-199 11 days |
| 34784 |
tb65536 author:tb65536 |
refactor(GroupTheory/Commutator/Basic): to_additivize commutators |
This PR makes some progress on to_additivizing more of the group theory library.
I had to make the bracket instance scoped to avoid clashing with the Lie bracket.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-group-theory
label:t-algebra$ |
167/30 |
Mathlib/Algebra/Group/Commutator.lean,Mathlib/Algebra/Group/Conj.lean,Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/GroupTheory/Commutator/Basic.lean,Mathlib/GroupTheory/GroupAction/Quotient.lean,Mathlib/GroupTheory/GroupAction/SubMulAction/OfStabilizer.lean,Mathlib/GroupTheory/Solvable.lean,Mathlib/Tactic/Translate/ToAdditive.lean,Mathlib/Topology/Algebra/Group/TopologicalAbelianization.lean,MathlibTest/Group.lean,MathlibTest/toAdditiveIrredDef.lean |
11 |
1 |
['github-actions'] |
mattrobball assignee:mattrobball |
3-35779 3 days ago |
8-51087 8 days ago |
8-50769 8 days |
| 34856 |
jano-wol author:jano-wol |
feat: Killing orthogonal complement is complement |
Killing orthogonal complement is complement
---
If a Lie algebra has non-singular Killing form then for all ideals, an ideal and its Killing orthogonal complement are complements.
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
29/0 |
Mathlib/Algebra/Lie/Killing.lean |
1 |
1 |
['github-actions'] |
kim-em assignee:kim-em |
3-35777 3 days ago |
7-11092 7 days ago |
7-37653 7 days |
| 34859 |
wwylele author:wwylele |
feat(MeasureTheory): WithLp 2 (U × V) → U × V is measure preserving |
Intermediate lemmas towards #34826, and analogue to three existing lemma in the same file:
```
theorem EuclideanSpace.volume_preserving_symm_measurableEquiv_toLp :
MeasurePreserving (MeasurableEquiv.toLp 2 (ι → ℝ)).symm := by
theorem PiLp.volume_preserving_ofLp : MeasurePreserving (@ofLp 2 (ι → ℝ)) :=
theorem PiLp.volume_preserving_toLp : MeasurePreserving (@toLp 2 (ι → ℝ)) :=
```
---
I am not very good at working with measure theory directly, so this implementation just reduces the problem to known lemmas, but it is pretty cumbersome. Golfing is welcome!
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
58/0 |
Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean |
1 |
6 |
['b-mehta', 'copilot-pull-request-reviewer', 'eric-wieser', 'github-actions', 'wwylele'] |
RemyDegenne assignee:RemyDegenne |
3-35776 3 days ago |
7-33147 7 days ago |
7-32829 7 days |
| 34894 |
felixpernegger author:felixpernegger |
feat(Topology/Separation): add weakly first countable spaces |
(from Formal conjectures: https://github.com/google-deepmind/formal-conjectures/pull/1860)
Weakly first countable spaces are first were defined as Definition 2.3 [here](https://zbmath.org/0171.43603) and are used in many papers (sometimes called g-first countable).
Some implications that are true but not included in this PR:
- Weakly first countable => Sequential
- [Symmetrizable](https://topology.pi-base.org/properties/P000104) => Weakly first countable
- Weakly first countable + Frechet Urysohn => First countable
Also not this property is not hereditary to subspaces |
t-topology |
32/0 |
Mathlib/Topology/Bases.lean |
1 |
1 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
3-35773 3 days ago |
6-41586 6 days ago |
6-41268 6 days |
| 34637 |
mcdoll author:mcdoll |
feat(Analysis/Distribution): support |
We define the support of distributions. The definition applies to both tempered and classical distributions, but for this PR we only prove some elementary statements for tempered distributions.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
322/0 |
Mathlib.lean,Mathlib/Analysis/Distribution/Support.lean |
2 |
1 |
['github-actions'] |
ADedecker assignee:ADedecker |
3-32498 3 days ago |
3-31852 3 days ago |
11-86053 11 days |
| 34870 |
JovanGerb author:JovanGerb |
refactor(gcongr): split `MVarId.gcongr` into multiple functions |
This PR splits `MVarId.gcongr` into multiple functions. Previously, `MVarId.gcongr` was a bit too large of a function for readability/maintainability. We also add a new monad `GCongrM` in order to keep track of the state more conveniently.
This change will make future improvements in `gcongr` easier. This PR doesn't change any behaviour, but does add two TODO comments.
Implementation notes:
- `MVarId.gcongrCore` will now always throw an exception when it doesn't succeed, and it is wrapped in a try-catch block to catch these if that is desired.
- I replaced `saveState` with `getMCtx`, because the former didn't work in the `GCongrM` monad, and the only thing we are interested in saving/reverting is the metavariable context anyways.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
135/98 |
Mathlib/Tactic/GCongr/Core.lean,Mathlib/Tactic/GRewrite/Core.lean |
2 |
1 |
['github-actions'] |
nobody |
3-26246 3 days ago |
3-22565 3 days ago |
4-54078 4 days |
| 34969 |
kim-em author:kim-em |
feat(RingTheory/HopfAlgebra): prove antipode is antihomomorphism |
This PR proves that the antipode of a Hopf algebra is an antihomomorphism:
`antipode (a * b) = antipode b * antipode a`.
The proof uses the convolution algebra structure on `(A ⊗ A) →ₗ[R] A` and shows that `S ∘ μ` and `μ ∘ (S ⊗ S) ∘ comm` are both convolution inverses of `μ`, hence they must be equal by uniqueness of inverses.
This resolves a TODO listed in the file header.
🤖 Prepared with Claude Code |
t-ring-theory |
88/2 |
Mathlib/RingTheory/HopfAlgebra/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
3-26019 3 days ago |
3-25906 3 days ago |
3-25588 3 days |
| 34998 |
bwangpj author:bwangpj |
feat(LinearAlgebra/BilinearForm): remove `BilinForm.IsRefl` hypothesis in some theorems |
Strengthen some theorems in `LinearAlgebra.BilinearForm.Orthogonal` by removing their `BilinForm.IsRefl` hypothesis; they are true verbatim without it.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
24/21 |
Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean |
1 |
1 |
['github-actions'] |
nobody |
3-24250 3 days ago |
3-23537 3 days ago |
3-40305 3 days |
| 34267 |
Brian-Nugent author:Brian-Nugent |
feat(Topology/Algebra): Add API for Sheaves of abelian groups |
in preparation for proving results on sheaf cohomology.
---
[](https://gitpod.io/from-referrer/)
|
t-topology
new-contributor
|
108/1 |
Mathlib.lean,Mathlib/Algebra/Category/Grp/AB.lean,Mathlib/CategoryTheory/Abelian/GrothendieckAxioms/Sheaf.lean,Mathlib/Topology/Sheaves/AddCommGrpCat.lean |
4 |
19 |
['Brian-Nugent', 'dagurtomas', 'github-actions'] |
dagurtomas assignee:dagurtomas |
3-17709 3 days ago |
3-16871 3 days ago |
16-59146 16 days |
| 34516 |
jcommelin author:jcommelin |
feat(scripts): add auto_commit.sh and support rebase-friendly prefix |
This PR enables a rebase friendly workflow for auto-commits.
During `git rebase -i`, any lines of the form `x ` will execute ``.
So a commit of the form `x scripts/auto_commit.sh ` will create an entry of the form
```
pick 123abc x scripts/auto_commit.sh
```
By removing the prefix `pick 123abc `, the rebase will then execute `scripts/auto_commit.sh `.
The effect is that `` is run, and all changes to the worktree are committed with commit message
`x scripts/auto_commit.sh `.
Specifically, this PR does the following:
- Add scripts/auto_commit.sh: runs a command and commits with message
`x scripts/auto_commit.sh `, enabling rebase workflow
- Update verify_commits.sh to support both `x: ` and `x ` prefixes
- Update CI workflow to detect both prefix formats
Co-Authored-By: Claude Opus 4.5
---
[](https://gitpod.io/from-referrer/)
|
CI
maintainer-merge
|
127/6 |
.github/workflows/commit_verification.yml,scripts/README.md,scripts/auto_commit.sh,scripts/verify_commits.sh |
4 |
8 |
['github-actions', 'jcommelin', 'joneugster'] |
joneugster assignee:joneugster |
3-11859 3 days ago |
3-10963 3 days ago |
15-9617 15 days |
| 35013 |
CoolRmal author:CoolRmal |
feat(Topology/Bornology): a locally bounded function maps a compact set to a bounded set |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
10/0 |
Mathlib/Topology/Compactness/Compact.lean |
1 |
1 |
['github-actions'] |
nobody |
3-2135 3 days ago |
3-338 3 days ago |
3-20 3 days |
| 35014 |
RemyDegenne author:RemyDegenne |
feat: Radon-Nikodym derivative of a composition-product |
For finite measures and kernels, under an absolute continuity condition:
```
(μ ⊗ₘ κ).rnDeriv (ν ⊗ₘ η) =ᵐ[ν ⊗ₘ η] (fun p ↦ μ.rnDeriv ν p.1 * (μ ⊗ₘ κ).rnDeriv (μ ⊗ₘ η) p)
```
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
126/0 |
Mathlib.lean,Mathlib/Probability/Kernel/Composition/MeasureCompProd.lean,Mathlib/Probability/Kernel/Composition/RadonNikodym.lean |
3 |
1 |
['github-actions'] |
nobody |
3-884 3 days ago |
3-101 2 days ago |
2-86183 2 days |
| 35015 |
RemyDegenne author:RemyDegenne |
feat: `rnDeriv` as ratio of densities wrt a dominating measure |
For a dominating measure `ξ` of two sigma-finite measures `μ` and `ν`,
```
μ.rnDeriv ν =ᵐ[ν] fun x ↦ μ.rnDeriv ξ x / ν.rnDeriv ξ x
```
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
74/0 |
Mathlib/MeasureTheory/Measure/Decomposition/RadonNikodym.lean |
1 |
1 |
['github-actions'] |
nobody |
3-294 3 days ago |
2-86011 2 days ago |
2-85693 2 days |
| 34631 |
JovanGerb author:JovanGerb |
chore: add missing `namespace`s |
I noticed that there is a global definition called `slice`, which causes ambiguity with `Finset.slice`. This PR improved the `namespace`dness of some tactic files.
Really, we should have a linter against definitions in the root namespace in the `Mathlib.Tactic` and `Mathlib.Meta` folders.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
10/6 |
Mathlib/Tactic/CategoryTheory/CategoryStar.lean,Mathlib/Tactic/CategoryTheory/Elementwise.lean,Mathlib/Tactic/CategoryTheory/Slice.lean,Mathlib/Tactic/CategoryTheory/ToApp.lean |
4 |
1 |
['github-actions'] |
nobody |
3-132 3 days ago |
3-132 2 days ago |
2-86214 2 days |
| 34840 |
Vierkantor author:Vierkantor |
chore(Tactic/Convert): improve `convert` tactic family docstrings |
This PR (re)writes the docstring for the `convert`/`convert_to`/`ac_convert` tactics, to make sure they are complete without getting too long.
The existing docstring for `convert` was very detailed, which is good for e.g. a reference manual, but as a docstring it was hard to quickly find the relevance. I moved this to the module docs and wrote a new docstring that still lists the same features but in a structured order, referring to other tactics for the full picture.
---
Apologies for the unhelpful diff. I did not (intentionally) touch any lines between the module doc and the tactic docstring, but Git decides to show those lines as moved instead of the tactic doc becoming module doc.
[](https://gitpod.io/from-referrer/)
|
documentation
t-meta
|
145/80 |
Mathlib/Tactic/Convert.lean |
1 |
1 |
['github-actions'] |
nobody |
2-86380 2 days ago |
2-83071 2 days ago |
2-82753 2 days |
| 21342 |
YaelDillies author:YaelDillies |
refactor(Normed/Group/Quotient): generalise to non-abelian groups |
The goal is to apply this to free groups, whose multiplication in either argument is an isometry, but isn't commutative.
---
- [x] depends on: #21341
[](https://gitpod.io/from-referrer/)
|
t-analysis |
142/82 |
Mathlib/Analysis/Normed/Group/Quotient.lean,Mathlib/Analysis/Normed/Group/Uniform.lean,Mathlib/GroupTheory/GroupAction/Quotient.lean,Mathlib/Topology/Algebra/ConstMulAction.lean,Mathlib/Topology/Algebra/Group/Quotient.lean,Mathlib/Topology/Bornology/BoundedOperation.lean |
6 |
7 |
['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'sgouezel'] |
sgouezel assignee:sgouezel |
2-84388 2 days ago |
10-77200 10 days ago |
10-76882 10 days |
| 34255 |
tb65536 author:tb65536 |
feat(RingTheory/Ideal/MinimalPrime/Colon): minimal primes over a colon ideal |
This PR shows that a minimal prime over a colon ideal in a Noetherian ring is itself a colon ideal.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
maintainer-merge
label:t-algebra$ |
103/0 |
Mathlib.lean,Mathlib/RingTheory/Ideal/MinimalPrime/Colon.lean |
2 |
6 |
['erdOne', 'github-actions', 'tb65536'] |
mariainesdff assignee:mariainesdff |
2-81254 2 days ago |
3-41773 3 days ago |
20-20442 20 days |
| 33662 |
Pjotr5 author:Pjotr5 |
feat(Algebra/Order/BigOperators/Expect): add lemmas and strict variants |
### Summary
- Combine `le_expect_nonempty_of_subadditive` and `le_expect_of_subadditive` into a single lemma `le_expect_of_subadditive`.
The extra assumptions `(hs : s.Nonempty)` and `(h_zero : m 0 = 0)` are unnecessary (since `m 0 = 0` follows from `h_div`).
This requires a small downstream update to `Mathlib/Analysis/RCLike/Basic.lean` (`norm_expect_le`).
- Add strict-inequality variants:
`expect_lt_expect`, `expect_lt`, `lt_expect`.
- Add existence lemmas:
`exists_le_of_expect_le_expect`, `exists_le_of_le_expect`, `exists_le_of_expect_le`,
and `exists_lt_of_expect_lt_expect`.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-algebra
label:t-algebra$ |
46/16 |
Mathlib/Algebra/Order/BigOperators/Expect.lean,Mathlib/Analysis/RCLike/Basic.lean |
2 |
1 |
['github-actions'] |
thorimur assignee:thorimur |
2-80070 2 days ago |
2-78731 2 days ago |
36-85864 36 days |
| 35021 |
SnirBroshi author:SnirBroshi |
chore(Data/Bool/Count): golf using grind |
---
The goal was to get rid of the flexible-linter exception, but I ended up golfing more.
[](https://gitpod.io/from-referrer/)
|
t-data |
6/24 |
Mathlib/Data/Bool/Count.lean |
1 |
1 |
['github-actions'] |
nobody |
2-77796 2 days ago |
2-77146 2 days ago |
2-76828 2 days |
| 26973 |
peabrainiac author:peabrainiac |
feat(Geometry/Diffeology): diffeologies generated from sets of plots |
Introduces diffeologies generated from sets of plots, shows that this defines a Galois insertion, and concludes that the diffeologies on a type form a complete lattice.
---
This PR continues the work from #22724.
- [x] depends on: #26484 |
t-differential-geometry |
162/0 |
Mathlib/Geometry/Diffeology/Basic.lean |
1 |
6 |
['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'ocfnash', 'peabrainiac'] |
ocfnash assignee:ocfnash |
2-73123 2 days ago |
6-59869 6 days ago |
6-59551 6 days |
| 34249 |
xyzw12345 author:xyzw12345 |
feat(GroupTheory/GroupAction/Hom): Add `MulDistribMulActionHom` corresponding to `DistribMulActionHom` |
In this PR, we defined `MulDistribMulActionHom` corresponding to `DistribMulActionHom`, which will be used in the multiplicative version of non-Abelian group cohomology.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
174/69 |
Mathlib/Algebra/GroupWithZero/Action/Defs.lean,Mathlib/GroupTheory/GroupAction/Hom.lean |
2 |
2 |
['github-actions', 'ocfnash'] |
ocfnash assignee:ocfnash |
2-72673 2 days ago |
21-5749 21 days ago |
21-5431 21 days |
| 34069 |
artie2000 author:artie2000 |
feat(Algebra/Order/Algebra): algebra is ordered iff inclusion map is monotone |
* Prove that an extension of ordered semirings forms an ordered algebra iff the inclusion map is injective
* Reorganise section variables for clarity
The typeclass `PartialOrder α` in `IsOrderedModule.of_algebraMap_mono` can be generalised to `Preorder α`. This has no mathematical application and all the other lemmas are proved over a partially ordered type, so this generalisation was not made.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-order
label:t-algebra$ |
18/7 |
Mathlib/Algebra/Order/Algebra.lean |
1 |
1 |
['github-actions'] |
pechersky assignee:pechersky |
2-72248 2 days ago |
2-70886 2 days ago |
24-40920 24 days |
| 33944 |
artie2000 author:artie2000 |
feat(Algebra/Ring): formally real rings |
* Define formally real rings
* Prove basic inductive facts about them
Co-authored-by: Violeta Hernández Palacios
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
160/0 |
Mathlib.lean,Mathlib/Algebra/Ring/IsFormallyReal.lean |
2 |
24 |
['artie2000', 'github-actions', 'vihdzp'] |
mariainesdff assignee:mariainesdff |
2-72245 2 days ago |
2-71587 2 days ago |
9-24272 9 days |
| 34049 |
smmercuri author:smmercuri |
refactor: use 1-field structure to define the `WithVal` type synonym |
Following the Zulip threads [here](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/defeq.20abuse.20in.20.60WithLp.60/near/526234806) and [here](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/defeq.20abuse.20in.20.60WithAbs.60.2F.60WithVal.60/with/569663323) and using `WithLp` as a template, we refactor the `WithVal` type synonym as a 1-field structure. The main benefit being that it prevents defeq abuse.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
421/140 |
Mathlib/NumberTheory/NumberField/FinitePlaces.lean,Mathlib/NumberTheory/Padics/WithVal.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean,Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean,Mathlib/RingTheory/LaurentSeries.lean,Mathlib/RingTheory/Localization/Basic.lean,Mathlib/RingTheory/Localization/FractionRing.lean,Mathlib/Topology/Algebra/Valued/WithVal.lean |
8 |
9 |
['chrisflav', 'github-actions', 'leanprover-radar', 'mathlib-merge-conflicts', 'smmercuri'] |
chrisflav assignee:chrisflav |
2-70540 2 days ago |
2-69082 2 days ago |
20-52287 20 days |
| 35019 |
JovanGerb author:JovanGerb |
feat(Algebra/Homology/ComplexShape): use `to_dual` |
This PR uses `to_dual` to dualize `ComplexShape` to itself, swapping `next` to `prev` and `up` to `down`.
If we wait for #34863 to be merged first, the we can get rid of one `to_dual existing`.
---
[](https://gitpod.io/from-referrer/)
|
|
29/50 |
Mathlib/Algebra/Homology/ComplexShape.lean,Mathlib/Tactic/Translate/ToDual.lean |
2 |
1 |
['github-actions'] |
nobody |
2-66821 2 days ago |
2-63098 2 days ago |
2-62780 2 days |
| 34830 |
parabamoghv author:parabamoghv |
feat(CategoryTheory/Monoidal): add definition of categorical groups |
This PR defines of categorical groups, also known as coherent 2-groups, in mathlib.
Motivation:
Categorical groups are well-studied structures in monoidal category theory, but are not currently available in mathlib. The definitions in this PR follow the existing design patterns used for Category, MonoidalCategory, and BraidedCategory.
This PR focuses on setting up the core structure and notation. Basic lemmas and further developments will be provided in a subsequent PR.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
new-contributor
|
178/0 |
Mathlib.lean,Mathlib/CategoryTheory/Monoidal/CategoricalGroups/Basic.lean |
2 |
4 |
['github-actions', 'parabamoghv'] |
robin-carlier assignee:robin-carlier |
2-63083 2 days ago |
2-62443 2 days ago |
3-65838 3 days |
| 35038 |
joelriou author:joelriou |
feat(CategoryTheory/Limits): relation between products and wide pullbacks |
In this PR, we show that a wide pullback of arrows `objs j ⟶ B` exists when `B` is terminal and the product of the objects `obj j` exists.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
62/0 |
Mathlib.lean,Mathlib/CategoryTheory/Limits/Constructions/WidePullbackOfTerminal.lean |
2 |
1 |
['github-actions'] |
nobody |
2-61657 2 days ago |
2-61004 2 days ago |
2-60686 2 days |
| 32367 |
BoltonBailey author:BoltonBailey |
feat(Computability): add FinEncodings for List Bool and pairs of types |
This PR contains `finEncoding`s relevant to developing complexity theory in downstream libraries. It is adapted from [this](https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/Formalise.20the.20proposition.20P.20.E2.89.A0NP/near/451765788)[#maths > Formalise the proposition P ≠NP @ 💬](https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/Formalise.20the.20proposition.20P.20.E2.89.A0NP/near/451765788) comment.
Co-authored-by: Daniel Weber
---
[](https://gitpod.io/from-referrer/)
|
maintainer-merge
t-computability
|
54/21 |
Mathlib/Computability/Encoding.lean,Mathlib/Data/List/Basic.lean |
2 |
15 |
['BoltonBailey', 'MichaelStollBayreuth', 'Vierkantor', 'YaelDillies', 'github-actions'] |
Vierkantor and YaelDillies assignee:Vierkantor assignee:YaelDillies |
2-61268 2 days ago |
6-53033 6 days ago |
70-21843 70 days |
| 35041 |
b-mehta author:b-mehta |
feat(Combinatorics): prove the Rado selection lemma |
This PR should supercede #29030
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
132/0 |
Mathlib.lean,Mathlib/Combinatorics/Compactness.lean |
2 |
3 |
['b-mehta', 'github-actions'] |
nobody |
2-58411 2 days ago |
2-58819 2 days ago |
2-58501 2 days |
| 35039 |
wwylele author:wwylele |
feat(LinearAlgebra/AffineSpace): small lemmas about lineMap and homothety |
Three lemmas about their interaction with AffineSubspace, and AffineCombination. Building towards #34826
`AffineMap.homothety_mem` is mostly just restating `AffineMap.lineMap_mem`, but since they are affine map with different names, putting it here can give better discovery
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
25/0 |
Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Basic.lean,Mathlib/LinearAlgebra/AffineSpace/Combination.lean |
2 |
5 |
['copilot-pull-request-reviewer', 'github-actions'] |
nobody |
2-57388 2 days ago |
2-56545 2 days ago |
2-56227 2 days |
| 35044 |
b-mehta author:b-mehta |
feat(RingTheory/Radical): positivity extension for radical of natural |
A follow-up from #25335 which I forgot to make at the time.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
20/0 |
Mathlib/RingTheory/Radical.lean |
1 |
2 |
['b-mehta', 'github-actions'] |
nobody |
2-55600 2 days ago |
2-55457 2 days ago |
2-55139 2 days |
| 34890 |
CoolRmal author:CoolRmal |
feat(GroupTheory): each term in a upper(lower) central series is a characteristic subgroup |
The main lemma proved in this PR is `Subgroup.Characteristic.quotient`, which says that if `H` is a characteristic subgroup of `G`, and `K` is a characteristic subgroup of `G / H`, then the preimage of `K` under the projection map is a characteristic subgroup of `G`. As a corollary, I proved that each term in the upper central series is a characteristic subgroup. I deleted the instances related to normality as normality can be inferred from being characteristic.
---
[](https://gitpod.io/from-referrer/)
|
t-group-theory |
25/18 |
Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/GroupTheory/Nilpotent.lean,Mathlib/GroupTheory/QuotientGroup/Basic.lean |
3 |
14 |
['CoolRmal', 'github-actions', 'tb65536'] |
nobody |
2-52136 2 days ago |
2-49673 2 days ago |
6-13487 6 days |
| 32355 |
bjornsolheim author:bjornsolheim |
feat(Geometry/Convex/Cone): define and characterize simplicial pointed cones |
Define simplicial pointed cones.
Prove three lemmas about simplicial and generating simplicial cones.
---
[](https://gitpod.io/from-referrer/)
|
t-convex-geometry
new-contributor
|
55/0 |
Mathlib.lean,Mathlib/Geometry/Convex/Cone/Simplicial.lean |
2 |
52 |
['YaelDillies', 'artie2000', 'bjornsolheim', 'github-actions'] |
YaelDillies assignee:YaelDillies |
2-49887 2 days ago |
2-49793 2 days ago |
62-67121 62 days |
| 34777 |
sqrt-of-2 author:sqrt-of-2 |
feat(Combinatorics/SetFamily/Intersecting): Define ℓ-intersecting families and establish their basic properties |
Define ℓ-intersecting families and establish their basic properties.
A family of finsets is ℓ-intersecting if every pair of members intersects in at least ℓ elements.
From LeanCamCombi.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
60/0 |
Mathlib/Combinatorics/SetFamily/Intersecting.lean |
1 |
7 |
['YaelDillies', 'b-mehta', 'github-actions'] |
b-mehta assignee:b-mehta |
2-49493 2 days ago |
8-66672 8 days ago |
8-66354 8 days |
| 34551 |
IlPreteRosso author:IlPreteRosso |
refactor(Data.Finset.*Antidiagonal): rename defs to `set*Antidiagonal` and deprecate old names in namespace Finset |
Main file is [Prod.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Antidiag/Prod.html). Adds `Finset.HasMulAntidiagonal`, the multiplicative counterpart to `HasAntidiagonal`, linked via `@[to_additive existing]`.
Split PR (current changes):
This PR renames the set-based antidiagonal definitions to have a `set` prefix, distinguishing them from the typeclass-based API in `Prod.lean`.
**Only definitions are renamed in this PR.** Theorem/lemma renames will follow in a subsequent PR.
[MulAntidiagonal.lean](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Data/Finset/MulAntidiagonal.lean)
- `mulAntidiagonal` → `setMulAntidiagonal`
- `addAntidiagonal` → `setAddAntidiagonal` (via `@[to_additive]`)
[SMulAntidiagonal.lean](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Data/Finset/SMulAntidiagonal.lean)
- `SMulAntidiagonal` → `setSMulAntidiagonal`
- `VAddAntidiagonal` → `setVAddAntidiagonal` (via `@[to_additive]`)
Propagates to:
- `Mathlib/RingTheory/HahnSeries/Multiplication.lean`
- `Mathlib/RingTheory/HahnSeries/Summable.lean`
---
Added deprecation aliases for the renamed definitions.
[Finset/MulAntidiagonal.lean](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Data/Finset/MulAntidiagonal.lean)
```
@[to_additive (attr := deprecated setAddAntidiagonal (since := "2026-01-31")),
deprecated setMulAntidiagonal (since := "2026-01-31")]
alias mulAntidiagonal := setMulAntidiagonal
```
[Finset/SMulAntidiagonal.lean](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Data/Finset/SMulAntidiagonal.lean)
```
@[to_additive (attr := deprecated setVAddAntidiagonal (since := "2026-01-31")),
deprecated setSMulAntidiagonal (since := "2026-01-31")]
alias smulAntidiagonal := setSMulAntidiagonal
```
Propagates:
[PointwiseSMul.lean](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Data/Finsupp/PointwiseSMul.lean) - updated to use Set.vaddAntidiagonal (the original Set name)
---
Full changes to be made:
For a monoid `M`, `mulAntidiagonal n` returns the finset of pairs `(i, j)` such that `i * j = n`.
[MulAntidiagonal.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finset/MulAntidiagonal.html)
- `mulAntidiagonal` → `setMulAntidiagonal`
- `addAntidiagonal` → `setAddAntidiagonal` (via `@[to_additive]`)
- All related theorems renamed accordingly:
- `mem_setMulAntidiagonal`
- `setMulAntidiagonal_mono_left`/`setMulAntidiagonal_mono_right`
- `swap_mem_setMulAntidiagonal`
- `support_setMulAntidiagonal_subset_mul`
- `isPWO_support_setMulAntidiagonal`
- `setMulAntidiagonal_min_mul_min`
[SMulAntidiagonal.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finset/SMulAntidiagonal.html)
- `setSMulAntidiagonal` (lowercase `set` prefix)
- `setVAddAntidiagonal` (via `@[to_additive setVAddAntidiagonal ...]`)
- All related theorems use lowercase `set` prefix:
- `mem_setSMulAntidiagonal` / `mem_setVAddAntidiagonal`
- `setSMulAntidiagonal_mono_left`/`setSMulAntidiagonal_mono_right` / `setVAddAntidiagonal_mono_left`/`setVAddAntidiagonal_mono_right`
- `support_setSMulAntidiagonal_subset_smul` / `support_setVAddAntidiagonal_subset_vadd`
- `isPWO_support_setSMulAntidiagonal` / `isPWO_support_setVAddAntidiagonal`
- `setSMulAntidiagonal_min_smul_min` / `setVAddAntidiagonal_min_vadd_min`
[Prod.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Antidiag/Prod.html)
- Added explicit `@[to_additive]` target names:
- `@[to_additive antidiagonal_congr ...]` for `mulAntidiagonal_congr`
- `@[to_additive (attr := ext) antidiagonal_subtype_ext ...]` for `mulAntidiagonal_subtype_ext`
- `@[to_additive antidiagonal_congr' ...]` for `mulAntidiagonal_congr'`
- `@[to_additive (attr := simps) sigmaAntidiagonalEquivProd ...]` for `sigmaMulAntidiagonalEquivProd`
[Multiplication.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/HahnSeries/Multiplication.html)
- Updated all VAdd antidiagonal references to use lowercase `set` prefix:
- `setVAddAntidiagonal`
- `mem_setVAddAntidiagonal`
- `setVAddAntidiagonal_mono_left`/`setVAddAntidiagonal_mono_right`
- `isPWO_support_setVAddAntidiagonal`
- `support_setVAddAntidiagonal_subset_vadd`
- `setVAddAntidiagonal_min_vadd_min`
- Updated all Add antidiagonal references:
- `mem_setAddAntidiagonal`
- `swap_mem_setAddAntidiagonal`
[Summable.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/HahnSeries/Summable.html)
- `setVAddAntidiagonal` references updated
- `mem_setAddAntidiagonal` references updated
[PowerSeries.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/HahnSeries/PowerSeries.html)
- `mem_addAntidiagonal` → `mem_setAddAntidiagonal`
|
t-algebra
new-contributor
label:t-algebra$ |
67/47 |
Mathlib/Algebra/Order/Antidiag/Prod.lean,Mathlib/Data/Finset/MulAntidiagonal.lean,Mathlib/Data/Finset/SMulAntidiagonal.lean,Mathlib/Data/Set/MulAntidiagonal.lean,Mathlib/RingTheory/HahnSeries/Multiplication.lean,Mathlib/RingTheory/HahnSeries/Summable.lean |
6 |
6 |
['IlPreteRosso', 'Ruben-VandeVelde', 'github-actions', 'kim-em', 'mathlib-merge-conflicts'] |
jcommelin assignee:jcommelin |
2-48800 2 days ago |
2-46516 2 days ago |
13-10761 13 days |
| 35026 |
joelriou author:joelriou |
feat(CategoryTheory): definition of the Cech cohomology of a presheaf |
---
- [x] depends on: #35016
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
214/0 |
Mathlib.lean,Mathlib/CategoryTheory/Limits/FormalCoproducts/Cech.lean,Mathlib/CategoryTheory/Sites/SheafCohomology/Cech.lean |
3 |
5 |
['chrisflav', 'github-actions', 'joelriou', 'mathlib-dependent-issues'] |
nobody |
2-48093 2 days ago |
2-47466 2 days ago |
2-50405 2 days |
| 25989 |
Multramate author:Multramate |
feat(NumberTheory/EllipticDivisibilitySequence): add elliptic nets |
This PR continues the work from #25030.
Original PR: https://github.com/leanprover-community/mathlib4/pull/25030 |
t-number-theory
large-import
|
257/39 |
Mathlib/NumberTheory/EllipticDivisibilitySequence.lean |
1 |
18 |
['MichaelStollBayreuth', 'Multramate', 'copilot-pull-request-reviewer', 'github-actions', 'mathlib4-merge-conflict-bot', 'tb65536'] |
tb65536 assignee:tb65536 |
2-46677 2 days ago |
2-46025 2 days ago |
2-45707 2 days |
| 28246 |
Sebi-Kumar author:Sebi-Kumar |
feat(AlgebraicTopology/FundamentalGroupoid): the n-sphere is simply connected for n > 1 |
Prove that the `n`-dimensional sphere (i.e., the unit sphere centered at the origin in `(n + 1)`-dimensional real Euclidean space) is a simply connected space for `n > 1`. This proof follows Hatcher's "Algebraic Topology"; we first prove a general lemma about decomposing loops and then exploit the fact that non-surjective loops in the sphere are homotopically trivial.
Note: To get this file to build, I edited `Mathlib/Tactic/Linter/DirectoryDependency.lean` to remove the restrictions on AlgebraicTopology files importing Geometry, NumberTheory, and FieldTheory files. Thank you to those who shared their expertise [here](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Warning.20that.20AlgebraicTopology.20can't.20import.20SetTheory/with/533833638). As I understand it, this is just a short-term solution, so I would appreciate feedback on what to do about this situation.
Note: I am unsure where exactly the file `SimplyConnectedSphere.lean` should go or whether that is an appropriate name for the file, so feedback there would be appreciated.
---
To provide additional context, this code was written 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.
- [x] depends on: #28208
- [x] depends on: #28198
- [x] depends on: #28185
[](https://gitpod.io/from-referrer/)
|
t-algebraic-topology
new-contributor
|
343/3 |
Mathlib.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/SimplyConnectedSphere.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean |
3 |
3 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
robin-carlier assignee:robin-carlier |
2-35531 2 days ago |
5-64600 5 days ago |
5-64282 5 days |
| 34026 |
SnkXyx author:SnkXyx |
feat(Algebra/MvPolynomial): add mainVariable |
Add `mainVariable` of `MvPolynomial`, the largest variable index appearing in the polynomial.
Main Theorems:
* `mainVariable_eq_bot_iff_eq_C`
* `mainVariable_sum_le`
* `mainVariable_prod_le`
* `degreeOf_eq_zero_of_mainVariable_lt`
The PR is upstreamized from [github.com/WuProver/lean_characteristic_set](https://github.com/WuProver/lean_characteristic_set)
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
147/0 |
Mathlib.lean,Mathlib/Algebra/MvPolynomial/MainVariable.lean |
2 |
1 |
['github-actions'] |
mattrobball assignee:mattrobball |
2-35528 2 days ago |
27-20610 27 days ago |
27-20292 27 days |
| 34158 |
wwylele author:wwylele |
refactor(QuadraticForm/Complex): generalize to algebraically closed field |
A free generalization since the only place the property of C is used is to get a square root. This can still be further generalized to quadratically closed field, but we don't have that definition yet.
Also did small clean up and removed a erw.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
large-import
label:t-algebra$ |
110/72 |
Mathlib.lean,Mathlib/LinearAlgebra/QuadraticForm/AlgClosed.lean,Mathlib/LinearAlgebra/QuadraticForm/Complex.lean,Mathlib/LinearAlgebra/QuadraticForm/IsometryEquiv.lean |
4 |
10 |
['erdOne', 'github-actions', 'ocfnash', 'wwylele'] |
chrisflav assignee:chrisflav |
2-35527 2 days ago |
20-35791 20 days ago |
22-36032 22 days |
| 34594 |
kim-em author:kim-em |
feat(LinearAlgebra/ConvexSpace): show AffineSpace is a ConvexSpace |
This PR shows that every affine space is a convex space, resolving a TODO item in `Mathlib.LinearAlgebra.ConvexSpace`.
The key components are:
- `AddTorsor.convexCombination`: convex combination using `affineCombination`
- `convexCombination_single`: unit law for convex combinations
- `convexCombination_assoc`: associativity law (monadic join)
- `AddTorsor.instConvexSpace`: the `ConvexSpace R P` instance
🤖 Prepared with Claude Code |
t-algebra label:t-algebra$ |
137/0 |
Mathlib.lean,Mathlib/LinearAlgebra/ConvexSpace/AffineSpace.lean |
2 |
6 |
['github-actions', 'kim-em', 'plp127'] |
ocfnash assignee:ocfnash |
2-35526 2 days ago |
8-39144 8 days ago |
8-38826 8 days |
| 34642 |
joelriou author:joelriou |
feat(AlgebraicTopology): the bifibrant resolution functor on the homotopy category of cofibrant objects |
Given a model category `C`, we construct a functor `HoCat.bifibrantResolution : CofibrantObject.HoCat C ⥤ BifibrantObject.HoCat C`.
---
- [x] depends on: #34641
[](https://gitpod.io/from-referrer/)
|
t-algebraic-topology
t-category-theory
|
238/0 |
Mathlib/AlgebraicTopology/ModelCategory/BifibrantObjectHomotopy.lean |
1 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
robin-carlier assignee:robin-carlier |
2-35525 2 days ago |
5-50932 5 days ago |
5-54950 5 days |
| 34756 |
Hagb author:Hagb |
feat(Algebra/Order/Monoid/Unbundled/WithTop): `AddEquiv` between `WithBot` |
It is like `Equiv.withBotCongr` but preserving also addition (`AddEquiv`).
---
It is like [`Equiv.withBotCongr`](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Equiv.withBotCongr#doc) but preserving also addition ([`AddEquiv`](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=AddEquiv#doc)).
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
39/0 |
Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean |
1 |
3 |
['Hagb', 'github-actions', 'plp127'] |
mattrobball assignee:mattrobball |
2-35522 2 days ago |
6-33185 6 days ago |
8-62815 8 days |
| 34803 |
YaelDillies author:YaelDillies |
refactor(Data/Sym/Sym2): curry `mk` |
This matches the `s(a, b)` notation and reduce the uncertainty about simp normal form.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
102/147 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Dart.lean,Mathlib/Combinatorics/SimpleGraph/EdgeLabeling.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean,Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean,Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean,Mathlib/Data/Finset/Sym.lean,Mathlib/Data/List/Sym.lean,Mathlib/Data/Sym/Card.lean,Mathlib/Data/Sym/Sym2.lean,Mathlib/Data/Sym/Sym2/Finsupp.lean,Mathlib/Data/Sym/Sym2/Order.lean,Mathlib/LinearAlgebra/QuadraticForm/Basic.lean,Mathlib/Order/GameAdd.lean |
15 |
6 |
['YaelDillies', 'eric-wieser', 'github-actions', 'plp127'] |
joneugster assignee:joneugster |
2-35520 2 days ago |
7-6978 7 days ago |
8-47440 8 days |
| 34806 |
YaelDillies author:YaelDillies |
feat(Data/Nat/SuccPred): `m ⋖ n ↔ m + 1 = n` |
This is a special case of a general lemma which can't be simp.
From ProofBench
---
[](https://gitpod.io/from-referrer/)
|
t-data |
3/1 |
Mathlib/Data/Nat/SuccPred.lean |
1 |
1 |
['github-actions'] |
joneugster assignee:joneugster |
2-35518 2 days ago |
8-6696 8 days ago |
8-6378 8 days |
| 34808 |
YaelDillies author:YaelDillies |
feat(Combinatorics/SimpleGraph): isolated vertices |
RFC for now. Do you think this is a reasonable definition to have? What should its API be?
From ProofBench
---
[](https://gitpod.io/from-referrer/)
|
RFC
t-combinatorics
|
3/0 |
Mathlib/Combinatorics/SimpleGraph/Basic.lean |
1 |
1 |
['github-actions'] |
kmill assignee:kmill |
2-35517 2 days ago |
8-48738 8 days ago |
8-48420 8 days |
| 34854 |
GrigorenkoPV author:GrigorenkoPV |
chore(Combinatorics/Enumerative/Catalan): split into `Basic` & `Tree` |
---
Split off from #34853
[](https://gitpod.io/from-referrer/)
|
new-contributor |
227/194 |
Mathlib.lean,Mathlib/Combinatorics/Enumerative/Catalan.lean,Mathlib/Combinatorics/Enumerative/Catalan/Basic.lean,Mathlib/Combinatorics/Enumerative/Catalan/Tree.lean,Mathlib/Combinatorics/Enumerative/DyckWord.lean,Mathlib/RingTheory/PowerSeries/Catalan.lean |
6 |
2 |
['SnirBroshi', 'github-actions'] |
thorimur assignee:thorimur |
2-35516 2 days ago |
5-81499 5 days ago |
7-43510 7 days |
| 34872 |
Hagb author:Hagb |
feat(Data/Finsupp/Basic): add `comapDomain_embDomain` and generalize `comapDomain_surjective` |
---
[](https://gitpod.io/from-referrer/)
|
t-data |
9/7 |
Mathlib/Data/Finsupp/Basic.lean |
1 |
1 |
['github-actions'] |
joneugster assignee:joneugster |
2-35514 2 days ago |
6-72425 6 days ago |
6-72107 6 days |
| 34874 |
bwangpj author:bwangpj |
feat: converse of `stabilizer_isOpen` |
A group action of a topological group on a discrete space is continuous if and only if
each stabilizer is an open subgroup.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
25/0 |
Mathlib/Topology/Algebra/MulAction.lean |
1 |
2 |
['ADedecker', 'github-actions'] |
dagurtomas assignee:dagurtomas |
2-35513 2 days ago |
5-42316 5 days ago |
6-66668 6 days |
| 34902 |
Hagb author:Hagb |
doc: replace `{Add,}MonoidHom.mrange_restrict` with `{Add,}MonoidHom.mrangeRestrict` |
`{Add,}MonoidHom.mrange_restrict` are old Mathlib3 spellings.
---
[](https://gitpod.io/from-referrer/)
|
documentation
t-algebra
easy
label:t-algebra$ |
2/2 |
Mathlib/Algebra/Group/Submonoid/Operations.lean |
1 |
1 |
['github-actions', 'wwylele'] |
dagurtomas assignee:dagurtomas |
2-35510 2 days ago |
6-24108 6 days ago |
6-23790 6 days |
| 34912 |
CoolRmal author:CoolRmal |
feat: generalize IsStoppingTime.add |
`IsStoppingTime.add` is originally proved only for `ℕ`. This PR proves the same theorem for a countable linearly ordered set `ι` that is CanonicallyOrderedAdd and equppied with the order topology.
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
17/32 |
Mathlib/Probability/Process/Stopping.lean |
1 |
1 |
['github-actions'] |
kex-y assignee:kex-y |
2-35508 2 days ago |
5-80004 5 days ago |
5-79686 5 days |
| 34915 |
smmercuri author:smmercuri |
feat(Topology/Algebra/RestrictedProduct): the units of a restricted product are isomorphic to the restricted product of the units |
---
[](https://gitpod.io/from-referrer/)
|
t-topology
FLT
large-import
|
63/0 |
Mathlib/Topology/Algebra/RestrictedProduct/Basic.lean |
1 |
1 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
2-35507 2 days ago |
5-71002 5 days ago |
5-70684 5 days |
| 34916 |
justus-springer author:justus-springer |
feat(Algebra/Polynomial/Bivariate): Add lemmas about swap |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
14/0 |
Mathlib/Algebra/Polynomial/Bivariate.lean |
1 |
3 |
['b-mehta', 'github-actions'] |
riccardobrasca assignee:riccardobrasca |
2-35506 2 days ago |
5-64041 5 days ago |
5-69387 5 days |
| 35067 |
bustercopley author:bustercopley |
style(RingTheory/PowerSeries/Derivative): prove derivative_pow from Derivation.leibniz_pow |
---
Firstly prove `derivative_pow` from the more general `Derivation.leibniz_pow` (because I think this is more illuminating), and secondly generalize `derivative_pow` to `CommSemiring`. The two are independent, in that the texts of the original and modified proofs both work fine, with either hypothesis.
|
t-ring-theory
easy
|
4/10 |
Mathlib/RingTheory/PowerSeries/Derivative.lean |
1 |
3 |
['bustercopley', 'github-actions'] |
nobody |
2-32863 2 days ago |
2-31693 2 days ago |
2-32023 2 days |
| 33129 |
Paul-Lez author:Paul-Lez |
feat(Tactic/Simproc/VecPerm): add simproc for permuting entries of a vector |
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
138/0 |
Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Simproc/VecPerm.lean,MathlibTest/Simproc/VecPerm.lean |
4 |
35 |
['JovanGerb', 'Paul-Lez', 'b-mehta', 'github-actions', 'ocfnash'] |
JovanGerb assignee:JovanGerb |
2-29341 2 days ago |
2-46489 2 days ago |
39-59268 39 days |
| 26985 |
agjftucker author:agjftucker |
feat(Analysis/Calculus/ImplicitFunction): define implicitFunctionOfProdDomain |
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/) |
t-analysis
new-contributor
|
269/157 |
Mathlib.lean,Mathlib/Analysis/Calculus/Implicit.lean,Mathlib/Analysis/Calculus/ImplicitContDiff.lean,Mathlib/Analysis/Calculus/ImplicitFunction/ProdDomain.lean |
4 |
27 |
['agjftucker', 'github-actions', 'j-loreaux', 'mathlib-bors', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'winstonyin'] |
hrmacbeth assignee:hrmacbeth |
2-11248 2 days ago |
2-10361 2 days ago |
64-58815 64 days |
| 32744 |
NoneMore author:NoneMore |
feat(ModelTheory/Definablity): add `DefinableFun` definition and lemmas |
This PR adds two basic shapes of definable sets and `DefinableFun` definition with relevant lemmas.
The main result is `Set.Definable.preimage_of_map` asserting that the preimage of a definable set under a definable map is definable.
There are also some tool lemmas derived by the preimage lemma.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-logic
|
147/0 |
Mathlib/ModelTheory/Definability.lean |
1 |
59 |
['NoneMore', 'github-actions', 'mathlib4-merge-conflict-bot', 'staroperator'] |
awainverse assignee:awainverse |
2-5284 2 days ago |
34-13459 34 days ago |
54-42836 54 days |
| 35011 |
whocares-abt author:whocares-abt |
feat(Combinatorics/SimpleGraph/Copy): add degree of copy less than original |
add two theorems relating degree of a graph and it's copy |
t-combinatorics
new-contributor
|
17/0 |
Mathlib/Combinatorics/SimpleGraph/Copy.lean |
1 |
2 |
['github-actions', 'themathqueen'] |
nobody |
2-5005 2 days ago |
2-4336 2 days ago |
3-7879 3 days |
| 33709 |
wangying11123 author:wangying11123 |
feat(Analysis/Convex/Between): betweenness from differences on the same ray |
Add `wbtw_of_sameRay_vsub_left`, saying that if the vectors from a point x to points y and z lie on the same ray, then y is weakly between x and z, or z is weakly between x and y. |
new-contributor
t-convex-geometry
|
24/0 |
Mathlib/Analysis/Convex/Between.lean |
1 |
9 |
['MichaelStollBayreuth', 'YaelDillies', 'github-actions', 'grunweg', 'wangying11123'] |
nobody |
2-3334 2 days ago |
24-71474 24 days ago |
34-78220 34 days |
| 33118 |
thomaskwaring author:thomaskwaring |
feat(Combinatorics/SimpleGraph/Acyclic): every graph has a spanning forest |
We show that every graph has a spanning forest: defined to be an acyclic subgraph with the same reachability relation as the larger graph. As a special case, every connected graph has a spanning tree.
---
Each of these results (spanning forest & spanning tree) are proved in two versions: a general case where the forest / tree is found by extending a given acyclic subgraph, and the special case where that subgraph is empty.
- [ ] depends on: #32043 |
new-contributor
t-combinatorics
|
29/5 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean |
1 |
6 |
['SnirBroshi', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'thomaskwaring', 'vlad902'] |
b-mehta assignee:b-mehta |
2-3065 2 days ago |
39-32421 39 days ago |
40-18278 40 days |
| 35070 |
joelriou author:joelriou |
feat(CategoryTheory/Sites): the Mayer-Vietoris long exact sequence in sheaf cohomology |
In this PR, we obtain the long exact Mayer-Vietoris sequence in sheaf cohomology `... ⟶ H^n₀(S.X₄, F) ⟶ H^n₀(S.X₂, F) ⊞ H^n₀(S.X₃, F) ⟶ H^n₀(S.X₁, F) ⟶ H^n₁(S.X₄, F) ⟶ ...` when `n₀ + 1 = n₁`. It is attached to any "Mayer-Vietoris square", which includes the typical case of a covering by two open subsets in a topological space. (This API shall also apply to the case of Nisnevich distinguished squares of schemes.)
---
This PR continues the work from #15099.
Original PR: https://github.com/leanprover-community/mathlib4/pull/15099 |
t-category-theory |
210/0 |
Mathlib.lean,Mathlib/Algebra/Category/Grp/Biproducts.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/Basic.lean,Mathlib/CategoryTheory/Preadditive/Opposite.lean,Mathlib/CategoryTheory/Shift/ShiftedHom.lean,Mathlib/CategoryTheory/Sites/SheafCohomology/Basic.lean,Mathlib/CategoryTheory/Sites/SheafCohomology/MayerVietoris.lean |
7 |
1 |
['github-actions'] |
nobody |
2-3016 2 days ago |
2-3016 2 days ago |
2-2698 2 days |
| 33852 |
zcyemi author:zcyemi |
feat(LinearAlgebra/AffineSpace/Independent): Add affineCombination_eq_lineMap_iff_weight_lineMap |
---
```lean
theorem AffineIndependent.affineCombination_eq_lineMap_iff_weight_lineMap {p : ι → P}
(ha : AffineIndependent k p) {w w₁ w₂ : ι → k} {s : Finset ι} (hw : ∑ i ∈ s, w i = 1)
(hw₁ : ∑ i ∈ s, w₁ i = 1) (hw₂ : ∑ i ∈ s, w₂ i = 1) (c : k) :
s.affineCombination k p w = AffineMap.lineMap (s.affineCombination k p w₁)
(s.affineCombination k p w₂) c ↔ ∀ i ∈ s, w i = AffineMap.lineMap (w₁ i) (w₂ i) c := by
```
This theorem is a parameterized reformulation of `affineCombination_mem_affineSpan_pair`.
It is convenient for rewriting when a concrete `lineMap` parameter is given.
|
t-algebra
maintainer-merge
label:t-algebra$ |
23/0 |
Mathlib/LinearAlgebra/AffineSpace/Independent.lean |
1 |
6 |
['github-actions', 'jsm28', 'robin-carlier', 'zcyemi'] |
kim-em assignee:kim-em |
2-1992 2 days ago |
23-29184 23 days ago |
31-33156 31 days |
| 35072 |
vasnesterov author:vasnesterov |
feat(Tactic/ComputeAsymptotics/Multiseries): non-primitive corecursion for `Seq`: `FriendlyOperation` API |
This is a continuation of #34311.
This PR adds more API about friendly operations:
* `FriendlyOperation.destruct`: a "coinductive destructor" for `FriendlyOperation`
* `FriendlyOperation.coind`: a coinductive principle for proving that operation is friendly
* `FriendlyOperationClass.eq_of_bisim`: a generalisation of `Seq.eq_of_bisim'` for proving two sequences are equal.
---
This is a part of the `compute_asymptotics` tactic (#28291).
[](https://gitpod.io/from-referrer/)
|
t-data
t-meta
|
296/0 |
Mathlib/Tactic/ComputeAsymptotics/Multiseries/Corecursion.lean |
1 |
1 |
['github-actions'] |
nobody |
2-1743 2 days ago |
2-1020 2 days ago |
2-4406 2 days |
| 35076 |
Vierkantor author:Vierkantor |
chore(Util): improve `#count_heartbeats` tactic docstring |
This PR (re)writes the docstring for the `#count_heartbeats` tactic (and `#count_heartbeats!`, which becomes a variant of `#count_heatbeats`), to make sure it is complete without getting too long.
I decided to make `#count_heartbeats!` a variant of `#count_heartbeats` since it does the same thing, just repeatedly.
---
[](https://gitpod.io/from-referrer/)
|
documentation
t-meta
|
22/5 |
Mathlib/Util/CountHeartbeats.lean |
1 |
1 |
['github-actions'] |
nobody |
1-84671 1 day ago |
1-81375 1 day ago |
1-81057 1 day |
| 25993 |
Multramate author:Multramate |
feat(Algebra/Group/Units/Hom): add map lemmas |
This PR continues the work from #25609.
Original PR: https://github.com/leanprover-community/mathlib4/pull/25609 |
t-algebra label:t-algebra$ |
29/11 |
Mathlib/Algebra/Group/Units/Basic.lean,Mathlib/Algebra/Group/Units/Hom.lean |
2 |
9 |
['Multramate', 'Ruben-VandeVelde', 'copilot-pull-request-reviewer', 'github-actions'] |
nobody |
1-84566 1 day ago |
1-81531 1 day ago |
1-81282 1 day |
| 35077 |
Vierkantor author:Vierkantor |
chore(Tactic): improve `#find` and `find` tactic docstrings |
This PR (re)writes the docstrings for the `#find` and `find` tactics, and the `#find` command, to consistently match the official style guide, to make sure they are complete while not getting too long.
---
[](https://gitpod.io/from-referrer/)
|
documentation
t-meta
|
30/14 |
Mathlib/Tactic/Find.lean |
1 |
1 |
['github-actions'] |
nobody |
1-84480 1 day ago |
1-80887 1 day ago |
1-80569 1 day |
| 33736 |
fbarroero author:fbarroero |
feat(RingTheory/Polynomial/GaussNorm): The `gaussNorm` is an absolute value if `v` is a nonarchimedean absolute value |
We prove
```
Polynomial.gaussNorm_isAbsoluteValue {c : ℝ} {R : Type*} [Ring R] {v : AbsoluteValue R ℝ}
(hna : IsNonarchimedean v) (hc : 0 < c) : IsAbsoluteValue (gaussNorm v c)
```
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
189/7 |
Mathlib/Algebra/Order/AbsoluteValue/Basic.lean,Mathlib/Algebra/Order/Ring/IsNonarchimedean.lean,Mathlib/RingTheory/Polynomial/GaussNorm.lean |
3 |
11 |
['copilot-pull-request-reviewer', 'erdOne', 'fbarroero', 'github-actions'] |
ADedecker assignee:ADedecker |
1-77764 1 day ago |
1-77764 1 day ago |
30-44575 30 days |
| 35080 |
rwst author:rwst |
docs(RingTheory/PowerSeries/Derivative): main def/stmts, docstrings |
Added main definitions, main statements, added and fixed docstrings.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
35/6 |
Mathlib/RingTheory/PowerSeries/Derivative.lean |
1 |
2 |
['github-actions'] |
nobody |
1-74507 1 day ago |
1-73828 1 day ago |
1-73510 1 day |
| 33543 |
JovanGerb author:JovanGerb |
feat: use `to_dual` for `HeytingAlgebra` |
This PR adds `to_dual` for `HeytingAlgebra`, `BiheytingAlgebra`, `GeneralizedHeytingAlgebra`.
I am a bit worried about the fact that the complement operation is self-dual in a `BooleanAlgebra`, because that means that, depending on the context, `compl` needs to be translated to `hnot` or `compl`. So if we want to dualize lemmas about `BooleanAlgebra` and `compl`, we will not be able to. But I hope that the number of such lemmas is small and that they aren't often used in places that can get a `to_dual` tag (e.g. when specialized to sets, they don't need a `to_dual` tag).
Aligning the `Heyting` and `Coheyting` API is kind of awkward, because they are unfortunately quite different. One reason is that the arguments of `sup`/`inf` are often swapped in the dual version, which is not compatible with `to_dual`. I've worked around this with extensive use of `to_dual none`.
There are quite some lemmas that in my eyes seem unnecessary, such as `le_sup_sdiff_sup_sdiff`, but I haven't removed any in this PR.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
195/373 |
Mathlib/Combinatorics/SetFamily/Kleitman.lean,Mathlib/Order/Basic.lean,Mathlib/Order/BooleanAlgebra/Basic.lean,Mathlib/Order/Disjoint.lean,Mathlib/Order/Heyting/Basic.lean,Mathlib/Order/Notation.lean,Mathlib/Order/UpperLower/Basic.lean,Mathlib/Tactic/Translate/ToDual.lean |
8 |
12 |
['JovanGerb', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'vihdzp'] |
bryangingechen and mattrobball assignee:bryangingechen assignee:mattrobball |
1-74285 1 day ago |
6-21679 6 days ago |
8-9875 8 days |
| 34583 |
adomani author:adomani |
feat: basic properties of subnormal subgroups |
This is a follow up to #34284.
Co-authored-by: Inna Capdeboscq
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-group-theory
|
111/1 |
Mathlib/Algebra/Group/Conj.lean,Mathlib/Algebra/Group/Subgroup/Pointwise.lean,Mathlib/GroupTheory/IsSubnormal.lean |
3 |
27 |
['LLaurance', 'adomani', 'github-actions', 'tb65536'] |
mattrobball assignee:mattrobball |
1-74249 1 day ago |
6-44566 6 days ago |
13-36795 13 days |
| 26588 |
faenuccio author:faenuccio |
feat(Algebra/GroupWithZero/WithZero): add the multiplicative embedding with zero from the range |
We extend the embedding of the range of a `MonoidWithZeroHom` to the codomain by enriching it with the structure of an ordered, multiplicative embedding. In passing, we extend some results about the embedding of `WithZero` of the units of a group with zero, to the group itself.
This will be used in the theory on valuation on rings. In particular, it is needed for correcting the definition of `Valuation.IsRankOne` in Mathlib (see #26872).
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-algebra
t-order
label:t-algebra$ |
129/2 |
Mathlib.lean,Mathlib/Algebra/GroupWithZero/Range.lean,Mathlib/Algebra/Order/GroupWithZero/Range.lean |
3 |
119 |
['YaelDillies', 'erdOne', 'eric-wieser', 'faenuccio', 'github-actions', 'leanprover-community-bot-assistant', 'mariainesdff', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'pechersky'] |
YaelDillies assignee:YaelDillies |
1-73944 1 day ago |
1-73234 1 day ago |
41-54464 41 days |
| 25992 |
Multramate author:Multramate |
feat(RingTheory/Ideal/Span): add pair lemmas |
This PR continues the work from #25323.
Original PR: https://github.com/leanprover-community/mathlib4/pull/25323 |
t-ring-theory |
128/32 |
Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean,Mathlib/RingTheory/Ideal/Maps.lean,Mathlib/RingTheory/Ideal/Span.lean |
3 |
41 |
['Multramate', 'Ruben-VandeVelde', 'copilot-pull-request-reviewer', 'github-actions', 'mathlib4-merge-conflict-bot'] |
nobody |
1-73856 1 day ago |
1-72017 1 day ago |
1-71702 1 day |
| 35086 |
kebekus author:kebekus |
feat: add congruence lemmas for integrability |
Add simple congruence lemmas for interval- and circle integrability. Perform very minor golfing.
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
60/4 |
Mathlib/MeasureTheory/Integral/CircleIntegral.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/Basic.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/Periodic.lean |
3 |
1 |
['github-actions'] |
nobody |
1-72972 1 day ago |
1-73030 1 day ago |
1-72712 1 day |
| 30982 |
jsm28 author:jsm28 |
feat(Geometry/Euclidean/Angle/Incenter): angle bisection and the incenter |
Add lemmas relating the incenter and excenters of a simplex to angle bisection, both generally for a simplex and more specifically with oriented angles for a triangle.
More specific lemmas for a simplex (identifying exactly which excenter corresponds to which bisectors) will require various additional API for bisectors of angles betweeen oriented affine subspaces (but for the most common applications to typical plane geometry problems, I expect the triangle lemmas with oriented angles to be more useful).
---
- [ ] depends on: #30474
- [ ] depends on: #30477
- [ ] depends on: #30600
- [ ] depends on: #30703
- [ ] depends on: #30938
- [ ] depends on: #30981
[](https://gitpod.io/from-referrer/)
|
t-euclidean-geometry |
278/0 |
Mathlib.lean,Mathlib/Geometry/Euclidean/Angle/Incenter.lean |
2 |
4 |
['github-actions', 'jsm28', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'wwylele'] |
nobody |
1-70772 1 day ago |
1-75815 1 day ago |
1-75497 1 day |
| 35089 |
RemyDegenne author:RemyDegenne |
feat: Radon-Nikodym derivative of a map is a conditional expectation |
The Radon-Nikodym derivative of the pushforward of two measures is written as a conditional expectation.
This will be useful to prove the data processing inequality for the Kullback-Leibler divergence (or more generally f-divergences).
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
119/0 |
Mathlib.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/RadonNikodym.lean,Mathlib/MeasureTheory/Measure/Trim.lean |
3 |
1 |
['github-actions'] |
nobody |
1-70240 1 day ago |
1-69165 1 day ago |
1-68847 1 day |
| 35042 |
JovanGerb author:JovanGerb |
chore: remove `meta` form `import Mathlib.Tactic...` |
This PR cleans up some imports of the form `import Mathlib.Tactic...`, by either removing them entirely, or removing the `meta` keyword. It should never be necessary to `meta import` a file from `Mathlib.Tactic`, because the relevant definitions should already have been marked as `meta`.
---
[](https://gitpod.io/from-referrer/)
|
large-import |
58/139 |
Mathlib/Algebra/BigOperators/Group/Finset/Defs.lean,Mathlib/Algebra/FreeMonoid/Basic.lean,Mathlib/Algebra/Order/Group/Unbundled/Abs.lean,Mathlib/CategoryTheory/Functor/Basic.lean,Mathlib/Data/List/ChainOfFn.lean,Mathlib/Dynamics/OmegaLimit.lean,Mathlib/GroupTheory/GroupAction/Defs.lean,Mathlib/GroupTheory/GroupAction/DomAct/Basic.lean,Mathlib/Tactic/Algebraize.lean,Mathlib/Tactic/ApplyFun.lean,Mathlib/Tactic/ArithMult.lean,Mathlib/Tactic/Bound.lean,Mathlib/Tactic/CategoryTheory/Bicategory/Datatypes.lean,Mathlib/Tactic/CategoryTheory/Bicategory/Normalize.lean,Mathlib/Tactic/CategoryTheory/Bicategory/PureCoherence.lean,Mathlib/Tactic/CategoryTheory/CheckCompositions.lean,Mathlib/Tactic/CategoryTheory/Coherence/Basic.lean,Mathlib/Tactic/CategoryTheory/Coherence/Normalize.lean,Mathlib/Tactic/CategoryTheory/Coherence/PureCoherence.lean,Mathlib/Tactic/CategoryTheory/Elementwise.lean,Mathlib/Tactic/CategoryTheory/Monoidal/Datatypes.lean,Mathlib/Tactic/CategoryTheory/Monoidal/Normalize.lean,Mathlib/Tactic/CategoryTheory/Monoidal/PureCoherence.lean,Mathlib/Tactic/CategoryTheory/ToApp.lean,Mathlib/Tactic/Choose.lean,Mathlib/Tactic/DeclarationNames.lean,Mathlib/Tactic/DefEqTransformations.lean,Mathlib/Tactic/DeriveCountable.lean,Mathlib/Tactic/DeriveFintype.lean,Mathlib/Tactic/DeriveTraversable.lean,Mathlib/Tactic/ENatToNat.lean,Mathlib/Tactic/Explode.lean,Mathlib/Tactic/Explode/Pretty.lean,Mathlib/Tactic/FinCases.lean,Mathlib/Tactic/FunProp.lean,Mathlib/Tactic/FunProp/Attr.lean,Mathlib/Tactic/FunProp/Core.lean,Mathlib/Tactic/FunProp/FunctionData.lean,Mathlib/Tactic/FunProp/Theorems.lean,Mathlib/Tactic/FunProp/Types.lean,Mathlib/Tactic/GCongr/Core.lean,Mathlib/Tactic/GRewrite/Elab.lean,Mathlib/Tactic/Group.lean,Mathlib/Tactic/IrreducibleDef.lean,Mathlib/Tactic/Lift.lean,Mathlib/Tactic/Linarith.lean,Mathlib/Tactic/Linarith/Lemmas.lean,Mathlib/Tactic/Linarith/Oracle/FourierMotzkin.lean,Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm.lean,Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm/Gauss.lean,Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm/SimplexAlgorithm.lean,Mathlib/Tactic/Linarith/Preprocessing.lean,Mathlib/Tactic/Linarith/Verification.lean,Mathlib/Tactic/LinearCombination/Lemmas.lean,Mathlib/Tactic/Linter/DeprecatedSyntaxLinter.lean,Mathlib/Tactic/Linter/DocPrime.lean,Mathlib/Tactic/Linter/DocString.lean,Mathlib/Tactic/Linter/EmptyLine.lean,Mathlib/Tactic/Linter/FlexibleLinter.lean,Mathlib/Tactic/Linter/GlobalAttributeIn.lean,Mathlib/Tactic/Linter/HashCommandLinter.lean,Mathlib/Tactic/Linter/Multigoal.lean,Mathlib/Tactic/Linter/OldObtain.lean,Mathlib/Tactic/Linter/Style.lean,Mathlib/Tactic/Linter/TextBased.lean,Mathlib/Tactic/Linter/TextBased/UnicodeLinter.lean,Mathlib/Tactic/Linter/UnusedTactic.lean,Mathlib/Tactic/Linter/UnusedTacticExtension.lean,Mathlib/Tactic/MinImports.lean,Mathlib/Tactic/MoveAdd.lean,Mathlib/Tactic/Nontriviality/Core.lean,Mathlib/Tactic/NormNum/DivMod.lean,Mathlib/Tactic/NormNum/Ineq.lean,Mathlib/Tactic/NormNum/Prime.lean,Mathlib/Tactic/Order.lean,Mathlib/Tactic/Order/CollectFacts.lean,Mathlib/Tactic/Order/Graph/Tarjan.lean,Mathlib/Tactic/PNatToNat.lean,Mathlib/Tactic/Peel.lean,Mathlib/Tactic/ProdAssoc.lean,Mathlib/Tactic/ProxyType.lean,Mathlib/Tactic/Push.lean,Mathlib/Tactic/Qify.lean,Mathlib/Tactic/RSuffices.lean,Mathlib/Tactic/Ring/PNat.lean,Mathlib/Tactic/Simproc/Divisors.lean,Mathlib/Tactic/Simproc/FinsetInterval.lean,Mathlib/Tactic/Simps/Basic.lean,Mathlib/Tactic/Subsingleton.lean,Mathlib/Tactic/TacticAnalysis/Declarations.lean,Mathlib/Tactic/TautoSet.lean,Mathlib/Tactic/Translate/Core.lean,Mathlib/Tactic/Widget/Calc.lean,Mathlib/Tactic/Widget/CommDiag.lean,Mathlib/Tactic/Widget/CongrM.lean,Mathlib/Tactic/Widget/GCongr.lean,Mathlib/Tactic/Widget/InteractiveUnfold.lean,Mathlib/Tactic/Widget/SelectPanelUtils.lean,Mathlib/Tactic/Widget/StringDiagram.lean,Mathlib/Tactic/Zify.lean |
102 |
3 |
['JovanGerb', 'github-actions', 'leanprover-radar'] |
nobody |
1-69352 1 day ago |
1-65938 1 day ago |
2-46098 2 days |
| 26292 |
RemyDegenne author:RemyDegenne |
feat(MeasureTheory): tightness of the range of a sequence |
* `isTightMeasureSet_range_iff_tendsto_limsup_measure_norm_gt`: in a proper normed group,
the range of a sequence of measures `μ : ℕ → Measure E` is tight if and only if the function
`r : ℝ ↦ limsup (fun n ↦ μ n {x | r < ‖x‖}) atTop` tends to `0` at infinity.
* `isTightMeasureSet_range_iff_tendsto_limsup_inner`: in a finite-dimensional inner product space,
the range of a sequence of measures `μ : ℕ → Measure E` is tight if and only if the function
`r : ℝ ↦ limsup (fun n ↦ μ n {x | r < ‖⟪y, x⟫_𝕜‖}) atTop` tends to `0` at infinity for all `y`.
---
[](https://gitpod.io/from-referrer/)
---
*This PR continues the work from #24838.*
*Original PR: https://github.com/leanprover-community/mathlib4/pull/24838* |
t-measure-probability |
186/2 |
Mathlib/MeasureTheory/Measure/TightNormed.lean |
1 |
5 |
['Komyyy', 'RemyDegenne', 'github-actions', 'mathlib4-merge-conflict-bot'] |
nobody |
1-68633 1 day ago |
1-74209 1 day ago |
3-6203 3 days |
| 34966 |
Deep0Thinking author:Deep0Thinking |
feat(MeasureTheory): add `IntegrableOn. tendsto_primitive_` over `Ioi/Iio` and `IntegrableOn.continuousOn_primitive_` over `Ioi/Iio/Ici/Iic` |
This PR mainly proves:
- `IntegrableOn.tendsto_primitive_` over `Ioi/Iio`
- `IntegrableOn.continuousWithinAt_primitive_` over `Ioi/Iio`
- `IntegrableOn.continuousOn_primitive_` over `Ioi/Iio/Ici/Iic`
- `IntegrableOn.tendsto_integral_` over `Ioi/Iio/Ici/Iic`
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
204/1 |
Mathlib/MeasureTheory/Integral/DominatedConvergence.lean,Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean,Mathlib/Order/Interval/Set/LinearOrder.lean |
3 |
6 |
['CoolRmal', 'Deep0Thinking', 'github-actions'] |
nobody |
1-68198 1 day ago |
3-3749 3 days ago |
3-83537 3 days |
| 35024 |
SnirBroshi author:SnirBroshi |
chore(RingTheory/DedekindDomain/PID): remove non-terminal simp |
And remove obsolete explicit params since the `FunLike` refactor.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
5/10 |
Mathlib/RingTheory/DedekindDomain/PID.lean |
1 |
2 |
['Komyyy', 'github-actions'] |
nobody |
1-63806 1 day ago |
2-76037 2 days ago |
2-75719 2 days |
| 35081 |
tb65536 author:tb65536 |
feat(Topology/Algebra/Group/Extension): define short exact sequence of topological groups |
This PR defines a short exact sequence of topological groups to be a closed embedding followed by an open quotient map (extracted from #32672).
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
57/0 |
Mathlib.lean,Mathlib/Topology/Algebra/Group/Extension.lean |
2 |
1 |
['github-actions'] |
nobody |
1-58386 1 day ago |
1-57627 1 day ago |
1-79529 1 day |
| 34965 |
urkud author:urkud |
refactor(Analysis/Calculus): redefine `HasFDerivAtFilter` |
Make `HasFDerivAtFilter` and `HasDerivAtFilter` to take a filter in the Cartesian square of the domain,
so that it works for `HasStrictFDerivAt` and `HasStrictDerivAt`.
Other changes:
- golf proofs about `hasDerivAt_pi` etc, dropping `[Finite ι]` assumption;
- move proofs about `HasFDerivAtFilter` before `HasStrictFDerivAt`, use them;
- add lemmas like `hasFDerivAt_iff_isLittleO`, since the old idiom `rw [HasFDerivAt, hasFDerivAtFilter_iff_isLittleO]` no longer gives the desired result.
See [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/generalizing.20HasFDerivAtFilter/with/572031922)
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
686/663 |
Mathlib/Analysis/Calculus/Deriv/Add.lean,Mathlib/Analysis/Calculus/Deriv/AffineMap.lean,Mathlib/Analysis/Calculus/Deriv/Basic.lean,Mathlib/Analysis/Calculus/Deriv/Comp.lean,Mathlib/Analysis/Calculus/Deriv/Linear.lean,Mathlib/Analysis/Calculus/Deriv/Mul.lean,Mathlib/Analysis/Calculus/Deriv/Pow.lean,Mathlib/Analysis/Calculus/Deriv/Prod.lean,Mathlib/Analysis/Calculus/Deriv/Slope.lean,Mathlib/Analysis/Calculus/Deriv/Star.lean,Mathlib/Analysis/Calculus/FDeriv/Add.lean,Mathlib/Analysis/Calculus/FDeriv/Affine.lean,Mathlib/Analysis/Calculus/FDeriv/Analytic.lean,Mathlib/Analysis/Calculus/FDeriv/Basic.lean,Mathlib/Analysis/Calculus/FDeriv/Comp.lean,Mathlib/Analysis/Calculus/FDeriv/Congr.lean,Mathlib/Analysis/Calculus/FDeriv/Const.lean,Mathlib/Analysis/Calculus/FDeriv/Defs.lean,Mathlib/Analysis/Calculus/FDeriv/Extend.lean,Mathlib/Analysis/Calculus/FDeriv/Linear.lean,Mathlib/Analysis/Calculus/FDeriv/Prod.lean,Mathlib/Analysis/Calculus/FDeriv/RestrictScalars.lean,Mathlib/Analysis/Calculus/FDeriv/Star.lean,Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean,Mathlib/Analysis/Calculus/Gradient/Basic.lean,Mathlib/Analysis/Complex/HasPrimitives.lean,Mathlib/Analysis/Complex/Periodic.lean,Mathlib/Analysis/InnerProductSpace/NormPow.lean,Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean,Mathlib/MeasureTheory/Integral/CurveIntegral/Basic.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.lean,MathlibTest/Recall.lean |
32 |
2 |
['Komyyy', 'github-actions'] |
nobody |
1-58252 1 day ago |
3-66242 3 days ago |
3-65924 3 days |
| 27229 |
WilliamCoram author:WilliamCoram |
feat(GroupTheory/DoubleCoset): multiple lemmas |
From FLT
---
[](https://gitpod.io/from-referrer/)
|
FLT
t-group-theory
new-contributor
|
85/2 |
Mathlib/GroupTheory/DoubleCoset.lean |
1 |
40 |
['CBirkbeck', 'Ruben-VandeVelde', 'WilliamCoram', 'github-actions', 'kim-em', 'mariainesdff', 'mathlib4-merge-conflict-bot', 'tb65536'] |
mariainesdff assignee:mariainesdff |
1-55206 1 day ago |
2-68776 2 days ago |
100-16406 100 days |
| 35100 |
stepan2698-cpu author:stepan2698-cpu |
feat: definition of a character of a representation |
This PR begins to transfer definitions and theorems about characters from `FDRep` to `Representation`. Once #34888 is merged, the theorems involving isomorphisms of representations will be appropriately restated.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
57/0 |
Mathlib/RepresentationTheory/Character.lean |
1 |
1 |
['github-actions'] |
nobody |
1-51184 1 day ago |
1-50517 1 day ago |
1-50199 1 day |
| 33650 |
vihdzp author:vihdzp |
refactor: deprecate bespoke `Hyperreal` machinery |
Currently, these six definitions are in the `Hyperreal` namespace:
- `IsSt x r`: a predicate for `r` being a standard part of `x`
- `st x`: the standard part of `x`
- `Infinitesimal x`: predicate for infinitesimal elements
- `InfinitePos x`: predicate for infinite and positive elements
- `InfiniteNeg x`: predicate for infinite and negative elements
- `Infinite x`: predicate for infinite (positive or negative) elements.
We deprecate all six of these and all of their API, in favor of reasoning with [`ArchimedeanClass`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Archimedean/Class.html#ArchimedeanClass) and [`ArchimedeanClass.stdPart`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Ring/StandardPart.html#ArchimedeanClass.stdPart). The replacements are as follows:
- `IsSt x r`: `0 ≤ ArchimedeanClass.mk x ∧ stdPart x = r`
- `st x`: `stdPart x`
- `Infinitesimal x`: `0 < ArchimedeanClass.mk x`
- `InfinitePos x`: `0 < x ∧ ArchimedeanClass.mk x < 0`
- `InfiniteNeg x`: `x < 0 ∧ ArchimedeanClass.mk x < 0`
- `Infinite x`: `ArchimedeanClass.mk x < 0`
All of these equivalences are proved within the PR, though these new theorems have also been insta-deprecated.
Most of the existing API on these predicates was largely uninteresting boilerplate, and has been deprecated without replacement. For the few results of mathematical interest (those whose proofs are longer than a few lines), I've golfed their proofs as a stress test to ensure that this new API is capable of easily proving them.
I've kept everything in the same file to minimize the diff. A future PR will move the obsolete material to `Deprecated.Hyperreal`.
---
- [x] depends on: #33644
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
384/96 |
Mathlib/Algebra/Order/Ring/StandardPart.lean,Mathlib/Analysis/Real/Hyperreal.lean |
2 |
12 |
['github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'ocfnash', 'vihdzp', 'wwylele'] |
nobody |
1-41978 1 day ago |
1-41281 1 day ago |
7-18836 7 days |
| 34997 |
themathqueen author:themathqueen |
feat(LinearAlgebra/Matrix/Hadamard): convolutive star ring on matrices |
Now that we have the type synonym `WithConv`, we can define a star ring structure on `WithConv (Matrix m n R)` given by the Hadamard product and the intrinsic star (intrinsic star here means `x.map star`).
`WithConv (Matrix m n R)` is star-algebraically equivalent to `WithConv ((n → R) →ₗ[R] (m → R))` (will be done in a later PR).
---
- [x] depends on: #34945
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
71/1 |
Mathlib/LinearAlgebra/Matrix/Hadamard.lean |
1 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
nobody |
1-41413 1 day ago |
1-41324 1 day ago |
1-41006 1 day |
| 26479 |
thefundamentaltheor3m author:thefundamentaltheor3m |
feat(Analysis/Complex/CauchyIntegral): Cauchy–Goursat for Unbounded Rectangles |
In this PR, we prove versions of the Cauchy-Goursat theorem where the contours in question are rectangular and unbounded (ie, where the contours look like the $\bigsqcup$ symbol). I am not sure if I have formalised these in the best way, or if `Analysis.Complex.CauchyIntegral` is the best place for them (it might be prudent to reorganise the file into multiple files at some point), but I believe this is a useful result. Suggestions welcome.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-analysis
sphere-packing
|
205/0 |
Mathlib/Analysis/Complex/CauchyIntegral.lean |
1 |
5 |
['github-actions', 'j-loreaux', 'mathlib4-merge-conflict-bot', 'thefundamentaltheor3m', 'wwylele'] |
urkud assignee:urkud |
1-40876 1 day ago |
21-56901 21 days ago |
21-56583 21 days |
| 34820 |
staroperator author:staroperator |
feat(Order/Ideal): more results on order ideals |
Some iffs, closure of finite supremum, and that every proper ideal is contained in a maximal ideal.
---
[](https://gitpod.io/from-referrer/)
|
t-order
large-import
|
79/5 |
Mathlib/Order/Ideal.lean |
1 |
5 |
['bryangingechen', 'github-actions', 'leanprover-radar', 'staroperator'] |
nobody |
1-40385 1 day ago |
1-40385 1 day ago |
7-84856 7 days |
| 34936 |
BryceT233 author:BryceT233 |
feat(RingTheory/AdicCompletion): completeness of adic completion |
Following https://stacks.math.columbia.edu/tag/05GG, this PR formalized that `AdicCompletion I M` is `I`-adically complete when the ideal `I` is finitely generated.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
large-import
|
383/21 |
Mathlib.lean,Mathlib/Algebra/Algebra/Operations.lean,Mathlib/Data/Finsupp/Pointwise.lean,Mathlib/LinearAlgebra/Finsupp/Span.lean,Mathlib/RingTheory/AdicCompletion/Basic.lean,Mathlib/RingTheory/AdicCompletion/Completeness.lean,Mathlib/RingTheory/AdicCompletion/Functoriality.lean,Mathlib/RingTheory/Ideal/Quotient/PowTransition.lean |
8 |
14 |
['BryceT233', 'erdOne', 'github-actions'] |
nobody |
1-40206 1 day ago |
1-38615 1 day ago |
3-6578 3 days |
| 30900 |
vihdzp author:vihdzp |
feat: run-length encoding |
---
- [x] depends on: #30898
Moved from #17105.
[](https://gitpod.io/from-referrer/)
|
t-data |
167/0 |
Mathlib.lean,Mathlib/Data/List/RunLength.lean,Mathlib/Data/List/SplitBy.lean |
3 |
5 |
['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'plp127'] |
nobody |
1-39073 1 day ago |
1-38418 1 day ago |
1-38100 1 day |
| 34111 |
themathqueen author:themathqueen |
feat(Algebra/Star/LinearMap): the convolutive intrinsic star ring on linear maps |
There is a star ring on linear maps from coalgebras to star-algebras, where the ring structure is given by [convNonUnitalNonAssocRing](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/Coalgebra/Convolution.html#LinearMap.convNonUnitalNonAssocRing) and the star structure is given by [intrinsicStarAddMonoid](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Star/LinearMap.html#LinearMap.intrinsicStarAddMonoid), given that `star comul = comm ∘ₗ comul`. This is true, for example, in finite-dimensional C*-algebras under the GNS construction [PositiveLinearMap.GNS](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/CStarAlgebra/GelfandNaimarkSegal.html#PositiveLinearMap.GNS) and the adjoint coalgebra [InnerProductSpace.coalgebraOfAlgebra](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/InnerProductSpace/Coalgebra.html#InnerProductSpace.coalgebraOfAlgebra).
Another separate example is linear maps from `n -> R` to `m -> R`.
---
- [x] depends on: #34945
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
76/3 |
Mathlib/Algebra/Star/LinearMap.lean,Mathlib/LinearAlgebra/TensorProduct/Basic.lean |
2 |
11 |
['github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'themathqueen'] |
j-loreaux assignee:j-loreaux |
1-38444 1 day ago |
1-37758 1 day ago |
16-71705 16 days |
| 33397 |
themathqueen author:themathqueen |
feat(Topology/Algebra/Star/LinearMap): intrinsic star for continuous linear maps |
---
- [x] depends on: #34945
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-topology
label:t-algebra$ |
105/0 |
Mathlib.lean,Mathlib/Topology/Algebra/Star/LinearMap.lean |
2 |
19 |
['github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'ocfnash', 'themathqueen'] |
ocfnash assignee:ocfnash |
1-37516 1 day ago |
1-36578 1 day ago |
32-13058 32 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
---
- [x] depends on: #27416
[](https://gitpod.io/from-referrer/)
|
large-import
t-ring-theory
|
220/16 |
Mathlib/RingTheory/Regular/Category.lean,Mathlib/RingTheory/Regular/Depth.lean |
2 |
41 |
['Thmoas-Guan', 'alreadydone', 'dagurtomas', 'erdOne', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
chrisflav assignee:chrisflav |
1-35637 1 day ago |
5-4789 5 days ago |
63-45836 63 days |
| 33631 |
xgenereux author:xgenereux |
feat(ValuationSubring): simp lemmas for idealOfLE/ofPrime in relation to top/bot |
simp lemmas for `idealOfLE`/`ofPrime` in the trivial cases of `⊥`, `⊤` .
This is my second try at this PR (after I bailed on #33618), sorry about this!
---
- [ ] depends on: #33612
- [ ] depends on: #33609
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
19/0 |
Mathlib/RingTheory/Valuation/ValuationSubring.lean |
1 |
4 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
alreadydone assignee:alreadydone |
1-35636 1 day ago |
5-9003 5 days ago |
5-8685 5 days |
| 34481 |
DAE123456 author:DAE123456 |
feat: Ore's Theorem |
Ore Theorem : Let G be a graph of order n ≥ 3 that satisfies the Ore property. Then G has a Hamilton cycle. |
t-combinatorics
new-contributor
|
3372/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Ore.lean |
2 |
25 |
['DAE123456', 'LLaurance', 'Ruben-VandeVelde', 'YaelDillies', 'github-actions', 'kim-em', 'tb65536', 'vlad902'] |
b-mehta assignee:b-mehta |
1-35635 1 day ago |
10-3295 10 days ago |
13-50755 13 days |
| 34666 |
SnirBroshi author:SnirBroshi |
feat(Order/Minimal): `MinimalFor`/`MaximalFor` are antitone |
---
~~I also wanted to tag these `@[gcongr]` but it refuses, probably the extra `hQ` hypothesis makes it impossible.~~
[](https://gitpod.io/from-referrer/)
|
t-order |
9/1 |
Mathlib/Order/Minimal.lean |
1 |
3 |
['SnirBroshi', 'github-actions', 'staroperator'] |
Vierkantor assignee:Vierkantor |
1-35634 1 day ago |
5-34389 5 days ago |
11-17952 11 days |
| 34697 |
wwylele author:wwylele |
feat(Geometry/Euclidean): the Euclidean volume measure |
This PR starts a series to set up volume measure for Euclidean geometry, so it can be used in formalizing problems involving area and volume.
This PR only introduce the basic definition and properties. Some future PR will also include
- Integral along an affine subspace to calculate the volume of an object
- Define volume of a simplex using the base * height / n formula (not assuming measurability)
- Show that the defined volume matches the measure of the interior (see the draft #34826 for the target lemma)
- More specialized formula for the area of triangles.
---
Zulip thread: [#Is there code for X? > Measure on affine space](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Measure.20on.20affine.20space/with/570193872)
[](https://gitpod.io/from-referrer/)
|
t-euclidean-geometry
t-measure-probability
|
165/0 |
Mathlib.lean,Mathlib/Geometry/Euclidean/Volume/Measure.lean |
2 |
10 |
['copilot-pull-request-reviewer', 'eric-wieser', 'github-actions', 'wwylele'] |
jsm28 assignee:jsm28 |
1-35633 1 day ago |
7-49977 7 days ago |
10-39887 10 days |
| 34722 |
GrigorenkoPV author:GrigorenkoPV |
feat(Data/Finset/RangeDistance): add |
---
Rebase of https://github.com/leanprover-community/mathlib4/pull/26347
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-data
|
34/0 |
Mathlib.lean,Mathlib/Algebra/Order/Group/Unbundled/Abs.lean,Mathlib/Data/Finset/RangeDistance.lean |
3 |
4 |
['GrigorenkoPV', 'github-actions', 'joneugster', 'plp127'] |
TwoFX assignee:TwoFX |
1-35631 1 day ago |
9-75468 9 days ago |
9-75150 9 days |
| 34740 |
euprunin author:euprunin |
chore: golf using `grind` |
---
The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (shown if ≥10 ms before or after):
* `List.left_mem_of_mk_mem_sym2`: <10 ms before, 73 ms after
* `Nat.nonempty_of_pos_sInf`: 18 ms before, 61 ms after
* `Nat.factors_lemma`: <10 ms before, 96 ms after
* `Order.PartialIso.exists_across`: 101 ms before, 241 ms after
This golfing PR is batched under the following guidelines:
* Up to ~5 changed files per PR
* Up to ~25 changed declarations per PR
* Up to ~100 changed lines per PR
---
[](https://gitpod.io/from-referrer/)
|
|
7/35 |
Mathlib/Data/List/Basic.lean,Mathlib/Data/List/Sym.lean,Mathlib/Data/Nat/Lattice.lean,Mathlib/Data/Nat/Prime/Defs.lean,Mathlib/Order/CountableDenseLinearOrder.lean |
5 |
1 |
['github-actions'] |
thorimur assignee:thorimur |
1-35631 1 day ago |
9-7902 9 days ago |
9-40889 9 days |
| 34773 |
semaraugusto author:semaraugusto |
Feat(InformationTheory/Entropy): Adds generic Shannon Entropy definition for probability mass functions |
Add Shannon entropy for probability mass functions
This PR defines the Shannon entropy of a probability mass function as an
ℝ-valued infinite sum using `Real.negMulLog`, and proves basic properties
and standard computations.
Main results include:
* entropy is nonnegative;
* entropy vanishes iff the PMF is deterministic (`PMF.pure`);
* entropy is strictly positive for non-pure PMFs;
* entropy of a Bernoulli PMF coincides with `Real.binEntropy`;
* entropy of uniform distributions is `log` of the cardinality, both for
`PMF.uniformOfFintype` and `PMF.uniformOfFinset`.
Several small helper lemmas isolate technical arguments about supports,
coercions from `ℝ≥0∞`, and bounds on infinite sums, in order to keep the
main proofs readable.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor |
277/0 |
Mathlib.lean,Mathlib/Analysis/SpecialFunctions/Log/NegMulLog.lean,Mathlib/InformationTheory/Entropy.lean |
3 |
2 |
['github-actions'] |
sgouezel assignee:sgouezel |
1-35629 1 day ago |
8-69010 8 days ago |
8-69077 8 days |
| 34805 |
DavidLedvinka author:DavidLedvinka |
feat(Tactic): generalize ofScientific NormNum extension to `DivisionSemiring` |
Co-authored-by: @hrmacbeth |
t-meta |
65/14 |
Mathlib/Tactic/NormNum/Inv.lean,Mathlib/Tactic/NormNum/OfScientific.lean,MathlibTest/norm_num.lean |
3 |
1 |
['github-actions'] |
JovanGerb assignee:JovanGerb |
1-35628 1 day ago |
8-45186 8 days ago |
8-44868 8 days |
| 34809 |
YaelDillies author:YaelDillies |
feat: induced subgraphs of complete multipartite graphs are complete multipartite |
From ProofBench
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
4/2 |
Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean |
1 |
1 |
['github-actions'] |
b-mehta assignee:b-mehta |
1-35627 1 day ago |
8-48655 8 days ago |
8-48337 8 days |
| 34851 |
dennj author:dennj |
feat(Data/Matrix/Mul): add diagonal and transpose lemmas for vector operations |
This adds three lemmas for matrix-vector operations that serve as foundational support for future ML formalization:
- `vecMul_diagonal_dotProduct`: weighted inner product `x ᵥ* diagonal d ⬝ᵥ y = ∑ i, d i * x i * y i`
- `dotProduct_transpose_mulVec`: bilinear form symmetry `x ⬝ᵥ Aᵀ *ᵥ y = y ⬝ᵥ A *ᵥ x`
- `mul_diagonal_mulVec`: column-weighted sum `(A * diagonal d) *ᵥ x = ∑ i, (d i * x i) • A.col i`
These are basic linear algebra identities involving diagonal matrices and vector operations that appear frequently in machine learning contexts (weighted inner products, attention mechanisms, feature scaling, diagonal preconditioning). |
t-data
new-contributor
|
18/0 |
Mathlib/Data/Matrix/Mul.lean |
1 |
4 |
['eric-wieser', 'github-actions', 'themathqueen'] |
pechersky assignee:pechersky |
1-35626 1 day ago |
7-49291 7 days ago |
7-48973 7 days |
| 34858 |
wwylele author:wwylele |
feat(LinearAlgebra/AffineSpace): more lemma about simplex face and interior |
Some intermediate lemma towards #34826
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
maintainer-merge
label:t-algebra$ |
93/1 |
Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean |
1 |
5 |
['copilot-pull-request-reviewer', 'github-actions', 'jsm28'] |
dagurtomas assignee:dagurtomas |
1-35625 1 day ago |
4-63040 4 days ago |
7-34095 7 days |
| 34861 |
winstonyin author:winstonyin |
feat: shrink time and enlarge Lipschitz constant in `IsPicardLindelof` |
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
79/0 |
Mathlib/Analysis/ODE/PicardLindelof.lean,Mathlib/Topology/EMetricSpace/Lipschitz.lean |
2 |
2 |
['github-actions', 'joneugster'] |
urkud assignee:urkud |
1-35624 1 day ago |
7-28557 7 days ago |
7-28239 7 days |
| 34867 |
urkud author:urkud |
feat(FDeriv/Comp): migrate to TVS |
---
[](https://gitpod.io/from-referrer/)
- [x] depends on: #34832 |
t-analysis |
125/125 |
Mathlib/Analysis/Calculus/FDeriv/Comp.lean,Mathlib/Analysis/Calculus/FDeriv/ContinuousAlternatingMap.lean,Mathlib/Analysis/Calculus/FDeriv/Mul.lean |
3 |
10 |
['eric-wieser', 'github-actions', 'leanprover-radar', 'mathlib-dependent-issues', 'urkud'] |
j-loreaux assignee:j-loreaux |
1-35623 1 day ago |
7-7980 7 days ago |
7-7667 7 days |
| 34871 |
zhuyizheng author:zhuyizheng |
feat(Calculus): Taylor with integral remainder |
This PR proves Taylor's theorem with the integral remainder. It provides two versions:
1. based on $f^{(n)}$ is absolutely continuous
2. based on $f \in C^{(n+1)}$
It also weakens the hypotheses `(hx : x₀ < x)` to `(hx : x₀ ≠ x)` in the following theorems:
- `taylor_mean_remainder`
- `taylor_mean_remainder_lagrange`
- `taylor_mean_remainder_lagrange_iteratedDeriv`
- `taylor_mean_remainder_cauchy`
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-analysis
|
214/71 |
Mathlib/Analysis/Calculus/ContDiff/Deriv.lean,Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean,Mathlib/Analysis/Calculus/Taylor.lean,Mathlib/MeasureTheory/Function/AbsolutelyContinuous.lean,Mathlib/Probability/Moments/MGFAnalytic.lean,Mathlib/Topology/Algebra/InfiniteSum/TsumUniformlyOn.lean,docs/undergrad.yaml |
7 |
5 |
['Komyyy', 'b-mehta', 'github-actions', 'joneugster', 'zhuyizheng'] |
sgouezel assignee:sgouezel |
1-35621 1 day ago |
6-34190 6 days ago |
6-72683 6 days |
| 34875 |
banrovegrie author:banrovegrie |
feat(LinearAlgebra/Matrix): add Sherman-Morrison formula |
Mathlib has the matrix determinant lemma (`det_add_replicateCol_mul_replicateRow` in SchurComplement.lean) but lacked the corresponding inverse formula. This PR fills that gap.
- Add `Matrix.inv_add_vecMulVec`: Sherman-Morrison formula for `(A + uv^T)^{-1}`
- Add `Matrix.inv_sub_vecMulVec`: subtraction variant
- Add `Matrix.isUnit_det_add_vecMulVec`: invertibility under the formula's hypotheses
## Test plan
- [x] `lake build` passes
- [x] Lines within 100 char limit
- [x] All declarations have docstrings |
t-algebra
new-contributor
label:t-algebra$ |
135/0 |
Mathlib.lean,Mathlib/LinearAlgebra/Matrix/ShermanMorrison.lean |
2 |
10 |
['Xxxjdjdid', 'banrovegrie', 'copilot-pull-request-reviewer', 'eric-wieser', 'github-actions'] |
kim-em assignee:kim-em |
1-35620 1 day ago |
5-13818 5 days ago |
6-65954 6 days |
| 34909 |
SnirBroshi author:SnirBroshi |
feat(Data/Sym/Sym2): `fromRel` equivalence with `Sigma` over a `Quotient` |
Add a non-dependent recursor on members of a `fromRel` set, and the following `Equiv`s:
- The `fromRel` set of a symmetric relation `r` is equivalent to summing that set restricted to fibers of `f`.
- For a relation homomorphism `r →r r'` where `r` is symmetric, the `fromRel` set of `r` is equivalent to summing that set restricted to equivalence classes of `r'` using a `Subtype`.
---
I find this recursor pretty useful when dealing with `fromRel`, the idea came from a suggestion by @kmill [on Zulip](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Eq.2Erec.20with.20a.20constant.20does.20nothing.3A.20h.20.E2.96.B8.20c.20.3D.20c/near/565176948) for another `Sym2` conundrum.
[](https://gitpod.io/from-referrer/)
|
t-data |
45/0 |
Mathlib/Data/Sym/Sym2.lean |
1 |
7 |
['SnirBroshi', 'eric-wieser', 'github-actions'] |
pechersky assignee:pechersky |
1-35619 1 day ago |
5-34394 5 days ago |
5-85885 5 days |
| 34914 |
jvanwinden author:jvanwinden |
feat(Analysis/Normed/Module/FiniteDimension): add lemmas on IsTheta and summability |
IsTheta.summable_iff is a natural generalization of IsEquivalent.summable_iff. Some adjacent lemmas now become direct consequences.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
26/7 |
Mathlib/Analysis/Normed/Module/FiniteDimension.lean |
1 |
8 |
['github-actions', 'jvanwinden', 'vihdzp', 'wwylele'] |
urkud assignee:urkud |
1-35618 1 day ago |
4-60605 4 days ago |
5-71498 5 days |
| 34919 |
kebekus author:kebekus |
feat: singleton indicators as functions with locally finite support |
Establish indicator functions of singleton sets as functions with locally finite support, and compute the associated logarithmic counting functions.
This material is used in [Project VD](https://github.com/kebekus/ProjectVD), formalizing Value Distribution Theory for meromorphic functions on the complex plane. The formula established here is part of a larger package discussing the asymptotic behavior of counting and characteristic functions in Nevanlinna theory.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
94/0 |
Mathlib/Analysis/Complex/ValueDistribution/LogCounting/Basic.lean,Mathlib/Topology/LocallyFinsupp.lean |
2 |
3 |
['github-actions', 'joneugster', 'kebekus'] |
j-loreaux assignee:j-loreaux |
1-35617 1 day ago |
5-69737 5 days ago |
5-69419 5 days |
| 34931 |
eric-wieser author:eric-wieser |
perf: make TensorProduct.lift irreducible with a unification hint |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
6/2 |
Mathlib/LinearAlgebra/TensorProduct/Basic.lean |
1 |
6 |
['eric-wieser', 'github-actions', 'leanprover-radar'] |
erdOne assignee:erdOne |
1-35615 1 day ago |
5-36941 5 days ago |
5-36623 5 days |
| 34943 |
rao107 author:rao107 |
chore(Probability): Eliminate non-terminal simp |
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
new-contributor
easy
|
2/3 |
Mathlib/Probability/Distributions/Exponential.lean |
1 |
2 |
['github-actions', 'rao107'] |
sgouezel assignee:sgouezel |
1-35614 1 day ago |
5-13947 5 days ago |
5-13629 5 days |
| 34953 |
kbuzzard author:kbuzzard |
feat(Data/ENNReal/Basic): ∞ prettyprints as ∞ |
Right now we are consistently using `∞` in our lemma statements about `ℝ≥0∞` and they are consistently being pretty-printed as `⊤`. This changes makes them prettyprint as `∞`. Note however that they are still being referred to as `⊤` in lemma names, which might make this change controversial.
---
[](https://gitpod.io/from-referrer/)
My motivation is that I want to show mathematicians mathlib code corresponding to their work and say "look, it's your theorem in digitised form and you can kind of read it" but mathematicians typically don't know what `⊤` means. |
t-data |
3/1 |
Mathlib/Data/ENNReal/Basic.lean |
1 |
1 |
['github-actions'] |
joneugster assignee:joneugster |
1-35613 1 day ago |
4-64642 4 days ago |
4-64324 4 days |
| 34742 |
Brian-Nugent author:Brian-Nugent |
feat(SheafCohomology): add API for Sheaf Cohomology |
Defines the long exact sequence on cohomology associated to a short exact sequence of sheaves `H.longSequence`. Also defines `H.equiv₀`, the additive equivalence between `H F 0` and `((sheafSections J AddCommGrpCat).obj (op T)).obj F` when the category has a terminal object `T`.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
large-import
t-category-theory
|
76/0 |
Mathlib/Algebra/Category/Grp/ForgetCorepresentable.lean,Mathlib/CategoryTheory/Sites/SheafCohomology/Basic.lean |
2 |
11 |
['Brian-Nugent', 'adamtopaz', 'github-actions', 'joneugster'] |
adamtopaz assignee:adamtopaz |
1-32906 1 day ago |
1-32245 1 day ago |
9-29827 9 days |
| 35111 |
kim-em author:kim-em |
chore(Order/Hom/Basic): remove unused OrderDual instances |
This PR removes `OrderHomClass.toOrderHomClassOrderDual` and `OrderIsoClass.toOrderIsoClassOrderDual`. These instances are unused throughout mathlib.
These instances also require hacky local instances to work under https://github.com/leanprover/lean4/pull/12286. If they are both unused and unwanted, it is simpler to delete them on master rather than working around the issue.
🤖 Prepared with Claude Code |
t-order |
0/10 |
Mathlib/Order/Hom/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
1-30782 1 day ago |
1-27632 1 day ago |
1-27314 1 day |
| 34159 |
wangying11123 author:wangying11123 |
feat(Geometry/Euclidean/Similarity): Add Triangle similarity on oangle |
Add theorems about triangles similarity on oangle |
t-euclidean-geometry
new-contributor
|
154/1 |
Mathlib/Geometry/Euclidean/Similarity.lean |
1 |
5 |
['LLaurance', 'github-actions', 'wangying11123'] |
jsm28 assignee:jsm28 |
1-27534 1 day ago |
1-26871 1 day ago |
7-2077 7 days |
| 34640 |
vihdzp author:vihdzp |
chore(Order/UpperLower/Basic): use `to_dual` |
---
- [x] depends on: #33964
[](https://gitpod.io/from-referrer/)
|
t-order |
27/78 |
Mathlib/Order/Interval/Set/LinearOrder.lean,Mathlib/Order/Interval/Set/OrderEmbedding.lean,Mathlib/Order/UpperLower/Basic.lean,Mathlib/Order/WellFounded.lean |
4 |
9 |
['JovanGerb', 'Komyyy', 'github-actions', 'mathlib-dependent-issues', 'vihdzp'] |
nobody |
1-26908 1 day ago |
1-35389 1 day ago |
4-74500 4 days |
| 34970 |
Komyyy author:Komyyy |
perf: modulize tests (1/N) |
---
Privately imports are intentional.
[](https://gitpod.io/from-referrer/)
|
CI |
14/0 |
MathlibTest/Algebra/Module/LocalizedModule.lean,MathlibTest/CategoryTheory/ConcreteCategory/Alg.lean,MathlibTest/CategoryTheory/ConcreteCategory/ProfiniteGrp.lean,MathlibTest/Deriv.lean,MathlibTest/FinCoercions.lean,MathlibTest/LibrarySearch/mathlib.lean,MathlibTest/LibrarySearch/star.lean,MathlibTest/TCSynth.lean,MathlibTest/instances/CommRing_integralClosure.lean,MathlibTest/instances/LawfulOfScientific.lean,MathlibTest/instances/Ring_finiteness.lean,MathlibTest/interactiveUnfold.lean,MathlibTest/simp_confluence.lean,MathlibTest/slow_instances.lean |
14 |
1 |
['github-actions'] |
nobody |
1-24735 1 day ago |
4-9379 4 days ago |
4-9061 4 days |
| 35097 |
pevogam author:pevogam |
feat: add a LE version Rat.lt_one_iff_num_le_denom theorem |
The following is more useful due to the partial order application of LE in comparison to LT.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
2/0 |
Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean |
1 |
4 |
['github-actions', 'pevogam', 'wwylele'] |
nobody |
1-11161 1 day ago |
1-8511 1 day ago |
1-46770 1 day |
| 35058 |
GrigorenkoPV author:GrigorenkoPV |
chore: move tendsto_{floor,ceil}_at{Top,Bot} |
Moves:
- Topology.Algebra.Order.Floor.tendsto_floor_atTop -> Order.Filter.AtTopBot.Floor.tendsto_floor_atTop
- Topology.Algebra.Order.Floor.tendsto_floor_atBot -> Order.Filter.AtTopBot.Floor.tendsto_floor_atBot
- Topology.Algebra.Order.Floor.tendsto_ceil_atTop -> Order.Filter.AtTopBot.Floor.tendsto_ceil_atTop
- Topology.Algebra.Order.Floor.tendsto_ceil_atBot -> Order.Filter.AtTopBot.Floor.tendsto_ceil_atBot
---
Tracked in #7987
[](https://gitpod.io/from-referrer/)
|
new-contributor
large-import
|
22/25 |
Mathlib/Order/Filter/AtTopBot/Floor.lean,Mathlib/Topology/Algebra/Order/Floor.lean |
2 |
1 |
['github-actions'] |
nobody |
1-3724 1 day ago |
1-3724 1 day ago |
1-3406 1 day |
| 33757 |
fpvandoorn author:fpvandoorn |
feat: classical "decidability" instances on sets and ideals |
* Add decidable equality instances for `Set X`, `Submodule R M` (which also gives it for `Ideal R`) and `Associates (Ideal R)`.
* This allows one to remove such decidability arguments from lemmas.
* There was one place where we used an explicit decidability argument to compute an explicit fintype-instance to construct the unique element of some type.
This is now replaced by giving the element explicitly.
---
This was motivated by seeing some code from @mariainesdff's repos with such decidability arguments. @mariainesdff, do you think this PR would make your code a bit nicer?
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-data
|
69/33 |
Mathlib/Algebra/Module/DedekindDomain.lean,Mathlib/Algebra/Module/PID.lean,Mathlib/Algebra/Module/Submodule/Defs.lean,Mathlib/Data/Set/Basic.lean,Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Card.lean,Mathlib/Logic/Basic.lean,Mathlib/MeasureTheory/SetSemiring.lean,Mathlib/NumberTheory/RamificationInertia/Basic.lean,Mathlib/Order/PartialSups.lean,Mathlib/RingTheory/DedekindDomain/Factorization.lean,Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean,Mathlib/RingTheory/Ideal/Basic.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Invariant/Basic.lean,Mathlib/RingTheory/Lasker.lean,Mathlib/RingTheory/Valuation/ValuationRing.lean |
16 |
13 |
['erdOne', 'fpvandoorn', 'github-actions', 'mathlib4-merge-conflict-bot', 'plp127', 'vihdzp'] |
nobody |
1-3712 1 day ago |
1-3045 1 day ago |
9-78458 9 days |
| 34295 |
Yu-Misaka author:Yu-Misaka |
chore: drop `PartialOrder` in `IsOrderedMonoid` instances |
This PR attempts to remove `PartialOrder` assumption in `IsOrderedMonoid`. The main objective is to make [Finsupp.sum_le_sum](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finsupp/Order.html#Finsupp.sum_le_sum) available for preorder.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor |
149/123 |
Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Algebra/Group/Subgroup/Order.lean,Mathlib/Algebra/Order/AddTorsor.lean,Mathlib/Algebra/Order/BigOperators/Group/Finset.lean,Mathlib/Algebra/Order/BigOperators/Group/List.lean,Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean,Mathlib/Algebra/Order/Group/Defs.lean,Mathlib/Algebra/Order/Group/Units.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/Hom/Monoid.lean,Mathlib/Algebra/Order/Interval/Basic.lean,Mathlib/Algebra/Order/Monoid/Associated.lean,Mathlib/Algebra/Order/Monoid/Basic.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/Submonoid.lean,Mathlib/Algebra/Order/Monoid/TypeTags.lean,Mathlib/Algebra/Order/Monovary.lean,Mathlib/Algebra/Order/Pi.lean,Mathlib/Algebra/Order/UpperLower.lean,Mathlib/Analysis/Normed/Order/UpperLower.lean,Mathlib/Data/Finsupp/Order.lean,Mathlib/MeasureTheory/Function/SimpleFunc.lean,Mathlib/Order/Filter/AtTopBot/Monoid.lean,Mathlib/Order/Filter/Germ/OrderedMonoid.lean,Mathlib/Order/Filter/IsBounded.lean,Mathlib/Order/Filter/Pointwise.lean,Mathlib/Tactic/Positivity/Finset.lean,Mathlib/Topology/Algebra/InfiniteSum/Order.lean,Mathlib/Topology/Algebra/Order/UpperLower.lean |
32 |
14 |
['Citronhat', 'Yu-Misaka', 'copilot-pull-request-reviewer', 'github-actions', 'leanprover-radar'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
1-1593 1 day ago |
0-84559 23 hours ago |
19-59417 19 days |
| 34780 |
MichaelStollBayreuth author:MichaelStollBayreuth |
feat(NumberTheory/Height/Projectivization): new file |
This adds a new file "Mathlib.NumberTheory.Height.Projectivization", which (for now) contains the definition of the multiplicative and logarithmic heights of points in projective space and basic properties of these.
The PR also contains extensions for the `positivity` tactic so that it knows that multiplicative heights are positive and logarithmic heights are nonnegative.
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
t-meta
|
103/4 |
Mathlib.lean,Mathlib/NumberTheory/Height/Basic.lean,Mathlib/NumberTheory/Height/Projectivization.lean |
3 |
8 |
['MichaelStollBayreuth', 'Vierkantor', 'github-actions', 'joneugster', 'mathlib-merge-conflicts'] |
jcommelin assignee:jcommelin |
1-540 1 day ago |
4-75488 4 days ago |
8-58471 8 days |
| 35087 |
kebekus author:kebekus |
feat: improve mean value theorems of complex analysis |
Implement improvements in the mean value theorems of complex analysis, as suggested by Mihai Iancu and Sebastian Schleißinger.
- Remove unnecessary assumptions that can be deduced from the other assumptions.
- Weaken and simplify assumptions, use `DiffContOnCl` now.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
42/38 |
Mathlib/Analysis/Complex/Harmonic/MeanValue.lean,Mathlib/Analysis/Complex/MeanValue.lean |
2 |
6 |
['github-actions', 'kebekus', 'sgouezel'] |
nobody |
0-84604 23 hours ago |
0-83955 23 hours ago |
1-16793 1 day |
| 34863 |
JovanGerb author:JovanGerb |
feat(to_dual): support recursively reordering arguments |
This PR implements the feature of recursively reordering arguments of arguments in `to_dual`. All of the material on reorderings has been put in the new file `Mathlib.Tactic.Translate.Reorder`.
Ideally, when tagging a structure with `to_dual`, it will try to automatically add the correct `reorder` arguments. But this is only a small quality of life improvement, so I will leave that for a potential future PR. Currently, you have to manually re-tag the projections and constructor if you want them to get a `reorder`.
This PR also improves the trace messages of `trace.translate_detail`.
This PR also adds new error messages for when the given `(reorder := ...)` is malformed.
---
[](https://gitpod.io/from-referrer/)
|
|
569/369 |
Mathlib.lean,Mathlib/CategoryTheory/Iso.lean,Mathlib/Order/Basic.lean,Mathlib/Order/BoundedOrder/Basic.lean,Mathlib/Order/Defs/PartialOrder.lean,Mathlib/Order/Hom/Basic.lean,Mathlib/Order/Lattice.lean,Mathlib/Tactic.lean,Mathlib/Tactic/ToDual.lean,Mathlib/Tactic/Translate/Core.lean,Mathlib/Tactic/Translate/Reorder.lean,MathlibTest/ToDual.lean,MathlibTest/toAdditive.lean |
13 |
2 |
['bryangingechen', 'github-actions'] |
bryangingechen assignee:bryangingechen |
0-82296 22 hours ago |
1-56957 1 day ago |
1-67586 1 day |
| 35017 |
robo7179 author:robo7179 |
feat(Combinatorics/SimpleGraph/Acyclic): add every nontrivial tree has atleast two leaves |
Added two theorems to prove that every non trivial tree has atleast two leaves (one in Finite the other in Acyclic).
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
163/0 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Finite.lean |
2 |
2 |
['github-actions'] |
nobody |
0-81534 22 hours ago |
1-57199 1 day ago |
1-58141 1 day |
| 34330 |
MichaelStollBayreuth author:MichaelStollBayreuth |
feat(NumberTheory/Height/Basic): add bounds for sums |
The main purpose of this PR (no. 3 in the series on heights) is to state and prove bounds for the height of `x + y` and for the height of a finite sum of field elements.
---
This includes `positivity` extensions for multiplicative and logarithmic heights (split off into a separate PR) and some API additions (split off into another separate PR).
- [x] depends on: #34533 (API additions for `Multiset.prod_map` and `finprod`)
- [x] depends on: #34534 (`positivity` extensions)
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory |
152/11 |
Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean,Mathlib/NumberTheory/Height/Basic.lean |
2 |
20 |
['AntoineChambert-Loir', 'MichaelStollBayreuth', 'github-actions', 'jcommelin', 'leanprover-radar', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
jcommelin assignee:jcommelin |
0-79025 21 hours ago |
0-78286 21 hours ago |
16-1091 16 days |
| 35106 |
tb65536 author:tb65536 |
feat(AlgebraicGeometry/IdealSheaf/IrreducibleComponent): subscheme structure on an irreducible component |
This PR defines the subscheme structure on an irreducible component of a Noetherian scheme. See the module docstring for more details on this.
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry |
87/0 |
Mathlib.lean,Mathlib/AlgebraicGeometry/IdealSheaf/IrreducibleComponent.lean |
2 |
3 |
['erdOne', 'github-actions', 'tb65536'] |
nobody |
0-77210 21 hours ago |
0-76565 21 hours ago |
1-33241 1 day |
| 34838 |
mkaratarakis author:mkaratarakis |
feat: lemmas for the analytic part of the proof of the Gelfond–Schneider theorem (Part 2/4) |
---
Required for https://github.com/leanprover-community/mathlib4/pull/33050
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
13/0 |
Mathlib/Analysis/Analytic/Order.lean |
1 |
1 |
['github-actions'] |
sgouezel assignee:sgouezel |
0-77047 21 hours ago |
0-76227 21 hours ago |
7-74468 7 days |
| 33860 |
DavidLedvinka author:DavidLedvinka |
feat(Probability): Add Cauchy distribution |
|
t-measure-probability
maintainer-merge
|
141/0 |
Mathlib.lean,Mathlib/Probability/Distributions/Cauchy.lean |
2 |
11 |
['DavidLedvinka', 'EtienneC30', 'github-actions', 'sgouezel'] |
nobody |
0-75973 21 hours ago |
0-75165 20 hours ago |
30-72878 30 days |
| 35029 |
homeowmorphism author:homeowmorphism |
feat(Algebra/Group/Subgroup/Basic): the normal closure of an empty set is the trivial subgroup |
feat(Algebra/Group/Subgroup/Basic): the normal closure of an empty set is the trivial subgroup.
This is a dependency of a larger PR to formalize finitely presented groups https://github.com/leanprover-community/mathlib4/pull/34236.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
7/0 |
Mathlib/Algebra/Group/Subgroup/Basic.lean |
1 |
5 |
['copilot-pull-request-reviewer', 'github-actions', 'homeowmorphism', 'plp127'] |
nobody |
0-74726 20 hours ago |
0-73735 20 hours ago |
2-64435 2 days |
| 35131 |
JovanGerb author:JovanGerb |
perf(to_dual): first try translating without inserting casts |
This PR addresses the performance regression introduced by #32438. The problem is that deciding where casts need to be inserted is an expensive operation (similarly expensive to kernel type checking). I expect that in category theory this will be particularly significant.
Most uses of `to_dual` don't need any casts to be inserted at all. So, it is more efficient to simply first try translating without inserting casts. And if that fails, we insert casts and then try again.
So after this PR, in the failure case, `to_dual` will check the term 4 times:
- first try the translation without casts
- then determine where casts should go
- then try the translation of this
- then use `Meta.check` to get a nicer error message.
This is OK, since the failure case is not the performance critical case.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
60/47 |
Mathlib/Tactic/Translate/Core.lean,Mathlib/Tactic/Translate/UnfoldBoundary.lean,MathlibTest/ToDual.lean |
3 |
3 |
['JovanGerb', 'github-actions', 'leanprover-radar'] |
nobody |
0-74426 20 hours ago |
0-73203 20 hours ago |
0-72885 20 hours |
| 35121 |
joelriou author:joelriou |
feat(CategoryTheory/Sites/Point): points of `Over` sites |
Given a point `Φ` of a site `(C, J)`, an object `X : C`, and `x : Φ.fiber.obj X`, we define a point `Φ.over x` of the site `(Over X, J.over X)`.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
large-import
|
151/1 |
Mathlib.lean,Mathlib/CategoryTheory/Comma/Over/Basic.lean,Mathlib/CategoryTheory/Functor/TypeValuedFlat.lean,Mathlib/CategoryTheory/Limits/Final.lean,Mathlib/CategoryTheory/Limits/FinallySmall.lean,Mathlib/CategoryTheory/Sites/Point/Over.lean |
6 |
1 |
['github-actions'] |
nobody |
0-73574 20 hours ago |
0-72217 19 hours ago |
0-71899 19 hours |
| 35122 |
Marygold-Dusk author:Marygold-Dusk |
feat: define C^n submersions |
This PR defines submersions between C^n manifolds. In the infinite-dimensional setting, submersions are defined via local normal forms rather than surjectivity of the mfderiv. A map f is a submersion at x if, in suitable charts around x and f x, it has the form (u, v) ↦ u after identifying the model space with a product.
We prove a few basic properties:
- being a submersion is a local property,
- products of submersions are submersions,
- the set of submersed points is open
Future PRs will prove that submersions are C^n and deduce equivalence with the standard definition in finite dimensions. From the path towards the regular value theorem.
This file was developed under the supervision of Michael Rothgang.
Co-authored-by: Michael Rothgang
---
Most of the design is analogues to submersions.
|
t-differential-geometry
new-contributor
|
596/0 |
Mathlib.lean,Mathlib/Geometry/Manifold/Submersion.lean |
2 |
2 |
['github-actions'] |
grunweg assignee:grunweg |
0-72051 20 hours ago |
0-71428 19 hours ago |
0-72102 20 hours |
| 35135 |
Rida-Hamadani author:Rida-Hamadani |
feat(List): permutations preserve maximum |
and minimum.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
14/0 |
Mathlib/Data/List/MinMax.lean |
1 |
1 |
['github-actions'] |
nobody |
0-70768 19 hours ago |
0-67938 18 hours ago |
0-67620 18 hours |
| 35132 |
justus-springer author:justus-springer |
feat(Algebra/Polynomial/Lifts): Add `mem_lifts_and_support_eq` |
`mem_lifts_and_degree_eq` was already proving the more general statement, so I extracted the proof. I need this for #34877.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
22/13 |
Mathlib/Algebra/Polynomial/Lifts.lean,Mathlib/RingTheory/Polynomial/Resultant/Basic.lean |
2 |
5 |
['github-actions', 'justus-springer', 'tb65536'] |
nobody |
0-69273 19 hours ago |
0-67818 18 hours ago |
0-72556 20 hours |
| 34944 |
jessealama author:jessealama |
feat(Algebra/Ring/NegOnePow): add negOnePow ↔ natAbs bridge lemmas |
Adds `Int.cast_negOnePow_eq_neg_one_pow_natAbs` (for any `Ring R`) and its `ℤ` specialization `Int.coe_negOnePow_eq_neg_one_pow_natAbs`, relating `negOnePow n` to `(-1) ^ n.natAbs`.
The file already has [`cast_negOnePow_natCast`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Ring/NegOnePow.html#Int.cast_negOnePow_natCast) for `n : ℕ` but nothing for general integers via `natAbs`. |
t-algebra label:t-algebra$ |
14/2 |
Mathlib/Algebra/Ring/NegOnePow.lean,Mathlib/Analysis/Analytic/Binomial.lean |
2 |
1 |
['github-actions'] |
nobody |
0-68220 18 hours ago |
0-66679 18 hours ago |
2-79226 2 days |
| 35134 |
fpvandoorn author:fpvandoorn |
feat(translate): print constant names with hover info |
Part of #34846.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
46/28 |
Mathlib/Tactic/Translate/Core.lean,MathlibTest/toAdditive.lean |
2 |
5 |
['JovanGerb', 'github-actions'] |
nobody |
0-67518 18 hours ago |
0-69237 19 hours ago |
0-68919 19 hours |
| 35140 |
joelriou author:joelriou |
feat(CategoryTheory/Limits): terminal object in functor categories |
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
52/0 |
Mathlib.lean,Mathlib/CategoryTheory/Limits/FunctorCategory/Shapes/Terminal.lean |
2 |
1 |
['github-actions'] |
nobody |
0-65155 18 hours ago |
0-64515 17 hours ago |
0-64197 17 hours |
| 32440 |
thorimur author:thorimur |
feat: make the `unusedInstancesInType` linters fire when instances are not used outside of proofs in the type |
This PR adjusts the `unusedDecidableInType` to prevent false negatives on declarations that only use `Decidable*` hypotheses in proofs that appear in the type. That is, the linter now fires when the `Decidable*` linter is unused outside of proofs.
This PR also changes the warning message to be more direct, and indicates when the instance appears only in a proof (vs. not appearing at all).
We exempt some deprecated lemmas in `Mathlib.Analysis.Order.Matrix` which the linter now fires on. (Presumably, most prior violations had been cleaned up by #10235, which also detected such lemmas.)
Note that this took some tinkering to achieve sufficient performance. We use the following novel(?) "dolorous telescope" strategy (so named due to introducing `sorry`s) to avoid traversing the whole type:
- when encountering an instance binder of concern, telescope to create an fvar.
- when encountering any other binder, instantiate it with `sorry`.
- as we proceed, collect the free variables from these expressions which do not appear in proofs. Since the instances of concern are the only free variables, free variable collection avoids traversing many subexpressions by checking for `hasFVar`, which is a computed field accessible in constant time.
Perhaps surprisingly, this is (on net) more performant than using `eraseProofs` and then detecting dependence via bvars.
We also implement an `Expr`-level early exit for most types by checking if they bind any instance of concern first. (This adds a very small overhead to types which *do* have an instance of concern, but the check is very fast.)
This also adds a profiler category to this linter.
Note: we still have yet to optimize (pre)-infotree traversal performance, and have yet to avoid proofs that appear in the value of definitions. However, this PR sets us up to do so.
---
- [ ] depends on: #35102
---
## Notes on performance
You might be wondering if this *is* actually a faster strategy, seeing as the bench is quite noisy. To determine this, I made a copy of the linter which I could vary without rebuilding mathlib, and profiled the relevant component locally on all imported declarations in Mathlib by linting the `eoi` token:
```lean
module
public meta import Lean
public import Mathlib.Tactic.Linter.UnusedInstancesInTypeCopy
import all Mathlib.Tactic.Linter.UnusedInstancesInTypeCopy
open Lean Meta Elab Term Command Mathlib.Linter.UnusedInstancesInType
meta section
local instance : Insert Name NameSet where
insert := fun n s => s.insert n
def runCopy : Linter where run stx := do
if stx.isOfKind ``Parser.Command.eoi then
let opts := (← getOptions).setBool `profiler true
let consts := (← getEnv).constants.map₁
-- The following expose private decls in their types, so break `MetaM` methods:
let badRecs : NameSet := {`IO.Promise.casesOn, `IO.Promise.recOn, `IO.Promise.rec}
profileitM Exception "control" opts do
for (n,_) in consts do
liftTermElabM do unless n.isInternalDetail || badRecs.contains n do pure ()
profileitM Exception "bench" opts do
for (n,cinfo) in consts do
unless n.isInternalDetail || badRecs.contains n do
cinfo.toConstantVal.onUnusedInstancesInTypeWhere isDecidableVariant
fun _ _ => pure ()
initialize addLinter runCopy
```
(This could have been done in a `run_cmd`, but I wanted to replicate the circumstances of linting as closely as possible, just in case it introduced mysterious async effects.)
Then, in a separate file, I imported `Mathlib` and the above linter, and cycled through reading out the result and editing the underlying component then rebuilding. The control was reliably ~1.07-1.12s. The different strategies came out as follows (the following values are not averaged, but are representative):
| | without early exit | with early exit |
| ---: | :---: | :---: |
| `eraseProofs` | 97.4s | 6.82s |
| dolorous telescope | 20.3s | 3.99s |
As you can see, the early exit cuts the absolute value (and therefore the absolute difference) down dramatically. But seeing as this lays the groundwork for linting defs and will be used for more linters (with wider scopes, and less early exit opportunities), I think we should opt for the more performant version even though there's some extra complexity. :)
[](https://gitpod.io/from-referrer/)
|
t-linter |
286/92 |
Mathlib/Algebra/Module/ZLattice/Covolume.lean,Mathlib/Analysis/BoxIntegral/UnitPartition.lean,Mathlib/Analysis/InnerProductSpace/PiL2.lean,Mathlib/Analysis/Matrix/Order.lean,Mathlib/Lean/Expr/Basic.lean,Mathlib/LinearAlgebra/Matrix/ToLin.lean,Mathlib/LinearAlgebra/Multilinear/Basis.lean,Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean,Mathlib/RingTheory/TensorProduct/IsBaseChangeHom.lean,Mathlib/Tactic/Linter/UnusedInstancesInType.lean,Mathlib/Topology/Algebra/Module/FiniteDimension.lean,MathlibTest/UnusedInstancesInType/Basic.lean,MathlibTest/UnusedInstancesInType/Decidable.lean,MathlibTest/UnusedInstancesInType/Fintype.lean,MathlibTest/UnusedInstancesInType/FintypeNeedingImport.lean,MathlibTest/UnusedInstancesInType/SetOption.lean |
16 |
36 |
['github-actions', 'grunweg', 'joneugster', 'leanprover-radar', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'thorimur'] |
joneugster assignee:joneugster |
0-64261 17 hours ago |
0-64348 17 hours ago |
33-33784 33 days |
| 35032 |
harahu author:harahu |
docs(CategoryTheory/Bicategory/Adjunction): fix typos and update docs |
Fix documentation issues across the `Bicategory/Adjunction` files:
- **Adj.lean**: Fix plural ("isomorphisms" → "isomorphism") in `lIso`/`rIso` docstrings.
- **Basic.lean**: Use correct fully qualified names (`Bicategory.Equivalence.mkOfAdjointifyCounit`, `Adjunction.comp`), replace stale `f⁺`/`f⁺⁺` notation with `leftAdjoint f`/`rightAdjoint f`, and fix a parameter name reference in
`IsRightAdjoint`.
- **Mate.lean**: Fix capitalisation of variable names in a diagram (`L₂`/`R₂` → `l₂`/`r₂`), correct a swapped diagram in `iteratedMateEquiv`, fix a dangling reference (`Conjugate_iso` → `conjugateEquiv_iso`), improve the `conjugateEquiv`
docstring, and fix several grammar issues ("a squares" → "a square", "Squares of squares" → "A square of squares").
---
The issues were found and fixed by Codex.
[](https://gitpod.io/from-referrer/)
|
|
23/21 |
Mathlib/CategoryTheory/Bicategory/Adjunction/Adj.lean,Mathlib/CategoryTheory/Bicategory/Adjunction/Basic.lean,Mathlib/CategoryTheory/Bicategory/Adjunction/Mate.lean |
3 |
1 |
['github-actions'] |
nobody |
0-63761 17 hours ago |
0-63761 17 hours ago |
0-63443 17 hours |
| 35046 |
j-loreaux author:j-loreaux |
feat: define `ConditionallyCompletePartialOrder` |
This file defines *conditionally complete partial orders* with suprema, infima or both. These are partial orders where every nonempty, upwards (downwards) directed set which is bounded above (below) has a least upper bound (greatest lower bound). This class extends `SupSet` (`InfSet`) and the requirement is that `sSup` (`sInf`) must be the least upper bound.
The three classes defined herein are:
+ `ConditionallyCompletePartialOrderSup` for partial orders with suprema,
+ `ConditionallyCompletePartialOrderInf` for partial orders with infima, and
+ `ConditionallyCompletePartialOrder` for partial orders with both suprema and infima
One common use case for these classes is the order on a von Neumann algebra, or W⋆-algebra. This is the strongest order-theoretic structure satisfied by a von Neumann algebra; in particular it is *not* a conditionally complete *lattice*, and indeed it is a lattice if and only if the algebra is commutative. In addition, `ℂ` can be made to satisfy this class (one must provide a suitable `SupSet` instance), with the order `w ≤ z ↔ w.re ≤ z.re ∧ w.im = z.im`, which is available in the `ComplexOrder` namespace.
These use cases are the motivation for defining three classes, as compared with other parts of the order theory library, where only the supremum versions are defined (e.g., `CompletePartialOrder` and `OmegaCompletePartialOrder`). We note that, if these classes are used outside of order theory, then it is more likely that the infimum versions would be useful. Indeed, whenever the underlying type has an antitone involution (e.g., if it is an ordered ring, then negation would be such a map), then any `ConditionallyCompletePartialOrder{Sup,Inf}` is automatically a `ConditionallyCompletePartialOrder`. Because of the `to_dual` attribute, the additional overhead required to add and maintain the infimum version is minimal.
---
In a follow-up PR, we provide a more robust API and generalize some lemmas from `ConditionallyCompleteLattice` to `ConditionallyCompletePartialOrder{Sup,Inf}`.
[](https://gitpod.io/from-referrer/)
|
t-order |
99/0 |
Mathlib.lean,Mathlib/Order/ConditionallyCompletePartialOrder/Defs.lean |
2 |
5 |
['b-mehta', 'github-actions', 'j-loreaux'] |
nobody |
0-62842 17 hours ago |
0-62172 17 hours ago |
2-53771 2 days |
| 34108 |
elazarg author:elazarg |
feat(InformationTheory/Coding): Kraft-McMillan inequality for uniquely decodable codes |
This PR introduces the basic definition of uniquely decodable codes and proves the [Kraft-McMillan inequality](https://en.wikipedia.org/wiki/Kraft%E2%80%93McMillan_inequality), a fundamental result in noiseless coding theory.
The results live in the `InformationTheory` namespace, in the directory `InformationTheory/Coding`.
#### Main definitions
* `InformationTheory.UniquelyDecodable`:
a set of codewords is uniquely decodable if concatenation is injective on
finite lists of codewords.
#### Main results
* `InformationTheory.kraft_mcmillan_inequality`:
for any finite uniquely decodable code `S` over an alphabet of size `D`, $\sum_{w \in S} D^{-|w|} \le 1.$
* `InformationTheory.UniquelyDecodable.epsilon_not_mem`:
uniquely decodable codes cannot contain the empty string.
|
t-measure-probability
new-contributor
|
240/0 |
Mathlib.lean,Mathlib/Data/Fintype/BigOperators.lean,Mathlib/InformationTheory/Coding/KraftMcMillan.lean,Mathlib/InformationTheory/Coding/UniquelyDecodable.lean |
4 |
50 |
['YuvalFilmus', 'dupuisf', 'elazarg', 'github-actions', 'metakunt', 'vlad902'] |
dupuisf assignee:dupuisf |
0-59923 16 hours ago |
1-36774 1 day ago |
11-62587 11 days |
| 34315 |
LessnessRandomness author:LessnessRandomness |
feat(Combinatorics/SimpleGraph/Bipartite): Prove upper bound of edge set cardinality of bipartite graph |
Two ways to express upper bound of the edge set of bipartite graph:
1) If the cardinalities of both parts/sets, that make bipartite graph, are known, then the upper bound is equal to product of the cardinalities of both parts;
2) Four times of the cardinality of the edge set is less or equal to squared cardinality of vertex set.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
54/0 |
Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Data/Sym/Sym2.lean |
2 |
50 |
['LessnessRandomness', 'SnirBroshi', 'b-mehta', 'github-actions', 'vlad902'] |
awainverse assignee:awainverse |
0-55164 15 hours ago |
15-80095 15 days ago |
17-72437 17 days |
| 35147 |
euprunin author:euprunin |
chore(RingTheory/RingHom/Locally): rename `locally_StableUnderComposition…` to `locally_stableUnderComposition…` |
---
As suggested by @alreadydone in https://github.com/leanprover-community/mathlib4/pull/33675#discussion_r2782092590.
---
[](https://gitpod.io/from-referrer/)
|
|
16/7 |
Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean,Mathlib/RingTheory/RingHom/Locally.lean |
2 |
1 |
['github-actions'] |
nobody |
0-52736 14 hours ago |
0-51975 14 hours ago |
0-51657 14 hours |
| 34493 |
loefflerd author:loefflerd |
feat(LinearAlgebra/QuadraticForm): radical of a quadratic form |
Define the radical of a quadratic form, and show that its dimension is invariant under equivalences.
---
This is a step on the way to Sylvester's law of inertia (#34204).
- [x] depends on: #34110
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
248/4 |
Mathlib.lean,Mathlib/LinearAlgebra/Basis/Basic.lean,Mathlib/LinearAlgebra/Dimension/Constructions.lean,Mathlib/LinearAlgebra/LinearIndependent/Defs.lean,Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean,Mathlib/LinearAlgebra/QuadraticForm/IsometryEquiv.lean,Mathlib/LinearAlgebra/QuadraticForm/Radical.lean,Mathlib/LinearAlgebra/StdBasis.lean,docs/references.bib |
9 |
3 |
['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot'] |
dagurtomas assignee:dagurtomas |
0-52299 14 hours ago |
0-50239 13 hours ago |
14-57925 14 days |
| 34400 |
euprunin author:euprunin |
chore: golf using `grind` and add `grind` annotation |
---
The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (shown if ≥10 ms before or after):
* ~~`MulAction.set_mem_fixedBy_of_movedBy_subset`: <10 ms before, 54 ms after~~
* `SubMulAction.ofStabilizer.isMultiplyPretransitive`: 207 ms before, 232 ms after
This golfing PR is batched under the following guidelines:
* Up to ~5 changed files per PR
* Up to ~25 changed declarations per PR
* Up to ~100 changed lines per PR
---
[](https://gitpod.io/from-referrer/)
|
t-group-theory |
4/14 |
Mathlib/GroupTheory/GroupAction/Defs.lean,Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean |
2 |
6 |
['euprunin', 'github-actions', 'leanprover-radar', 'mattrobball', 'tb65536', 'vihdzp'] |
mattrobball assignee:mattrobball |
0-52226 14 hours ago |
0-51741 14 hours ago |
14-60756 14 days |
| 35137 |
JovanGerb author:JovanGerb |
chore(Logic/IsEmpty): split file into `Defs` and `Basic` |
This PR decreases the imports of the `congr!` and `convert` tactics by splitting `Mathlib.Logic.IsEmpty` into a `Defs` and a `Basic` file. Then, these tactics can import the `Defs` file which itself only imports `Mathlib.Init`. This reduces the longest pole.
---
[](https://gitpod.io/from-referrer/)
|
large-import |
287/252 |
Mathlib.lean,Mathlib/Data/Int/Basic.lean,Mathlib/Data/List/Forall2.lean,Mathlib/Data/Option/Basic.lean,Mathlib/Data/Seq/Computation.lean,Mathlib/Lean/Meta/CongrTheorems.lean,Mathlib/Logic/IsEmpty.lean,Mathlib/Logic/IsEmpty/Basic.lean,Mathlib/Logic/IsEmpty/Defs.lean,Mathlib/Logic/Unique.lean,Mathlib/Logic/UnivLE.lean,Mathlib/Order/RelClasses.lean,Mathlib/SetTheory/PGame/Basic.lean |
13 |
3 |
['JovanGerb', 'github-actions', 'leanprover-radar'] |
nobody |
0-51472 14 hours ago |
0-53345 14 hours ago |
0-53027 14 hours |
| 35146 |
harahu author:harahu |
doc(CategoryTheory/Bicategory/Kan): clarify Kan adjunction docstrings |
* The two IsAbsKan.adjunction docstrings in Kan/Adjunction were corrected to match the actual definitions: they now describe deriving adjunctions from absolute left Kan (co)universal data, not from an input adjunction.
* Grammar and phrasing were cleaned up in the IsKan.adjunction docs (commutes with f/u).
* In Kan/HasKan and Kan/IsKan, stale/non-API names were replaced by the current identifiers (lan, lanLift, HasLeftKanExtension) and Kan capitalization was normalized.
---
The issues were identified and fixed by Codex.
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
12/12 |
Mathlib/CategoryTheory/Bicategory/Kan/Adjunction.lean,Mathlib/CategoryTheory/Bicategory/Kan/HasKan.lean,Mathlib/CategoryTheory/Bicategory/Kan/IsKan.lean |
3 |
2 |
['github-actions'] |
nobody |
0-49750 13 hours ago |
0-52682 14 hours ago |
0-52364 14 hours |
| 35084 |
edegeltje author:edegeltje |
feat(Combinatorics/SimpleGraph): The Cayley graph for structures with `Mul`/`Add` |
This pr:
- adds the definition `SimpleGraph.mulCayley`, defining the simple graph induced by a `Mul` instance,
- proves various lemmas about the above,
- adds/proves the additive versions of all of the above,
- redefines `SimpleGraph.circulantGraph` to use `addCayley`,
- reproves lemmas about `circulantGraph` to use the new `addCayley` lemmas.
some related zulip conversation: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Cayley.20and.20circulant.20graph/with/572839048
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
123/26 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Cayley.lean,Mathlib/Combinatorics/SimpleGraph/Circulant.lean |
3 |
18 |
['edegeltje', 'github-actions', 'vihdzp', 'vlad902'] |
nobody |
0-49732 13 hours ago |
0-49092 13 hours ago |
1-70032 1 day |
| 33795 |
alreadydone author:alreadydone |
feat(Topology/Sheaves): LocalPredicate prerequisite for étalé spaces |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
418/143 |
Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean,Mathlib/Geometry/Manifold/Sheaf/Smooth.lean,Mathlib/Logic/Equiv/Basic.lean,Mathlib/Topology/Sheaves/LocalPredicate.lean,Mathlib/Topology/Sheaves/Sheafify.lean,Mathlib/Topology/Sheaves/Stalks.lean |
6 |
11 |
['adamtopaz', 'alreadydone', 'dagurtomas', 'github-actions', 'mathlib-merge-conflicts'] |
adamtopaz assignee:adamtopaz |
0-47807 13 hours ago |
0-47807 13 hours ago |
28-25419 28 days |
| 33972 |
YuvalFilmus author:YuvalFilmus |
feat(Analysis/Polynomial/Order): polynomial has fixed sign beyond largest root |
We prove that a polynomial has fixed sign beyond its largest root.
One could also prove similar results about the smallest root, but they will be more awkward since they will depend on the parity of the (natural) degree; suggestions welcome (perhaps for a future PR).
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
72/0 |
Mathlib.lean,Mathlib/Analysis/Polynomial/Order.lean |
2 |
8 |
['YuvalFilmus', 'artie2000', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] |
ADedecker and urkud assignee:urkud assignee:ADedecker |
0-47054 13 hours ago |
0-46382 12 hours ago |
27-64997 27 days |
| 35150 |
JovanGerb author:JovanGerb |
chore(Order/OrderDual): move material on `OrderDual` |
This PR moves material about `OrderDual` from `Mathlib.Order.Synonym` to `Mathlib.Order.OrderDual`, so that these two files become independent. This way, `Mathlib.Order.Synonym` will not be on the long pole.
---
[](https://gitpod.io/from-referrer/)
|
large-import |
75/76 |
Mathlib/Algebra/Field/Basic.lean,Mathlib/Algebra/Order/Group/Synonym.lean,Mathlib/Data/Fintype/Defs.lean,Mathlib/Data/Nat/Cast/Synonym.lean,Mathlib/Data/PSigma/Order.lean,Mathlib/Data/Prod/Lex.lean,Mathlib/Data/Sigma/Order.lean,Mathlib/Data/Sum/Order.lean,Mathlib/Order/Compare.lean,Mathlib/Order/Max.lean,Mathlib/Order/Monotone/Defs.lean,Mathlib/Order/OrderDual.lean,Mathlib/Order/PiLex.lean,Mathlib/Order/Synonym.lean |
14 |
1 |
['github-actions'] |
nobody |
0-45044 12 hours ago |
0-42002 11 hours ago |
0-41684 11 hours |
| 34545 |
gasparattila author:gasparattila |
feat(Finpartition): remove unnecessary `DistribLattice` assumptions |
This PR weakens the typeclass assumptions of some lemmas and constructions:
* generalizes `exists_le_of_le` and `card_mono` from `DistribLattice` to `Lattice`
* generalizes `extend` from `DistribLattice` to `IsModularLattice`
* generalizes `combine` from `DistribLattice` to `IsModularLattice` (this requires changing the argument from `PairwiseDisjoint` to `SupIndep`)
* redefines `bind` using `combine` in a way that is defeq to the current definition
---
[](https://gitpod.io/from-referrer/)
|
t-order |
95/111 |
Mathlib/MeasureTheory/Measure/PreVariation.lean,Mathlib/Order/Partition/Finpartition.lean,Mathlib/Order/SupIndep.lean |
3 |
6 |
['b-mehta', 'gasparattila', 'github-actions', 'mathlib-merge-conflicts'] |
Vierkantor assignee:Vierkantor |
0-43700 12 hours ago |
0-41645 11 hours ago |
14-42576 14 days |
| 35069 |
A-M-Berns author:A-M-Berns |
feat(Geometry/Polygon): simple polygons and boundary map |
This PR introduces Simple polygons with the predicate `IsSimple`, which captures the idea of a non-self-intersecting boundary, in the file Simple.lean. In the file Boundary.lean, a boundary map from `AddCircle n` is defined. I prove that the range of this map is the boundary and that this map is injective if and only if the polygon is simple. I kept Boundary.lean and Simple.lean separate because future results will include stuff just about the boundary map independent of simplicity (e.g. that it is continuous in the appropriate setting) and stuff just about simple polygons independent of the boundary map (e.g. that for n = 3, IsSimple iff HasNondegenerateVertices.) I used Claude Code to help generate some of the proof material, but I golfed and edited all AI contribution.
Depends on PR #34598
---
|
new-contributor |
431/5 |
Mathlib.lean,Mathlib/Geometry/Polygon/Basic.lean,Mathlib/Geometry/Polygon/Boundary.lean,Mathlib/Geometry/Polygon/Simple.lean |
4 |
15 |
['A-M-Berns', 'github-actions', 'vihdzp', 'wwylele'] |
nobody |
0-42666 11 hours ago |
0-41501 11 hours ago |
1-49877 1 day |
| 35094 |
joelriou author:joelriou |
feat(CategoryTheory/Sites/DenseSubsite): towards essential surjectivity |
Let `F : C₀ ⥤ C` be a dense subsite and `data : ∀ X, F.OneHypercoverDenseData J₀ J X` be a family of structures. Let `G₀` be a sheaf on `C₀`. We construct a presheaf on `C`, about which we shall show in #34976 that it is a sheaf which extends `C`.
---
- [x] depends on: #35091
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
223/0 |
Mathlib/CategoryTheory/Sites/DenseSubsite/OneHypercoverDense.lean |
1 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
0-42118 11 hours ago |
0-41454 11 hours ago |
0-41136 11 hours |
| 25981 |
Multramate author:Multramate |
feat(GroupTheory/GroupAction/Basic): define homomorphisms of fixed subgroups induced by homomorphisms of groups |
This PR continues the work from #10126.
Original PR: https://github.com/leanprover-community/mathlib4/pull/10126 |
t-group-theory
large-import
|
202/131 |
Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/Algebra/Group/Subgroup/Ker.lean,Mathlib/Algebra/Group/Submonoid/Operations.lean,Mathlib/Algebra/Ring/Action/Submonoid.lean,Mathlib/GroupTheory/GroupAction/Defs.lean,Mathlib/GroupTheory/MonoidLocalization/Basic.lean,Mathlib/GroupTheory/MonoidLocalization/Maps.lean,Mathlib/GroupTheory/MonoidLocalization/MonoidWithZero.lean,Mathlib/GroupTheory/PGroup.lean,Mathlib/GroupTheory/Transfer.lean,Mathlib/LinearAlgebra/RootSystem/WeylGroup.lean,Mathlib/NumberTheory/NumberField/CMField.lean,Mathlib/NumberTheory/NumberField/Ideal/Basic.lean,Mathlib/RingTheory/Localization/Defs.lean |
14 |
6 |
['copilot-pull-request-reviewer', 'github-actions'] |
nobody |
0-41827 11 hours ago |
0-38717 10 hours ago |
0-38399 10 hours |
| 35057 |
grunweg author:grunweg |
feat: equivalent characterisation of split continuous linear maps |
We add an equivalent characterisation of continuous linear maps with a continuous left inverse:
f admits a continuous left inverse iff it splits, i.e. is injective, has closed range and range f has a closed complement.
This equivalence is used for extracting an explicit complement for immersions, hence transitively for proving that immersions are closed under composition.
From the path towards immersions, submersions and embedded submanifolds.
---
- [x] depends on: #34991
[](https://gitpod.io/from-referrer/)
|
t-analysis |
157/5 |
Mathlib/Algebra/Module/Submodule/Range.lean,Mathlib/Analysis/Normed/Module/ContinuousInverse.lean,Mathlib/Analysis/Normed/Operator/Banach.lean,Mathlib/Topology/Algebra/Module/LinearMap.lean |
4 |
4 |
['github-actions', 'grunweg', 'mathlib-dependent-issues'] |
nobody |
0-41498 11 hours ago |
0-40135 11 hours ago |
0-39817 11 hours |
| 35156 |
euprunin author:euprunin |
chore: golf using `simp` (and non-squeeze terminal `simp`:s) |
---
The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (shown if ≥10 ms before or after):
* `Module.FinitePresentation.exists_lift_of_isLocalizedModule`: 940 ms before, 787 ms after 🎉
* `CategoryTheory.Comon.tensorObj_comul`: 38 ms before, <10 ms after 🎉
* `SimpleGraph.Walk.darts_getElem_eq_getVert`: 376 ms before, <10 ms after 🎉
* `ZNum.cmp_to_int`: 108 ms before, 79 ms after 🎉
* `TensorProduct.finsuppLeft_smul'`: 134 ms before, 31 ms after 🎉
* `TensorProduct.finsuppScalarRight_smul`: 138 ms before, 26 ms after 🎉
* `NumberField.InfinitePlace.nat_card_stabilizer_eq_one_or_two`: 115 ms before, 112 ms after 🎉
* `Algebra.adjoin_restrictScalars`: 34 ms before, 26 ms after 🎉
* `AddCircle.card_torsion_le_of_isSMulRegular_int`: 460 ms before, 238 ms after 🎉
This golfing PR is batched under the following guidelines:
* Up to ~5 changed files per PR
* Up to ~25 changed declarations per PR
* Up to ~100 changed lines per PR
---
[](https://gitpod.io/from-referrer/)
|
|
12/56 |
Mathlib/Algebra/Module/FinitePresentation.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Mon_.lean,Mathlib/CategoryTheory/Monoidal/Comon_.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Traversal.lean,Mathlib/Data/Num/ZNum.lean,Mathlib/LinearAlgebra/DirectSum/Finsupp.lean,Mathlib/LinearAlgebra/Matrix/Kronecker.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Ramification.lean,Mathlib/RingTheory/Adjoin/Tower.lean,Mathlib/Topology/Instances/AddCircle/Defs.lean |
10 |
1 |
['github-actions'] |
nobody |
0-41046 11 hours ago |
0-39137 10 hours ago |
0-38819 10 hours |
| 30463 |
grunweg author:grunweg |
feat: support products and disjoint unions in the differential geometry elaborators |
Add support for inferring a model with corners on
- products of manifolds
- disjoint unions of manifolds
- an open subset of a manifold
Note that these can be nested (e.g., a product with multiple factors, a disjoint union of four manifolds or combinations of these).
For binary products of normed spaces, we intentionally refuse to infer a model with corners, as there are two different possible options which are propositionally, but not definitionally equal. For now, we emit a warning to this effect instead. A future PR may remove it (and infer one of these variants): see [zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Differential.20geometry.20elaborators.20experiment/near/544942546).
This PR completes an important milestone: models with corners are now inferred for *all* instances mathlib knows about! Update the module doc-string accordingly.
A future PR will golf mathlib using these elaborators.
---
- [x] depends on: #30744
- [x] depends on: #30879
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry
t-meta
|
513/76 |
Mathlib/Geometry/Manifold/Notation.lean,MathlibTest/DifferentialGeometry/Notation.lean,MathlibTest/DifferentialGeometry/NotationAdvanced.lean,MathlibTest/DifferentialGeometry/NotationSphere.lean |
4 |
18 |
['github-actions', 'grunweg', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'thorimur'] |
thorimur assignee:thorimur |
0-40671 11 hours ago |
0-42024 11 hours ago |
0-41706 11 hours |
| 35157 |
Multramate author:Multramate |
feat(RingTheory/AdjoinRoot): add IsFractionRing for AdjoinRoot |
Co-authored-by: Sriram Chinthalagiri Venkata @sriram3301
This contribution was created as part of the Heidelberg Lean workshop "Formalising algebraic geometry" in November 2025.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
37/0 |
Mathlib/RingTheory/AdjoinRoot.lean |
1 |
4 |
['copilot-pull-request-reviewer', 'github-actions'] |
nobody |
0-38270 10 hours ago |
0-37379 10 hours ago |
0-37061 10 hours |
| 34922 |
vasnesterov author:vasnesterov |
feat(Tactic/ComputeAsymptotics/Multiseries): Multiseries definition and structural lemmas |
Define `Multiseries` and `MultiseriesExpansion` and restate some `Seq` API for `Multiseries`.
---
This is a part of the `compute_asymptotics` tactic (#28291).
[](https://gitpod.io/from-referrer/)
|
t-data
t-meta
|
399/0 |
Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Defs.lean |
3 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
joneugster assignee:joneugster |
0-37054 10 hours ago |
0-36417 10 hours ago |
5-54942 5 days |
| 34783 |
Jun2M author:Jun2M |
feat(Combinatorics/Graph): add Compatible definition and API |
Preliminary PR for #26770 (subgraph). Adds the `Compatible` predicate and basic API to `Mathlib.Combinatorics.Graph.Basic`.
- **Compatible**: two graphs are compatible if they agree on incidence for every edge in the intersection of their edge sets.
- Includes `Compatible.isLink_iff`, reflexivity/symmetry instances, `IsLink.of_compatible`, `Compatible.of_disjoint_edgeSet`, and the `Inc`/`IsLoopAt`/`IsNonloopAt` variants.
- **copy** API for copying a graph with new vertex/edge sets and `IsLink`.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
maintainer-merge
|
101/1 |
Mathlib/Combinatorics/Graph/Basic.lean |
1 |
10 |
['Jun2M', 'YaelDillies', 'eric-wieser', 'github-actions'] |
kmill assignee:kmill |
0-35796 9 hours ago |
8-52566 8 days ago |
8-56310 8 days |
| 34888 |
stepan2698-cpu author:stepan2698-cpu |
feat: definition of equivalence of representations |
Defines equivalence of representations, and defines an equivalence between $$\mathrm{Hom}(V, W)$$ and $$V^* \otimes W$$ as representations. This is a missing piece to respell all of the results in Character.lean without using category-theoretic notions.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
60/0 |
Mathlib/RepresentationTheory/Intertwining.lean |
1 |
2 |
['github-actions', 'plp127'] |
ocfnash assignee:ocfnash |
0-35795 9 hours ago |
4-36213 4 days ago |
6-43070 6 days |
| 34935 |
erdOne author:erdOne |
feat(AlgebraicGeometry): `Semiring` structure on ideal sheaves |
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry |
93/4 |
Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean,Mathlib/AlgebraicGeometry/Scheme.lean |
2 |
1 |
['github-actions'] |
joelriou assignee:joelriou |
0-35794 9 hours ago |
5-19846 5 days ago |
5-19528 5 days |
| 34940 |
michaellee94 author:michaellee94 |
feat: the graph of a continuous function on a $C^n$ manifold is a $C^n$ manifold |
---
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry
new-contributor
|
227/0 |
Mathlib.lean,Mathlib/Geometry/Manifold/Instances/Graph.lean |
2 |
56 |
['botbaki-review', 'github-actions', 'grunweg', 'michaellee94'] |
ocfnash assignee:ocfnash |
0-35792 9 hours ago |
4-25484 4 days ago |
4-67362 4 days |
| 34963 |
Parcly-Taxel author:Parcly-Taxel |
feat(Archive): proof of the Robbins conjecture |
Cf. [#mathlib4 > Alternative axiomatization of boolean algebras @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Alternative.20axiomatization.20of.20boolean.20algebras/near/558900960) and #31924. |
|
610/0 |
Archive.lean,Archive/Robbins.lean |
2 |
1 |
['github-actions'] |
dwrensha assignee:dwrensha |
0-35790 9 hours ago |
3-71974 3 days ago |
4-26931 4 days |
| 34973 |
chrisflav author:chrisflav |
chore: replace `Punit` by `PUnit` |
---
[](https://gitpod.io/from-referrer/)
|
|
34/16 |
Mathlib/AlgebraicGeometry/Limits.lean,Mathlib/CategoryTheory/Action/Basic.lean,Mathlib/CategoryTheory/Extensive.lean,Mathlib/CategoryTheory/Limits/Sifted.lean,Mathlib/CategoryTheory/Limits/Types/Coproducts.lean,Mathlib/CategoryTheory/Limits/Types/Products.lean,Mathlib/Order/InitialSeg.lean,Mathlib/RingTheory/FreeCommRing.lean,Mathlib/Topology/UniformSpace/Equiv.lean |
9 |
2 |
['chrisflav', 'github-actions'] |
joelriou assignee:joelriou |
0-35789 9 hours ago |
3-84919 3 days ago |
3-84601 3 days |
| 34975 |
harahu author:harahu |
fix(CategoryTheory/Bicategory): correct instance target |
The instance declared next to `PrelaxFunctor.id` was targeting `PrelaxFunctorStruct B B`, which is already defined earlier in the file. Retarget it to `PrelaxFunctor B B` so this section provides the expected default inhabitant for full prelax functors.
This PR was prepared using Codex.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
2/2 |
Mathlib/CategoryTheory/Bicategory/Functor/Prelax.lean |
1 |
1 |
['github-actions'] |
adamtopaz assignee:adamtopaz |
0-35789 9 hours ago |
3-82882 3 days ago |
3-82564 3 days |
| 34978 |
harahu author:harahu |
docs(CategoryTheory/Bicategory/Functor): clean up docstrings |
Fix doc-only inconsistencies across bicategory functor files.
---
The issues were found and fixed with help from Codex.
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
45/41 |
Mathlib/CategoryTheory/Bicategory/Functor/Cat/ObjectProperty.lean,Mathlib/CategoryTheory/Bicategory/Functor/Lax.lean,Mathlib/CategoryTheory/Bicategory/Functor/LocallyDiscrete.lean,Mathlib/CategoryTheory/Bicategory/Functor/Oplax.lean,Mathlib/CategoryTheory/Bicategory/Functor/Prelax.lean,Mathlib/CategoryTheory/Bicategory/Functor/Pseudofunctor.lean,Mathlib/CategoryTheory/Bicategory/Functor/StrictPseudofunctor.lean,Mathlib/CategoryTheory/Bicategory/Functor/StrictlyUnitary.lean |
8 |
4 |
['github-actions', 'harahu', 'joelriou'] |
erdOne assignee:erdOne |
0-35788 9 hours ago |
3-53092 3 days ago |
3-53538 3 days |
| 34983 |
plp127 author:plp127 |
chore(Polynomial/Div): deprecate noncomputable `Decidable` non-instance |
Deprecate `decidableDvdMonic`, which is a noncomputable `Decidable` non-instance and so inferior to `Classical.dec`. This is a leftover from before leanprover-community/mathlib3#1391, in which polynomials were made to use classical logic.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
12/19 |
Mathlib/Algebra/Polynomial/Div.lean |
1 |
1 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
0-35787 9 hours ago |
3-68227 3 days ago |
3-67909 3 days |
| 34990 |
bwangpj author:bwangpj |
feat: `ContinuousSMul (∀ i, N i) (∀ i, γ i)` |
FLT
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
7/0 |
Mathlib/Topology/Algebra/MulAction.lean |
1 |
4 |
['bwangpj', 'github-actions', 'themathqueen'] |
PatrickMassot assignee:PatrickMassot |
0-35786 9 hours ago |
3-55130 3 days ago |
3-57807 3 days |
| 35143 |
SnirBroshi author:SnirBroshi |
fix: restore `#min_imports` and other commands |
Make these commands available across Mathlib:
- `#help`
- `#min_imports`
- `#min_imports in`
- `#find_home`
- `#loogle`
- `proof_wanted`
Add tests that verify commands work when importing basic files, to prevent regressions.
---
[Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.23lint.20is.20broken/near/573303540)
I also think we should have `#check` (the tactic, not the Core command) and `#simp` and `#find_syntax`, but they import `Mathlib.Init` so it can't import them currently.
I'm not sure which of the above were available everywhere before the shake tool was run, let me know if I should add/remove commands.
Also there seems to be a bug in `#help` and the module system where it can't find the names of syntaxes, which affects the `#guard_msgs` in the test file, but it should be fixed independently of this PR.
[](https://gitpod.io/from-referrer/)
|
large-import
file-removed
|
174/29 |
Mathlib/Init.lean,Mathlib/Tactic/Common.lean,MathlibTest/BasicFiles/Init.lean,MathlibTest/BasicFiles/TacticBasic.lean,MathlibTest/BasicFiles/TacticCommon.lean,MathlibTest/FindSyntax.lean,MathlibTest/HashLint.lean,MathlibTest/UnusedInstancesInType/Fintype.lean |
8 |
14 |
['JovanGerb', 'SnirBroshi', 'github-actions', 'grunweg', 'joneugster', 'thorimur'] |
nobody |
0-34306 9 hours ago |
0-34900 9 hours ago |
0-34582 9 hours |
| 34994 |
bwangpj author:bwangpj |
feat: Countable.of_module_finite |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
large-import
FLT
label:t-algebra$ |
7/0 |
Mathlib/LinearAlgebra/Countable.lean |
1 |
3 |
['bwangpj', 'eric-wieser', 'github-actions'] |
eric-wieser assignee:eric-wieser |
0-29030 8 hours ago |
0-28328 7 hours ago |
3-52011 3 days |
| 35118 |
BryceT233 author:BryceT233 |
feat(RingTheory/MvPowerSeries): introduce truncFinset to unify truncations |
Resolves the TODO in MvPowerSeries/Trunc.lean by implementing a general truncation map `truncFinset`, which paves the way for unifying strict and non-strict truncations and defining other truncations
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
121/130 |
Mathlib/RingTheory/MvPowerSeries/Trunc.lean |
1 |
5 |
['BryceT233', 'github-actions', 'wwylele'] |
nobody |
0-28448 7 hours ago |
0-27501 7 hours ago |
1-3299 1 day |
| 34937 |
tannerduve author:tannerduve |
feat(Computability): semilattice instance on Turing degrees |
This PR equips `TuringDegree` with a `SemilatticeSup` structure by introducing the Turing join, proving usual least-upper-bound properties, and lifting these to degrees (quotients). In support of this, it extends the existing `RecursiveIn` API with some lemmas used in the degree theory.
The main contribution is the `SemilatticeSup` instance on `TuringDegree`. We define the Turing join as follows
```
turingJoin (f g) : ℕ → ℕ -- notation: f ⊕ g
```
and prove it is a least upper bound:
* `left_le_join`, `right_le_join`
* `join_le`
* monotonicity and congruence lemmas (`join_mono`, `join_congr`)
We lift this to degrees in `TuringDegree.sup`, `TuringDegree.le_sup_left`, `TuringDegree.le_sup_right`, and `TuringDegree.sup_le`
```
instance : SemilatticeSup TuringDegree
```
**New additions to `RecursiveIn.lean`:**
- `liftPrim`, `liftPrimrec`, `RecursiveIn'`, `ComputableIn`, `ComputableIn₂`: Encodes partial/total functions between `Primcodable` types as `ℕ →. ℕ`, analogous to `Partrec`/`Computable`.
- `of_eq`, `of_eq_tot`, `of_primrec`, `some`, `none`, `mono`, `subst`: Standard closure properties for `RecursiveIn`.
- `cond_const`, `cond_core_rfind`, `cond`, `ComputableIn.cond`: Shows `RecursiveIn` is closed under conditionals when the guard is absolutely computable
- `Nat.Partrec.recursiveIn`, `Computable.computableIn`: Every partrec/computable function is recursive in any oracle set.
Small addition to `Partrec`
we add to `Mathlib.Computability.Partrec` a small helper def (`Partrec.kronecker` and related `rfind` lemmas) representing the function that returns 1 if its two (unpaired) arguments are equal, and 0 otherwise, which is used in the proof of `cond`
## TODO
Some current `RecursiveIn` proofs such as `cond_core_rfind` still work directly with the inductive constructors and are thus very long. A follow up could add a combinator-style closure library byessentially relativizing all the results and lemmas in `Partrec`, and proofs could be golfed heavily as they are in `Partrec`
## Note: AI Usage
[Aleph prover](https://logicalintelligence.com/aleph-coding-ai/) was allowed to prove an earlier version of `cond_core_rfind`, which included stating and proving the lemma `cond_const` but the proofs have since been iterated on manually
Cursor was allowed to run git commands and edit docstrings/headers, and was used in setting up the module structure of the files |
t-computability
new-contributor
large-import
|
644/63 |
Mathlib/Computability/Partrec.lean,Mathlib/Computability/RecursiveIn.lean,Mathlib/Computability/TuringDegree.lean |
3 |
12 |
['eric-wieser', 'github-actions', 'tannerduve', 'vihdzp'] |
nobody |
0-23541 6 hours ago |
0-22878 6 hours ago |
4-28253 4 days |
| 35117 |
urkud author:urkud |
chore(Charpoly/Disc): use `nontriviality` to drop a `Nontrivial` assumption |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
easy
label:t-algebra$ |
8/8 |
Mathlib/LinearAlgebra/Matrix/Charpoly/Disc.lean,Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/FinTwo.lean |
2 |
3 |
['github-actions', 'grunweg'] |
grunweg assignee:grunweg |
0-23204 6 hours ago |
0-23204 6 hours ago |
0-22886 6 hours |
| 24065 |
kim-em author:kim-em |
chore: script to give topological sort of modules |
This script is not useful by itself: it just gives a topological sort of Mathlib's import graph. But I've several times found it useful when I want to modify many files systematically with minimal rebuilding: just work backwards through the list.
|
|
102/0 |
scripts/README.md,scripts/topological_sort.py |
2 |
7 |
['SnirBroshi', 'github-actions', 'jcommelin', 'kim-em', 'mathlib4-merge-conflict-bot'] |
jcommelin assignee:jcommelin |
0-18627 5 hours ago |
0-18319 5 hours ago |
0-18001 5 hours |
| 34667 |
kim-em author:kim-em |
perf(Cache): skip decompression for already-unpacked files |
This PR adds pre-filtering to `lake exe cache get`: before calling leantar, we check if each module's trace file exists and has a matching Lake depHash. Modules that are already correctly unpacked are skipped entirely.
**Performance (tested on Mac Studio with SSD, ~7900 cached files):**
| Scenario | Before | After |
|----------|--------|-------|
| All files already unpacked | ~25s | ~5s |
| Partial decompression needed | ~25s | ~5s + decompression time |
**Timing breakdown (after this PR):**
- Hash computation: ~2.8s
- Filter to existing ltar files: ~0.06s
- Read ltar headers + trace files, compare hashes: ~2.5s
- leantar (if needed): 0s when all files match
**What changed:**
Before calling leantar, we now read the Lake depHash from each ltar file header (first 12 bytes) and compare with the trace file's `depHash` field. Files with matching hashes are filtered out.
Note: The mathlib cache hash (ltar filename) is different from the Lake depHash (stored in ltar header and trace file). This PR compares the Lake depHashes, which is what leantar uses internally.
Fixes https://leanprover.zulipchat.com/#narrow/channel/536994-ecosystem-infrastructure/topic/lake.20exe.20cache.20get.20always.20decompresses
🤖 Prepared with Claude Code |
t-meta
CI
maintainer-merge
|
87/3 |
Cache/IO.lean,Cache/Lean.lean |
2 |
11 |
['MichaelStollBayreuth', 'github-actions', 'joneugster', 'plp127'] |
joneugster assignee:joneugster |
0-17927 4 hours ago |
0-17361 4 hours ago |
11-21065 11 days |
| 35167 |
morrison-daniel author:morrison-daniel |
chore(LinearAlgebra/{ExteriorAlgebra,ExteriorPower}): refactor `ExteriorAlgebra.ιMulti_family` and `exteriorPower.ιMulti_family` to use `Set.powersetCard` |
Rewrites `ExteriorAlgebra.ιMulti_family` and `exteriorPower.ιMulti_family` to use `Set.powersetCard` instead of an explicit subtype.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
easy
label:t-algebra$ |
47/7 |
Mathlib.lean,Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean,Mathlib/LinearAlgebra/ExteriorPower/Basic.lean,Mathlib/Order/Hom/PowersetCard.lean |
4 |
1 |
['github-actions'] |
nobody |
0-16166 4 hours ago |
0-16147 4 hours ago |
0-15829 4 hours |
| 33188 |
BryceT233 author:BryceT233 |
feat(RingTheory/MvPowerSeries): introduce rename |
This file establishes the `rename` operation on multivariate power series under a map with finite fibers,
which modifies the set of variables.
This file is patterned after `MvPolynomials/Rename.lean`
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-ring-theory
large-import
|
432/1 |
Mathlib.lean,Mathlib/Data/Finsupp/Antidiagonal.lean,Mathlib/Data/Finsupp/Basic.lean,Mathlib/Data/Finsupp/Order.lean,Mathlib/Data/Finsupp/Weight.lean,Mathlib/RingTheory/MvPowerSeries/Basic.lean,Mathlib/RingTheory/MvPowerSeries/Rename.lean |
7 |
26 |
['BryceT233', 'Komyyy', 'erdOne', 'github-actions', 'mathlib4-merge-conflict-bot', 'riccardobrasca'] |
erdOne and riccardobrasca assignee:riccardobrasca assignee:erdOne |
0-15314 4 hours ago |
0-13090 3 hours ago |
26-79353 26 days |
| 35161 |
JohnnyTeutonic author:JohnnyTeutonic |
feat(Algebra/Lie/Classical): finrank of sl(n) equals n - 1 |
Proves `finrank K (sl n K) = Fintype.card n ^ 2 - 1` using rank-nullity and `Matrix.trace_surjective`.
The special linear Lie algebra `sl(n, K)` is the kernel of the trace map. By rank-nullity, its dimension is `n² - 1`.
- [x] Compiles against current master
- Independent of #34442 (sl basis construction)
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
17/3 |
Mathlib/Algebra/Lie/Classical.lean |
1 |
1 |
['github-actions'] |
nobody |
0-15029 4 hours ago |
0-14385 3 hours ago |
0-14067 3 hours |
| 34442 |
JohnnyTeutonic author:JohnnyTeutonic |
feat(Algebra/Lie/Classical): add basis for sl(n) relative to chosen diagonal index |
Adds a standard basis for sl n R parametrized by a chosen diagonal index i₀:
Off-diagonal matrix units E_ij for i ≠ j
Diagonal differences E_ii - E_{i₀i₀} for i ≠ i₀
The entry at i₀ is determined by trace-zero.
Implements the approach suggested by @ocfnash in [#33818 (comment)](https://github.com/leanprover-community/mathlib4/pull/33818#issuecomment-3784786673). See also [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/lie.20algebra/near/516170116).
Closes the request from #33818.
Note: Developed with the assistance of Claude - the LinearEquiv machinery was beyond my current Lean expertise.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
507/0 |
Mathlib/Algebra/Lie/Classical.lean |
1 |
9 |
['JohnnyTeutonic', 'eric-wieser', 'github-actions'] |
nobody |
0-14801 4 hours ago |
0-14118 3 hours ago |
0-66838 18 hours |
| 35107 |
SnirBroshi author:SnirBroshi |
chore(Combinatorics/SimpleGraph/Coloring): golf `recolorOfEmbedding` |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
1/8 |
Mathlib/Combinatorics/SimpleGraph/Coloring.lean |
1 |
6 |
['SnirBroshi', 'github-actions', 'themathqueen', 'vlad902'] |
nobody |
0-9810 2 hours ago |
0-77300 21 hours ago |
1-34934 1 day |
| 35163 |
CoolRmal author:CoolRmal |
feat(Topology): comparison of two Hausdorff topologies |
The main theorem proved in this PR is `CompactSpace.eq_of_le_compact_t2`, which says that if we have two Hausdorff topologies `s, t` on `X`, and if `t` is finer than `s` and `X` is compact under `t`, then `s = t`. I also proved some variant of this lemma.
The motivations I have in mind are some applications to the theory of topological vector spaces, where we often have to compare two Hausdorff topologies.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
24/0 |
Mathlib/Topology/Homeomorph/Lemmas.lean |
1 |
1 |
['github-actions'] |
nobody |
0-7170 1 hour ago |
0-5388 1 hour ago |
0-5070 1 hour |
| 34511 |
kim-em author:kim-em |
chore: run `lake shake --add-public --keep-implied --keep-prefix --fix` |
|
large-import |
154/106 |
Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Algebra/BigOperators/Group/Finset/Gaps.lean,Mathlib/Algebra/BigOperators/GroupWithZero/Action.lean,Mathlib/Algebra/Category/ModuleCat/Ext/DimensionShifting.lean,Mathlib/Algebra/Category/ModuleCat/Ext/Finite.lean,Mathlib/Algebra/Category/ModuleCat/Sheaf/Quasicoherent.lean,Mathlib/Algebra/Group/Action/Hom.lean,Mathlib/Algebra/Group/Submonoid/Operations.lean,Mathlib/Algebra/Group/TypeTags/Basic.lean,Mathlib/Algebra/Order/BigOperators/GroupWithZero/List.lean,Mathlib/Algebra/Order/GroupWithZero/Unbundled/Basic.lean,Mathlib/Algebra/Order/Monoid/Canonical/Basic.lean,Mathlib/Algebra/Polynomial/Basic.lean,Mathlib/Algebra/TrivSqZeroExt.lean,Mathlib/AlgebraicGeometry/Fiber.lean,Mathlib/AlgebraicGeometry/Limits.lean,Mathlib/AlgebraicGeometry/Morphisms/QuasiFinite.lean,Mathlib/AlgebraicTopology/ModelCategory/BifibrantObjectHomotopy.lean,Mathlib/Analysis/Asymptotics/Completion.lean,Mathlib/Analysis/Asymptotics/Lemmas.lean,Mathlib/Analysis/Asymptotics/TVS.lean,Mathlib/Analysis/Calculus/FDeriv/Basic.lean,Mathlib/Analysis/Calculus/FDeriv/Const.lean,Mathlib/Analysis/Calculus/TangentCone/Basic.lean,Mathlib/Analysis/Calculus/TangentCone/Defs.lean,Mathlib/Analysis/Calculus/TangentCone/DimOne.lean,Mathlib/Analysis/Calculus/TangentCone/Real.lean,Mathlib/Analysis/InnerProductSpace/Adjoint.lean,Mathlib/Analysis/InnerProductSpace/LinearMap.lean,Mathlib/Analysis/Normed/Field/TransferInstance.lean,Mathlib/Analysis/Normed/Group/Basic.lean,Mathlib/Analysis/Normed/Group/Defs.lean,Mathlib/Analysis/Normed/Module/ContinuousInverse.lean,Mathlib/Analysis/Normed/Module/Multilinear/Basic.lean,Mathlib/Analysis/Normed/Module/Multilinear/Curry.lean,Mathlib/Analysis/Normed/Operator/CompleteCodomain.lean,Mathlib/Analysis/Normed/Operator/ContinuousAlgEquiv.lean,Mathlib/Analysis/Normed/Ring/TransferInstance.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/Orthogonality.lean,Mathlib/CategoryTheory/Abelian/GrothendieckCategory/EnoughInjectives.lean,Mathlib/CategoryTheory/Abelian/SerreClass/MorphismProperty.lean,Mathlib/CategoryTheory/Bicategory/Extension.lean,Mathlib/CategoryTheory/ConcreteCategory/BundledHom.lean,Mathlib/CategoryTheory/ConcreteCategory/UnbundledHom.lean,Mathlib/CategoryTheory/GradedObject.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/EquifiberedLimits.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/IsPullback/Kernels.lean,Mathlib/CategoryTheory/Monoidal/Opposite.lean,Mathlib/CategoryTheory/NatIso.lean,Mathlib/CategoryTheory/Shift/Adjunction.lean,Mathlib/Combinatorics/Pigeonhole.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/TuranDensity.lean,Mathlib/Computability/AkraBazzi/AkraBazzi.lean,Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean,Mathlib/Data/DFinsupp/BigOperators.lean,Mathlib/Data/Fin/Tuple/Sort.lean,Mathlib/Data/Finite/Defs.lean,Mathlib/Data/Finset/Attr.lean,Mathlib/Data/List/DropRight.lean,Mathlib/Data/List/GetD.lean,Mathlib/Data/List/Induction.lean,Mathlib/Data/List/Infix.lean,Mathlib/Data/Matrix/Mul.lean,Mathlib/Data/Multiset/Interval.lean,Mathlib/Data/Nat/Bits.lean,Mathlib/Data/Set/Card/Arithmetic.lean,Mathlib/Data/Set/Operations.lean,Mathlib/Dynamics/Flow.lean,Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.lean,Mathlib/FieldTheory/IsAlgClosed/Basic.lean,Mathlib/FieldTheory/PrimeField.lean,Mathlib/FieldTheory/SeparableDegree.lean,Mathlib/Geometry/Polygon/Basic.lean,Mathlib/GroupTheory/CosetCover.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean,Mathlib/GroupTheory/GroupAction/Primitive.lean,Mathlib/GroupTheory/Perm/Support.lean,Mathlib/LinearAlgebra/Center.lean,Mathlib/LinearAlgebra/Finsupp/Pi.lean,Mathlib/LinearAlgebra/Multilinear/Basic.lean,Mathlib/LinearAlgebra/TensorProduct/Free.lean,Mathlib/MeasureTheory/Function/ConditionalLExpectation.lean,Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean,Mathlib/MeasureTheory/Function/LpSeminorm/Indicator.lean,Mathlib/MeasureTheory/Measure/SubFinite.lean,Mathlib/ModelTheory/Arithmetic/Presburger/Semilinear/Defs.lean,Mathlib/NumberTheory/FactorisationProperties.lean,Mathlib/Order/GaloisConnection/Defs.lean,Mathlib/Order/Interval/Finset/Gaps.lean,Mathlib/Order/ScottContinuity.lean,Mathlib/RepresentationTheory/FinGroupCharZero.lean,Mathlib/RepresentationTheory/Semisimple.lean,Mathlib/RingTheory/Adjoin/Basic.lean,Mathlib/RingTheory/Etale/QuasiFinite.lean,Mathlib/RingTheory/Ideal/Height.lean,Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean,Mathlib/RingTheory/IntegralClosure/IntegrallyClosed.lean,Mathlib/RingTheory/Lasker.lean,Mathlib/RingTheory/Localization/FractionRing.lean,Mathlib/RingTheory/OrderOfVanishing.lean |
141 |
14 |
['JovanGerb', 'Kha', 'github-actions', 'kim-em', 'loefflerd', 'mathlib-merge-conflicts'] |
ADedecker assignee:ADedecker |
0-4536 1 hour ago |
0-7823 2 hours ago |
8-24200 8 days |
| 35172 |
Parcly-Taxel author:Parcly-Taxel |
feat(Archive): minimal axioms for Boolean algebra |
|
|
305/0 |
Archive.lean,Archive/MinimalSheffer.lean,docs/references.bib |
3 |
1 |
['github-actions'] |
nobody |
0-2752 45 minutes ago |
0-2067 29 minutes ago |
0-1749 29 minutes |
| 35170 |
tb65536 author:tb65536 |
feat(Analysis/RCLike/Basic): add `re_mul_ofReal` and `im_mul_ofReal` |
This PR adds missing API lemmas `re_mul_ofReal` and `im_mul_ofReal` for `RCLike.re`.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
8/0 |
Mathlib/Analysis/RCLike/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
0-2083 34 minutes ago |
0-2083 29 minutes ago |
0-1765 29 minutes |
| 35171 |
tb65536 author:tb65536 |
feat(Analysis/InnerProductSpace/Basic): variants of the parallelogram law with squaring |
This PR adds a couple variants of the parallelogram law written in terms of squaring `‖x + y‖ ^ 2 + ‖x - y‖ ^ 2` rather than multiplication `‖x + y‖ * ‖x + y‖ + ‖x - y‖ * ‖x - y‖`. I've found these to be helpful in practice.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
10/0 |
Mathlib/Analysis/InnerProductSpace/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
0-2078 34 minutes ago |
0-2078 29 minutes ago |
0-1760 29 minutes |
| 35173 |
tb65536 author:tb65536 |
feat(Analysis/InnerProductSpace/Rayleigh): Rayleigh quotients are bounded above by the operator norm |
This PR proves that Rayleigh quotients are bounded above by the operator norm. The fact that this is tight for symmetric operators will be done in a follow-up PR.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
10/1 |
Mathlib/Analysis/InnerProductSpace/Rayleigh.lean |
1 |
1 |
['github-actions'] |
nobody |
0-2005 33 minutes ago |
0-2005 28 minutes ago |
0-1687 28 minutes |
| 33895 |
jessealama author:jessealama |
feat(Computability/Primrec): add list_take, list_drop, list_modify, and list_set |
This PR shows that several list operations from Lean core are primitive recursive:
- `list_drop`: [`List.drop`](https://github.com/leanprover/lean4/blob/master/src/Init/Data/List/TakeDrop.lean), via iterating `List.tail` using `nat_iterate`
- `list_take`: [`List.take`](https://github.com/leanprover/lean4/blob/master/src/Init/Data/List/TakeDrop.lean), via `list_drop` on the reversed list
- `list_modifyHead'`: [`List.modifyHead`](https://github.com/leanprover/lean4/blob/master/src/Init/Data/List/Nat/Modify.lean) with external data
- `list_modify'`: [`List.modify`](https://github.com/leanprover/lean4/blob/master/src/Init/Data/List/Nat/Modify.lean) with external data
- `list_modify`: [`List.modify`](https://github.com/leanprover/lean4/blob/master/src/Init/Data/List/Nat/Modify.lean)
- `list_set`: [`List.set`](https://github.com/leanprover/lean4/blob/master/src/Init/Prelude.lean)
The primed versions (`list_modify'`, `list_modifyHead'`) take a function `g : β → α → α` that depends on external data of type `β`. This generalization enables deriving the other operations:
- `list_modify` specializes `list_modify'` with `β = Unit`
- `list_set` uses `list_modify'` via `List.set_eq_modify`
Also moves `list_length` earlier in the file (before `list_drop` and `list_take`, which depend on it). |
new-contributor
t-computability
|
48/4 |
Mathlib/Computability/Primrec/List.lean |
1 |
1 |
['github-actions'] |
nobody |
0-1281 21 minutes ago |
0-556 3 minutes ago |
28-560 28 days |
| 35174 |
nielsvoss author:nielsvoss |
feat(Analysis/InnerProductSpace): a linear map composed with its adjoint is symmetric |
Add theorems about `LinearMap.IsSymmetric` that match some theorems for `LinearMap.IsPositive`.
Mathlib contains stronger versions of some of these, like `LinearMap.IsPositive.self_comp_adjoint`, but having a dedicated version for `LinearMap.IsSymmetric` is advantageous, especially when used with `LinearMap.IsSymmetric.eigenvalues`.
---
One thing that I am uncertain about is if I should add similar lemmas for `ContinuousLinearMap` to even better match the `IsPositive` API, and if so, whether these theorems should be stated in terms of `IsSymmetric` or `IsSelfAdjoint`.
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
26/1 |
Mathlib/Analysis/InnerProductSpace/Adjoint.lean |
1 |
2 |
['github-actions'] |
nobody |
0-1241 20 minutes ago |
0-569 4 minutes ago |
0-251 4 minutes |
| 35169 |
loefflerd author:loefflerd |
feat(NumberTheory/ModularForms): remove unnecessary instance arguments |
Adjust proof of `isCusp_of_mem_strictPeriods` to get rid of two unnecessary instance arguments.
---
(All changes outside that one lemma are just getting rid of now-unnecessary hypotheses where that lemma is used later.)
Spotted while reviewing #32959.
[](https://gitpod.io/from-referrer/)
|
t-number-theory
easy
maintainer-merge
|
34/39 |
Mathlib/NumberTheory/ModularForms/Cusps.lean,Mathlib/NumberTheory/ModularForms/QExpansion.lean |
2 |
4 |
['copilot-pull-request-reviewer', 'github-actions', 'grunweg', 'loefflerd'] |
nobody |
0-571 9 minutes ago |
0-2661 39 minutes ago |
0-2914 48 minutes |
| 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 |
| 33786 |
hdmkindom author:hdmkindom |
feat(Analysis/Matrix): add Jacobian matrix for matrix-valued functions |
This PR introduces the Jacobian matrix for matrix-valued functions `F : Matrix m n ℝ → Matrix p q ℝ`.
The Jacobian matrix `jacobianMatrix F X` at point `X` is indexed by `(p × q) × (m × n)`, where each entry represents the partial derivative with respect to a basis element. To handle instance-mismatch issues with matrix norms, we use local Frobenius norm instances.
mkdir Analysis/Matrix/Jacobian.lean
## Main definitions
- `jacobianMatrix F X`: The Jacobian matrix at point `X`, defined by `jacobianMatrix F X (i, k) (j, l) = (fderiv ℝ F X (Matrix.single j l 1)) i k`
## Main theorems
- `fderiv_eq_jacobian_mul`: Express the Fréchet derivative as a contraction with the Jacobian
- `jacobianMatrix_comp`: Chain rule for Jacobian matrices
- `jacobianMatrix_linear`, `jacobianMatrix_id`, `jacobianMatrix_const`: Basic properties
- `jacobianMatrix_add`, `jacobianMatrix_smul`: Linearity properties
|
t-analysis
new-contributor
|
219/0 |
Mathlib.lean,Mathlib/Analysis/Matrix/Jacobian.lean |
2 |
1 |
['github-actions'] |
ADedecker assignee:ADedecker |
30-35737 30 days ago |
33-70412 33 days ago |
34-14432 34 days |
| 33838 |
chainstart author:chainstart |
feat(NumberTheory): add unitary divisors and unitary perfect numbers |
## Summary
This PR introduces the unitary divisor sum function σ* to Mathlib and proves that no odd unitary perfect numbers exist.
## Main Definitions
- `Nat.UnitaryDivisor d n`: A divisor `d` of `n` is unitary if `gcd(d, n/d) = 1`
- `Nat.unitaryDivisors n`: The `Finset` of all unitary divisors of `n`
- `Nat.unitaryDivisorSum n` (notation `σ*`): Sum of all unitary divisors
- `Nat.UnitaryPerfect n`: `n` is unitary perfect if `σ*(n) = 2n`
## Main Theorems
**Multiplicativity:**
- `unitaryDivisorSum_mul`: For coprime `m`, `n`, `σ*(mn) = σ*(m) · σ*(n)`
- Proved via explicit bijection between unitary divisors of `mn` and pairs of unitary divisors
**Prime Powers:**
- `unitaryDivisors_prime_pow`: The unitary divisors of `p^k` are exactly `{1, p^k}`
- `unitaryDivisorSum_prime_pow`: For prime `p` and `k ≥ 1`, `σ*(p^k) = p^k + 1`
**Unitary Perfect Numbers:**
- `no_odd_unitary_perfect`: There are no odd unitary perfect numbers > 1 (Subbarao-Warren 1966)
- `UnitaryPerfect.even`: Every unitary perfect number is even
- `UnitaryPerfect.eq_two_pow_mul_odd`: Every unitary perfect number has form `2^a · k` with `a ≥ 1`, `k` odd
## Mathematical Background
A unitary perfect number is a positive integer `n` such that the sum of its unitary divisors equals `2n`. This generalizes the classical perfect numbers. Only five unitary perfect numbers are known: 6, 60, 90, 87360, and one with 24 digits.
The main theorem (no odd unitary perfect numbers) was originally proved by Subbarao & Warren (1966) using prime factorization arguments. Our formalization uses `Nat.recOnPrimeCoprime` for structural induction.
## References
- Subbarao, M. V., & Warren, L. J. (1966). Unitary perfect numbers. *Canadian Mathematical Bulletin*, 9(2), 147-153.
- Wall, C. R. (1975). The fifth unitary perfect number. *Canadian Mathematical Bulletin*, 18(1), 115-122.
## Code Statistics
- **Files**: 2
- **Lines**: ~520
- **Theorems**: 21 public declarations
- **Sorry count**: 0
## Checklist
- [x] All theorem names follow mathlib conventions
- [x] All lines ≤ 100 characters
- [x] All public theorems have docstrings
- [x] No `sorry` or `admit`
- [x] Code builds successfully
- [ ] CI tests pass (awaiting verification) |
new-contributor
t-number-theory
|
554/0 |
Mathlib.lean,Mathlib/NumberTheory/UnitaryDivisor.lean,Mathlib/NumberTheory/UnitaryPerfect.lean |
3 |
17 |
['Ruben-VandeVelde', 'SnirBroshi', 'chainstart', 'github-actions', 'riccardobrasca', 'tb65536'] |
riccardobrasca assignee:riccardobrasca |
25-75387 25 days ago |
25-80938 25 days ago |
31-74556 31 days |
| 33712 |
wangying11123 author:wangying11123 |
feat(Geometry/Euclidean/Angle/Unoriented/Projection): Add sameray_orthogonalProjection_vsub_of_angle_lt |
Add sameray_orthogonalProjection_vsub_of_angle_lt
`sameray_orthogonalProjection_vsub_of_angle_lt`
When an angle is acute, the vector to the orthogonal projection lies in the same ray as the given direction vector. |
new-contributor
t-euclidean-geometry
|
20/0 |
Mathlib/Geometry/Euclidean/Angle/Unoriented/Projection.lean |
1 |
3 |
['JovanGerb', 'github-actions'] |
JovanGerb assignee:JovanGerb |
24-38204 24 days ago |
28-69561 28 days ago |
33-73495 33 days |
| 33901 |
martinwintermath author:martinwintermath |
feat(LinearAlgebra/Span): add inter/union/sInf/sSup lemmas for Submodule.span |
This PR adds theorems about the interaction of `Submodule.span` with the lattice operations:
* `inter`, `sInf` and `biInter` lemmas for `Submodule.span`
* `union`, `sSup` and `biUnion` lemmas for `Submodule.span`
It also adds `@[simp]` to `span_union`
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-algebra
label:t-algebra$ |
25/0 |
Mathlib/LinearAlgebra/Span/Defs.lean |
1 |
3 |
['github-actions', 'themathqueen'] |
kim-em assignee:kim-em |
21-84111 21 days ago |
29-67882 29 days ago |
29-67564 29 days |
| 33793 |
LTolDe author:LTolDe |
feat(MeasureTheory/Constructions/Polish/Basic): add lemma AnalyticSet.inter_nonempty_of_nowhereMeagre |
add lemma AnalyticSet.inter_nonempty_of_nowhereMeagre, the main ingredient for the proof of the **Effros' Theorem**, see [#mathlib4 > Effros Theorem](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Effros.20Theorem/with/566543328)
introduce definition of a nowhere meagre set
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
new-contributor
|
37/0 |
Mathlib/MeasureTheory/Constructions/Polish/Basic.lean,Mathlib/Order/Filter/Basic.lean,Mathlib/Topology/GDelta/Basic.lean |
3 |
2 |
['MichaelStollBayreuth', 'github-actions'] |
kex-y assignee:kex-y |
21-70838 21 days ago |
21-68321 21 days ago |
33-68959 33 days |
| 33443 |
sahanwijetunga author:sahanwijetunga |
feat: Define Isometries of Bilinear Spaces |
---
We define Isometries of Bilinear Spaces, closely following the implementation of isometries of quadratic spaces.
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
275/0 |
Mathlib.lean,Mathlib/LinearAlgebra/BilinearForm/Isometry.lean,Mathlib/LinearAlgebra/BilinearForm/IsometryEquiv.lean |
3 |
1 |
['github-actions'] |
mattrobball assignee:mattrobball |
18-35724 18 days ago |
28-36645 28 days ago |
41-63170 41 days |
| 33280 |
michelsol author:michelsol |
feat(MeasureTheory/Integral/IntervalIntegral): add variant `integral_deriv_eq_sub_uIoo` of 2nd theorem of calculus. |
Add a continuous on uIcc, differentiable on uIoo, deriv version of the 2nd fundamental theorem of calculus.
This corresponds to what is written [here](https://en.wikipedia.org/wiki/Fundamental_theorem_of_calculus#Second_part).
For example it makes it easier to compute the integral :
```lean4
∫ x : ℝ in 0..1, (√(1 - x ^ 2))⁻¹ = ∫ x : ℝ in 0..1, deriv arcsin x = arcsin 1 - arcsin 0
```
It is not possible to use [`interval_deriv_eq_sub`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.html#intervalIntegral.integral_deriv_eq_sub) which requires differentiability on all of [0,1], as `arcsin` isn't differentiable at 1.
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
new-contributor
maintainer-merge
|
14/0 |
Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.lean |
1 |
4 |
['EtienneC30', 'github-actions'] |
EtienneC30 assignee:EtienneC30 |
16-63224 16 days ago |
48-60368 48 days ago |
48-60050 48 days |
| 34137 |
goliath-klein author:goliath-klein |
refactor(PiTensorProduct/{InjectiveNorm, ProjectiveNorm}): Remove `injectiveSeminorm` |
Currently, `injectiveSeminorm` is extensionally equal to `projectiveSeminorm`. Both implement what is commonly called the "projective tensor norm".
# Background
(C.f. [[Diestel et al.]](https://www.ams.org/bookstore/pspdf/mbk-52-prev.pdf)). On the algebraic tensor product of two Banach spaces X, Y, there are two distinguished norms. First the projective norm, or "largest reasonable crossnorm". Two equivalent expressions for it are:
(L1) `‖u‖_∧ = sup { sum_i ‖x_i‖ ‖y_i‖ | sum_i x_i ⊗ y_i = u }`,
(L2) `‖u‖_∧ = norm of the linear map that sends b : B(X,Y; 𝕂) to (lift b) u`,
where `B(X,Y; Z)` is the set of bounded bilinear maps into a normed space `Z`.
Second, there is the injective norm, or "smallest reasonable crossnorm":
(S) `‖u‖_∨` = norm of the bilinear map that sends `f : X', g : Y'` to `(f⊗g) u`.
# Mathlib
The formalization treats tensor products of seminormed spaces over normed fields. In this context, `projectiveSeminorm` implements (L1). But `injectiveSeminorm u` doesn't implement (S), but the following variant of (L2):
(L2') `sup_Z { norm of map sending b : B(X,Y; Z) to (lift b) u }.`
In fact, `injectiveSeminorm = projectiveSeminorm `. The upper bound is proven in Mathlib. Equality is attained (somewhat tautologically) by choosing `Z` to be `X ⊗ Y` endowed with the projective seminorm.
`projectiveSeminorm` is defined first; `injectiveSeminorm` builds on it. Then the theory of an isometric version of `PiTensorProduct.lift` is based on `injectiveSeminorm`.
# Proposed change
This PR deprecates `injectiveSeminorm` and ports all applications to (L1). This doesn't actually require too much work, leads to the same mathematical theory, and significantly reduces complexity (and potential for confusion!).
There is a [companion PR](https://github.com/leanprover-community/mathlib4/pull/33969) which formalizes the equality of the current definitions and has a WIP / RFC implementation of the injective seminorm as commonly understood.
Deprecations:
- injectiveSeminorm
- injectiveSeminorm_apply
- norm_eval_le_injectiveSeminorm
- injectiveSeminorm_le_projectiveSeminorm
- injectiveSeminorm_tprod_le
- Mathlib.Analysis.Normed.Module.PiTensorProduct.InjectiveSeminorm
---
Co-authored-by: Davood H. H. Tehrani
[](https://gitpod.io/from-referrer/)
|
new-contributor |
169/207 |
Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/ProjectiveSeminorm.lean,Mathlib/LinearAlgebra/PiTensorProduct.lean |
3 |
7 |
['Ruben-VandeVelde', 'dupuisf', 'github-actions', 'goliath-klein'] |
dupuisf assignee:dupuisf |
16-50337 16 days ago |
16-52469 16 days ago |
20-36476 20 days |
| 33458 |
NoneMore author:NoneMore |
feat(ModelTheory): add lifting for embeddings to languages with constants |
Prepare for a generalized Tarski-Vaught test with a set as input instead of a substructure.
---
[](https://gitpod.io/from-referrer/)
|
t-logic
new-contributor
|
35/0 |
Mathlib/ModelTheory/ElementaryMaps.lean,Mathlib/ModelTheory/LanguageMap.lean |
2 |
3 |
['Citronhat', 'github-actions'] |
fpvandoorn assignee:fpvandoorn |
15-7780 15 days ago |
15-6919 15 days ago |
40-85534 40 days |
| 34138 |
pfaffelh author:pfaffelh |
feat(MeasureTheory): Introduce `MassFunction α` giving rise to a `Measure α ⊤` |
Define `MassFunction α := α → ℝ≥0∞`
Define `toMeasure (w : MassFunction α) : @Measure α ⊤` as a sum of diracs
Show properties of the resulting objects
This PR intends to start a more userfriendly interaction with probability mass functions (`PMF`). There are two main differences between `MassFunction` and `PMF`:
* `PMF` hast the additional property `HasSum 1`, making the resulting measure a probability measure. (For `MassFunction`, I intend to use the typeclass `IsProbabilityMeasure`in a later PR instead.)
* The `toMeasure` function of `MassFunction` directly defines the measure as a sum of diracs, which immediately makes computations possible.
Discussion thread on [zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/PMF.20Refactor.3A.20FunLike.20vs.20Definition.20Change)
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
new-contributor
|
224/0 |
Mathlib.lean,Mathlib/Algebra/GroupWithZero/Indicator.lean,Mathlib/Data/Set/Pairwise/Basic.lean,Mathlib/MeasureTheory/Measure/MassFunction.lean |
4 |
10 |
['DavidLedvinka', 'github-actions', 'metakunt', 'pfaffelh'] |
EtienneC30 assignee:EtienneC30 |
13-54165 13 days ago |
13-51087 13 days ago |
23-43272 23 days |
| 33817 |
FlAmmmmING author:FlAmmmmING |
fix(Combinatorics/Enumerative/Schroder.lean): Fix the definition and theorem of smallSchroder. |
In the previous definition, the small Schröder numbers were defined as
```LaTeX
s_0 = 1, s_1 = 1, s_2 = 1, s_3 = 3...
```
, which does not match the sequence listed in OEIS A006318. Moreover, this definition makes it difficult to correctly write the generating function for the small Schröder numbers. This PR fixes this issue.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-combinatorics
large-import
|
61/39 |
Mathlib/Combinatorics/Enumerative/Schroder.lean |
1 |
19 |
['FlAmmmmING', 'github-actions', 'vihdzp'] |
awainverse assignee:awainverse |
13-35712 13 days ago |
22-14712 22 days ago |
32-51600 32 days |
| 34227 |
stepan2698-cpu author:stepan2698-cpu |
feat: If sum of densities is at least one, the sumset covers the naturals |
Proves an outstanding TODO item from Mathlib.Combinatorics.Schnirelmann : shows that if the sum of two densities is at least one, the sumset covers the positive naturals.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
51/1 |
Mathlib/Combinatorics/Schnirelmann.lean |
1 |
3 |
['github-actions', 'grunweg', 'kbuzzard'] |
awainverse assignee:awainverse |
13-35709 13 days ago |
21-37688 21 days ago |
21-52385 21 days |
| 34028 |
floor-licker author:floor-licker |
feat(SimpleGraph): add max-flow/min-cut weak duality |
This PR introduces a basic s–t flow setup for undirected SimpleGraphs and proves the standard weak-duality
inequality: for any feasible flow f and any s–t cut S, value f ≤ cutCapacity S.
This is a small, self-contained lemma I extracted while working on larger graph-theoretic formalizations, in particular, results that will ultimately rely on a full max-flow/min-cut theorem. The full MFMC equality/existence statement is not included here. This is the weak-duality direction (∀ f S, value f ≤ cutCapacity S).
|
t-combinatorics
new-contributor
|
169/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/MaxFlowMinCut.lean |
2 |
13 |
['SnirBroshi', 'floor-licker', 'github-actions'] |
kmill assignee:kmill |
12-35719 12 days ago |
16-74477 16 days ago |
25-49459 25 days |
| 33520 |
NoneMore author:NoneMore |
feat(ModelTheory/ElementarySubstructures): add a variant of Tarski-Vaught test taking sets as input |
There should exist an `ElementarySubstructure.copy` such that we can directly bundle the set itself instaed of its closure as an elementary substructure.
The other direction depends on #33458.
---
[](https://gitpod.io/from-referrer/)
|
t-logic
new-contributor
|
55/0 |
Mathlib/ModelTheory/ElementarySubstructures.lean |
1 |
3 |
['Citronhat', 'NoneMore', 'github-actions'] |
awainverse assignee:awainverse |
11-35670 11 days ago |
15-12732 15 days ago |
39-83097 39 days |
| 34521 |
huaizhangchu author:huaizhangchu |
feat(MeasureTheory): add measurableEmbedding_natCast |
This PR adds a lemma stating that the coercion from `ℕ` to `ℝ` is a measurable embedding.
```lean
lemma measurableEmbedding_natCast : MeasurableEmbedding (Nat.cast : ℕ → ℝ) :=
Nat.isClosedEmbedding_coe_real.measurableEmbedding
```
This is useful for proving properties about discrete probability distributions on `ℕ` by lifting them to `ℝ` and will be used in #34435. |
t-measure-probability
new-contributor
|
3/0 |
Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean |
1 |
1 |
['github-actions'] |
kex-y assignee:kex-y |
11-35662 11 days ago |
14-73341 14 days ago |
14-76521 14 days |
| 33791 |
PhoenixIra author:PhoenixIra |
feat: Generalization of FixedPointApproximants to CompletePartialOrder |
---
This PR provides a generalization of FixedPointApproximants to CompletePartialOrder. Not every theorem can be generalized, as sometimes we require additional conditions (namely `x ≤ f x`) in order to guarantee that the set is directed and thus the supremum is well-defined. This is not necessary in a CompleteLattice.
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-order
|
223/100 |
Mathlib/Order/CompletePartialOrder.lean,Mathlib/SetTheory/Ordinal/FixedPointApproximants.lean |
2 |
20 |
['PhoenixIra', 'github-actions', 'vihdzp'] |
PhoenixIra and vihdzp assignee:PhoenixIra assignee:vihdzp |
11-93 11 days ago |
22-60847 22 days ago |
22-60529 22 days |
| 34477 |
spanning-tree author:spanning-tree |
refactor(Order): make CompletePartialOrder extend OrderBot |
Make `CompletePartialOrder` extend `OrderBot`, and add a constructor `completePartialOrderOfLubOfDirected`. Previously, `CompletePartialOrder` had an implicit bottom element but did not extend OrderBot explicitly.
Breaking change: `CompletePartialOrder` instances must provide `⊥` and `bot_le`, or use the constructor.
See discussion in [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.3E.20complete.20partial.20order.20and.20domain.20theory.20formalization).
---
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
|
15/1 |
Mathlib/Order/CompletePartialOrder.lean |
1 |
2 |
['Citronhat', 'github-actions'] |
pechersky assignee:pechersky |
9-35688 9 days ago |
13-70380 13 days ago |
16-24608 16 days |
| 34664 |
GrigorenkoPV author:GrigorenkoPV |
feat(SetTheory/Ordinal/Arithmetic): prove isSuccPrelimit_iff_omega0_dvd |
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory
new-contributor
|
36/15 |
Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Exponential.lean,Mathlib/SetTheory/Ordinal/Notation.lean |
3 |
8 |
['GrigorenkoPV', 'github-actions', 'vihdzp'] |
vihdzp assignee:vihdzp |
8-71030 8 days ago |
9-74394 9 days ago |
11-30822 11 days |
| 34375 |
jvanwinden author:jvanwinden |
feat(MeasureTheory/Function/AEEqOfLIntegral): introduce lemmas for rewriting a.e. inequalities |
Introduce the following lemmas:
- ae_le_const_iff_forall_gt_imp_ae_lt,
- ae_const_le_iff_forall_lt_imp_ae_gt,
- ae_le_const_iff_forall_gt_imp_ae_le,
- ae_const_le_iff_forall_lt_imp_ae_ge,
which can be used get an epsilon of room in a.e. inequalities, with the epsilon being outside the a.e. quantifier. The 'le/ge' variants require a dense ordering.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
24/0 |
Mathlib/MeasureTheory/Function/AEEqOfLIntegral.lean |
1 |
4 |
['github-actions', 'jvanwinden', 'urkud'] |
kex-y assignee:kex-y |
8-69511 8 days ago |
18-70929 18 days ago |
18-70611 18 days |
| 32570 |
ksenono author:ksenono |
feat(Combinatorics/SimpleGraph): bipartite subgraphs and vertex-disjoint graphs for Konig's theorem |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
22/0 |
Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean |
2 |
19 |
['SnirBroshi', 'github-actions', 'jcommelin', 'ksenono', 'vlad902'] |
kmill assignee:kmill |
8-45479 8 days ago |
8-45479 8 days ago |
60-76165 60 days |
| 32555 |
ksenono author:ksenono |
feat(Combinatorics/SimpleGraph/Matching): maximum and maximal matchings for Konig's theorem |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
127/0 |
Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean |
2 |
24 |
['SnirBroshi', 'github-actions', 'jcommelin', 'ksenono'] |
awainverse assignee:awainverse |
8-44306 8 days ago |
8-44306 8 days ago |
61-13013 61 days |
| 34191 |
IlPreteRosso author:IlPreteRosso |
feat(Topology/Algebra/InfiniteSum): Discrete Convolution API 1st PR |
Defines the very basics of the discrete convolution API. In analogy with [MeasureTheory.Convolution](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Convolution.html#MeasureTheory.convolution).
Main definitions include
- `mulFiber`, `convolution`, `ConvolutionExists`, `ConvolutionExists.add_distrib`, `ConvolutionExistsAt.smul_convolution`, `mulFiber_swapEquiv`, `convolution_comm`
RM:
- The main docstring is *as is*
- Next step is triple sum intrastrcutre + `assoc` theorems for convolution (long)
Continues the work from #33411 and #33410 (splitting into shorter PRs, carries over the modifications from previous reviews) |
t-topology
new-contributor
|
277/0 |
Mathlib.lean,Mathlib/Topology/Algebra/InfiniteSum/DiscreteConvolution.lean |
2 |
18 |
['IlPreteRosso', 'github-actions', 'j-loreaux'] |
PatrickMassot assignee:PatrickMassot |
7-64585 7 days ago |
7-63963 7 days ago |
16-64404 16 days |
| 34709 |
dennj author:dennj |
feat(Analysis/ODE): add discrete Grönwall inequality |
## Summary
Add discrete Grönwall inequality to `Mathlib/Analysis/ODE/DiscreteGronwall.lean`
Provides bounds for recurrence inequalities of the form `u(n+1) ≤ c(n) * u(n) + b(n)`
### Main results
- `discrete_gronwall_prod_general`: Product form working over any linearly ordered commutative ring
- `prod_one_add_Ico_mono`: Auxiliary lemma for product comparisons over subintervals
- `discrete_gronwall`: Classical exponential bound `u(n) ≤ (u(n₀) + ∑ b(k)) * exp(∑ c(i))` (ℝ-specific)
- `discrete_gronwall_Ico`: Uniform bound over a finite interval (ℝ-specific)
## Related work
Complements the continuous Grönwall inequality in `Mathlib.Analysis.ODE.Gronwall`
## References
* Grönwall, T. H. (1919). "Note on the derivatives with respect to a parameter of the solutions of a system of differential equations". *Annals of Mathematics*, 20(4), 292–296.
|
t-analysis
new-contributor
|
174/0 |
Mathlib.lean,Mathlib/Analysis/ODE/DiscreteGronwall.lean |
2 |
1 |
['github-actions'] |
ADedecker assignee:ADedecker |
6-35803 6 days ago |
10-24338 10 days ago |
10-24020 10 days |
| 34182 |
IlPreteRosso author:IlPreteRosso |
feat(Data/Finsupp/Single, Data/Finsupp/Indicator): Add set_indicator_singleton, indicator_singleton; golfed single_eq_set_indicator, single_eq_indicator |
[Mathlib.Data.Finsupp.Single](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finsupp/Single.html#Finsupp.single)
- Add `set_indicator_singleton`, golfed `single_eq_set_indicator`
[Mathlib.Data.Finsupp.Indicator](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finsupp/Indicator.html#Finsupp.indicator_apply)
- Add `indicator_singleton`, golfed `single_eq_indicator`
Continues the work from #34095 |
large-import
t-data
new-contributor
|
17/17 |
Mathlib/Data/Finsupp/Indicator.lean,Mathlib/Data/Finsupp/Single.lean |
2 |
29 |
['IlPreteRosso', 'eric-wieser', 'github-actions', 'mathlib-bors', 'urkud'] |
eric-wieser and urkud assignee:urkud assignee:eric-wieser |
5-65496 5 days ago |
22-18000 22 days ago |
22-24510 22 days |
| 34215 |
justus-springer author:justus-springer |
feat(FieldTheory/RatFunc): Degree of field extension K(X)/K(f) |
Prove that the degree of the field extension K(X)/K(f) of a rational function f equals the maximum of the degrees of its numerator and denominator. This is a crucial lemma towards proving Luroth's theorem.
This contribution was created as part of the Heidelberg Lean workshop "Formalising algebraic geometry" in November 2025.
Co-authored-by: Miriam Philipp @miriamphilipp
Co-authored-by: Junyan Xu @alreadydone
---
- [ ] depends on: #34212
- [ ] depends on: #34213
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
228/0 |
Mathlib.lean,Mathlib/FieldTheory/RatFunc/Luroth.lean |
2 |
8 |
['alreadydone', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'tb65536'] |
jcommelin assignee:jcommelin |
5-65103 5 days ago |
5-64393 5 days ago |
14-79823 14 days |
| 34674 |
Citronhat author:Citronhat |
feat(Algebra/Order/Ring): replace ENNReal lemmas with WithTop versions |
* Add `WithTop` versions of basic multiplicative order lemmas.
* Use the new `WithTop` lemmas to replace `ENNReal` proofs and address six TODOs.
* Fix a typo in the `pos_of_ne_zero` alias name. |
new-contributor
t-algebra
label:t-algebra$ |
46/15 |
Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean,Mathlib/Algebra/Order/Ring/WithTop.lean,Mathlib/Data/ENNReal/Operations.lean |
3 |
4 |
['Citronhat', 'Ruben-VandeVelde', 'github-actions'] |
dagurtomas assignee:dagurtomas |
5-35793 5 days ago |
9-7320 9 days ago |
10-79194 10 days |
| 34954 |
brianrabern author:brianrabern |
feat(Combinatorics/SimpleGraph/Acyclic): add colorable and chromaticN… |
…umber bridges for acyclic and tree graphs
Add thin bridge lemmas expressing that acyclic graphs (forests) and trees
are 2-colorable, and that their chromatic number is at most 2, directly
in terms of `Colorable` and `chromaticNumber`.
The existing `IsAcyclic.isBipartite` already proves this via the
definitional equality `IsBipartite = Colorable 2`, but these bridges
improve discoverability for users who reason about `Colorable` or
`chromaticNumber` without passing through `IsBipartite`.
This is a first step toward building out the graph coloring API.
New declarations:
- `IsAcyclic.colorable_two`
- `IsTree.colorable_two`
- `IsAcyclic.chromaticNumber_le_two`
- `IsTree.chromaticNumber_le_two`
All are one-line proofs reusing existing results; no new imports needed.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
16/0 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean |
1 |
1 |
['github-actions'] |
nobody |
4-59679 4 days ago |
unknown |
unknown |
| 34598 |
A-M-Berns author:A-M-Berns |
feat(Geometry/Polygon): nondegeneracy conditions and interconversion with Affine.Triangle |
This PR implements suggestions provided in [this comment](https://github.com/leanprover-community/mathlib4/pull/34393#issuecomment-3810047384) by @jsm28: interconversion between `Polygon P 3` and `Affine.Triangle` as well as the nondegeneracy conditions `NondegenerateVertices` and `NondegenerateEdges`. I tried to keep typeclass restrictions as minimal as possible.
---
|
new-contributor
t-euclidean-geometry
maintainer-merge
|
114/5 |
Mathlib/Geometry/Polygon/Basic.lean |
1 |
17 |
['A-M-Berns', 'github-actions', 'jcommelin', 'jsm28'] |
jsm28 assignee:jsm28 |
4-47908 4 days ago |
4-47223 4 days ago |
11-73913 11 days |
| 33985 |
YellPika author:YellPika |
feat(Order/OmegaCompletePartialOrder): `OmegaCompletePartialOrder` instance for `Sum` with basic `ωScottContinuous` lemmas |
This PR adds an `OmegaCompletePartialOrder` instance for `Sum`, along with `ωScottContinuous` lemmas for basic operations (`inl`, `inr`, `elim`). Appropriate lemmas are marked with `@[fun_prop]` so that the `fun_prop` tactic can automatically deduce `ωScottContinuous` proofs for functions involving `Sum`s (e.g. see the proof of `Sum.ωScottContinuous_map`).
---
- [x] depends on: #33941
[](https://gitpod.io/from-referrer/)
|
new-contributor
large-import
t-order
|
183/1 |
Mathlib/Data/Sum/Basic.lean,Mathlib/Data/Sum/Order.lean,Mathlib/Order/OmegaCompletePartialOrder.lean,Mathlib/Order/ScottContinuity.lean |
4 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
Vierkantor assignee:Vierkantor |
4-35308 4 days ago |
8-21397 8 days ago |
8-41515 8 days |
| 34054 |
YellPika author:YellPika |
feat(Order/OmegaCompletePartialOrder): OmegaCompletePartialOrder instance for `Sigma` with basic `ωScottContinuous` lemmas |
This PR adds an `OmegaCompletePartialOrder` instance for `Sigma` along with `ωScottContinuous` lemmas for basic operations (`mk`, `fst`, `snd`). Appropriate lemmas are marked with `@[fun_prop]` so that the `fun_prop` tactic can automatically deduce `ωScottContinuous` proofs for functions involving `Sigma`s.
---
- [x] depends on: #33941
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-order
please-merge-master
|
168/0 |
Mathlib/Data/Sigma/Order.lean,Mathlib/Order/OmegaCompletePartialOrder.lean |
2 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
Vierkantor assignee:Vierkantor |
4-35307 4 days ago |
8-22603 8 days ago |
8-22285 8 days |
| 33257 |
NickAdfor author:NickAdfor |
feat(Combinatorics/SimpleGraph/Bipartite): Odd Cycle Theorem (A Solution to TODO) |
Prove bipartite iff all cycles are even
This PR formalizes the classical graph theory theorem: a graph is bipartite if and only if all its cycles have even length.
Co-authored-by: Nick Adfor
Co-authored-by: Yue Sun
Co-authored-by: Aristotle AI
---
## Main results
- `SimpleGraph.bipartite_iff_all_cycles_even` : the main equivalence theorem
## Key supporting lemmas
- `SimpleGraph.even_length_iff_same_color` : parity lemma for 2-colorings
- `SimpleGraph.even_length_iff_even_bypass_length` : bypass length parity
- `SimpleGraph.even_cycle_length_of_path` : cycle construction lemma
- `SimpleGraph.bypass_eq_nil_of_closed` : closed path properties
## Proof outline
1. For bipartite graphs: use the 2-coloring to show that in a 2-coloring, a walk has even length iff its endpoints have the same color.
2. For cycles (start = end), this forces even length.
3. For the converse: if all cycles are even, construct a 2-coloring using the `two_colorable_iff_forall_loop_even` characterization.
4. Show this coloring is valid using bypass operations and path properties.
## Technical notes
- Uses `SimpleGraph.Walk` for path/cycle representation
- Handles both `IsPath` and `IsCycle` predicates
- Uses bypass operations (`takeUntil`, `dropUntil`, `bypass`) to analyze walks
- Requires `DecidableEq V` for some lemmas
- Uses classical logic for case analysis
## Reviewer notes
- The proof uses induction on walks and case analysis on colorings
- Some lemmas (like `even_length_iff_same_color`) could be extracted to more general locations
- All theorems are in the `SimpleGraph` namespace
- The `bipartite_iff_all_cycles_even` theorem provides the complete characterization |
t-combinatorics
new-contributor
|
164/8 |
Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean |
2 |
70 |
['IvanRenison', 'NickAdfor', 'Rida-Hamadani', 'SnirBroshi', 'github-actions', 'kmill', 'mitchell-horner', 'vihdzp', 'vlad902'] |
nobody |
4-33882 4 days ago |
4-34290 4 days ago |
12-34771 12 days |
| 33668 |
Citronhat author:Citronhat |
feat(PMF): add lintegral formulas for PMF |
This PR introduces two lemmas describing the `lintegral` of a function with respect to the measure induced by a probability mass function:
- `PMF.lintegral_eq_tsum`
- `PMF.lintegral_eq_sum`
These are the `ℝ≥0∞` analogues of the existing Bochner `integral` formulas `integral_eq_tsum` and `integral_eq_sum`. They could be useful for reasoning about expectations and integrability.
In addition, the proof of `integral_eq_sum` is simplified by deriving it directly from `integral_eq_tsum` using `tsum_fintype`. |
t-measure-probability
new-contributor
|
14/5 |
Mathlib/Probability/ProbabilityMassFunction/Integrals.lean |
1 |
2 |
['DavidLedvinka', 'github-actions'] |
kex-y assignee:kex-y |
4-33770 4 days ago |
36-40042 36 days ago |
36-71402 36 days |
| 33688 |
Citronhat author:Citronhat |
feat(PMF): add expectation lemmas for Poisson PMF |
This PR adds some basic results about the Poisson distribution, its `PMF`, and its expectation.
**New lemmas:**
* `poissonPMF_apply` — an unfolding lemma for `poissonPMF`.
* `poissonPMFReal_mul_eq_succ_mul` — the standard recursion identity for the Poisson mass function.
* `poissonPMFReal_hasSum_nmul` — shows that `fun n ↦ poissonPMFReal r n * n` has sum `r`.
* `poissonPMF_tsum_nmul` — the corresponding identity at the level of the `PMF`.
* `poissonPMF_coe_tsum_nmul` — the same result after coercion to `ℝ`.
Both `ℝ`-valued and `ℝ≥0∞`-valued formulations are included so that these results can be used conveniently in both Lebesgue and Bochner integration contexts. |
new-contributor
t-measure-probability
|
21/0 |
Mathlib/Probability/Distributions/Poisson.lean |
1 |
6 |
['Citronhat', 'DavidLedvinka', 'github-actions'] |
urkud assignee:urkud |
4-32014 4 days ago |
35-46047 35 days ago |
36-41218 36 days |
| 34093 |
YellPika author:YellPika |
feat(Order/OmegaCompletePartialOrder): add `OmegaCompletePartialOrder` instance for `Option` with basic `ωScottContinuous` lemmas |
---
- [x] depends on: #33941
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
|
297/0 |
Mathlib.lean,Mathlib/Data/Option/Order.lean,Mathlib/Order/Monotone/Basic.lean,Mathlib/Order/OmegaCompletePartialOrder.lean |
4 |
5 |
['YellPika', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
pechersky assignee:pechersky |
3-35789 3 days ago |
8-17158 8 days ago |
8-16840 8 days |
| 34435 |
huaizhangchu author:huaizhangchu |
feat(Probability): convolution of Poisson distributions |
This PR proves that the convolution of two Poisson distributions is again a Poisson distribution:
`Poisson(r₁) ∗ Poisson(r₂) = Poisson(r₁ + r₂)`
## Main results
- `poissonMeasureReal_charFun`: characteristic function of Poisson distribution is `exp(r(exp(it) - 1))`
- `poissonMeasureReal_conv_poissonMeasureReal`: convolution of Poisson distributions on ℝ
- `poissonMeasure_conv_poissonMeasure`: convolution of Poisson distributions on ℕ
- `poissonMeasure_add_poissonMeasure_of_indepFun`: sum of independent Poisson random variables
## Proof strategy
Uses characteristic functions: `φ(t) = exp(r(eⁱᵗ - 1))`, then pulls back from ℝ to ℕ. |
t-measure-probability
large-import
new-contributor
|
110/1 |
Mathlib/Probability/Distributions/Poisson.lean |
1 |
14 |
['CoolRmal', 'DavidLedvinka', 'github-actions', 'huaizhangchu'] |
RemyDegenne assignee:RemyDegenne |
3-35784 3 days ago |
6-85990 6 days ago |
8-27527 8 days |
| 34267 |
Brian-Nugent author:Brian-Nugent |
feat(Topology/Algebra): Add API for Sheaves of abelian groups |
in preparation for proving results on sheaf cohomology.
---
[](https://gitpod.io/from-referrer/)
|
t-topology
new-contributor
|
108/1 |
Mathlib.lean,Mathlib/Algebra/Category/Grp/AB.lean,Mathlib/CategoryTheory/Abelian/GrothendieckAxioms/Sheaf.lean,Mathlib/Topology/Sheaves/AddCommGrpCat.lean |
4 |
19 |
['Brian-Nugent', 'dagurtomas', 'github-actions'] |
dagurtomas assignee:dagurtomas |
3-17709 3 days ago |
3-16871 3 days ago |
16-59146 16 days |
| 33662 |
Pjotr5 author:Pjotr5 |
feat(Algebra/Order/BigOperators/Expect): add lemmas and strict variants |
### Summary
- Combine `le_expect_nonempty_of_subadditive` and `le_expect_of_subadditive` into a single lemma `le_expect_of_subadditive`.
The extra assumptions `(hs : s.Nonempty)` and `(h_zero : m 0 = 0)` are unnecessary (since `m 0 = 0` follows from `h_div`).
This requires a small downstream update to `Mathlib/Analysis/RCLike/Basic.lean` (`norm_expect_le`).
- Add strict-inequality variants:
`expect_lt_expect`, `expect_lt`, `lt_expect`.
- Add existence lemmas:
`exists_le_of_expect_le_expect`, `exists_le_of_le_expect`, `exists_le_of_expect_le`,
and `exists_lt_of_expect_lt_expect`.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-algebra
label:t-algebra$ |
46/16 |
Mathlib/Algebra/Order/BigOperators/Expect.lean,Mathlib/Analysis/RCLike/Basic.lean |
2 |
1 |
['github-actions'] |
thorimur assignee:thorimur |
2-80070 2 days ago |
2-78731 2 days ago |
36-85864 36 days |
| 34830 |
parabamoghv author:parabamoghv |
feat(CategoryTheory/Monoidal): add definition of categorical groups |
This PR defines of categorical groups, also known as coherent 2-groups, in mathlib.
Motivation:
Categorical groups are well-studied structures in monoidal category theory, but are not currently available in mathlib. The definitions in this PR follow the existing design patterns used for Category, MonoidalCategory, and BraidedCategory.
This PR focuses on setting up the core structure and notation. Basic lemmas and further developments will be provided in a subsequent PR.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
new-contributor
|
178/0 |
Mathlib.lean,Mathlib/CategoryTheory/Monoidal/CategoricalGroups/Basic.lean |
2 |
4 |
['github-actions', 'parabamoghv'] |
robin-carlier assignee:robin-carlier |
2-63083 2 days ago |
2-62443 2 days ago |
3-65838 3 days |
| 32355 |
bjornsolheim author:bjornsolheim |
feat(Geometry/Convex/Cone): define and characterize simplicial pointed cones |
Define simplicial pointed cones.
Prove three lemmas about simplicial and generating simplicial cones.
---
[](https://gitpod.io/from-referrer/)
|
t-convex-geometry
new-contributor
|
55/0 |
Mathlib.lean,Mathlib/Geometry/Convex/Cone/Simplicial.lean |
2 |
52 |
['YaelDillies', 'artie2000', 'bjornsolheim', 'github-actions'] |
YaelDillies assignee:YaelDillies |
2-49887 2 days ago |
2-49793 2 days ago |
62-67121 62 days |
| 34777 |
sqrt-of-2 author:sqrt-of-2 |
feat(Combinatorics/SetFamily/Intersecting): Define ℓ-intersecting families and establish their basic properties |
Define ℓ-intersecting families and establish their basic properties.
A family of finsets is ℓ-intersecting if every pair of members intersects in at least ℓ elements.
From LeanCamCombi.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
60/0 |
Mathlib/Combinatorics/SetFamily/Intersecting.lean |
1 |
7 |
['YaelDillies', 'b-mehta', 'github-actions'] |
b-mehta assignee:b-mehta |
2-49493 2 days ago |
8-66672 8 days ago |
8-66354 8 days |
| 34551 |
IlPreteRosso author:IlPreteRosso |
refactor(Data.Finset.*Antidiagonal): rename defs to `set*Antidiagonal` and deprecate old names in namespace Finset |
Main file is [Prod.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Antidiag/Prod.html). Adds `Finset.HasMulAntidiagonal`, the multiplicative counterpart to `HasAntidiagonal`, linked via `@[to_additive existing]`.
Split PR (current changes):
This PR renames the set-based antidiagonal definitions to have a `set` prefix, distinguishing them from the typeclass-based API in `Prod.lean`.
**Only definitions are renamed in this PR.** Theorem/lemma renames will follow in a subsequent PR.
[MulAntidiagonal.lean](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Data/Finset/MulAntidiagonal.lean)
- `mulAntidiagonal` → `setMulAntidiagonal`
- `addAntidiagonal` → `setAddAntidiagonal` (via `@[to_additive]`)
[SMulAntidiagonal.lean](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Data/Finset/SMulAntidiagonal.lean)
- `SMulAntidiagonal` → `setSMulAntidiagonal`
- `VAddAntidiagonal` → `setVAddAntidiagonal` (via `@[to_additive]`)
Propagates to:
- `Mathlib/RingTheory/HahnSeries/Multiplication.lean`
- `Mathlib/RingTheory/HahnSeries/Summable.lean`
---
Added deprecation aliases for the renamed definitions.
[Finset/MulAntidiagonal.lean](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Data/Finset/MulAntidiagonal.lean)
```
@[to_additive (attr := deprecated setAddAntidiagonal (since := "2026-01-31")),
deprecated setMulAntidiagonal (since := "2026-01-31")]
alias mulAntidiagonal := setMulAntidiagonal
```
[Finset/SMulAntidiagonal.lean](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Data/Finset/SMulAntidiagonal.lean)
```
@[to_additive (attr := deprecated setVAddAntidiagonal (since := "2026-01-31")),
deprecated setSMulAntidiagonal (since := "2026-01-31")]
alias smulAntidiagonal := setSMulAntidiagonal
```
Propagates:
[PointwiseSMul.lean](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Data/Finsupp/PointwiseSMul.lean) - updated to use Set.vaddAntidiagonal (the original Set name)
---
Full changes to be made:
For a monoid `M`, `mulAntidiagonal n` returns the finset of pairs `(i, j)` such that `i * j = n`.
[MulAntidiagonal.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finset/MulAntidiagonal.html)
- `mulAntidiagonal` → `setMulAntidiagonal`
- `addAntidiagonal` → `setAddAntidiagonal` (via `@[to_additive]`)
- All related theorems renamed accordingly:
- `mem_setMulAntidiagonal`
- `setMulAntidiagonal_mono_left`/`setMulAntidiagonal_mono_right`
- `swap_mem_setMulAntidiagonal`
- `support_setMulAntidiagonal_subset_mul`
- `isPWO_support_setMulAntidiagonal`
- `setMulAntidiagonal_min_mul_min`
[SMulAntidiagonal.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finset/SMulAntidiagonal.html)
- `setSMulAntidiagonal` (lowercase `set` prefix)
- `setVAddAntidiagonal` (via `@[to_additive setVAddAntidiagonal ...]`)
- All related theorems use lowercase `set` prefix:
- `mem_setSMulAntidiagonal` / `mem_setVAddAntidiagonal`
- `setSMulAntidiagonal_mono_left`/`setSMulAntidiagonal_mono_right` / `setVAddAntidiagonal_mono_left`/`setVAddAntidiagonal_mono_right`
- `support_setSMulAntidiagonal_subset_smul` / `support_setVAddAntidiagonal_subset_vadd`
- `isPWO_support_setSMulAntidiagonal` / `isPWO_support_setVAddAntidiagonal`
- `setSMulAntidiagonal_min_smul_min` / `setVAddAntidiagonal_min_vadd_min`
[Prod.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Antidiag/Prod.html)
- Added explicit `@[to_additive]` target names:
- `@[to_additive antidiagonal_congr ...]` for `mulAntidiagonal_congr`
- `@[to_additive (attr := ext) antidiagonal_subtype_ext ...]` for `mulAntidiagonal_subtype_ext`
- `@[to_additive antidiagonal_congr' ...]` for `mulAntidiagonal_congr'`
- `@[to_additive (attr := simps) sigmaAntidiagonalEquivProd ...]` for `sigmaMulAntidiagonalEquivProd`
[Multiplication.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/HahnSeries/Multiplication.html)
- Updated all VAdd antidiagonal references to use lowercase `set` prefix:
- `setVAddAntidiagonal`
- `mem_setVAddAntidiagonal`
- `setVAddAntidiagonal_mono_left`/`setVAddAntidiagonal_mono_right`
- `isPWO_support_setVAddAntidiagonal`
- `support_setVAddAntidiagonal_subset_vadd`
- `setVAddAntidiagonal_min_vadd_min`
- Updated all Add antidiagonal references:
- `mem_setAddAntidiagonal`
- `swap_mem_setAddAntidiagonal`
[Summable.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/HahnSeries/Summable.html)
- `setVAddAntidiagonal` references updated
- `mem_setAddAntidiagonal` references updated
[PowerSeries.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/HahnSeries/PowerSeries.html)
- `mem_addAntidiagonal` → `mem_setAddAntidiagonal`
|
t-algebra
new-contributor
label:t-algebra$ |
67/47 |
Mathlib/Algebra/Order/Antidiag/Prod.lean,Mathlib/Data/Finset/MulAntidiagonal.lean,Mathlib/Data/Finset/SMulAntidiagonal.lean,Mathlib/Data/Set/MulAntidiagonal.lean,Mathlib/RingTheory/HahnSeries/Multiplication.lean,Mathlib/RingTheory/HahnSeries/Summable.lean |
6 |
6 |
['IlPreteRosso', 'Ruben-VandeVelde', 'github-actions', 'kim-em', 'mathlib-merge-conflicts'] |
jcommelin assignee:jcommelin |
2-48800 2 days ago |
2-46516 2 days ago |
13-10761 13 days |
| 28246 |
Sebi-Kumar author:Sebi-Kumar |
feat(AlgebraicTopology/FundamentalGroupoid): the n-sphere is simply connected for n > 1 |
Prove that the `n`-dimensional sphere (i.e., the unit sphere centered at the origin in `(n + 1)`-dimensional real Euclidean space) is a simply connected space for `n > 1`. This proof follows Hatcher's "Algebraic Topology"; we first prove a general lemma about decomposing loops and then exploit the fact that non-surjective loops in the sphere are homotopically trivial.
Note: To get this file to build, I edited `Mathlib/Tactic/Linter/DirectoryDependency.lean` to remove the restrictions on AlgebraicTopology files importing Geometry, NumberTheory, and FieldTheory files. Thank you to those who shared their expertise [here](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Warning.20that.20AlgebraicTopology.20can't.20import.20SetTheory/with/533833638). As I understand it, this is just a short-term solution, so I would appreciate feedback on what to do about this situation.
Note: I am unsure where exactly the file `SimplyConnectedSphere.lean` should go or whether that is an appropriate name for the file, so feedback there would be appreciated.
---
To provide additional context, this code was written 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.
- [x] depends on: #28208
- [x] depends on: #28198
- [x] depends on: #28185
[](https://gitpod.io/from-referrer/)
|
t-algebraic-topology
new-contributor
|
343/3 |
Mathlib.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/SimplyConnectedSphere.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean |
3 |
3 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
robin-carlier assignee:robin-carlier |
2-35531 2 days ago |
5-64600 5 days ago |
5-64282 5 days |
| 34026 |
SnkXyx author:SnkXyx |
feat(Algebra/MvPolynomial): add mainVariable |
Add `mainVariable` of `MvPolynomial`, the largest variable index appearing in the polynomial.
Main Theorems:
* `mainVariable_eq_bot_iff_eq_C`
* `mainVariable_sum_le`
* `mainVariable_prod_le`
* `degreeOf_eq_zero_of_mainVariable_lt`
The PR is upstreamized from [github.com/WuProver/lean_characteristic_set](https://github.com/WuProver/lean_characteristic_set)
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
147/0 |
Mathlib.lean,Mathlib/Algebra/MvPolynomial/MainVariable.lean |
2 |
1 |
['github-actions'] |
mattrobball assignee:mattrobball |
2-35528 2 days ago |
27-20610 27 days ago |
27-20292 27 days |
| 34854 |
GrigorenkoPV author:GrigorenkoPV |
chore(Combinatorics/Enumerative/Catalan): split into `Basic` & `Tree` |
---
Split off from #34853
[](https://gitpod.io/from-referrer/)
|
new-contributor |
227/194 |
Mathlib.lean,Mathlib/Combinatorics/Enumerative/Catalan.lean,Mathlib/Combinatorics/Enumerative/Catalan/Basic.lean,Mathlib/Combinatorics/Enumerative/Catalan/Tree.lean,Mathlib/Combinatorics/Enumerative/DyckWord.lean,Mathlib/RingTheory/PowerSeries/Catalan.lean |
6 |
2 |
['SnirBroshi', 'github-actions'] |
thorimur assignee:thorimur |
2-35516 2 days ago |
5-81499 5 days ago |
7-43510 7 days |
| 26985 |
agjftucker author:agjftucker |
feat(Analysis/Calculus/ImplicitFunction): define implicitFunctionOfProdDomain |
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/) |
t-analysis
new-contributor
|
269/157 |
Mathlib.lean,Mathlib/Analysis/Calculus/Implicit.lean,Mathlib/Analysis/Calculus/ImplicitContDiff.lean,Mathlib/Analysis/Calculus/ImplicitFunction/ProdDomain.lean |
4 |
27 |
['agjftucker', 'github-actions', 'j-loreaux', 'mathlib-bors', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'winstonyin'] |
hrmacbeth assignee:hrmacbeth |
2-11248 2 days ago |
2-10361 2 days ago |
64-58815 64 days |
| 32744 |
NoneMore author:NoneMore |
feat(ModelTheory/Definablity): add `DefinableFun` definition and lemmas |
This PR adds two basic shapes of definable sets and `DefinableFun` definition with relevant lemmas.
The main result is `Set.Definable.preimage_of_map` asserting that the preimage of a definable set under a definable map is definable.
There are also some tool lemmas derived by the preimage lemma.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-logic
|
147/0 |
Mathlib/ModelTheory/Definability.lean |
1 |
59 |
['NoneMore', 'github-actions', 'mathlib4-merge-conflict-bot', 'staroperator'] |
awainverse assignee:awainverse |
2-5284 2 days ago |
34-13459 34 days ago |
54-42836 54 days |
| 35011 |
whocares-abt author:whocares-abt |
feat(Combinatorics/SimpleGraph/Copy): add degree of copy less than original |
add two theorems relating degree of a graph and it's copy |
t-combinatorics
new-contributor
|
17/0 |
Mathlib/Combinatorics/SimpleGraph/Copy.lean |
1 |
2 |
['github-actions', 'themathqueen'] |
nobody |
2-5005 2 days ago |
2-4336 2 days ago |
3-7879 3 days |
| 33709 |
wangying11123 author:wangying11123 |
feat(Analysis/Convex/Between): betweenness from differences on the same ray |
Add `wbtw_of_sameRay_vsub_left`, saying that if the vectors from a point x to points y and z lie on the same ray, then y is weakly between x and z, or z is weakly between x and y. |
new-contributor
t-convex-geometry
|
24/0 |
Mathlib/Analysis/Convex/Between.lean |
1 |
9 |
['MichaelStollBayreuth', 'YaelDillies', 'github-actions', 'grunweg', 'wangying11123'] |
nobody |
2-3334 2 days ago |
24-71474 24 days ago |
34-78220 34 days |
| 33118 |
thomaskwaring author:thomaskwaring |
feat(Combinatorics/SimpleGraph/Acyclic): every graph has a spanning forest |
We show that every graph has a spanning forest: defined to be an acyclic subgraph with the same reachability relation as the larger graph. As a special case, every connected graph has a spanning tree.
---
Each of these results (spanning forest & spanning tree) are proved in two versions: a general case where the forest / tree is found by extending a given acyclic subgraph, and the special case where that subgraph is empty.
- [ ] depends on: #32043 |
new-contributor
t-combinatorics
|
29/5 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean |
1 |
6 |
['SnirBroshi', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'thomaskwaring', 'vlad902'] |
b-mehta assignee:b-mehta |
2-3065 2 days ago |
39-32421 39 days ago |
40-18278 40 days |
| 34966 |
Deep0Thinking author:Deep0Thinking |
feat(MeasureTheory): add `IntegrableOn. tendsto_primitive_` over `Ioi/Iio` and `IntegrableOn.continuousOn_primitive_` over `Ioi/Iio/Ici/Iic` |
This PR mainly proves:
- `IntegrableOn.tendsto_primitive_` over `Ioi/Iio`
- `IntegrableOn.continuousWithinAt_primitive_` over `Ioi/Iio`
- `IntegrableOn.continuousOn_primitive_` over `Ioi/Iio/Ici/Iic`
- `IntegrableOn.tendsto_integral_` over `Ioi/Iio/Ici/Iic`
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
204/1 |
Mathlib/MeasureTheory/Integral/DominatedConvergence.lean,Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean,Mathlib/Order/Interval/Set/LinearOrder.lean |
3 |
6 |
['CoolRmal', 'Deep0Thinking', 'github-actions'] |
nobody |
1-68198 1 day ago |
3-3749 3 days ago |
3-83537 3 days |
| 27229 |
WilliamCoram author:WilliamCoram |
feat(GroupTheory/DoubleCoset): multiple lemmas |
From FLT
---
[](https://gitpod.io/from-referrer/)
|
FLT
t-group-theory
new-contributor
|
85/2 |
Mathlib/GroupTheory/DoubleCoset.lean |
1 |
40 |
['CBirkbeck', 'Ruben-VandeVelde', 'WilliamCoram', 'github-actions', 'kim-em', 'mariainesdff', 'mathlib4-merge-conflict-bot', 'tb65536'] |
mariainesdff assignee:mariainesdff |
1-55206 1 day ago |
2-68776 2 days ago |
100-16406 100 days |
| 35100 |
stepan2698-cpu author:stepan2698-cpu |
feat: definition of a character of a representation |
This PR begins to transfer definitions and theorems about characters from `FDRep` to `Representation`. Once #34888 is merged, the theorems involving isomorphisms of representations will be appropriately restated.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
57/0 |
Mathlib/RepresentationTheory/Character.lean |
1 |
1 |
['github-actions'] |
nobody |
1-51184 1 day ago |
1-50517 1 day ago |
1-50199 1 day |
| 26479 |
thefundamentaltheor3m author:thefundamentaltheor3m |
feat(Analysis/Complex/CauchyIntegral): Cauchy–Goursat for Unbounded Rectangles |
In this PR, we prove versions of the Cauchy-Goursat theorem where the contours in question are rectangular and unbounded (ie, where the contours look like the $\bigsqcup$ symbol). I am not sure if I have formalised these in the best way, or if `Analysis.Complex.CauchyIntegral` is the best place for them (it might be prudent to reorganise the file into multiple files at some point), but I believe this is a useful result. Suggestions welcome.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-analysis
sphere-packing
|
205/0 |
Mathlib/Analysis/Complex/CauchyIntegral.lean |
1 |
5 |
['github-actions', 'j-loreaux', 'mathlib4-merge-conflict-bot', 'thefundamentaltheor3m', 'wwylele'] |
urkud assignee:urkud |
1-40876 1 day ago |
21-56901 21 days ago |
21-56583 21 days |
| 34936 |
BryceT233 author:BryceT233 |
feat(RingTheory/AdicCompletion): completeness of adic completion |
Following https://stacks.math.columbia.edu/tag/05GG, this PR formalized that `AdicCompletion I M` is `I`-adically complete when the ideal `I` is finitely generated.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
large-import
|
383/21 |
Mathlib.lean,Mathlib/Algebra/Algebra/Operations.lean,Mathlib/Data/Finsupp/Pointwise.lean,Mathlib/LinearAlgebra/Finsupp/Span.lean,Mathlib/RingTheory/AdicCompletion/Basic.lean,Mathlib/RingTheory/AdicCompletion/Completeness.lean,Mathlib/RingTheory/AdicCompletion/Functoriality.lean,Mathlib/RingTheory/Ideal/Quotient/PowTransition.lean |
8 |
14 |
['BryceT233', 'erdOne', 'github-actions'] |
nobody |
1-40206 1 day ago |
1-38615 1 day ago |
3-6578 3 days |
| 34481 |
DAE123456 author:DAE123456 |
feat: Ore's Theorem |
Ore Theorem : Let G be a graph of order n ≥ 3 that satisfies the Ore property. Then G has a Hamilton cycle. |
t-combinatorics
new-contributor
|
3372/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Ore.lean |
2 |
25 |
['DAE123456', 'LLaurance', 'Ruben-VandeVelde', 'YaelDillies', 'github-actions', 'kim-em', 'tb65536', 'vlad902'] |
b-mehta assignee:b-mehta |
1-35635 1 day ago |
10-3295 10 days ago |
13-50755 13 days |
| 34722 |
GrigorenkoPV author:GrigorenkoPV |
feat(Data/Finset/RangeDistance): add |
---
Rebase of https://github.com/leanprover-community/mathlib4/pull/26347
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-data
|
34/0 |
Mathlib.lean,Mathlib/Algebra/Order/Group/Unbundled/Abs.lean,Mathlib/Data/Finset/RangeDistance.lean |
3 |
4 |
['GrigorenkoPV', 'github-actions', 'joneugster', 'plp127'] |
TwoFX assignee:TwoFX |
1-35631 1 day ago |
9-75468 9 days ago |
9-75150 9 days |
| 34773 |
semaraugusto author:semaraugusto |
Feat(InformationTheory/Entropy): Adds generic Shannon Entropy definition for probability mass functions |
Add Shannon entropy for probability mass functions
This PR defines the Shannon entropy of a probability mass function as an
ℝ-valued infinite sum using `Real.negMulLog`, and proves basic properties
and standard computations.
Main results include:
* entropy is nonnegative;
* entropy vanishes iff the PMF is deterministic (`PMF.pure`);
* entropy is strictly positive for non-pure PMFs;
* entropy of a Bernoulli PMF coincides with `Real.binEntropy`;
* entropy of uniform distributions is `log` of the cardinality, both for
`PMF.uniformOfFintype` and `PMF.uniformOfFinset`.
Several small helper lemmas isolate technical arguments about supports,
coercions from `ℝ≥0∞`, and bounds on infinite sums, in order to keep the
main proofs readable.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor |
277/0 |
Mathlib.lean,Mathlib/Analysis/SpecialFunctions/Log/NegMulLog.lean,Mathlib/InformationTheory/Entropy.lean |
3 |
2 |
['github-actions'] |
sgouezel assignee:sgouezel |
1-35629 1 day ago |
8-69010 8 days ago |
8-69077 8 days |
| 34851 |
dennj author:dennj |
feat(Data/Matrix/Mul): add diagonal and transpose lemmas for vector operations |
This adds three lemmas for matrix-vector operations that serve as foundational support for future ML formalization:
- `vecMul_diagonal_dotProduct`: weighted inner product `x ᵥ* diagonal d ⬝ᵥ y = ∑ i, d i * x i * y i`
- `dotProduct_transpose_mulVec`: bilinear form symmetry `x ⬝ᵥ Aᵀ *ᵥ y = y ⬝ᵥ A *ᵥ x`
- `mul_diagonal_mulVec`: column-weighted sum `(A * diagonal d) *ᵥ x = ∑ i, (d i * x i) • A.col i`
These are basic linear algebra identities involving diagonal matrices and vector operations that appear frequently in machine learning contexts (weighted inner products, attention mechanisms, feature scaling, diagonal preconditioning). |
t-data
new-contributor
|
18/0 |
Mathlib/Data/Matrix/Mul.lean |
1 |
4 |
['eric-wieser', 'github-actions', 'themathqueen'] |
pechersky assignee:pechersky |
1-35626 1 day ago |
7-49291 7 days ago |
7-48973 7 days |
| 34875 |
banrovegrie author:banrovegrie |
feat(LinearAlgebra/Matrix): add Sherman-Morrison formula |
Mathlib has the matrix determinant lemma (`det_add_replicateCol_mul_replicateRow` in SchurComplement.lean) but lacked the corresponding inverse formula. This PR fills that gap.
- Add `Matrix.inv_add_vecMulVec`: Sherman-Morrison formula for `(A + uv^T)^{-1}`
- Add `Matrix.inv_sub_vecMulVec`: subtraction variant
- Add `Matrix.isUnit_det_add_vecMulVec`: invertibility under the formula's hypotheses
## Test plan
- [x] `lake build` passes
- [x] Lines within 100 char limit
- [x] All declarations have docstrings |
t-algebra
new-contributor
label:t-algebra$ |
135/0 |
Mathlib.lean,Mathlib/LinearAlgebra/Matrix/ShermanMorrison.lean |
2 |
10 |
['Xxxjdjdid', 'banrovegrie', 'copilot-pull-request-reviewer', 'eric-wieser', 'github-actions'] |
kim-em assignee:kim-em |
1-35620 1 day ago |
5-13818 5 days ago |
6-65954 6 days |
| 34914 |
jvanwinden author:jvanwinden |
feat(Analysis/Normed/Module/FiniteDimension): add lemmas on IsTheta and summability |
IsTheta.summable_iff is a natural generalization of IsEquivalent.summable_iff. Some adjacent lemmas now become direct consequences.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
26/7 |
Mathlib/Analysis/Normed/Module/FiniteDimension.lean |
1 |
8 |
['github-actions', 'jvanwinden', 'vihdzp', 'wwylele'] |
urkud assignee:urkud |
1-35618 1 day ago |
4-60605 4 days ago |
5-71498 5 days |
| 34943 |
rao107 author:rao107 |
chore(Probability): Eliminate non-terminal simp |
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
new-contributor
easy
|
2/3 |
Mathlib/Probability/Distributions/Exponential.lean |
1 |
2 |
['github-actions', 'rao107'] |
sgouezel assignee:sgouezel |
1-35614 1 day ago |
5-13947 5 days ago |
5-13629 5 days |
| 34742 |
Brian-Nugent author:Brian-Nugent |
feat(SheafCohomology): add API for Sheaf Cohomology |
Defines the long exact sequence on cohomology associated to a short exact sequence of sheaves `H.longSequence`. Also defines `H.equiv₀`, the additive equivalence between `H F 0` and `((sheafSections J AddCommGrpCat).obj (op T)).obj F` when the category has a terminal object `T`.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
large-import
t-category-theory
|
76/0 |
Mathlib/Algebra/Category/Grp/ForgetCorepresentable.lean,Mathlib/CategoryTheory/Sites/SheafCohomology/Basic.lean |
2 |
11 |
['Brian-Nugent', 'adamtopaz', 'github-actions', 'joneugster'] |
adamtopaz assignee:adamtopaz |
1-32906 1 day ago |
1-32245 1 day ago |
9-29827 9 days |
| 34159 |
wangying11123 author:wangying11123 |
feat(Geometry/Euclidean/Similarity): Add Triangle similarity on oangle |
Add theorems about triangles similarity on oangle |
t-euclidean-geometry
new-contributor
|
154/1 |
Mathlib/Geometry/Euclidean/Similarity.lean |
1 |
5 |
['LLaurance', 'github-actions', 'wangying11123'] |
jsm28 assignee:jsm28 |
1-27534 1 day ago |
1-26871 1 day ago |
7-2077 7 days |
| 35097 |
pevogam author:pevogam |
feat: add a LE version Rat.lt_one_iff_num_le_denom theorem |
The following is more useful due to the partial order application of LE in comparison to LT.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
2/0 |
Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean |
1 |
4 |
['github-actions', 'pevogam', 'wwylele'] |
nobody |
1-11161 1 day ago |
1-8511 1 day ago |
1-46770 1 day |
| 35058 |
GrigorenkoPV author:GrigorenkoPV |
chore: move tendsto_{floor,ceil}_at{Top,Bot} |
Moves:
- Topology.Algebra.Order.Floor.tendsto_floor_atTop -> Order.Filter.AtTopBot.Floor.tendsto_floor_atTop
- Topology.Algebra.Order.Floor.tendsto_floor_atBot -> Order.Filter.AtTopBot.Floor.tendsto_floor_atBot
- Topology.Algebra.Order.Floor.tendsto_ceil_atTop -> Order.Filter.AtTopBot.Floor.tendsto_ceil_atTop
- Topology.Algebra.Order.Floor.tendsto_ceil_atBot -> Order.Filter.AtTopBot.Floor.tendsto_ceil_atBot
---
Tracked in #7987
[](https://gitpod.io/from-referrer/)
|
new-contributor
large-import
|
22/25 |
Mathlib/Order/Filter/AtTopBot/Floor.lean,Mathlib/Topology/Algebra/Order/Floor.lean |
2 |
1 |
['github-actions'] |
nobody |
1-3724 1 day ago |
1-3724 1 day ago |
1-3406 1 day |
| 34295 |
Yu-Misaka author:Yu-Misaka |
chore: drop `PartialOrder` in `IsOrderedMonoid` instances |
This PR attempts to remove `PartialOrder` assumption in `IsOrderedMonoid`. The main objective is to make [Finsupp.sum_le_sum](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finsupp/Order.html#Finsupp.sum_le_sum) available for preorder.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor |
149/123 |
Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Algebra/Group/Subgroup/Order.lean,Mathlib/Algebra/Order/AddTorsor.lean,Mathlib/Algebra/Order/BigOperators/Group/Finset.lean,Mathlib/Algebra/Order/BigOperators/Group/List.lean,Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean,Mathlib/Algebra/Order/Group/Defs.lean,Mathlib/Algebra/Order/Group/Units.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/Hom/Monoid.lean,Mathlib/Algebra/Order/Interval/Basic.lean,Mathlib/Algebra/Order/Monoid/Associated.lean,Mathlib/Algebra/Order/Monoid/Basic.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/Submonoid.lean,Mathlib/Algebra/Order/Monoid/TypeTags.lean,Mathlib/Algebra/Order/Monovary.lean,Mathlib/Algebra/Order/Pi.lean,Mathlib/Algebra/Order/UpperLower.lean,Mathlib/Analysis/Normed/Order/UpperLower.lean,Mathlib/Data/Finsupp/Order.lean,Mathlib/MeasureTheory/Function/SimpleFunc.lean,Mathlib/Order/Filter/AtTopBot/Monoid.lean,Mathlib/Order/Filter/Germ/OrderedMonoid.lean,Mathlib/Order/Filter/IsBounded.lean,Mathlib/Order/Filter/Pointwise.lean,Mathlib/Tactic/Positivity/Finset.lean,Mathlib/Topology/Algebra/InfiniteSum/Order.lean,Mathlib/Topology/Algebra/Order/UpperLower.lean |
32 |
14 |
['Citronhat', 'Yu-Misaka', 'copilot-pull-request-reviewer', 'github-actions', 'leanprover-radar'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
1-1593 1 day ago |
0-84559 23 hours ago |
19-59417 19 days |
| 35017 |
robo7179 author:robo7179 |
feat(Combinatorics/SimpleGraph/Acyclic): add every nontrivial tree has atleast two leaves |
Added two theorems to prove that every non trivial tree has atleast two leaves (one in Finite the other in Acyclic).
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
163/0 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Finite.lean |
2 |
2 |
['github-actions'] |
nobody |
0-81534 22 hours ago |
1-57199 1 day ago |
1-58141 1 day |
| 34838 |
mkaratarakis author:mkaratarakis |
feat: lemmas for the analytic part of the proof of the Gelfond–Schneider theorem (Part 2/4) |
---
Required for https://github.com/leanprover-community/mathlib4/pull/33050
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
13/0 |
Mathlib/Analysis/Analytic/Order.lean |
1 |
1 |
['github-actions'] |
sgouezel assignee:sgouezel |
0-77047 21 hours ago |
0-76227 21 hours ago |
7-74468 7 days |
| 35029 |
homeowmorphism author:homeowmorphism |
feat(Algebra/Group/Subgroup/Basic): the normal closure of an empty set is the trivial subgroup |
feat(Algebra/Group/Subgroup/Basic): the normal closure of an empty set is the trivial subgroup.
This is a dependency of a larger PR to formalize finitely presented groups https://github.com/leanprover-community/mathlib4/pull/34236.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
7/0 |
Mathlib/Algebra/Group/Subgroup/Basic.lean |
1 |
5 |
['copilot-pull-request-reviewer', 'github-actions', 'homeowmorphism', 'plp127'] |
nobody |
0-74726 20 hours ago |
0-73735 20 hours ago |
2-64435 2 days |
| 35122 |
Marygold-Dusk author:Marygold-Dusk |
feat: define C^n submersions |
This PR defines submersions between C^n manifolds. In the infinite-dimensional setting, submersions are defined via local normal forms rather than surjectivity of the mfderiv. A map f is a submersion at x if, in suitable charts around x and f x, it has the form (u, v) ↦ u after identifying the model space with a product.
We prove a few basic properties:
- being a submersion is a local property,
- products of submersions are submersions,
- the set of submersed points is open
Future PRs will prove that submersions are C^n and deduce equivalence with the standard definition in finite dimensions. From the path towards the regular value theorem.
This file was developed under the supervision of Michael Rothgang.
Co-authored-by: Michael Rothgang
---
Most of the design is analogues to submersions.
|
t-differential-geometry
new-contributor
|
596/0 |
Mathlib.lean,Mathlib/Geometry/Manifold/Submersion.lean |
2 |
2 |
['github-actions'] |
grunweg assignee:grunweg |
0-72051 20 hours ago |
0-71428 19 hours ago |
0-72102 20 hours |
| 34108 |
elazarg author:elazarg |
feat(InformationTheory/Coding): Kraft-McMillan inequality for uniquely decodable codes |
This PR introduces the basic definition of uniquely decodable codes and proves the [Kraft-McMillan inequality](https://en.wikipedia.org/wiki/Kraft%E2%80%93McMillan_inequality), a fundamental result in noiseless coding theory.
The results live in the `InformationTheory` namespace, in the directory `InformationTheory/Coding`.
#### Main definitions
* `InformationTheory.UniquelyDecodable`:
a set of codewords is uniquely decodable if concatenation is injective on
finite lists of codewords.
#### Main results
* `InformationTheory.kraft_mcmillan_inequality`:
for any finite uniquely decodable code `S` over an alphabet of size `D`, $\sum_{w \in S} D^{-|w|} \le 1.$
* `InformationTheory.UniquelyDecodable.epsilon_not_mem`:
uniquely decodable codes cannot contain the empty string.
|
t-measure-probability
new-contributor
|
240/0 |
Mathlib.lean,Mathlib/Data/Fintype/BigOperators.lean,Mathlib/InformationTheory/Coding/KraftMcMillan.lean,Mathlib/InformationTheory/Coding/UniquelyDecodable.lean |
4 |
50 |
['YuvalFilmus', 'dupuisf', 'elazarg', 'github-actions', 'metakunt', 'vlad902'] |
dupuisf assignee:dupuisf |
0-59923 16 hours ago |
1-36774 1 day ago |
11-62587 11 days |
| 35069 |
A-M-Berns author:A-M-Berns |
feat(Geometry/Polygon): simple polygons and boundary map |
This PR introduces Simple polygons with the predicate `IsSimple`, which captures the idea of a non-self-intersecting boundary, in the file Simple.lean. In the file Boundary.lean, a boundary map from `AddCircle n` is defined. I prove that the range of this map is the boundary and that this map is injective if and only if the polygon is simple. I kept Boundary.lean and Simple.lean separate because future results will include stuff just about the boundary map independent of simplicity (e.g. that it is continuous in the appropriate setting) and stuff just about simple polygons independent of the boundary map (e.g. that for n = 3, IsSimple iff HasNondegenerateVertices.) I used Claude Code to help generate some of the proof material, but I golfed and edited all AI contribution.
Depends on PR #34598
---
|
new-contributor |
431/5 |
Mathlib.lean,Mathlib/Geometry/Polygon/Basic.lean,Mathlib/Geometry/Polygon/Boundary.lean,Mathlib/Geometry/Polygon/Simple.lean |
4 |
15 |
['A-M-Berns', 'github-actions', 'vihdzp', 'wwylele'] |
nobody |
0-42666 11 hours ago |
0-41501 11 hours ago |
1-49877 1 day |
| 34888 |
stepan2698-cpu author:stepan2698-cpu |
feat: definition of equivalence of representations |
Defines equivalence of representations, and defines an equivalence between $$\mathrm{Hom}(V, W)$$ and $$V^* \otimes W$$ as representations. This is a missing piece to respell all of the results in Character.lean without using category-theoretic notions.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
60/0 |
Mathlib/RepresentationTheory/Intertwining.lean |
1 |
2 |
['github-actions', 'plp127'] |
ocfnash assignee:ocfnash |
0-35795 9 hours ago |
4-36213 4 days ago |
6-43070 6 days |
| 34940 |
michaellee94 author:michaellee94 |
feat: the graph of a continuous function on a $C^n$ manifold is a $C^n$ manifold |
---
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry
new-contributor
|
227/0 |
Mathlib.lean,Mathlib/Geometry/Manifold/Instances/Graph.lean |
2 |
56 |
['botbaki-review', 'github-actions', 'grunweg', 'michaellee94'] |
ocfnash assignee:ocfnash |
0-35792 9 hours ago |
4-25484 4 days ago |
4-67362 4 days |
| 35118 |
BryceT233 author:BryceT233 |
feat(RingTheory/MvPowerSeries): introduce truncFinset to unify truncations |
Resolves the TODO in MvPowerSeries/Trunc.lean by implementing a general truncation map `truncFinset`, which paves the way for unifying strict and non-strict truncations and defining other truncations
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
121/130 |
Mathlib/RingTheory/MvPowerSeries/Trunc.lean |
1 |
5 |
['BryceT233', 'github-actions', 'wwylele'] |
nobody |
0-28448 7 hours ago |
0-27501 7 hours ago |
1-3299 1 day |
| 34937 |
tannerduve author:tannerduve |
feat(Computability): semilattice instance on Turing degrees |
This PR equips `TuringDegree` with a `SemilatticeSup` structure by introducing the Turing join, proving usual least-upper-bound properties, and lifting these to degrees (quotients). In support of this, it extends the existing `RecursiveIn` API with some lemmas used in the degree theory.
The main contribution is the `SemilatticeSup` instance on `TuringDegree`. We define the Turing join as follows
```
turingJoin (f g) : ℕ → ℕ -- notation: f ⊕ g
```
and prove it is a least upper bound:
* `left_le_join`, `right_le_join`
* `join_le`
* monotonicity and congruence lemmas (`join_mono`, `join_congr`)
We lift this to degrees in `TuringDegree.sup`, `TuringDegree.le_sup_left`, `TuringDegree.le_sup_right`, and `TuringDegree.sup_le`
```
instance : SemilatticeSup TuringDegree
```
**New additions to `RecursiveIn.lean`:**
- `liftPrim`, `liftPrimrec`, `RecursiveIn'`, `ComputableIn`, `ComputableIn₂`: Encodes partial/total functions between `Primcodable` types as `ℕ →. ℕ`, analogous to `Partrec`/`Computable`.
- `of_eq`, `of_eq_tot`, `of_primrec`, `some`, `none`, `mono`, `subst`: Standard closure properties for `RecursiveIn`.
- `cond_const`, `cond_core_rfind`, `cond`, `ComputableIn.cond`: Shows `RecursiveIn` is closed under conditionals when the guard is absolutely computable
- `Nat.Partrec.recursiveIn`, `Computable.computableIn`: Every partrec/computable function is recursive in any oracle set.
Small addition to `Partrec`
we add to `Mathlib.Computability.Partrec` a small helper def (`Partrec.kronecker` and related `rfind` lemmas) representing the function that returns 1 if its two (unpaired) arguments are equal, and 0 otherwise, which is used in the proof of `cond`
## TODO
Some current `RecursiveIn` proofs such as `cond_core_rfind` still work directly with the inductive constructors and are thus very long. A follow up could add a combinator-style closure library byessentially relativizing all the results and lemmas in `Partrec`, and proofs could be golfed heavily as they are in `Partrec`
## Note: AI Usage
[Aleph prover](https://logicalintelligence.com/aleph-coding-ai/) was allowed to prove an earlier version of `cond_core_rfind`, which included stating and proving the lemma `cond_const` but the proofs have since been iterated on manually
Cursor was allowed to run git commands and edit docstrings/headers, and was used in setting up the module structure of the files |
t-computability
new-contributor
large-import
|
644/63 |
Mathlib/Computability/Partrec.lean,Mathlib/Computability/RecursiveIn.lean,Mathlib/Computability/TuringDegree.lean |
3 |
12 |
['eric-wieser', 'github-actions', 'tannerduve', 'vihdzp'] |
nobody |
0-23541 6 hours ago |
0-22878 6 hours ago |
4-28253 4 days |
| 33188 |
BryceT233 author:BryceT233 |
feat(RingTheory/MvPowerSeries): introduce rename |
This file establishes the `rename` operation on multivariate power series under a map with finite fibers,
which modifies the set of variables.
This file is patterned after `MvPolynomials/Rename.lean`
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-ring-theory
large-import
|
432/1 |
Mathlib.lean,Mathlib/Data/Finsupp/Antidiagonal.lean,Mathlib/Data/Finsupp/Basic.lean,Mathlib/Data/Finsupp/Order.lean,Mathlib/Data/Finsupp/Weight.lean,Mathlib/RingTheory/MvPowerSeries/Basic.lean,Mathlib/RingTheory/MvPowerSeries/Rename.lean |
7 |
26 |
['BryceT233', 'Komyyy', 'erdOne', 'github-actions', 'mathlib4-merge-conflict-bot', 'riccardobrasca'] |
erdOne and riccardobrasca assignee:riccardobrasca assignee:erdOne |
0-15314 4 hours ago |
0-13090 3 hours ago |
26-79353 26 days |
| 33895 |
jessealama author:jessealama |
feat(Computability/Primrec): add list_take, list_drop, list_modify, and list_set |
This PR shows that several list operations from Lean core are primitive recursive:
- `list_drop`: [`List.drop`](https://github.com/leanprover/lean4/blob/master/src/Init/Data/List/TakeDrop.lean), via iterating `List.tail` using `nat_iterate`
- `list_take`: [`List.take`](https://github.com/leanprover/lean4/blob/master/src/Init/Data/List/TakeDrop.lean), via `list_drop` on the reversed list
- `list_modifyHead'`: [`List.modifyHead`](https://github.com/leanprover/lean4/blob/master/src/Init/Data/List/Nat/Modify.lean) with external data
- `list_modify'`: [`List.modify`](https://github.com/leanprover/lean4/blob/master/src/Init/Data/List/Nat/Modify.lean) with external data
- `list_modify`: [`List.modify`](https://github.com/leanprover/lean4/blob/master/src/Init/Data/List/Nat/Modify.lean)
- `list_set`: [`List.set`](https://github.com/leanprover/lean4/blob/master/src/Init/Prelude.lean)
The primed versions (`list_modify'`, `list_modifyHead'`) take a function `g : β → α → α` that depends on external data of type `β`. This generalization enables deriving the other operations:
- `list_modify` specializes `list_modify'` with `β = Unit`
- `list_set` uses `list_modify'` via `List.set_eq_modify`
Also moves `list_length` earlier in the file (before `list_drop` and `list_take`, which depend on it). |
new-contributor
t-computability
|
48/4 |
Mathlib/Computability/Primrec/List.lean |
1 |
1 |
['github-actions'] |
nobody |
0-1281 21 minutes ago |
0-556 3 minutes ago |
28-560 28 days |
| 35174 |
nielsvoss author:nielsvoss |
feat(Analysis/InnerProductSpace): a linear map composed with its adjoint is symmetric |
Add theorems about `LinearMap.IsSymmetric` that match some theorems for `LinearMap.IsPositive`.
Mathlib contains stronger versions of some of these, like `LinearMap.IsPositive.self_comp_adjoint`, but having a dedicated version for `LinearMap.IsSymmetric` is advantageous, especially when used with `LinearMap.IsSymmetric.eigenvalues`.
---
One thing that I am uncertain about is if I should add similar lemmas for `ContinuousLinearMap` to even better match the `IsPositive` API, and if so, whether these theorems should be stated in terms of `IsSymmetric` or `IsSelfAdjoint`.
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
26/1 |
Mathlib/Analysis/InnerProductSpace/Adjoint.lean |
1 |
2 |
['github-actions'] |
nobody |
0-1241 20 minutes ago |
0-569 4 minutes ago |
0-251 4 minutes |