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-29987 1 month ago |
38-68148 38 days ago |
38-67892 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 |
34-80958 1 month ago |
34-80085 34 days ago |
106-49508 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-34187 1 month ago |
31-33392 31 days ago |
82-20791 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-29985 30 days ago |
33-64660 33 days ago |
34-8742 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-29963 29 days ago |
47-10200 47 days ago |
48-31846 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-29959 29 days ago |
39-45689 39 days ago |
39-45433 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-69476 28 days ago |
28-67765 28 days ago |
65-61902 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-4827 26 days ago |
26-2841 26 days ago |
80-1234 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-69635 25 days ago |
25-75186 25 days ago |
31-68866 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-32452 24 days ago |
28-63809 28 days ago |
33-67805 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-18524 23 days ago |
25-16411 25 days ago |
25-18599 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-27503 22 days ago |
22-28069 22 days ago |
43-31820 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-727 22 days ago |
31-30490 31 days ago |
31-35302 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-78359 21 days ago |
29-62130 29 days ago |
29-61874 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-65086 21 days ago |
21-62569 21 days ago |
33-63269 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-36907 21 days ago |
22-74960 22 days ago |
53-39189 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-29961 21 days ago |
27-20626 27 days ago |
27-23035 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-44305 20 days ago |
48-40692 48 days ago |
49-17540 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-78167 18 days ago |
18-77330 18 days ago |
62-21110 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-49192 18 days ago |
18-48349 18 days ago |
18-48093 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-33877 18 days ago |
18-32792 18 days ago |
64-2063 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-29972 18 days ago |
28-30893 28 days ago |
41-57480 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-29964 18 days ago |
22-77647 22 days ago |
22-85119 22 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-29963 18 days ago |
23-43176 23 days ago |
23-42920 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-62018 17 days ago |
17-66992 17 days ago |
57-40955 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-43890 17 days ago |
24-50538 24 days ago |
24-50282 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-29969 17 days ago |
20-41754 20 days ago |
24-55102 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-57472 16 days ago |
48-54616 48 days ago |
48-54360 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-50459 16 days ago |
16-83717 16 days ago |
28-60982 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-44585 16 days ago |
16-46717 16 days ago |
20-30786 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-29966 16 days ago |
16-42959 16 days ago |
20-10788 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-11098 16 days ago |
16-8490 16 days ago |
16-55360 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-2028 15 days ago |
15-1167 15 days ago |
40-79844 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-76180 14 days ago |
14-75333 14 days ago |
25-58339 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-75521 14 days ago |
14-73982 14 days ago |
20-43803 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-75029 14 days ago |
14-74175 14 days ago |
20-44055 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-40294 14 days ago |
14-39620 14 days ago |
19-67551 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-29947 14 days ago |
27-38046 27 days ago |
34-51430 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-29944 14 days ago |
23-48840 23 days ago |
23-71425 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-22979 14 days ago |
16-41108 16 days ago |
25-387 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 |
13-83800 13 days ago |
17-36752 17 days ago |
17-36496 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-69283 13 days ago |
43-27111 43 days ago |
43-26855 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-52516 13 days ago |
13-51348 13 days ago |
75-13045 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-51918 13 days ago |
13-50996 13 days ago |
24-83240 24 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-48413 13 days ago |
13-45335 13 days ago |
23-37582 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-45573 13 days ago |
13-44649 13 days ago |
20-7239 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-44060 13 days ago |
13-43169 13 days ago |
38-60959 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-29960 13 days ago |
22-8960 22 days ago |
32-45910 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-29957 13 days ago |
21-31936 21 days ago |
21-46695 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-29954 13 days ago |
18-40295 18 days ago |
18-40039 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-7964 13 days ago |
13-84428 13 days ago |
14-27554 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-70335 12 days ago |
27-20001 27 days ago |
27-19745 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-29967 12 days ago |
16-68725 16 days ago |
25-43769 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-507 12 days ago |
12-34859 12 days ago |
12-34603 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-42110 11 days ago |
13-43610 13 days ago |
47-10429 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-41781 11 days ago |
14-85352 14 days ago |
18-70201 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-41746 11 days ago |
17-60961 17 days ago |
17-60705 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-29918 11 days ago |
15-6980 15 days ago |
39-77407 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-29917 11 days ago |
15-3491 15 days ago |
15-3235 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-29913 11 days ago |
15-59313 15 days ago |
15-59057 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-29910 11 days ago |
14-67589 14 days ago |
14-70831 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 |
10-80741 10 days ago |
22-55095 22 days ago |
22-54839 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-80594 10 days ago |
19-35642 19 days ago |
19-75714 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-64401 10 days ago |
10-63585 10 days ago |
41-73049 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-59257 10 days ago |
10-58506 10 days ago |
29-35151 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-48705 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-29944 10 days ago |
13-64496 13 days ago |
15-43905 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-29934 10 days ago |
13-34898 13 days ago |
13-34642 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-11416 10 days ago |
21-34914 21 days ago |
22-65868 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-74220 9 days ago |
9-75439 9 days ago |
10-2982 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-61589 9 days ago |
9-66808 9 days ago |
16-38337 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-29936 9 days ago |
13-64628 13 days ago |
16-18918 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-65278 8 days ago |
9-68642 9 days ago |
11-25132 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-63759 8 days ago |
18-65177 18 days ago |
18-64921 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-60113 8 days ago |
8-60113 8 days ago |
8-59857 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-39727 8 days ago |
8-39727 8 days ago |
60-70475 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-38554 8 days ago |
8-38554 8 days ago |
61-7323 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-29943 8 days ago |
11-50932 11 days ago |
11-51961 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-20427 8 days ago |
8-18942 8 days ago |
58-71245 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-7863 8 days ago |
8-6652 8 days ago |
105-1960 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-58833 7 days ago |
7-58211 7 days ago |
16-58714 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-46358 7 days ago |
7-45487 7 days ago |
12-43455 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-24900 7 days ago |
11-10889 11 days ago |
11-39383 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-24899 7 days ago |
11-85130 11 days ago |
14-6596 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-24897 7 days ago |
11-21291 11 days ago |
12-22594 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-24895 7 days ago |
11-5762 11 days ago |
11-5506 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-24893 7 days ago |
10-47999 10 days ago |
10-47743 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-7860 7 days ago |
7-6745 7 days ago |
31-79768 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-1176 7 days ago |
7-182 6 days ago |
15-42263 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-59099 6 days ago |
21-84865 21 days ago |
22-566 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-52335 6 days ago |
6-52162 6 days ago |
23-15453 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-30053 6 days ago |
9-54349 9 days ago |
9-54093 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-30051 6 days ago |
10-18586 10 days ago |
10-18330 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-30050 6 days ago |
9-59836 9 days ago |
9-59580 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-66935 5 days ago |
8-16565 8 days ago |
8-21185 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-65707 5 days ago |
5-62275 5 days ago |
7-64448 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-59744 5 days ago |
22-12248 22 days ago |
22-18820 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-59351 5 days ago |
5-58641 5 days ago |
14-74133 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-53954 5 days ago |
5-52806 5 days ago |
23-47246 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-42813 5 days ago |
5-42034 5 days ago |
17-84437 17 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-33834 5 days ago |
37-37336 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-30045 5 days ago |
9-8071 9 days ago |
10-10591 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-30041 5 days ago |
9-1568 9 days ago |
10-73504 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-30031 5 days ago |
9-8925 9 days ago |
9-8669 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-30029 5 days ago |
9-2670 9 days ago |
9-2414 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-30026 5 days ago |
8-56559 8 days ago |
8-56303 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-30025 5 days ago |
8-54519 8 days ago |
8-54263 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-26955 5 days ago |
5-24326 5 days ago |
69-6131 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 |
4-81333 4 days ago |
4-79150 4 days ago |
14-68003 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-75734 4 days ago |
4-75734 4 days ago |
4-75478 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-72316 4 days ago |
10-83668 10 days ago |
10-83412 10 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-71106 4 days ago |
4-69155 4 days ago |
42-43112 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-67880 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-64443 4 days ago |
4-64510 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-58411 4 days ago |
4-57013 4 days ago |
12-7522 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-56459 4 days ago |
4-79003 4 days ago |
11-41952 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-56232 4 days ago |
9-7528 9 days ago |
9-7272 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-53927 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-42156 4 days ago |
4-41471 4 days ago |
11-68223 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-35747 4 days ago |
4-32992 4 days ago |
9-25018 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-29557 4 days ago |
7-48512 7 days ago |
7-65145 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-29556 4 days ago |
8-15645 8 days ago |
8-35825 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-29555 4 days ago |
8-16851 8 days ago |
8-16595 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-29552 4 days ago |
7-49185 7 days ago |
7-81025 7 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-29551 4 days ago |
7-68402 7 days ago |
7-68146 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-28130 4 days ago |
4-28538 4 days ago |
12-29081 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-28018 4 days ago |
36-34290 36 days ago |
36-65712 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-26279 4 days ago |
4-52899 4 days ago |
4-52643 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-26262 4 days ago |
35-40295 35 days ago |
36-35528 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-35959 3 days ago |
3-34915 3 days ago |
10-36965 10 days |
| 34318 |
adomani author:adomani |
feat: a nilpotent simple group is cyclic |
This PR also adds some API around `nilpotencyClass` and `upperCentralSeries`.
Co-authored-by: Inna Capdeboscq inna.capdeboscq@orange.fr
---
[](https://gitpod.io/from-referrer/)
|
t-group-theory |
57/0 |
Mathlib/GroupTheory/Nilpotent.lean |
1 |
14 |
['adomani', 'github-actions', 'leanprover-radar', 'tb65536'] |
tb65536 assignee:tb65536 |
3-33675 3 days ago |
6-54607 6 days ago |
19-45194 19 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-30037 3 days ago |
8-11406 8 days ago |
8-11150 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-30036 3 days ago |
9-1179 9 days ago |
23-62019 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-30035 3 days ago |
14-73838 14 days ago |
20-47047 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-30032 3 days ago |
6-80238 6 days ago |
8-21837 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-30031 3 days ago |
7-1655 7 days ago |
13-85422 13 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-30028 3 days ago |
10-81165 10 days ago |
10-80909 10 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-30027 3 days ago |
8-45335 8 days ago |
8-45079 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-30025 3 days ago |
7-5340 7 days ago |
7-31963 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-30024 3 days ago |
7-27395 7 days ago |
7-27139 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-30021 3 days ago |
6-35834 6 days ago |
6-35578 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-26746 3 days ago |
3-26100 3 days ago |
11-80363 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-20494 3 days ago |
3-16813 3 days ago |
4-48388 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-20267 3 days ago |
3-20154 3 days ago |
3-19898 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-18498 3 days ago |
3-17785 3 days ago |
3-34615 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-11957 3 days ago |
3-11119 3 days ago |
16-53456 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-6107 3 days ago |
3-5211 3 days ago |
15-3927 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 |
2-82783 2 days ago |
2-80986 2 days ago |
2-80730 2 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 |
2-81532 2 days ago |
2-80749 2 days ago |
2-80493 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 |
2-80942 2 days ago |
2-80259 2 days ago |
2-80003 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 |
2-80780 2 days ago |
2-80780 2 days ago |
2-80524 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-80628 2 days ago |
2-77319 2 days ago |
2-77063 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-78636 2 days ago |
10-71448 10 days ago |
10-71192 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-75502 2 days ago |
3-36021 3 days ago |
20-14752 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-74318 2 days ago |
2-72979 2 days ago |
36-80174 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-72044 2 days ago |
2-71394 2 days ago |
2-71138 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-67371 2 days ago |
6-54117 6 days ago |
6-53861 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-66921 2 days ago |
20-86397 20 days ago |
20-86141 20 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-66496 2 days ago |
2-65134 2 days ago |
24-35230 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-66493 2 days ago |
2-65835 2 days ago |
9-18582 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-64788 2 days ago |
2-63330 2 days ago |
20-46597 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-61069 2 days ago |
2-57346 2 days ago |
2-57090 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-57331 2 days ago |
2-56691 2 days ago |
3-60148 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-55905 2 days ago |
2-55252 2 days ago |
2-54996 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-55516 2 days ago |
6-47281 6 days ago |
70-16153 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-52659 2 days ago |
2-53067 2 days ago |
2-52811 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-51636 2 days ago |
2-50793 2 days ago |
2-50537 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-49848 2 days ago |
2-49705 2 days ago |
2-49449 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-46384 2 days ago |
2-43921 2 days ago |
6-7797 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-44135 2 days ago |
2-44041 2 days ago |
62-61431 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-43741 2 days ago |
8-60920 8 days ago |
8-60664 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-43048 2 days ago |
2-40764 2 days ago |
13-5071 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-42341 2 days ago |
2-41714 2 days ago |
2-44715 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-40925 2 days ago |
2-40273 2 days ago |
2-40017 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-29779 2 days ago |
5-58848 5 days ago |
5-58592 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-29776 2 days ago |
27-14858 27 days ago |
27-14602 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-29775 2 days ago |
20-30039 20 days ago |
22-30342 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-29774 2 days ago |
8-33392 8 days ago |
8-33136 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-29773 2 days ago |
5-45180 5 days ago |
5-49260 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-29770 2 days ago |
6-27433 6 days ago |
8-57125 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-29768 2 days ago |
7-1226 7 days ago |
8-41750 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-29766 2 days ago |
8-944 8 days ago |
8-688 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-29765 2 days ago |
8-42986 8 days ago |
8-42730 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-29764 2 days ago |
5-75747 5 days ago |
7-37820 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-29762 2 days ago |
6-66673 6 days ago |
6-66417 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-29761 2 days ago |
5-36564 5 days ago |
6-60978 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-29758 2 days ago |
6-18356 6 days ago |
6-18100 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-29756 2 days ago |
5-74252 5 days ago |
5-73996 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-29755 2 days ago |
5-65250 5 days ago |
5-64994 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-29754 2 days ago |
5-58289 5 days ago |
5-63697 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-27111 2 days ago |
2-25941 2 days ago |
2-26333 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-23589 2 days ago |
2-40737 2 days ago |
39-53578 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-5496 2 days ago |
2-4609 2 days ago |
64-53125 64 days |
| 35066 |
kim-em author:kim-em |
chore(scripts): add new technical debt counters |
This PR updates `scripts/technical-debt-metrics.sh` to:
- Dynamically enumerate `backward.*` compatibility flags instead of maintaining a static list. New flags are automatically picked up.
- Add counters for `simp +instances` and `dsimp +instances` (careful not to double-count, since `dsimp` contains `simp`).
🤖 Prepared with Claude Code |
CI |
18/3 |
scripts/technical-debt-metrics.sh |
1 |
5 |
['adomani', 'github-actions', 'jcommelin'] |
nobody |
2-1562 2 days ago |
2-28171 2 days ago |
2-27915 2 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 |
1-85932 1 day ago |
34-7707 34 days ago |
54-37146 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 |
1-85653 1 day ago |
1-84984 1 day ago |
3-2189 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 |
1-83982 1 day ago |
24-65722 24 days ago |
34-72530 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 |
1-83713 1 day ago |
39-26669 39 days ago |
40-12588 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 |
1-83664 1 day ago |
1-83664 1 day ago |
1-83408 1 day |
| 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 |
1-82640 1 day ago |
23-23432 23 days ago |
31-27466 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 |
1-82391 1 day ago |
1-81668 1 day ago |
1-85116 1 day |
| 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-78919 1 day ago |
1-75623 1 day ago |
1-75367 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-78814 1 day ago |
1-75779 1 day ago |
1-75592 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-78728 1 day ago |
1-75135 1 day ago |
1-74879 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-72012 1 day ago |
1-72012 1 day ago |
30-38885 30 days |
| 32941 |
kim-em author:kim-em |
feat(GroupTheory/Artin): add Artin groups and braid groups |
This PR introduces Artin groups (also called Artin-Tits groups) as presented groups associated to Coxeter matrices, and defines braid groups as the special case of type A.
In `Mathlib/GroupTheory/Artin/Basic.lean`:
- `CoxeterMatrix.ArtinGroup`: The Artin group associated to a Coxeter matrix
- `CoxeterMatrix.artinGenerator`: The generators of the Artin group
- `CoxeterMatrix.artinLift`: The universal property of Artin groups
In `Mathlib/GroupTheory/Artin/Braid.lean`:
- `CoxeterMatrix.typeA`: The Coxeter matrix of type A_n
- `BraidGroup n`: The braid group B_n on n strands
- `BraidGroup.σ`: The standard Artin generators
- `BraidGroup.toPermHom`: The canonical surjection B_n → S_n
- `BraidGroup.uniqueZero`, `uniqueOne`: B_0 and B_1 are trivial
- `BraidGroup.equivIntTwo`: B_2 ≃* ℤ
🤖 Prepared with Claude Code |
t-group-theory |
580/0 |
Mathlib.lean,Mathlib/Algebra/Group/Commute/Defs.lean,Mathlib/Algebra/Group/End.lean,Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/GroupTheory/Artin/Basic.lean,Mathlib/GroupTheory/Artin/Braid.lean,Mathlib/GroupTheory/Coxeter/Matrix.lean,Mathlib/GroupTheory/Coxeter/Perm.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean,Mathlib/GroupTheory/PresentedGroup.lean |
10 |
20 |
['github-actions', 'kim-em', 'robin-carlier', 'tb65536', 'themathqueen'] |
tb65536 assignee:tb65536 |
1-69270 1 day ago |
7-13461 7 days ago |
13-1854 13 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-68755 1 day ago |
1-68076 1 day ago |
1-67820 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-68533 1 day ago |
6-15927 6 days ago |
8-4185 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-68497 1 day ago |
6-38814 6 days ago |
13-31105 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-68192 1 day ago |
1-67482 1 day ago |
41-48774 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-68104 1 day ago |
1-66265 1 day ago |
1-66012 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-67220 1 day ago |
1-67278 1 day ago |
1-67022 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-65020 1 day ago |
1-70063 1 day ago |
1-69807 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-64488 1 day ago |
1-63413 1 day ago |
1-63157 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-63600 1 day ago |
1-60186 1 day ago |
2-40408 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-62881 1 day ago |
1-68457 1 day ago |
3-513 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-62446 1 day ago |
2-84397 2 days ago |
3-77847 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-58054 1 day ago |
2-70285 2 days ago |
2-70029 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-52634 1 day ago |
1-51875 1 day ago |
1-73839 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-52500 1 day ago |
3-60490 3 days ago |
3-60234 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-49454 1 day ago |
2-63024 2 days ago |
100-10716 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-45432 1 day ago |
1-44765 1 day ago |
1-44509 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-36226 1 day ago |
1-35529 1 day ago |
7-13146 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-35661 1 day ago |
1-35572 1 day ago |
1-35316 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-35124 1 day ago |
21-51149 21 days ago |
21-50893 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-34633 1 day ago |
1-34633 1 day ago |
7-79166 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-34454 1 day ago |
1-32863 1 day ago |
3-888 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-33321 1 day ago |
1-32666 1 day ago |
1-32410 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-32692 1 day ago |
1-32006 1 day ago |
16-66015 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-31764 1 day ago |
1-30826 1 day ago |
32-7368 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-29885 1 day ago |
4-85437 4 days ago |
63-40146 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-29884 1 day ago |
5-3251 5 days ago |
5-2995 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-29883 1 day ago |
9-83943 9 days ago |
13-45065 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-29882 1 day ago |
5-28637 5 days ago |
11-12262 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-29881 1 day ago |
7-44225 7 days ago |
10-34197 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-29879 1 day ago |
9-69716 9 days ago |
9-69460 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-29879 1 day ago |
9-2150 9 days ago |
9-35199 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-29877 1 day ago |
8-63258 8 days ago |
8-63387 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-29876 1 day ago |
8-39434 8 days ago |
8-39178 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-29875 1 day ago |
8-42903 8 days ago |
8-42647 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-29874 1 day ago |
7-43539 7 days ago |
7-43283 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-29873 1 day ago |
4-57288 4 days ago |
7-28405 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-29872 1 day ago |
7-22805 7 days ago |
7-22549 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-29871 1 day ago |
7-2228 7 days ago |
7-1977 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-29869 1 day ago |
6-28438 6 days ago |
6-66993 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-29868 1 day ago |
5-8066 5 days ago |
6-60264 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-29867 1 day ago |
5-28642 5 days ago |
5-80195 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-29866 1 day ago |
4-54853 4 days ago |
5-65808 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-29865 1 day ago |
5-63985 5 days ago |
5-63729 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-29863 1 day ago |
5-31189 5 days ago |
5-30933 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-29862 1 day ago |
5-8195 5 days ago |
5-7939 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-29861 1 day ago |
4-58890 4 days ago |
4-58634 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-27154 1 day ago |
1-26493 1 day ago |
9-24137 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-25030 1 day ago |
1-21880 1 day ago |
1-21624 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-21782 1 day ago |
1-21119 1 day ago |
6-82787 6 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-21156 1 day ago |
1-29637 1 day ago |
4-68810 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-18983 1 day ago |
4-3627 4 days ago |
4-3371 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-5409 1 day ago |
1-2759 1 day ago |
1-41080 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 |
0-84372 23 hours ago |
0-84372 23 hours ago |
0-84116 23 hours |
| 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 |
0-84360 23 hours ago |
0-83693 23 hours ago |
9-72768 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 |
0-82241 22 hours ago |
0-78807 21 hours ago |
19-53727 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 |
0-81188 22 hours ago |
4-69736 4 days ago |
8-52781 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-78852 21 hours ago |
0-78203 21 hours ago |
1-11103 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-76544 21 hours ago |
1-51205 1 day ago |
1-61896 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-75782 21 hours ago |
1-51447 1 day ago |
1-52451 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-73273 20 hours ago |
0-72534 20 hours ago |
15-81801 15 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-71458 19 hours ago |
0-70813 19 hours ago |
1-27551 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-71295 19 hours ago |
0-70475 19 hours ago |
7-68778 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-70221 19 hours ago |
0-69413 19 hours ago |
30-67188 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-68974 19 hours ago |
0-67983 18 hours ago |
2-58745 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-68674 19 hours ago |
0-67451 18 hours ago |
0-67195 18 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-67822 18 hours ago |
0-66465 18 hours ago |
0-66209 18 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-66299 18 hours ago |
0-65676 18 hours ago |
0-66412 18 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-65016 18 hours ago |
0-62186 17 hours ago |
0-61930 17 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-63521 17 hours ago |
0-62066 17 hours ago |
0-66866 18 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-62468 17 hours ago |
0-60927 16 hours ago |
2-73536 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-61766 17 hours ago |
0-63485 17 hours ago |
0-63229 17 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-59403 16 hours ago |
0-58763 16 hours ago |
0-58507 16 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-58509 16 hours ago |
0-58596 16 hours ago |
33-28094 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-58009 16 hours ago |
0-58009 16 hours ago |
0-57753 16 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-57090 15 hours ago |
0-56420 15 hours ago |
2-48081 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-54171 15 hours ago |
1-31022 1 day ago |
11-56897 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-49412 13 hours ago |
15-74343 15 days ago |
17-66747 17 days |
| 35142 |
JovanGerb author:JovanGerb |
perf: remove unnecessary `nsmul := (· • ·)` |
This PR removes some unnecessary `nsmul := (· • ·)`. In particular the modified instance `AddCommGroup (M →SL[σ₁₂] M₂)` now has faster unification properties.
This is the same effect as we had in #30734
---
[](https://gitpod.io/from-referrer/)
|
maintainer-merge |
26/40 |
Mathlib/Algebra/RingQuot.lean,Mathlib/Topology/Algebra/Module/LinearMap.lean |
2 |
4 |
['JovanGerb', 'Komyyy', 'github-actions', 'j-loreaux', 'leanprover-radar'] |
nobody |
0-49071 13 hours ago |
0-53479 14 hours ago |
0-53223 14 hours |
| 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-46984 13 hours ago |
0-46223 12 hours ago |
0-45967 12 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-46547 12 hours ago |
0-44487 12 hours ago |
14-52235 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-46474 12 hours ago |
0-45989 12 hours ago |
14-55066 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-45720 12 hours ago |
0-47593 13 hours ago |
0-47337 13 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-43998 12 hours ago |
0-46930 12 hours ago |
0-46674 12 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-43980 12 hours ago |
0-43340 11 hours ago |
1-64342 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-42055 11 hours ago |
0-42055 11 hours ago |
28-19729 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-41302 11 hours ago |
0-40630 11 hours ago |
27-59307 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-39292 10 hours ago |
0-36250 9 hours ago |
0-35994 9 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-37948 10 hours ago |
0-35893 9 hours ago |
14-36886 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-36914 10 hours ago |
0-35749 9 hours ago |
1-44187 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-36366 10 hours ago |
0-35702 9 hours ago |
0-35446 9 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-36075 10 hours ago |
0-32965 9 hours ago |
0-32709 9 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-35746 9 hours ago |
0-34383 9 hours ago |
0-34127 9 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-35294 9 hours ago |
0-33385 9 hours ago |
0-33129 9 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-34919 9 hours ago |
0-36272 10 hours ago |
0-36016 10 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-32518 9 hours ago |
0-31627 8 hours ago |
0-31371 8 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-31302 8 hours ago |
0-30665 8 hours ago |
5-49252 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-30044 8 hours ago |
8-46814 8 days ago |
8-50620 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-30043 8 hours ago |
4-30461 4 days ago |
6-37380 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-30042 8 hours ago |
5-14094 5 days ago |
5-13838 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-30040 8 hours ago |
4-19732 4 days ago |
4-61672 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-30038 8 hours ago |
3-66222 3 days ago |
4-21241 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-30037 8 hours ago |
3-79167 3 days ago |
3-78911 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-30037 8 hours ago |
3-77130 3 days ago |
3-76874 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-30036 8 hours ago |
3-47340 3 days ago |
3-47848 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-30035 8 hours ago |
3-62475 3 days ago |
3-62219 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-30034 8 hours ago |
3-49378 3 days ago |
3-52117 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-28554 7 hours ago |
0-29148 8 hours ago |
0-28892 8 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-23278 6 hours ago |
0-22576 6 hours ago |
3-46321 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-22696 6 hours ago |
0-21749 5 hours ago |
0-84009 23 hours |
| 35138 |
JovanGerb author:JovanGerb |
chore: move import of `Simproc.ExistsAndEq` |
This PR moves the import of `Simproc.ExistsAndEq` to the more appropriate `Mathlib.Tactic.Common`. This reduces the longest pole.
---
[](https://gitpod.io/from-referrer/)
|
t-meta
maintainer-merge
|
2/1 |
Mathlib/Data/Set/Insert.lean,Mathlib/Tactic/Basic.lean,Mathlib/Tactic/Common.lean |
3 |
9 |
['JovanGerb', 'Komyyy', 'github-actions', 'grunweg', 'leanprover-radar'] |
nobody |
0-20910 5 hours ago |
0-19000 5 hours ago |
0-50939 14 hours |
| 35164 |
mcdoll author:mcdoll |
chore(Analysis/SchwartzSpace): golf proof |
Use asymptotics to simply a proof significantly.
---
I am not entirely sure whether we want it as a separate lemma, but continuity statements are also in their own lemma even though `ContinuousMapClass` exists, seems to indicate that this should be fine.
[](https://gitpod.io/from-referrer/)
|
t-analysis |
9/17 |
Mathlib/Analysis/Distribution/SchwartzSpace/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
0-19833 5 hours ago |
0-19103 5 hours ago |
0-18847 5 hours |
| 35165 |
JovanGerb author:JovanGerb |
chore: import `Aesop.Frontend` when declaring aesop rule sets |
This PR turns some `import Aesop` into `import Aesop.Frontend` in places where we want to tag `aesop` lemmas, but do not yet want to use the tactic itself.
---
[](https://gitpod.io/from-referrer/)
|
|
3/3 |
Mathlib/Data/Finset/Attr.lean,Mathlib/Tactic/Finiteness/Attr.lean,Mathlib/Tactic/SetLike.lean |
3 |
1 |
['github-actions'] |
nobody |
0-18622 5 hours ago |
0-15422 4 hours ago |
0-15166 4 hours |
| 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-17789 4 hours ago |
0-17126 4 hours ago |
4-22563 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-17452 4 hours ago |
0-17452 4 hours ago |
0-17196 4 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-12875 3 hours ago |
0-12567 3 hours ago |
0-12311 3 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-12175 3 hours ago |
0-11609 3 hours ago |
11-15375 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-10414 2 hours ago |
0-10395 2 hours ago |
0-10139 2 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-9562 2 hours ago |
0-7338 1 hour ago |
26-73663 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-9277 2 hours ago |
0-8633 2 hours ago |
0-8377 2 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-9049 2 hours ago |
0-8366 2 hours ago |
0-61148 16 hours |
| 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 |
13 |
['JovanGerb', 'Kha', 'github-actions', 'kim-em', 'loefflerd', 'mathlib-merge-conflicts'] |
ADedecker assignee:ADedecker |
0-5441 1 hour ago |
0-2071 30 minutes ago |
7-69893 7 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_take`: [`List.take`](https://github.com/leanprover/lean4/blob/master/src/Init/Data/List/TakeDrop.lean)
- `list_drop`: [`List.drop`](https://github.com/leanprover/lean4/blob/master/src/Init/Data/List/TakeDrop.lean)
- `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` |
new-contributor
t-computability
|
67/4 |
Mathlib/Computability/Primrec/List.lean |
1 |
1 |
['github-actions'] |
nobody |
0-5147 1 hour ago |
0-4454 1 hour ago |
27-82666 27 days |
| 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-4058 1 hour ago |
0-71548 19 hours ago |
1-29244 1 day |
| 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-29985 30 days ago |
33-64660 33 days ago |
34-8742 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-69635 25 days ago |
25-75186 25 days ago |
31-68866 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-32452 24 days ago |
28-63809 28 days ago |
33-67805 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-78359 21 days ago |
29-62130 29 days ago |
29-61874 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-65086 21 days ago |
21-62569 21 days ago |
33-63269 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-29972 18 days ago |
28-30893 28 days ago |
41-57480 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-57472 16 days ago |
48-54616 48 days ago |
48-54360 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-44585 16 days ago |
16-46717 16 days ago |
20-30786 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-2028 15 days ago |
15-1167 15 days ago |
40-79844 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-48413 13 days ago |
13-45335 13 days ago |
23-37582 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-29960 13 days ago |
22-8960 22 days ago |
32-45910 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-29957 13 days ago |
21-31936 21 days ago |
21-46695 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-29967 12 days ago |
16-68725 16 days ago |
25-43769 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-29918 11 days ago |
15-6980 15 days ago |
39-77407 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-29910 11 days ago |
14-67589 14 days ago |
14-70831 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 |
10-80741 10 days ago |
22-55095 22 days ago |
22-54839 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-29936 9 days ago |
13-64628 13 days ago |
16-18918 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-65278 8 days ago |
9-68642 9 days ago |
11-25132 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-63759 8 days ago |
18-65177 18 days ago |
18-64921 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-39727 8 days ago |
8-39727 8 days ago |
60-70475 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-38554 8 days ago |
8-38554 8 days ago |
61-7323 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-58833 7 days ago |
7-58211 7 days ago |
16-58714 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-30051 6 days ago |
10-18586 10 days ago |
10-18330 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-59744 5 days ago |
22-12248 22 days ago |
22-18820 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-59351 5 days ago |
5-58641 5 days ago |
14-74133 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-30041 5 days ago |
9-1568 9 days ago |
10-73504 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-53927 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-42156 4 days ago |
4-41471 4 days ago |
11-68223 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-29556 4 days ago |
8-15645 8 days ago |
8-35825 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-29555 4 days ago |
8-16851 8 days ago |
8-16595 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-28130 4 days ago |
4-28538 4 days ago |
12-29081 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-28018 4 days ago |
36-34290 36 days ago |
36-65712 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-26262 4 days ago |
35-40295 35 days ago |
36-35528 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-30037 3 days ago |
8-11406 8 days ago |
8-11150 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-30032 3 days ago |
6-80238 6 days ago |
8-21837 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-11957 3 days ago |
3-11119 3 days ago |
16-53456 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-74318 2 days ago |
2-72979 2 days ago |
36-80174 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-57331 2 days ago |
2-56691 2 days ago |
3-60148 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-44135 2 days ago |
2-44041 2 days ago |
62-61431 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-43741 2 days ago |
8-60920 8 days ago |
8-60664 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-43048 2 days ago |
2-40764 2 days ago |
13-5071 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-29779 2 days ago |
5-58848 5 days ago |
5-58592 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-29776 2 days ago |
27-14858 27 days ago |
27-14602 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-29764 2 days ago |
5-75747 5 days ago |
7-37820 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-5496 2 days ago |
2-4609 2 days ago |
64-53125 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 |
1-85932 1 day ago |
34-7707 34 days ago |
54-37146 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 |
1-85653 1 day ago |
1-84984 1 day ago |
3-2189 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 |
1-83982 1 day ago |
24-65722 24 days ago |
34-72530 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 |
1-83713 1 day ago |
39-26669 39 days ago |
40-12588 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-62446 1 day ago |
2-84397 2 days ago |
3-77847 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-49454 1 day ago |
2-63024 2 days ago |
100-10716 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-45432 1 day ago |
1-44765 1 day ago |
1-44509 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-35124 1 day ago |
21-51149 21 days ago |
21-50893 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-34454 1 day ago |
1-32863 1 day ago |
3-888 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-29883 1 day ago |
9-83943 9 days ago |
13-45065 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-29879 1 day ago |
9-69716 9 days ago |
9-69460 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-29877 1 day ago |
8-63258 8 days ago |
8-63387 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-29874 1 day ago |
7-43539 7 days ago |
7-43283 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-29868 1 day ago |
5-8066 5 days ago |
6-60264 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-29866 1 day ago |
4-54853 4 days ago |
5-65808 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-29862 1 day ago |
5-8195 5 days ago |
5-7939 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-27154 1 day ago |
1-26493 1 day ago |
9-24137 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-21782 1 day ago |
1-21119 1 day ago |
6-82787 6 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-5409 1 day ago |
1-2759 1 day ago |
1-41080 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 |
0-84372 23 hours ago |
0-84372 23 hours ago |
0-84116 23 hours |
| 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 |
0-82241 22 hours ago |
0-78807 21 hours ago |
19-53727 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-75782 21 hours ago |
1-51447 1 day ago |
1-52451 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-71295 19 hours ago |
0-70475 19 hours ago |
7-68778 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-68974 19 hours ago |
0-67983 18 hours ago |
2-58745 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-66299 18 hours ago |
0-65676 18 hours ago |
0-66412 18 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-54171 15 hours ago |
1-31022 1 day ago |
11-56897 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-36914 10 hours ago |
0-35749 9 hours ago |
1-44187 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-30043 8 hours ago |
4-30461 4 days ago |
6-37380 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-30040 8 hours ago |
4-19732 4 days ago |
4-61672 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-22696 6 hours ago |
0-21749 5 hours ago |
0-84009 23 hours |
| 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-17789 4 hours ago |
0-17126 4 hours ago |
4-22563 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-9562 2 hours ago |
0-7338 1 hour ago |
26-73663 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_take`: [`List.take`](https://github.com/leanprover/lean4/blob/master/src/Init/Data/List/TakeDrop.lean)
- `list_drop`: [`List.drop`](https://github.com/leanprover/lean4/blob/master/src/Init/Data/List/TakeDrop.lean)
- `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` |
new-contributor
t-computability
|
67/4 |
Mathlib/Computability/Primrec/List.lean |
1 |
1 |
['github-actions'] |
nobody |
0-5147 1 hour ago |
0-4454 1 hour ago |
27-82666 27 days |