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 is the main reviewer-facing queue: if a PR is ready for review, it belongs here. The triage page contains additional triage-oriented views, but it is not the primary review queue.
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 |
| 32583 |
MJ141592 author:MJ141592 |
refactor(SimpleGraph): change bridges not to require the edge to be present |
Remove the requirement for edges to exist in definition of isBridge, and then change the related lemmas to adjust for this, by renaming, fixing the statements and fixing the proofs, including in Acyclic.
Closes #31690.
---
- [x] depends on: #36802
- [x] depends on: #36804 |
t-combinatorics
new-contributor
|
84/84 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean |
4 |
20 |
['MJ141592', 'SnirBroshi', 'YaelDillies', 'b-mehta', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
nobody |
38-32311 1 month ago |
38-32347 38 days ago |
38-60847 38 days |
| 37248 |
harahu author:harahu |
doc(Tactic): avoid lazy continuation lines |
We resolve the ambiguity inherent in lazy (un-indented) list item continuation lines by either indenting them or separating them by inserting a newline in the cases where the item continuation was a mistake.
---
[](https://gitpod.io/from-referrer/)
|
documentation |
131/116 |
Mathlib/Tactic/Algebraize.lean,Mathlib/Tactic/Basic.lean,Mathlib/Tactic/CategoryTheory/Coherence/PureCoherence.lean,Mathlib/Tactic/ComputeDegree.lean,Mathlib/Tactic/DepRewrite.lean,Mathlib/Tactic/Finiteness.lean,Mathlib/Tactic/FunProp.lean,Mathlib/Tactic/FunProp/Core.lean,Mathlib/Tactic/FunProp/Theorems.lean,Mathlib/Tactic/Linarith/Oracle/FourierMotzkin.lean,Mathlib/Tactic/Linter/FlexibleLinter.lean,Mathlib/Tactic/MinImports.lean,Mathlib/Tactic/MoveAdd.lean,Mathlib/Tactic/Order.lean,Mathlib/Tactic/SimpIntro.lean,Mathlib/Tactic/Simps/Basic.lean,Mathlib/Tactic/Widget/InteractiveUnfold.lean |
17 |
1 |
['Multramate', 'github-actions'] |
nobody |
37-15508 1 month ago |
44-65441 44 days ago |
44-71117 44 days |
| 37495 |
IvanRenison author:IvanRenison |
feat(Combinatorics/SimpleGraph/Sum): add homomorphism, embedding and isomorphism of sums |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
58/2 |
Mathlib/Combinatorics/SimpleGraph/Sum.lean |
1 |
15 |
['IvanRenison', 'YaelDillies', 'github-actions', 'mkaratarakis'] |
nobody |
37-14358 1 month ago |
37-15509 37 days ago |
38-47501 38 days |
| 37624 |
IvanRenison author:IvanRenison |
feat(Combinatorics/SimpleGraph/Maps): add theorems about composition |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
25/4 |
Mathlib/Combinatorics/SimpleGraph/Maps.lean |
1 |
1 |
['github-actions'] |
nobody |
36-67205 1 month ago |
36-67279 36 days ago |
36-67258 36 days |
| 37690 |
yuanyi-350 author:yuanyi-350 |
feat(Combinatorics/Enumerative/Bell): sum over partition shapes |
## Summary
- add multiplicative lemmas relating `Multiset.bell` when inserting a part
- prove `Nat.bell` as a sum of `Multiset.bell` over partition shapes
- Kill TODO in `Mathlib/Combinatorics/Enumerative/Bell.lean`
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
153/16 |
Mathlib/Combinatorics/Enumerative/Bell.lean |
1 |
1 |
['github-actions'] |
nobody |
33-35470 1 month ago |
34-34095 34 days ago |
34-34074 34 days |
| 37642 |
SnirBroshi author:SnirBroshi |
chore(Combinatorics/SimpleGraph): tidy various files |
---
Concept inspired by @Ruben-VandeVelde :)
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
89/72 |
Mathlib/Combinatorics/SimpleGraph/Coloring/VertexColoring.lean,Mathlib/Combinatorics/SimpleGraph/Copy.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/Basic.lean,Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean,Mathlib/Combinatorics/SimpleGraph/Trails.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Operations.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Subwalks.lean |
8 |
2 |
['SnirBroshi', 'github-actions'] |
nobody |
32-85829 1 month ago |
32-85889 32 days ago |
35-16105 35 days |
| 37697 |
IvanRenison author:IvanRenison |
feat(Combinatorics/SimpleGraph/Clique): add theorems about cliques and induced graphs |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
22/0 |
Mathlib/Combinatorics/SimpleGraph/Clique.lean |
1 |
9 |
['Rida-Hamadani', 'SnirBroshi', 'github-actions'] |
nobody |
30-73997 1 month ago |
34-12042 34 days ago |
34-12021 34 days |
| 36764 |
euprunin author:euprunin |
chore: golf using `grind` |
The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (differences <30 ms considered measurement noise):
* `DirectSum.lequivCongrLeft_lof`: unchanged π
* `AnalyticOnNhd.preimage_mem_codiscreteWithin`: unchanged π
* `mem_permsOfList_of_mem`: unchanged π
* `PNat.mod_le`: unchanged π
* `Computation.map_parallel`: unchanged π
* `Sigma.curry_update`: unchanged π
Profiled using `set_option trace.profiler true in`.
---
[](https://gitpod.io/from-referrer/)
|
|
11/41 |
Mathlib/Algebra/DirectSum/Module.lean,Mathlib/Analysis/Analytic/IsolatedZeros.lean,Mathlib/Data/Fintype/Perm.lean,Mathlib/Data/PNat/Basic.lean,Mathlib/Data/Seq/Parallel.lean,Mathlib/Data/Sigma/Basic.lean |
6 |
13 |
['chenson2018', 'euprunin', 'github-actions', 'mathlib-merge-conflicts'] |
nobody |
29-38288 29 days ago |
29-38348 29 days ago |
54-10106 54 days |
| 37055 |
euprunin author:euprunin |
chore: golf using `grind` |
The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (differences <30 ms considered measurement noise):
* `OreLocalization.smul'_char`: unchanged π
* `Equiv.Perm.cycleOf_mem_cycleFactorsFinset_iff`: unchanged π
* `StrictMono.ite'`: unchanged π
* `Mathlib.Meta.NormNum.isInt_ediv`: unchanged π
Profiled using `set_option trace.profiler true in`.
---
[](https://gitpod.io/from-referrer/)
|
|
10/29 |
Mathlib/GroupTheory/OreLocalization/Basic.lean,Mathlib/GroupTheory/Perm/Cycle/Factors.lean,Mathlib/Order/Monotone/Basic.lean,Mathlib/Tactic/NormNum/DivMod.lean |
4 |
11 |
['chenson2018', 'euprunin', 'github-actions'] |
nobody |
29-35928 29 days ago |
29-35989 29 days ago |
47-33552 47 days |
| 36693 |
euprunin author:euprunin |
chore: golf using `grind` |
The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (differences <30 ms considered measurement noise):
* `Equiv.Perm.ofSubtype_swap_eq`: unchanged π
* `Filter.hasBasis_biInf_of_directed'`: unchanged π
Profiled using `set_option trace.profiler true in`.
---
[](https://gitpod.io/from-referrer/)
|
|
2/10 |
Mathlib/GroupTheory/Perm/Support.lean |
1 |
4 |
['artie2000', 'chenson2018', 'euprunin', 'github-actions'] |
nobody |
29-35892 29 days ago |
55-78460 55 days ago |
55-78439 55 days |
| 37700 |
IvanRenison author:IvanRenison |
feat(Combinatorics/SimpleGraph/Maps): add `Iso.induceIso` |
Similar to `induceHom`
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
29/0 |
Mathlib/Combinatorics/SimpleGraph/Maps.lean |
1 |
3 |
['github-actions', 'vlad902'] |
nobody |
28-81241 28 days ago |
28-81299 28 days ago |
34-7195 34 days |
| 37720 |
cjrl author:cjrl |
feat(Data/Fintype/Card): existsUnique_notMem_image_of_injective_of_card_succ |
This pull requests adds a small theorem `existsUnique_notMem_image_of_injective_of_card_succ` to `Mathlib/Data/Fintype/Card` that says given an injective map f : Ξ± β Ξ² such that Ξ² has cardinality one more than Ξ±, there exists a unique element of Ξ² not in the image of f.
This can be viewed as going in the opposite direction of `card_lt_of_injective_of_notMem`.
This little fact is needed for our Latin Square PR #36698.
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
t-set-theory
|
15/0 |
Mathlib/Data/Fintype/Card.lean |
1 |
6 |
['IvanRenison', 'cjrl', 'github-actions'] |
nobody |
27-81581 27 days ago |
27-81639 27 days ago |
33-49069 33 days |
| 37053 |
artie2000 author:artie2000 |
refactor(Analysis/Convex/Cone): use `PointedCone` in Riesz extension theorem |
Change the statement of the Riesz extension theorem to take a `PointedCone` rather than a `ConvexCone`.
This PR is part of a series replacing `ConvexCone` with `PointedCone`. https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Replacing.20.60ConvexCone.60.20with.20.60PointedCone.60/near/581184307
---
[](https://gitpod.io/from-referrer/)
|
t-convex-geometry
maintainer-merge
|
15/12 |
Mathlib/Analysis/Convex/Cone/Extension.lean,Mathlib/Geometry/Convex/Cone/Pointed.lean |
2 |
8 |
['YaelDillies', 'artie2000', 'github-actions', 'mathlib-merge-conflicts', 'ocfnash'] |
nobody |
26-16174 26 days ago |
26-16202 26 days ago |
45-57618 45 days |
| 37865 |
Jun2M author:Jun2M |
feat(Combinatorics/Graph): Edge cut of `Graph` |
This PR introduces
- `edgeCut`: A function on set of vertices that returns the set of edges with exactly one end in the set.
- `IsEdgeCut`: A predicate for set of edges that promises it is `edgeCut` of some set.
- `IsBridge`: An edge `e` is a bridge iff it is a singleton edge cut.
- `IsBond`: An edge Set `B` is bond iff it is minimal nonempty edge cut.
---
- [x] depends on: #35879
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
194/0 |
Mathlib/Combinatorics/Graph/Connected/EdgeCut.Lean,Mathlib/Combinatorics/Graph/Subgraph.lean |
2 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
nobody |
24-79057 24 days ago |
25-10314 25 days ago |
25-10731 25 days |
| 37420 |
artie2000 author:artie2000 |
refactor: change definitions to avoid `ConvexCone` |
Change the definitions of `PointedCone.positive` and `PointedCone.closure` to avoid mentioning `ConvexCone`.
This PR is part of a series deprecating `ConvexCone`: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Replacing.20.60ConvexCone.60.20with.20.60PointedCone.60/with/582738985
---
[](https://gitpod.io/from-referrer/)
|
t-convex-geometry
maintainer-merge
|
10/4 |
Mathlib/Analysis/Convex/Cone/Closure.lean,Mathlib/Geometry/Convex/Cone/Pointed.lean |
2 |
3 |
['YaelDillies', 'github-actions', 'mathlib-merge-conflicts', 'ooovi', 'vihdzp'] |
nobody |
24-22226 24 days ago |
24-22190 24 days ago |
39-42732 39 days |
| 36774 |
euprunin author:euprunin |
chore: replace long terminal `rw [β¦]`:s (β₯4 lemmas) with bare `simp`:s |
The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (differences <30 ms considered measurement noise):
* `Finset.lcm_union`: unchanged π
* `Finset.gcd_union`: unchanged π
* `Polynomial.derivative_evalβ_C`: unchanged π
* `Polynomial.expand_pow`: unchanged π
* `Cardinal.mk_real`: unchanged π
* `Real.log_zpow`: unchanged π
* `Matroid.eRank_le_encard_add_eRk_compl`: unchanged π
* `DFinsupp.single_tsub`: unchanged π
* `EReal.inv_neg`: unchanged π
* `Finsupp.toMultiset_map`: unchanged π
* `Finsupp.single_tsub`: unchanged π
* `Multiset.countP_map`: unchanged π
* `Nat.ascFactorial_eq_factorial_mul_choose'`: unchanged π
* `Real.sign_intCast`: unchanged π
* `Real.volume_eball`: unchanged π
* `Real.volume_closedEBall`: unchanged π
* `LFunction_ne_zero_of_not_quadratic_or_ne_one`: 295 ms before, 152 ms after π
* `hasSum_one_div_nat_pow_mul_cos`: unchanged π
* `inv_eq_of_aeval_divX_ne_zero`: unchanged π
* `AlgebraicIndependent.aeval_comp_mvPolynomialOptionEquivPolynomialAdjoin`: unchanged π
* `Ordinal.deriv_mul_eq_opow_omega0_mul`: unchanged π
Profiled using `set_option trace.profiler true in`.
---
[](https://gitpod.io/from-referrer/)
|
|
22/24 |
Mathlib/Algebra/GCDMonoid/Finset.lean,Mathlib/Algebra/Polynomial/Derivative.lean,Mathlib/Algebra/Polynomial/Expand.lean,Mathlib/Analysis/Real/Cardinality.lean,Mathlib/Analysis/SpecialFunctions/Log/Basic.lean,Mathlib/Combinatorics/Matroid/Rank/ENat.lean,Mathlib/Data/DFinsupp/Order.lean,Mathlib/Data/EReal/Inv.lean,Mathlib/Data/Finsupp/Multiset.lean,Mathlib/Data/Finsupp/Order.lean,Mathlib/Data/Multiset/Filter.lean,Mathlib/Data/Nat/Choose/Basic.lean,Mathlib/Data/Real/Sign.lean,Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean,Mathlib/NumberTheory/LSeries/Nonvanishing.lean,Mathlib/NumberTheory/ZetaValues.lean,Mathlib/RingTheory/Algebraic/Basic.lean,Mathlib/RingTheory/AlgebraicIndependent/Basic.lean,Mathlib/SetTheory/Ordinal/FixedPoint.lean |
19 |
2 |
['artie2000', 'euprunin', 'github-actions'] |
nobody |
23-80897 23 days ago |
54-3023 54 days ago |
54-3002 54 days |
| 38141 |
Jun2M author:Jun2M |
feat(Order/Partition): Partition induced by symmetric, transitive relation |
We introduce a constructor for Partition from a symmetric, transitive relation, with `copy` function baked into the definition.
Co-authored-by: Peter Nelson
---
[](https://gitpod.io/from-referrer/)
|
t-order |
41/7 |
Mathlib/Order/Partition/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
23-58006 23 days ago |
23-58073 23 days ago |
23-58052 23 days |
| 35569 |
goliath-klein author:goliath-klein |
refactor(PiTensorProduct/{InjectiveNorm, ProjectiveNorm}): deprecate `injectiveSeminorm` |
This PR:
* Deprecates `PiTensorProduct.injectiveSeminorm` and supporting lemmas.
* Moves the theory of `liftEquiv` from InjectiveSeminorm.lean to ProjectiveSeminorm.lean.
No changes are introduced beyond adding deprecation notices, adapting docstrings, and moving material between files.
The PR leaves InjectiveSeminorm.lean almost empty. A new implementation of `injectiveSeminorm`, one which reflects the common mathematical definition, is to be done.
This is the third in a series of three PRs with the goal to [deprecate `PiTensorProuduct.injectiveSeminorm`](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/injectiveSeminorm/with/568798633).
---
- [ ] depends on: #35567
- [ ] depends on: #35568
Deprecations:
- injectiveSeminorm
- dualSeminorms_bounded
- injectiveSeminorm_apply
- norm_eval_le_injectiveSeminorm
- injectiveSeminorm_le_projectiveSeminorm
- injectiveSeminorm_tprod_le
Preliminary work toward a reimplementation is at #33969.
I've added Davood and myself to the "Authors" field, as we have now significantly refactored this module.
Co-authored-by: Davood H. T. Tehrani
[](https://gitpod.io/from-referrer/)
|
new-contributor |
222/233 |
Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/ProjectiveSeminorm.lean |
2 |
6 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
23-33352 23 days ago |
23-33376 23 days ago |
40-1671 40 days |
| 38185 |
Jun2M author:Jun2M |
feat(Order/Partition): operations over Frame |
This PR introduces:
* `Partition.induce`: The induce of a partition by a frame element.
* `Partition.disjUnion`: The disjoint union of two partitions.
* `Partition.bind`: The finer partition obtained by family of partitions for each part of the original partition.
Co-authored-by: Peter Nelson
---
[](https://gitpod.io/from-referrer/)
|
t-order |
89/11 |
Mathlib/Order/Partition/Basic.lean,Mathlib/Order/SupIndep.lean |
2 |
1 |
['github-actions'] |
nobody |
22-75392 22 days ago |
22-75464 22 days ago |
22-75443 22 days |
| 38200 |
Parcly-Taxel author:Parcly-Taxel |
feat: TurΓ‘n numbers and their strict monotonicity |
`strictMonoOn_turanNumber` and `sum_mul_le_twice_turanNumber` were initially proved by @Aristotle-Harmonic, then hand-polished.
Co-authored-by: Aristotle (Harmonic) |
t-combinatorics |
55/20 |
Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean |
1 |
1 |
['github-actions'] |
nobody |
22-32036 22 days ago |
22-33463 22 days ago |
22-33442 22 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
|
112/0 |
Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean |
2 |
39 |
['SnirBroshi', 'SproutSeeds', 'github-actions', 'jcommelin', 'ksenono'] |
b-mehta assignee:b-mehta |
21-60624 21 days ago |
23-10913 23 days ago |
122-78881 122 days |
| 36202 |
vihdzp author:vihdzp |
feat: more theorems on the Cantor normal form |
We also remove some redundant assumptions.
Used in the CGT repo.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
68/17 |
Mathlib/SetTheory/Ordinal/CantorNormalForm.lean |
1 |
16 |
['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] |
alreadydone assignee:alreadydone |
21-60622 21 days ago |
46-30949 46 days ago |
65-24748 65 days |
| 36922 |
SnirBroshi author:SnirBroshi |
feat(Data/List/Chain): generalize `WellFounded.asymmetricβ` to chains |
The existing `WellFounded.asymmetric` shows `r a b β Β¬r b a`,
and `WellFounded.asymmetricβ` shows `r a b β r b c β Β¬r c a`.
This adds `WellFounded.asymmetricβ` which shows `l.IsChain r β Β¬r l.getLast l.head`.
---
Also adds a couple of `IsChain` lemmas which might be useful.
[](https://gitpod.io/from-referrer/)
|
t-data |
29/8 |
Mathlib/Data/List/Chain.lean |
1 |
4 |
['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] |
TwoFX assignee:TwoFX |
21-60621 21 days ago |
46-14809 46 days ago |
50-50864 50 days |
| 38245 |
RemyDegenne author:RemyDegenne |
feat: CountableSupClosed |
Define the property for a set of being closed by countable supremum (resp. infimum).
The new file is adapted from the `SupClosed` file, which describes sets closed by binary supremum.
Also use `to_dual` on `SupClosed`.
`CountableInfClosed` will be used in measure theory, for developments related to compact systems used for Kolmogorov's extension theorem and Choquet's capacitability theorem.
---
[](https://gitpod.io/from-referrer/)
|
t-order
brownian
|
308/66 |
Mathlib.lean,Mathlib/Order/CountableSupClosed.lean,Mathlib/Order/SupClosed.lean |
3 |
14 |
['RemyDegenne', 'b-mehta', 'github-actions', 'vihdzp'] |
nobody |
21-6778 21 days ago |
21-21028 21 days ago |
21-25731 21 days |
| 34952 |
joneugster author:joneugster |
feat(scripts/autolabel): use `Cli` and integrate `curl` call into `autolabel` |
- use `Cli` for `lake exe autolabel`
- add arguments `--pr xxx --gh` and `--pr xxx --curl ` to chose between different interaction methods with github
- add `--force` to skip the check whether labels are already present. (note: the current `curl` setup doesn't perform this step and neither does the refactor, so I added a `Todo` to remember this. )
- make CI-workflow simpler and more robust by removing current stdout-parsing of the debug-messages which `autolabel` emits.
### Testing
Make some local changes and commit them. Ensure your local `origin/master` is in sync with `upstream/master` if you are on a fork.
- `lake exe autolabel`: prints the labels which would be applicable
- `lake exe autolabel --pr 34952 --gh --force` adds these labels to this PR using `gh`.
- `lake exe autolabel --pr 34952 --gh` adds these labels to this PR using `gh` if no topic labels are present.
- `lake exe autolabel --pr 34952 --curl ` adds these labels to this PR using `curl`. This requires a github access token for authentication
---
[](https://gitpod.io/from-referrer/)
|
CI |
86/73 |
.github/workflows/add_label_from_diff.yaml,scripts/autolabel.lean |
2 |
4 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
20-61182 20 days ago |
42-21782 42 days ago |
74-63101 74 days |
| 32282 |
jsm28 author:jsm28 |
feat(Geometry/Euclidean/Angle/Incenter): unoriented angle bisection |
Add lemmas giving unoriented angles involving the incenter and excenters of a triangle as expressions involving dividing angles of the triangle by 2, deduced from oriented bisection lemmas.
---
- [ ] depends on: #30981
- [ ] depends on: #30982
- [ ] depends on: #31205
- [ ] depends on: #32019
- [ ] depends on: #32021
- [ ] depends on: #32259
- [ ] depends on: #32260
- [ ] depends on: #32270
- [ ] depends on: #32273
- [ ] depends on: #32278
[](https://gitpod.io/from-referrer/)
|
t-euclidean-geometry |
98/0 |
Mathlib/Geometry/Euclidean/Angle/Incenter.lean |
1 |
8 |
['github-actions', 'jsm28', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'wwylele'] |
nobody |
20-61181 20 days ago |
43-85133 43 days ago |
43-85848 43 days |
| 37523 |
matthewjasper author:matthewjasper |
feat: elements of Dedekind domain approximate elements of valuation ring |
Algebra part of showing that `R` is dense in `O_v` which is used to show that `R / v` is isomorphic to
the residue field of `O_v` and construct the base change isomorphism for finite adeles.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
87/11 |
Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean |
2 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
mariainesdff assignee:mariainesdff |
20-60665 20 days ago |
22-16340 22 days ago |
37-32091 37 days |
| 37183 |
dagurtomas author:dagurtomas |
feat(Tactic/CategoryTheory): map attribute |
Adding `@[map]` to a lemma named `H` of shape `β .., f = g`, where `f` and `g` are morphisms
in some category `C`, creates a new lemma named `H_map` of the form
`β .. {D} (func : C β₯€ D), F.map f = F.map g` and then applies
`simp only [Functor.map_comp, Functor.map_id]`.
---
[](https://gitpod.io/from-referrer/)
|
LLM-generated
t-meta
t-category-theory
|
290/0 |
Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/CategoryTheory/Map.lean,MathlibTest/CategoryTheory/Map.lean,MathlibTest/CategoryTheory/MapSimp.lean |
5 |
11 |
['adamtopaz', 'dagurtomas', 'github-actions', 'joelriou'] |
adamtopaz assignee:adamtopaz |
19-48037 19 days ago |
19-48095 19 days ago |
45-45268 45 days |
| 35820 |
smmercuri author:smmercuri |
feat: unit lemmas and embedding for `FiniteAdeleRing` |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
42/4 |
Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean |
1 |
11 |
['Multramate', 'Ruben-VandeVelde', 'github-actions', 'smmercuri'] |
mattrobball assignee:mattrobball |
19-31307 19 days ago |
19-31371 19 days ago |
65-15870 65 days |
| 38036 |
JovanGerb author:JovanGerb |
feat: `NSMul`/`NPow` type class |
This PR is adds `NSMul`, `NPow`, `ZSMul` and `ZPow` classes for the `nsmul`, `npow`, `zsmul`, `zpow` data fields.
This has a few advantages:
- If you first declare a `SMul` instance, then you don't need to manually write `nsmul := (Β· β’ Β·)` and `zsmul := (Β· β’ Β·)` . For `Pow`, the extra benefit is that inferring the instance is preferred over the default field `npowRecAuto`. So this helps avoid accidental diamonds.
- If you first declare a `SMul` instance on a type synonym, then `inferInstanceAs` will infer the `nsmul` field from the `SMul` instance. This makes it easier to avoid diamonds on type synonyms like `Matrix` and `MonoidAlgebra`.
- The not-yet-merged instance diamond linter will be able to detect cases where the `NSMul` and `SMul` classes do not agree.
In the process of making this PR, I have identified two existing `NPow` diamonds:
- In `Mathlib.Algebra.Order.Positive.Field`, there were two conflicting `NPow` instances.
- For `Fin`, there are two conflicting `NPow` instances. I have overwritten the one in core lean with the one from mathlib that is more computationally efficient.
TODO: the same for `QSMul` and `NNQSMul`.
---
[](https://gitpod.io/from-referrer/)
|
|
276/273 |
Mathlib/Algebra/Colimit/DirectLimit.lean,Mathlib/Algebra/FreeAlgebra.lean,Mathlib/Algebra/Group/Action/Opposite.lean,Mathlib/Algebra/Group/Defs.lean,Mathlib/Algebra/Group/Ext.lean,Mathlib/Algebra/Group/Int/Defs.lean,Mathlib/Algebra/Group/Opposite.lean,Mathlib/Algebra/Group/Prod.lean,Mathlib/Algebra/Group/Submonoid/Membership.lean,Mathlib/Algebra/Group/TypeTags/Basic.lean,Mathlib/Algebra/Group/Units/Defs.lean,Mathlib/Algebra/GroupWithZero/Action/Opposite.lean,Mathlib/Algebra/Module/NatInt.lean,Mathlib/Algebra/MonoidAlgebra/Defs.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/Algebra/Order/Positive/Field.lean,Mathlib/Algebra/Order/Ring/Archimedean.lean,Mathlib/Algebra/Order/Ring/WithTop.lean,Mathlib/Algebra/Ring/MinimalAxioms.lean,Mathlib/Algebra/RingQuot.lean,Mathlib/CategoryTheory/Triangulated/Basic.lean,Mathlib/Data/BitVec.lean,Mathlib/Data/Complex/Basic.lean,Mathlib/Data/Rat/Defs.lean,Mathlib/Data/ZMod/Defs.lean,Mathlib/Data/ZMod/IntUnitsPower.lean,Mathlib/FieldTheory/RatFunc/Basic.lean,Mathlib/GroupTheory/GroupAction/Hom.lean,Mathlib/LinearAlgebra/Matrix/Defs.lean,Mathlib/LinearAlgebra/Matrix/ZPow.lean,Mathlib/LinearAlgebra/TensorProduct/Basic.lean,Mathlib/LinearAlgebra/TensorProduct/Defs.lean,Mathlib/NumberTheory/ArithmeticFunction/Defs.lean,Mathlib/RingTheory/PolynomialLaw/Basic.lean,Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean,Mathlib/SetTheory/Cardinal/Order.lean,Mathlib/Tactic/Abel.lean,Mathlib/Tactic/Translate/ToAdditive.lean,Mathlib/Topology/Algebra/GroupCompletion.lean,Mathlib/Topology/Algebra/Module/LinearMap.lean,MathlibTest/instance_diamonds.lean |
41 |
16 |
['JovanGerb', 'eric-wieser', 'github-actions', 'jcommelin', 'leanprover-radar', 'vihdzp'] |
nobody |
19-14384 19 days ago |
19-15276 19 days ago |
19-15545 19 days |
| 38337 |
Jun2M author:Jun2M |
feat(Combinatorics/Graph): supremum |
This PR introduces the union of `Graph`, as `sup`.
Due to compatibility issue, in general, `sup` is not very well-behaved: `SemilatticeSup` is not true. In the case of incompatible edge, unlike `inf` which simply removed such edge, we include it following its incidence in the left graph. This has the benefit of associativity being true in general at the cost of commutativity.
Assuming compatibility or existence of mutual supergraph, which are shown to be equivalent in this PR, everything behaves nicely.
Co-authored-by: Peter Nelson
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
86/1 |
Mathlib/Combinatorics/Graph/Lattice.lean |
1 |
2 |
['github-actions', 'vihdzp'] |
nobody |
18-73532 18 days ago |
19-11905 19 days ago |
19-11884 19 days |
| 38356 |
SnirBroshi author:SnirBroshi |
feat(Order/ConditionallyCompleteLattice/Finset): `sSup s β β€` in a `CompleteLinearOrder` for a finite set without `β€` |
---
btw `to_dual` here is blocked on #35213
[](https://gitpod.io/from-referrer/)
|
t-order |
20/0 |
Mathlib/Order/ConditionallyCompleteLattice/Finset.lean |
1 |
1 |
['github-actions'] |
nobody |
18-58250 18 days ago |
18-58325 18 days ago |
18-58304 18 days |
| 37939 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(Order/Completion): embed a linear order into a dense and complete linear order |
The aim of the PR is to prove the following theorem that will be used as an input to [Sion.DMCompletion.exists_isSaddlePointOn](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Sion.html#Sion.DMCompletion.exists_isSaddlePointOn) :
*If `Ξ²` is any linear order, then there exists a complete and dense linear order `Ξ³` together with a continuous embedding `ΞΉ : Ξ² βͺo Ξ³` (for the order topologies on `Ξ²` and `Ξ³`).*
Meanwhile, the PR also records various instances about dense orders and lemmas regarding the Dedekind MacNeille completion and lexicographic orders.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
206/3 |
Mathlib.lean,Mathlib/Data/Prod/Lex.lean,Mathlib/Order/Completion.lean,Mathlib/Topology/Order/Completion.lean,Mathlib/Topology/Sion.lean |
5 |
52 |
['ADedecker', 'AntoineChambert-Loir', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] |
vihdzp assignee:vihdzp |
17-73302 17 days ago |
18-7633 18 days ago |
21-7311 21 days |
| 38325 |
Jun2M author:Jun2M |
feat(Combinatorics/Graph): EndPoint function |
This PR introduces `endPoints`: `Set` of incident vertices, given an edge (in the case of non-edge, return empty).
**Import change**: `Graph/Basic` now imports `Data/Set/Card` to allow reasoning about card of `endPoints`.
[Relavent Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/513188-CSLib/topic/New.20graph.20definitions/with/588616269)
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
large-import
|
83/3 |
Mathlib/Combinatorics/Graph/Basic.lean |
1 |
9 |
['Jun2M', 'SnirBroshi', 'eric-wieser', 'github-actions', 'mathlib-bors'] |
nobody |
17-65248 17 days ago |
17-74078 17 days ago |
19-44000 19 days |
| 36239 |
plp127 author:plp127 |
feat(FieldTheory/KrullTopology): define uniform group structure on galois group |
Endow the galois group of a field extension `Gal(L/K)` with the structure of a uniform group. Use this to prove some properties of the galois group earlier, for example, that the galois group is compact is immediate, and in more generality than the version proved in `FieldTheory/Galois/Profinite`. Deprecate some material which used to be used to define the krull topology, but is now unused since the krull topology comes out of the uniform structure.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
271/177 |
Mathlib/FieldTheory/Galois/Infinite.lean,Mathlib/FieldTheory/Galois/Profinite.lean,Mathlib/FieldTheory/KrullTopology.lean,Mathlib/NumberTheory/Cyclotomic/CyclotomicCharacter.lean |
4 |
17 |
['github-actions', 'mathlib-merge-conflicts', 'plp127', 'vihdzp'] |
mattrobball assignee:mattrobball |
17-60578 17 days ago |
42-51874 42 days ago |
42-51853 42 days |
| 37374 |
NoneMore author:NoneMore |
feat(Topology/DerivedSet): add relative derived set lemmas |
Add `relDerivedSet`, `relDerivedSet_subset`, and `IsClosed.relDerivedSet_eq`.
---
[](https://gitpod.io/from-referrer/)
|
t-topology
new-contributor
|
17/0 |
Mathlib/Topology/DerivedSet.lean |
1 |
6 |
['NoneMore', 'github-actions', 'plp127', 'vihdzp'] |
urkud assignee:urkud |
17-60573 17 days ago |
40-9229 40 days ago |
40-62622 40 days |
| 38393 |
staroperator author:staroperator |
refactor(ModelTheory): add typeclasses for algebraic symbols |
`Language.ring` and `Language.presburger` share the same symbols `0`, `1` and `+` and have duplicated instances on `Term` and `realize` simp lemmas. This PR makes these symbols certain typeclasses (similar to [`Language.IsOrdered`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/ModelTheory/Order.html#FirstOrder.Language.IsOrdered)) and removes the duplication. It also adds certain definability lemmas that `fun_prop` can use.
---
[](https://gitpod.io/from-referrer/)
|
t-logic |
332/201 |
Mathlib.lean,Mathlib/ModelTheory/Algebra/Classes.lean,Mathlib/ModelTheory/Algebra/Field/IsAlgClosed.lean,Mathlib/ModelTheory/Algebra/Ring/Basic.lean,Mathlib/ModelTheory/Algebra/Ring/FreeCommRing.lean,Mathlib/ModelTheory/Arithmetic/Presburger/Basic.lean,Mathlib/ModelTheory/Arithmetic/Presburger/Definability.lean |
7 |
1 |
['github-actions'] |
nobody |
17-52942 17 days ago |
17-53000 17 days ago |
17-54531 17 days |
| 38406 |
plp127 author:plp127 |
chore(ModelTheory/Skolem): remove unnecessary `[Nonempty M]` assumption |
Removes a `[Nonempty M]` assumption by slightly modifying two proofs.
---
[](https://gitpod.io/from-referrer/)
|
t-logic |
7/1 |
Mathlib/ModelTheory/Skolem.lean |
1 |
1 |
['github-actions'] |
nobody |
17-26799 17 days ago |
17-26870 17 days ago |
17-26849 17 days |
| 38409 |
chrisflav author:chrisflav |
feat(RingTheory): totally split algebras over a field |
We show that for a totally split algebra over a field, the `k`-rational points are in bijection with the prime spectrum. We also show that an Γ©tale algebra over a separably closed field is totally split.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
large-import
|
122/2 |
Mathlib/Algebra/Algebra/Pi.lean,Mathlib/FieldTheory/IsSepClosed.lean,Mathlib/RingTheory/Artinian/Module.lean,Mathlib/RingTheory/Etale/Basic.lean,Mathlib/RingTheory/Etale/Field.lean,Mathlib/RingTheory/TotallySplit.lean |
6 |
1 |
['github-actions'] |
nobody |
17-13553 17 days ago |
17-22620 17 days ago |
17-22599 17 days |
| 35197 |
j-loreaux author:j-loreaux |
feat: HΓΆlder framework for `lp` spaces |
---
- [ ] depends on: #35152
- [ ] depends on: #35198
[](https://gitpod.io/from-referrer/)
|
t-analysis |
311/9 |
Mathlib.lean,Mathlib/Analysis/Normed/Lp/LpEquiv.lean,Mathlib/Analysis/Normed/Lp/lpHolder.lean,Mathlib/Analysis/Normed/Lp/lpSpace.lean,Mathlib/Analysis/Normed/Operator/Basic.lean,Mathlib/Tactic/Linter/TextBased.lean |
6 |
10 |
['github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mike1729'] |
urkud assignee:urkud |
17-3760 17 days ago |
17-3816 17 days ago |
36-6574 36 days |
| 38214 |
emlis42 author:emlis42 |
feat(Algebra/ContinuedFractions): add Euler's continued fraction |
This PR formalizes Eulerβs continued fractions by providing `Euler` which construct one by giving head term and coefficients with some basic property.
We also introduce a transformation `GenContFract.toEuler` that maps a generalized continued fraction `g : GenContFract K` to an equivalent Euler-form continued fraction. |
new-contributor
t-algebra
label:t-algebra$ |
262/0 |
Mathlib.lean,Mathlib/Algebra/ContinuedFractions/Euler.lean |
2 |
15 |
['github-actions', 'mathlib-bors', 'wwylele'] |
nobody |
17-1296 17 days ago |
17-1296 17 days ago |
17-5027 17 days |
| 38055 |
felixpernegger author:felixpernegger |
feat(Topology/EMetricSpace): add r-variation |
Redoing #37007 (I had accidently deleted my fork which nuked the PR).
See https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/p-variation for discussion.
---
[](https://gitpod.io/from-referrer/)
|
t-topology
t-analysis
|
408/0 |
Mathlib.lean,Mathlib/Topology/EMetricSpace/RVariation.lean |
2 |
2 |
['felixpernegger', 'github-actions'] |
j-loreaux assignee:j-loreaux |
16-60570 16 days ago |
24-31759 24 days ago |
24-32132 24 days |
| 38114 |
javgomzar author:javgomzar |
feat(FinitelyPresentedGroup): add finite groups instance |
Add IsFinitelyPresented instance for finite groups.
Co-authored-by: Hang Lu Su , Thomas Browning
---
[](https://gitpod.io/from-referrer/)
|
t-group-theory
new-contributor
large-import
|
32/3 |
Mathlib/GroupTheory/FinitelyPresentedGroup.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean |
2 |
32 |
['github-actions', 'javgomzar', 'kbuzzard', 'mathlib-merge-conflicts', 'plp127', 'tb65536', 'vihdzp'] |
mattrobball assignee:mattrobball |
16-60567 16 days ago |
18-66606 18 days ago |
21-70126 21 days |
| 38422 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Maps): `G βg G.map f` |
The existing `SimpleGraph.Embedding.map` takes an embedding and lifts it to a graph embedding `G βͺg G.map f`.
#36130 generalized `SimpleGraph.map` from embeddings to functions, so now we can get a graph homomorphism `G βg G.map f` without requiring that `f` is injective, although we still have to require that it is injective on adjacent vertices (aka a valid coloring).
This adds `Coloring.homMap`, and `Hom.map` which is identical but avoids coloring terminology/spelling.
---
I'd love for suggestions to improve the docstring of `Coloring.homMap`, I'm not sure about it :)
Are the two versions a good idea, or should we just have the coloring one? (we have `{Hom,Embedding,Iso}.comap` but only `{Embedding,Iso}.map`)
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
16/0 |
Mathlib/Combinatorics/SimpleGraph/Coloring/VertexColoring.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean |
2 |
4 |
['SnirBroshi', 'eric-wieser', 'github-actions'] |
nobody |
16-55539 16 days ago |
17-4316 17 days ago |
17-4352 17 days |
| 35892 |
vlad902 author:vlad902 |
feat(Data): lemmas for `List.bagInter` |
Basic API lemmas for `List.bagInter` and correct a few misnamed lemmas.
Co-authored-by: Aristotle (Harmonic)
---
[](https://gitpod.io/from-referrer/)
|
t-data |
66/5 |
Mathlib/Data/List/Lattice.lean,Mathlib/Data/List/Perm/Lattice.lean,Mathlib/Data/Multiset/UnionInter.lean |
3 |
13 |
['Vierkantor', 'github-actions', 'vlad902'] |
Vierkantor assignee:Vierkantor |
16-30980 16 days ago |
16-31040 16 days ago |
16-33663 16 days |
| 38424 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Coloring/VertexColoring): `chromaticNumber β€` and other small lemmas |
- Golf `isEmpty_of_colorable_zero` and rename to `Colorable.isEmpty`
- `colorable_one_iff`: `G.Colorable 1 β G = β₯`
- Combine `chromaticNumber_eq_zero_of_isEmpty`/`isEmpty_of_chromaticNumber_eq_zero` into `chromaticNumber_eq_zero_iff : G.chromaticNumber = 0 β IsEmpty V` and deprecate the `β` side
- `chromaticNumber_top_eq_enat_card`: `chromaticNumber β€ = ENat.card V`
- Tag `chromaticNumber_top_eq_top_of_infinite`/`chromaticNumber_eq_zero_of_isEmpty` as `simp`
- Golf `chromaticNumber_eq_one_iff`
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
33/26 |
Mathlib/Combinatorics/SimpleGraph/Coloring/VertexColoring.lean |
1 |
3 |
['SnirBroshi', 'github-actions', 'vlad902'] |
nobody |
15-78725 15 days ago |
17-439 17 days ago |
17-856 17 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'`
---
NOTE: this PR began as an effort to use `Subrelation` since `β€` wasn't available in this file, but it was agreed on [Zulip](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2330526.20use.20Subrelation.20in.20Mathlib.2ELogic.2ERelation/with/546572676) to instead make `β€` available there.
[](https://gitpod.io/from-referrer/)
|
t-logic |
158/143 |
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/TuringMachine/Config.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/Topology/Gluing.lean |
22 |
21 |
['SnirBroshi', 'Vierkantor', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'thorimur', 'vihdzp'] |
Vierkantor assignee:Vierkantor |
15-52172 15 days ago |
16-63491 16 days ago |
78-48277 78 days |
| 34507 |
metakunt author:metakunt |
feat(NumberTheory/AKSPrimality): Adds the AKS primality test |
Adds the completed proof for the AKS primality test.
Everything except the final theorem is marked private as it's only needed for the final proof.
Also everything except the final theorem is namespaced with AKS.
----
Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Aks.20primality.20Theorem.206.2E1.20Claim.20.28i.29.20proven |
t-number-theory |
645/0 |
Mathlib.lean,Mathlib/NumberTheory/AKSPrimality.lean |
2 |
52 |
['MichaelStollBayreuth', 'github-actions', 'jcommelin', 'kim-em', 'metakunt', 'qawbecrdtey', 'tb65536', 'vihdzp'] |
tb65536 assignee:tb65536 |
15-49002 15 days ago |
42-41946 42 days ago |
72-34686 72 days |
| 38498 |
SnirBroshi author:SnirBroshi |
feat(Order/RelIso/Basic): lift a function to an order morphism into `Relation.Map` or from `Function.onFun` |
For an `Ξ±`-relation `r` we have:
```
mapRelHom (f : Ξ± β Ξ²) : r βr Relation.Map r f f
mapRelEmbedding (f : Ξ± βͺ Ξ²) : r βͺr Relation.Map r f f
mapRelIso (f : Ξ± β Ξ²) : r βr Relation.Map r f f
```
For a `Ξ²`-relation `r` we have:
```
onFunRelHom (f : Ξ± β Ξ²) : r.onFun f βr r
onFunRelEmbedding (f : Ξ± βͺ Ξ²) : r.onFun f βͺr r
onFunRelIso (f : Ξ± β Ξ²) : r.onFun f βr r
```
---
These are pretty similar to `SimpleGraph.{Embedding/Iso}.map` and `SimpleGraph.{Hom/Embedding/Iso}.comap`, as [`comap`](https://github.com/leanprover-community/mathlib4/blob/9268b22206b0425419498769f780a91dee03bcf3/Mathlib/Combinatorics/SimpleGraph/Maps.lean#L117-L118) on graphs is a wrapper around `onFun`, and [`map`](https://github.com/leanprover-community/mathlib4/blob/9268b22206b0425419498769f780a91dee03bcf3/Mathlib/Combinatorics/SimpleGraph/Maps.lean#L57-L58) on graphs is *almost* a wrapper around `Relation.Map`.
btw `@[simps]` is angry at me when I try to use it on the structures that use spread syntax.
[](https://gitpod.io/from-referrer/)
|
t-order |
42/0 |
Mathlib/Order/RelIso/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
15-48892 15 days ago |
15-48967 15 days ago |
15-48946 15 days |
| 38488 |
b-mehta author:b-mehta |
feat(Data/Finset/Card): iterating a function's image on a finite set stabilises |
...and does so in a bounded number of steps (which is why this is Finset-specific).
In a later PR, I'll add this for endofunctions on a fintype, as well as add a Set.Finite version.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
40/0 |
Mathlib/Data/Finset/Card.lean,Mathlib/Data/Finset/Image.lean |
2 |
16 |
['SnirBroshi', 'b-mehta', 'github-actions'] |
nobody |
15-40440 15 days ago |
15-65148 15 days ago |
15-65127 15 days |
| 35504 |
JoaBjo author:JoaBjo |
feat(Probability/Distributions/Exponential): add MGF, moments, and memoryless property |
feat(Probability/Distributions/Exponential): add MGF, moments, and memoryless property
Add the main analytic results for the exponential distribution:
- moment-generating function `mgf id (expMeasure r) t = r / (r - t)` for `t < r`
- mean `β« x, x β(expMeasure r) = rβ»ΒΉ`
- variance `Var[id; expMeasure r] = rβ»ΒΉ ^ 2`
- `βp` membership for all `p`
- tail probability `P(X > x) = exp (-(r * x))`
- memoryless property `P(X > s + t | X > s) = P(X > t)`
The MGF is computed by reducing to the known improper integral `β« exp(c * x)` on `Ioi`,
and integrability is deduced by contradiction from the positive closed-form value.
The mean and variance are computed via the Gamma function integral
`β«β^β x^(n-1) exp(-r x) dx = Ξ(n) / rβΏ`. The memoryless property follows from
the exponential identity `exp(-(r(s+t))) = exp(-rt) * exp(-rs)`.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
200/0 |
Mathlib/Probability/Distributions/Exponential.lean |
1 |
6 |
['JoaBjo', 'Timeroot', 'github-actions'] |
kex-y assignee:kex-y |
15-24847 15 days ago |
15-24901 15 days ago |
31-23939 31 days |
| 38344 |
robo7179 author:robo7179 |
feat(SimpleGraph/Coloring/VertexColoring): Matching is 2 colorable |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
51/0 |
Mathlib/Combinatorics/SimpleGraph/Coloring/VertexColoring.lean |
1 |
5 |
['SnirBroshi', 'github-actions', 'vlad902'] |
nobody |
15-24815 15 days ago |
18-78759 18 days ago |
18-79124 18 days |
| 38222 |
IvanRenison author:IvanRenison |
feat(Combinatorics/SimpleGraph/Girth): add lemmas about isomorphism and girth |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
19/1 |
Mathlib/Combinatorics/SimpleGraph/Girth.lean |
1 |
6 |
['IvanRenison', 'SnirBroshi', 'github-actions', 'vlad902'] |
nobody |
15-8437 15 days ago |
21-69750 21 days ago |
21-69729 21 days |
| 38528 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Paths): some cycle lemmas are true for circuits |
Add `IsCircuit.{not_of_nil,ne_bot,three_le_length}` by using their corresponding `IsCycle` proofs.
Also golfs a bit.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
17/9 |
Mathlib/Combinatorics/SimpleGraph/Paths.lean |
1 |
1 |
['github-actions'] |
nobody |
15-7341 15 days ago |
15-7411 15 days ago |
15-7390 15 days |
| 37541 |
EtienneC30 author:EtienneC30 |
feat: another version of the cardinality of the difference |
In mathlib there is `Set.ncard_diff` which states that `(t \ s).ncard = t.ncard - s.ncard` when `s β t` and `s` is finite. But one way to prove that `s` is finite is by showing that `t` is finite and using the `s β t` hypothesis, so this PR adds `Set.ncard_diff'` which assumes that `t` is finite instead of `s`.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
5/0 |
Mathlib/Data/Set/Card.lean |
1 |
1 |
['github-actions'] |
TwoFX assignee:TwoFX |
14-60495 14 days ago |
38-16539 38 days ago |
38-16518 38 days |
| 38539 |
plp127 author:plp127 |
fix(Data/Bool/Basic): fix `Bool.not` problem |
Fix three lemmas which have a subterm of the form `!a = b`, which elaborates to `(!(decide (a = b))) = true`, where `(!a) = b` was probably intended. These were introduced in #534.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
3/3 |
Mathlib/Data/Bool/Basic.lean |
1 |
2 |
['github-actions', 'grunweg'] |
nobody |
14-36011 14 days ago |
14-59673 14 days ago |
14-59652 14 days |
| 38531 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Paths): `Walk.map` preserves more properties |
Adds some missing theorems about how `Walk.map` behaves with `IsTrail`/`IsPath`/`IsCircuit`/`IsCycle`.
Summary of what we have now, with the 8 new theorems and 2 renames marked:
```
IsTrail.of_map : (p.map f).IsTrail β p.IsTrail -- new
map_isTrail_iff_of_injective : f.Injective β (p.map f).IsTrail β p.IsTrail
IsTrail.map : f.Injective β p.IsTrail β (p.map f).IsTrail -- renamed from map_isTrail_of_injective
IsPath.of_map : (p.map f).IsPath β p.IsPath
map_isPath_iff_of_injective : f.Injective β (p.map f).IsPath β p.IsPath
IsPath.map : f.Injective f β p.IsPath β (p.map f).IsPath -- renamed from map_isPath_of_injective
IsCircuit.of_map : (p.map f).IsCircuit β p.IsCircuit -- new
map_isCircuit_iff_of_injective : f.Injective β (p.map f).IsCircuit β p.IsCircuit -- new
IsCircuit.map : f.Injective β p.IsCircuit β (p.map f).IsCircuit -- new
IsCycle.of_map : (p.map f).IsCycle β p.IsCycle -- new
map_isCycle_iff_of_injective : f.Injective β (p.map f).IsCycle β p.IsCycle
IsCycle.map : f.Injective β p.IsCycle β (p.map f).IsCycle
mapLe_isTrail : G β€ G' β (p.mapLe h).IsTrail β p.IsTrail
IsTrail.of_mapLe : G β€ G' β (p.mapLe h).IsTrail β p.IsTrail
IsTrail.mapLe : G β€ G' β p.IsTrail β (p.mapLe h).IsTrail
mapLe_isPath : G β€ G' β (p.mapLe h).IsPath β p.IsPath
IsPath.of_mapLe : G β€ G' β (p.mapLe h).IsPath β p.IsPath
IsPath.mapLe : G β€ G' β p.IsPath β (p.mapLe h).IsPath
mapLe_isCircuit : G β€ G' β (p.mapLe h).IsCircuit β p.IsCircuit -- new
IsCircuit.of_mapLe : G β€ G' β (p.mapLe h).IsCircuit β p.IsCircuit -- new
IsCircuit.mapLe : G β€ G' β p.IsCircuit β (p.mapLe h).IsCircuit -- new
mapLe_isCycle : G β€ G' β (p.mapLe h).IsCycle β p.IsCycle
IsCycle.of_mapLe : G β€ G' β (p.mapLe h).IsCycle β p.IsCycle
IsCycle.mapLe : G β€ G' β p.IsCycle β (p.mapLe h).IsCycle
```
---
Also golfs `map_isPath_of_injective`/`IsPath.of_map`/`map_isTrail_iff_of_injective`, they don't need induction.
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
47/31 |
Mathlib/Combinatorics/SimpleGraph/Paths.lean |
1 |
1 |
['github-actions'] |
nobody |
14-15999 14 days ago |
14-76479 14 days ago |
14-76458 14 days |
| 38549 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Copy): `Is(Ind)Contained` `completeGraph` lemmas |
- `G β completeGraph V`
- `G β completeGraph W β Nonempty (V βͺ W)`
- `completeGraph V β΄ completeGraph W β Nonempty (V βͺ W)`
- `G β΄ completeGraph W β G = β€`
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
12/0 |
Mathlib/Combinatorics/SimpleGraph/Copy.lean |
1 |
1 |
['github-actions'] |
nobody |
14-13916 14 days ago |
14-13985 14 days ago |
14-13964 14 days |
| 38529 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Girth): `egirth β€ = 3` when there are at least 3 vertices |
Since `Nontrivial` is not enough, we use the condition `3 β€ ENat.card Ξ±`.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
17/0 |
Mathlib/Combinatorics/SimpleGraph/Girth.lean |
1 |
5 |
['SnirBroshi', 'github-actions', 'vlad902'] |
nobody |
14-13859 14 days ago |
15-4576 15 days ago |
15-4555 15 days |
| 38548 |
adomasbaliuka author:adomasbaliuka |
feat(Algebra/Ring/BooleanRing): definitional lemmas for `Bool` ring operations |
Mathlib defines a ring structure on `Bool` but is missing definitional lemmas for the arithmetic operations.
---
Discussed on Zulip ([#Is there code for X? > `Bool.xor` same as `+` @ π¬](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/.60Bool.2Exor.60.20same.20as.20.60.2B.60/near/590927417)), in particular, it's not immediately intuitive to everyone what the operations do.
Note that the parentheses around `^^` and `&&` are needed due to operator precedence w.r.t. `=`, see also https://github.com/leanprover-community/mathlib4/pull/38539.
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
12/0 |
Mathlib/Algebra/Ring/BooleanRing.lean |
1 |
1 |
['github-actions'] |
nobody |
14-13367 14 days ago |
14-13367 14 days ago |
14-13346 14 days |
| 37835 |
YaelDillies author:YaelDillies |
doc(Algebra/Order): update mentions of `OrderedSemiring` and friends |
As of #20676, it was replaced by `IsOrderedRing`.
Not all docs were straightforward to update.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-order
label:t-algebra$ |
123/280 |
Counterexamples/HomogeneousPrimeNotPrime.lean,Counterexamples/OrderedCancelAddCommMonoidWithBounds.lean,Mathlib/Algebra/Group/Subgroup/Order.lean,Mathlib/Algebra/Group/ULift.lean,Mathlib/Algebra/Order/AddTorsor.lean,Mathlib/Algebra/Order/Floor/Defs.lean,Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/Algebra/Order/Floor/Semiring.lean,Mathlib/Algebra/Order/Group/Cone.lean,Mathlib/Algebra/Order/Group/Cyclic.lean,Mathlib/Algebra/Order/GroupWithZero/Unbundled/Defs.lean,Mathlib/Algebra/Order/Hom/Monoid.lean,Mathlib/Algebra/Order/Interval/Set/Monoid.lean,Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Defs.lean,Mathlib/Algebra/Order/Monoid/Unbundled/ExistsOfLE.lean,Mathlib/Algebra/Order/Positive/Ring.lean,Mathlib/Algebra/Order/Ring/Basic.lean,Mathlib/Algebra/Order/Ring/Defs.lean,Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean,Mathlib/Algebra/Order/Star/Basic.lean,Mathlib/Algebra/Order/Sub/WithTop.lean,Mathlib/Algebra/Order/ToIntervalMod.lean,Mathlib/Algebra/Order/WithTop/Untop0.lean,Mathlib/Combinatorics/Pigeonhole.lean,Mathlib/Data/Finsupp/Weight.lean,Mathlib/Data/NNReal/Defs.lean,Mathlib/Data/Nat/Cast/Order/Basic.lean,Mathlib/Data/Nat/Cast/Order/Ring.lean,Mathlib/MeasureTheory/Function/LpOrder.lean,Mathlib/MeasureTheory/Measure/Typeclasses/Finite.lean,Mathlib/Order/Filter/Germ/OrderedMonoid.lean,Mathlib/RingTheory/GradedAlgebra/Radical.lean,Mathlib/RingTheory/HahnSeries/PowerSeries.lean,Mathlib/RingTheory/HahnSeries/Valuation.lean,Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean,Mathlib/Tactic/NormNum/Ineq.lean |
37 |
9 |
['NoahW314', 'SnirBroshi', 'github-actions', 'mathlib-merge-conflicts'] |
nobody |
14-5795 14 days ago |
14-5820 14 days ago |
29-933 29 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 |
23 |
['Parcly-Taxel', 'b-mehta', 'eric-wieser', 'github-actions', 'jsm28', 'vihdzp'] |
YaelDillies assignee:YaelDillies |
13-60470 13 days ago |
116-78287 116 days ago |
116-78266 116 days |
| 36814 |
YaelDillies author:YaelDillies |
refactor(Combinatorics/SimpleGraph): no proof obligation in `rotate` |
If the walk doesn't go through the new vertex, return `nil` instead.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
44/31 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean,Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Decomp.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Operations.lean |
8 |
8 |
['SnirBroshi', 'YaelDillies', 'b-mehta', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts'] |
b-mehta assignee:b-mehta |
13-60465 13 days ago |
37-30585 37 days ago |
51-14392 51 days |
| 37722 |
SabrinaJewson author:SabrinaJewson |
feat(Order/Cover): intervals equal singletons iff |
To complement `Set.Icc_eq_singleton_iff`, this introduces:
- `Set.Ioc_eq_singleton_iff`
- `Set.Ico_eq_singleton_iff`
- `Set.Ioi_eq_singleton_iff`
- `Set.Iio_eq_singleton_iff`
- `Set.Ioo_eq_singleton_iff`
Unforunately because of the order of the ands, the last cannot be made self-dual.
---
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
|
39/0 |
Mathlib/Order/Cover.lean |
1 |
3 |
['github-actions', 'mathlib-merge-conflicts'] |
Komyyy and bryangingechen assignee:bryangingechen assignee:Komyyy |
13-60461 13 days ago |
31-62900 31 days ago |
33-49641 33 days |
| 38568 |
SnirBroshi author:SnirBroshi |
feat(SimpleGraph/Connectivity/Subgraph): `w.toSubgraph.IsInduced β w.IsChordless` |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
6/0 |
Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean |
1 |
1 |
['github-actions'] |
nobody |
13-47167 13 days ago |
13-47237 13 days ago |
13-47216 13 days |
| 38554 |
YaelDillies author:YaelDillies |
chore(Combinatorics/SimpleGraph): use the auto-param in `loopless` more |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
5/13 |
Mathlib/Combinatorics/Digraph/Orientation.lean,Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean,Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Hasse.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean,Mathlib/Combinatorics/SimpleGraph/Prod.lean,Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean,Mathlib/Order/Cover.lean |
8 |
6 |
['SnirBroshi', 'YaelDillies', 'github-actions'] |
nobody |
12-80815 12 days ago |
13-26756 13 days ago |
13-28804 13 days |
| 38500 |
kebekus author:kebekus |
feat: integral presentation of the proximity function of value distribution theory |
If `f : β β β` is meromorphic, establish a presentation of the proximity function `proximity f β€` as iterated circle averages. This statement can be used to compare the proximity- and logarithmic counting functions, and is one of the key ingredients in the proof of Cartan's classic formula for the characteristic function.
This is the first section of a multi-part PR, establishing Cartan's formula.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
211/0 |
Mathlib.lean,Mathlib/Analysis/Complex/ValueDistribution/Proximity/IntegralPresentation.lean |
2 |
11 |
['github-actions', 'kebekus', 'wwylele'] |
sgouezel assignee:sgouezel |
12-60313 12 days ago |
14-44651 14 days ago |
15-39333 15 days |
| 38359 |
mcdoll author:mcdoll |
feat: custom `simp` sets for translating between `Equiv` and algebraic notation |
---
The names for the simpsets are not great, I did ask on zulip, but no suggestions.
[#mathlib4 > simpsets for moving between group and equiv](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/simpsets.20for.20moving.20between.20group.20and.20equiv/with/590381093)
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-meta
label:t-algebra$ |
38/15 |
Mathlib/Algebra/Group/End.lean,Mathlib/GroupTheory/Perm/Cycle/Concrete.lean,Mathlib/GroupTheory/Perm/Fin.lean,Mathlib/GroupTheory/Perm/Support.lean,Mathlib/Tactic/Attr/Register.lean |
5 |
4 |
['Vierkantor', 'github-actions', 'mcdoll'] |
Vierkantor assignee:Vierkantor |
12-54099 12 days ago |
12-54101 12 days ago |
13-69389 13 days |
| 38027 |
8e7 author:8e7 |
feat(Combinatorics/SimpleGraph/Star): define star graphs |
Add a new definition `starGraph` and several key lemmas. Star graphs are a trivial class of tree, often used in constructive proofs regarding trees. An example use case is shown in #38334.
---
All lemmas are hand written first, then golfed with the help of Claude Code.
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
85/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Star.lean |
2 |
39 |
['8e7', 'IvanRenison', 'JovanGerb', 'SnirBroshi', 'github-actions', 'vihdzp', 'vlad902'] |
nobody |
12-52808 12 days ago |
24-52754 24 days ago |
26-50998 26 days |
| 38205 |
jcommelin author:jcommelin |
chore: reduce technical debt in FreimanHom |
This PR reduces technical debt related to the `CommRing` instance on `Fin (n + 1)`.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
large-import
|
65/27 |
Mathlib/Combinatorics/Additive/FreimanHom.lean |
1 |
9 |
['Vierkantor', 'YaelDillies', 'github-actions', 'jcommelin'] |
nobody |
12-29498 12 days ago |
13-15303 13 days ago |
17-29702 17 days |
| 36709 |
kim-em author:kim-em |
feat(DefEqAbuse): suggest minimal @[implicit_reducible] workaround |
This PR extends `#defeq_abuse` to suggest a minimal set of `@[implicit_reducible]` annotations that would make the failing tactic or command succeed with `backward.isDefEq.respectTransparency true`.
When `#defeq_abuse` detects a failure, it now runs a greedy minimisation over semireducible definitions reachable from the goal/command, finding a (possibly non-unique) minimal subset that, when temporarily marked `@[implicit_reducible]`, fixes the issue. The result is reported as an `info` message:
```
info: Workaround: the following @[implicit_reducible] annotations (a possibly non-unique minimal set) would paper over this problem,
but the real issue is likely a leaky instance somewhere.
set_option allowUnsafeReducibility true
attribute [implicit_reducible]
MyPred
```
This is a workaround, not a fix β the real cause is usually a leaky instance (which `#check_instance` from https://github.com/leanprover-community/mathlib4/pull/36706 can diagnose). But it can be useful for quick debugging.
New helpers: `collectCandidates`, `markImplicitReducible`, `withTempImplicitReducible`, `withTempImplicitReducibleCmd`, `suggestAnnotationsTac`, `suggestAnnotationsCmd`, `formatAnnotations`, `logAnnotationSuggestions`.
π€ Prepared with Claude Code |
t-meta
LLM-generated
|
187/17 |
Mathlib/Tactic/DefEqAbuse.lean,MathlibTest/DefEqAbuse.lean |
2 |
6 |
['github-actions', 'kim-em', 'mathlib-merge-conflicts', 'thorimur'] |
dwrensha and thorimur assignee:dwrensha assignee:thorimur |
12-25573 12 days ago |
12-25618 12 days ago |
29-23808 29 days |
| 38649 |
chrisflav author:chrisflav |
chore(RingTheory): equality of linear map with values in finite module spreads out |
We add some corollaries of `Module.Finite.exists_smul_of_comp_eq_of_isLocalizedModule`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
large-import
|
75/1 |
Mathlib/Algebra/Module/FinitePresentation.lean,Mathlib/RingTheory/Localization/BaseChange.lean,Mathlib/RingTheory/Localization/Module.lean |
3 |
2 |
['github-actions'] |
nobody |
12-12441 12 days ago |
12-12656 12 days ago |
12-12635 12 days |
| 38592 |
SnirBroshi author:SnirBroshi |
feat(Logic/Embedding/Basic): `refl_trans`/`trans_refl`/`trans_assoc` |
- `(.refl Ξ±).trans f = f`
- `f.trans (.refl Ξ²) = f`
- `(f.trans g).trans h = f.trans (g.trans h)`
---
[](https://gitpod.io/from-referrer/)
|
t-logic |
12/0 |
Mathlib/Logic/Embedding/Basic.lean |
1 |
1 |
['github-actions', 'vihdzp'] |
nobody |
12-10096 12 days ago |
12-64432 12 days ago |
12-64411 12 days |
| 36439 |
xgenereux author:xgenereux |
feat(Algebra/Adjoin): CoeDep instances for Algebra.adjoin on singletons |
It is a common occurrence that I need to consider an element `x` or some polynomial evaluated in `x`, `p.eval x` as an element of `Algebra.adjoin R {x}`.
This makes it so that we can write
- `(x : adjoin R {x})` instead of `β¨x, self_mem_adjoin_singleton A xβ©`
- `(p.eval x : adjoin R {x})` instead of `β¨p.aeval x, aeval_mem_adjoin_singleton A xβ©`
This is particularly useful when we need to write the type anyways, so that we need not to write `(β¨p.aeval x, aeval_mem_adjoin_singleton A xβ© : adjoin R {x})` anymore.
Co-authored-by: MarΓa InΓ©s de Frutos FernΓ‘ndez <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)>
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
33/3 |
Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean,Mathlib/RingTheory/Adjoin/Polynomial/Basic.lean |
2 |
17 |
['Vierkantor', 'chrisflav', 'github-actions', 'jcommelin', 'mathlib-merge-conflicts', 'xgenereux'] |
jcommelin assignee:jcommelin |
11-81122 11 days ago |
12-10608 12 days ago |
47-47896 47 days |
| 37951 |
martinwintermath author:martinwintermath |
chore(Geometry/Convex/Cone): rework `PointedCone.dual` to take a cone as input in place of a set |
Rework `PointedCone.dual` to take as input a cone instead of a set. This is done to untangle the functionality of `PointedCone.dual` from `PointedCone.hull` and to align it with the signature of its submodule analogue `Submodule.orthogonalBilin` (partially, with proposed functionality from #34007). See also the discussion here: [#mathlib4 > Reorganizing bilinearity and orthogonality?](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Reorganizing.20bilinearity.20and.20orthogonality.3F/with/583882414).
Main changes:
* change signature `dual (s : Set M)` to `dual (C : PointedCone R M)`.
* deprecate `dual_hull` since now obsolete in this form, instead add `mem_dual_hull` in addition to `mem_dual`.
* deprecate all of `dual_empty`, `dual_zero` and `dual_singleton_zero` in favor of only `dual_bot`.
* deprecate `dual_univ` in favor of `dual_top`.
* add notation `R ββ x` in analogy to submodule version `R β x`, for use in new lemma `dual_hull_singleton`.
* deprecate `dual_insert` since now obsolete (use `Submodule.span_insert` instead).
* deprecate `dual_union`, `dual_iUnion` and `dual_sUnion` in favor of `dual_sup`, `dual_sSup` and `dual_iSup`.
* remove `dual_sup` since now obsolete and name has been reused (see above).
* add `dual_sup_ker` and `dual_univ_eq_ker` to align with (proposed) submodule analogue for `Submodule.orthogonalBilin`.
* deprecate `dual_image` in favor of `dual_map`
* add `hull_eq` (cone version of `span_eq`) since used in `basis_coord_mem_dual`.
* adjust doc-strings
Numerous changes to other files have been necessary. The dual-variants for proper cones or inner product spaces have not yet been adapted to cone-inputs, though this should happen eventually. The definition of `DualFG` has been changed to "duals of `FG`-cones" instead of "duals of finite sets" (also getting rid of `Finset` as previously requested).
---
- [x] depends on: #37950
- [x] depends on: #37542
[](https://gitpod.io/from-referrer/)
|
|
226/129 |
Mathlib/Analysis/Convex/Cone/Dual.lean,Mathlib/Analysis/Convex/Cone/InnerDual.lean,Mathlib/Analysis/Convex/Cone/TensorProduct.lean,Mathlib/Geometry/Convex/Cone/Dual.lean,Mathlib/Geometry/Convex/Cone/DualFinite.lean,Mathlib/Geometry/Convex/Cone/Pointed.lean,Mathlib/Geometry/Convex/Cone/TensorProduct.lean |
7 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
11-78537 11 days ago |
11-78539 11 days ago |
11-78518 11 days |
| 35255 |
vlad902 author:vlad902 |
feat(SimpleGraph): `cycleGraph.IsContained` in every graph with a cycle |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
35/0 |
Mathlib/Combinatorics/SimpleGraph/Circulant.lean |
1 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
11-76384 11 days ago |
11-76410 11 days ago |
11-77336 11 days |
| 38364 |
openendings author:openendings |
feat: create Order/DirectedCompletePartialOrder/Defs.lean |
Define DirectedCompletePartialOrder and its interaction with iSup and sSup.
---
A DirectedCompletePartialOrder is equivalently:
- a partial order with LUBs of nonempty directed sets;
- what happens when you remove β₯ from a CompletePartialOrder; or
- a ConditionallyCompletePartialOrder in which every directed set is BddAbove.
Like CPOs, DCPOs are commonly studied in denotational semantics.
Potential applications:
- [#Is there code for X? > Summing `ENat`s without topology](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Summing.20.60ENat.60s.20without.20topology/with/590070848) -- defining infinite sums in an DCPO-enriched `AddCommMonoidWithTop` such as `ENat` or `ENNReal`.
- [#Is there code for X? > Scott Induction](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Scott.20Induction/with/590112858) -- fixpoint theorems similar to `OmegaCompletePartialOrder`, generalised to arbitrary cardinalities.
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
|
123/0 |
Mathlib.lean,Mathlib/Order/DirectedCompletePartialOrder/Defs.lean,docs/references.bib |
3 |
4 |
['SnirBroshi', 'github-actions', 'openendings'] |
nobody |
11-69071 11 days ago |
17-59191 17 days ago |
18-33996 18 days |
| 29774 |
Raph-DG author:Raph-DG |
feat(AlgebraicGeometry): Order of vanishing of elements of the function field of locally noetherian, integral schemes |
In this PR, we define the order of vanishing of elements of the function field of locally noetherian, integral schemes at points of codimension 1. This is essentially just a wrapper around the API for the order of vanishing for rings (i.e. Ring.ord and Ring.ordFrac), but I think it's good to have this too for usability.
---
- [ ] depends on: #29550
- [ ] depends on: #26735
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry |
101/0 |
Mathlib.lean,Mathlib/AlgebraicGeometry/FunctionField.lean,Mathlib/AlgebraicGeometry/OrderOfVanishing.lean |
3 |
5 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
joelriou assignee:joelriou |
11-60263 11 days ago |
12-40689 12 days ago |
12-41340 12 days |
| 33714 |
idontgetoutmuch author:idontgetoutmuch |
feat(Mathlib/Geometry/Manifold): Riemannian metrics exist II |
Supersedes https://github.com/leanprover-community/mathlib4/pull/33519
---
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry
new-contributor
|
723/0 |
Mathlib.lean,Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Geometry/Manifold/ExistsRiemannianMetric.lean,Mathlib/Geometry/Manifold/PartitionOfUnity.lean |
4 |
200 |
['Rida-Hamadani', 'github-actions', 'grunweg', 'idontgetoutmuch'] |
fpvandoorn assignee:fpvandoorn |
11-60260 11 days ago |
21-14329 21 days ago |
66-21761 66 days |
| 34805 |
DavidLedvinka author:DavidLedvinka |
feat(Tactic): generalize ofScientific NormNum extension to `DivisionSemiring` |
Co-authored-by: @hrmacbeth |
t-meta |
68/20 |
Mathlib/Tactic/NormNum/Inv.lean,Mathlib/Tactic/NormNum/OfScientific.lean,MathlibTest/norm_num.lean |
3 |
26 |
['DavidLedvinka', 'JovanGerb', 'b-mehta', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts', 'thorimur'] |
dwrensha assignee:dwrensha |
11-60259 11 days ago |
49-78128 49 days ago |
70-33119 70 days |
| 36806 |
grunweg author:grunweg |
fix(Tactic/Continuity): mark Continuous.comp' as unsafe |
This issue was pre-existing: `Continuous.comp'` was never full safe, as a constant function could be written as the composition of any function and a constant function (and then applying the lemma could lead to something unprovable). The change in #31607 triggered such a case: make is an unsafe rule with very high probability instead.
This change broke three proofs: one was easy to switch to fun_prop; the others seemed to depend on this being a safe rule. I have added a workaround for now.
There was another test failure, exposing a pre-existing internal bug in aesop. With smaller imports, continuity succeeds [zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/aesop.20error.20during.20proof.20reconstruction.2C.20goal.20not.20normalised/with/580202602), so I have accepted this result as fine.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
54/2 |
Mathlib/Analysis/RCLike/Basic.lean,Mathlib/Condensed/Light/TopCatAdjunction.lean,Mathlib/Condensed/TopCatAdjunction.lean,Mathlib/Topology/Continuous.lean,MathlibTest/Continuity.lean |
5 |
1 |
['github-actions'] |
thorimur assignee:thorimur |
11-60257 11 days ago |
53-12513 53 days ago |
53-12500 53 days |
| 37501 |
xgenereux author:xgenereux |
feat(DedekindDomain/AdicValuation): `intValuation` on uniformizers is `exp (-1)` |
This PR add the lemma `intValuation_val_uniformizer_eq` which is an application of #37497.
Note that I've had to reorganize the files a little bit:
1. I wanted to import `Valuation.Discrete.Basic` in `AdicValuation` but this was not possible since there was a dependency in the other direction (`Valuation.Discrete.Basic` depended on `AdicValuation`). I don't think this makes sense - we want to have access to basic definitions on general valuation in an application file like `AdicValuation`.
~~The reorganization consist of moving the `IsDiscreteValuationRing` of `Valuation.Discrete.Basic` to `AdicValuation`.~~
The reorganization consist of moving the `IsDiscreteValuationRing` section to a new file.
2. I moved some lemmas out of `Mathlib.RingTheory.Valuation.Discrete.RankOne` to the parent file `Mathlib.RingTheory.Valuation.Discrete.Basic.`. These lemmas do not need the richer imports from `RankOne` and are needed in my application.
Co-authored-by: MarΓa InΓ©s de Frutos FernΓ‘ndez <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)>
---
- [ ] depends on: #37497
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
203/167 |
Mathlib.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Reduction.lean,Mathlib/NumberTheory/NumberField/Completion/FinitePlace.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean,Mathlib/RingTheory/OrderOfVanishing/Noetherian.lean,Mathlib/RingTheory/Valuation/Discrete/Basic.lean,Mathlib/RingTheory/Valuation/Discrete/IsDiscreteValuationRing.lean,Mathlib/RingTheory/Valuation/Discrete/RankOne.lean |
8 |
4 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
mattrobball assignee:mattrobball |
11-60254 11 days ago |
22-37404 22 days ago |
30-29240 30 days |
| 37747 |
JovanGerb author:JovanGerb |
chore(Order/Filter/AtTopBot/Basic): use `to_dual` |
This PR uses `to_dual` for `atTop`/`atBot`.
A lot of theorems that have been tagged contain the expression `β a β₯ b, ...`, which means that their dual will be `β a, b β₯ a β ...`, which is obviourly undesirable. Hence, I would like to ask the reviewers to reconsider the possibility of merging #32985.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
56/164 |
Mathlib/Order/Filter/AtTopBot/Basic.lean |
1 |
1 |
['github-actions'] |
bryangingechen assignee:bryangingechen |
11-60253 11 days ago |
33-12944 33 days ago |
33-12923 33 days |
| 37752 |
JovanGerb author:JovanGerb |
chore(Order/CompleteLattice/Lemmas): use `to_dual` |
Use `to_dual` for lemmas about `CompleteLattice`.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
27/56 |
Mathlib/Order/CompleteLattice/Lemmas.lean |
1 |
1 |
['github-actions', 'vihdzp'] |
bryangingechen assignee:bryangingechen |
11-60252 11 days ago |
33-11620 33 days ago |
33-11599 33 days |
| 37753 |
JovanGerb author:JovanGerb |
chore(Order/Filter/Basic): use `to_dual` for `β€αΆ ` |
Use `to_dual` on lemmas about `EventuallyLE`.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
19/6 |
Mathlib/Order/Filter/Basic.lean |
1 |
2 |
['github-actions', 'vihdzp'] |
bryangingechen assignee:bryangingechen |
11-60251 11 days ago |
33-11485 33 days ago |
33-11464 33 days |
| 38599 |
khwilson author:khwilson |
feat(Topology/Algebra/IsUniformGroup): characteriztaion of uniform cauchy sequences in topological groups |
Topological groups had several lemmas about uniform convergence, but were missing a lemma about a sequence being a uniform cauchy sequence. This PR fills that gap.
This is a simplifying lemma on the way to Michael's selection theorem.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
8/0 |
Mathlib/Topology/Algebra/IsUniformGroup/Basic.lean |
1 |
1 |
['github-actions'] |
urkud assignee:urkud |
11-60237 11 days ago |
12-55273 12 days ago |
12-55252 12 days |
| 38551 |
TTony2019 author:TTony2019 |
feat(Analysis/Convex/Intrinsic): add `affineSpan_prod_eq` and `intrinsicInterior_prod_eq` |
### Summary
We prove that the affine span of a product set equals the product of the affine spans, and that the intrinsic interior of a product set equals the product of the intrinsic interiors.
- `affineSpan_prod_eq`: for `s : Set Pβ` and `t : Set Pβ`, `affineSpan k (s ΓΛ’ t) = (affineSpan k s) ΓΛ’ (affineSpan k t)` as sets.
- `intrinsicInterior_prod_eq`: for `s : Set P` and `t : Set Q`, `intrinsicInterior π (s ΓΛ’ t) = intrinsicInterior π s ΓΛ’ intrinsicInterior π t`.
These two theorems are added to `Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Basic.lean` and `Mathlib/Analysis/Convex/Intrinsic.lean`.
### Collaboration
Co-authored-by: @imathwy |
new-contributor |
144/0 |
Mathlib/Algebra/AddTorsor/Basic.lean,Mathlib/Algebra/Group/Pointwise/Set/Basic.lean,Mathlib/Analysis/Convex/Intrinsic.lean,Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Basic.lean,Mathlib/LinearAlgebra/Prod.lean |
5 |
21 |
['TTony2019', 'github-actions', 'wwylele'] |
nobody |
11-55475 11 days ago |
11-55539 11 days ago |
13-85791 13 days |
| 37073 |
kim-em author:kim-em |
feat: add wrap_instance% using core's wrapInstance |
This PR adds a new `wrap_instance%` term elaborator that delegates to Lean core's
`wrapInstance` (from https://github.com/leanprover/lean4/pull/12897), and replaces ~53
`fast_instance%` call sites where the replacement is safe.
`wrap_instance%` is a thin wrapper (~15 lines) around `Lean.Meta.wrapInstance`. Like
`fast_instance%`, it reduces instances to constructor applications and reuses canonical
sub-instances. Unlike `fast_instance%`, it works at `instances` transparency and delegates all
normalization logic to core.
The replaced sites cover:
- Equiv/type-alias transfers (WithAbs, WithConv, WithVal, WithLp, TransferInstance)
- Surjective constructors (Con, RingCon quotients, module congruences)
- DFunLike leaf instances (MultilinearMap, ContinuousMultilinearMap, AlternatingMap, Intertwining)
- Quotient instances (LinearAlgebra/Quotient/Defs)
- inferInstanceAs% sites (StandardPart, Presentation/Core)
- Miscellaneous (InfiniteAdeleRing, ZMod)
This PR *doesn't* attempt to replace all `fast_instance%`; it gets more complicated!
π€ Prepared with Claude Code |
|
88/59 |
Mathlib/Algebra/Algebra/TransferInstance.lean,Mathlib/Algebra/Module/Congruence/Defs.lean,Mathlib/Algebra/WithConv.lean,Mathlib/Analysis/Normed/Lp/WithLp.lean,Mathlib/Analysis/Normed/Ring/WithAbs.lean,Mathlib/Data/ZMod/Basic.lean,Mathlib/GroupTheory/Congruence/Defs.lean,Mathlib/LinearAlgebra/Alternating/Basic.lean,Mathlib/LinearAlgebra/Multilinear/Basic.lean,Mathlib/LinearAlgebra/Quotient/Defs.lean,Mathlib/RepresentationTheory/Intertwining.lean,Mathlib/RingTheory/Extension/Presentation/Core.lean,Mathlib/Tactic/FastInstance.lean,Mathlib/Topology/Algebra/Module/Alternating/Basic.lean,Mathlib/Topology/Algebra/Module/Multilinear/Basic.lean,Mathlib/Topology/Algebra/Valued/WithVal.lean |
16 |
7 |
['JovanGerb', 'github-actions', 'kim-em', 'leanprover-radar', 'mathlib-merge-conflicts'] |
nobody |
11-53332 11 days ago |
11-53359 11 days ago |
14-40446 14 days |
| 28546 |
Sfgangloff author:Sfgangloff |
feat(SymbolicDynamics): basic setup of Zd, full shift, cylinders, pat⦠|
This PR adds a **group-generic** foundation for symbolic dynamics over an arbitrary group `G`, together with convenient specializations for `β€` and `β€^d`.
Summary of additions:
- **Full shift and shift action**
- `abbrev FullShift (A G) := G β A` (inherits product topology from the Ξ -type).
- Right shift `shift g x` with convention `(shift g x) h = x (h * g)`.
- **Cylinders and topology**
- `cylinder U x : Set (G β A)` for finite `U : Finset G`.
- Cylinders are open under `[DiscreteTopology A]`; with a finite alphabet they are also closed.
- Equality with dependent products:
`cylinder U x = Set.pi (βU) (fun i => ({x i} : Set A))`, enabling use of the `Set.pi` API.
- **Patterns, occurrences, and subshifts**
- `Pattern A G` with finite `support : Finset G` and `data : support β A`.
- `Pattern.occursIn p x g` (occurrence at translate `g`) and the expected shift law.
- `forbids F` and `Subshift A G` (closed, shift-invariant subsets).
- `FixedSupport A G U` with an equivalence to `(U β A)` to obtain finiteness.
- **Language on finite shapes and counting**
- `languageOn X U`, `languageCardOn X U`, and `patternCountOn Y U`.
- **Entropy along a shape sequence**
- `limsupAtTop` (as an `sInf` of eventual upper bounds).
- `entropyAlong X F hF := limsup (log (patternCountOn X (F n) + 1) / |F n|)`
for any nonempty finite shapes `F : β β Finset G` (the `+ 1` avoids `log 0`).
- **Specializations**
- `IntShapes`: segments `[-n,n]` on `Multiplicative β€`, with `entropy_Z`.
- `ZdShapes`: boxes `[-n,n]^d` on `β€^d` (as functions `Fin d β β€`), with `entropy_Zd`.
Mathematical remarks:
- The API is **shape-parametric**: entropy is defined along user-provided finite shapes.
- On **amenable** groups, using a **FΓΈlner** sequence yields a canonical value (OrnsteinβWeiss).
This PR does not assume amenability; the family of shapes is an explicit input.
Motivation:
Provide a clean, reusable base for symbolic dynamics on groups in mathlib.
Future work:
- Add a FΓΈlner predicate and prove shape-independence / limit existence on amenable groups.
- Expand the `β€`/`β€^d` toolkit (alternative shapes, mixing, factors).
- Develop 1D theory and, longer-term, multidimensional SFT results (e.g. along the lines of HochmanβMeyerovitch).
|
t-dynamics
new-contributor
|
631/0 |
Mathlib.lean,Mathlib/Dynamics/SymbolicDynamics/Basic.lean,Mathlib/Tactic/Translate/ToAdditive.lean |
3 |
187 |
['Sfgangloff', 'botbaki-review', 'eric-wieser', 'github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot', 'sgouezel'] |
urkud assignee:urkud |
11-50042 11 days ago |
11-50043 11 days ago |
174-45091 174 days |
| 35217 |
kim-em author:kim-em |
feat: auxiliary lemmas for Artin and braid groups |
This PR adds small lemmas to existing files, in preparation for the Artin groups and braid groups PRs.
- `Commute.mul_pow_eq_one`: for commuting elements with `a ^ m = 1` and `b ^ m = 1`
- `Equiv.Perm.swap_conjugate`: braid relation for adjacent transpositions
- `Equiv.Perm.swap_mul_swap_comm_of_disjoint`: disjoint transpositions commute
- `@[grind =]` attributes on `Perm.mul_apply`, `Perm.one_apply`; new `Perm.pow_add_one_apply`
- `Subgroup.normalClosure_singleton_one`
- `FreeGroup.ofList` and associated lemmas
- `FreeGroup.freeGroupUnitMulEquivInt`
- `PresentedGroup.instUniqueOfIsEmpty`
- `CoxeterMatrix.Aβ_adjacent`, `CoxeterMatrix.Aβ_far`
π€ Prepared with Claude Code |
t-group-theory
LLM-generated
|
97/2 |
Mathlib/Algebra/Group/Commute/Defs.lean,Mathlib/Algebra/Group/End.lean,Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/GroupTheory/Coxeter/Matrix.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean,Mathlib/GroupTheory/Perm/Cycle/Basic.lean,Mathlib/GroupTheory/PresentedGroup.lean |
7 |
15 |
['eric-wieser', 'github-actions', 'kim-em', 'mathlib-merge-conflicts', 'themathqueen'] |
thorimur assignee:thorimur |
11-44054 11 days ago |
11-44054 11 days ago |
17-56257 17 days |
| 38583 |
kim-em author:kim-em |
feat(LinearAlgebra/Matrix/GeneralLinearGroup): polynomial functions on matrices over an infinite field are determined by their values on GL |
This PR adds `MvPolynomial.eq_of_eval_eq_on_gl`: two polynomials in `MvPolynomial (m Γ m) k` over an infinite field `k` are equal whenever their evaluations agree at every invertible matrix.
The proof multiplies by the generic determinant `det (Matrix.mvPolynomialX m m k)` so that `MvPolynomial.funext` applies (covering both invertible and non-invertible specializations of the variables), then divides by it (it is nonzero by `Matrix.det_mvPolynomialX_ne_zero`) using that the polynomial ring is an integral domain.
The lemma is useful when reasoning about polynomial representations of `GL n k`, where natural identities are easiest to check on `GL n k` itself but the final statement lives at the level of polynomials.
The lemma is placed in a new file `Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/MvPolynomial.lean` because the existing `Mathlib/LinearAlgebra/Matrix/MvPolynomial.lean` is upstream of `Adjugate`, which is itself upstream of `GeneralLinearGroup.Defs` β so we cannot import `GeneralLinearGroup.Defs` from `Matrix.MvPolynomial` without creating a cycle.
π€ Prepared with Claude Code |
t-algebra label:t-algebra$ |
60/0 |
Mathlib.lean,Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/MvPolynomial.lean |
2 |
4 |
['SnirBroshi', 'github-actions', 'wwylele'] |
nobody |
11-42951 11 days ago |
11-55385 11 days ago |
13-492 13 days |
| 35619 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Clique): intersection and union of cliques |
Plus a couple of lemmas.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
maintainer-merge
|
45/14 |
Mathlib/Combinatorics/SimpleGraph/Clique.lean,Mathlib/Combinatorics/SimpleGraph/Coloring/VertexColoring.lean,Mathlib/Data/Set/Pairwise/Basic.lean |
3 |
13 |
['SnirBroshi', 'YaelDillies', 'github-actions'] |
nobody |
11-40415 11 days ago |
17-2534 17 days ago |
38-64938 38 days |
| 38432 |
SnirBroshi author:SnirBroshi |
feat(Logic/Relation): `Map r f g β€ s β r β€ s.bicompl f g` |
and the dual `s β€ Relation.Map r f g β s.bicompl f g β€ r` which requires `f` and `g` to be bijective.
Adds `Galois{Connection/Insertion/Coinsertion}` for the dual.
The theorems are specialized to `onFun` instead of `bicompl` for when `f = g`.
The `β€` theorems are spelled using `Subrelation` since `β€` is not yet available in this file, and `β` for the `bicompl` theorems since `Subrelation` only supports homogeneous relations.
A `GaloisConnection` for the iff in the title requires `f`/`g` to be bijective, but then we can get an `OrderIso` which is stronger (see #38499).
---
[](https://gitpod.io/from-referrer/)
|
t-logic |
119/28 |
Mathlib/Logic/Relation.lean,Mathlib/Order/GaloisConnection/Basic.lean |
2 |
3 |
['SnirBroshi', 'github-actions', 'plp127'] |
nobody |
11-40079 11 days ago |
15-47292 15 days ago |
16-68693 16 days |
| 38612 |
SnirBroshi author:SnirBroshi |
feat(Order/SuccPred/CompleteLinearOrder): `sSup s < x` iff theorems when we know if `x` is a successor pre-limit or not |
Adds the following theorems (along with their duals and indexed versions):
```lean
sSup_lt_iff_of_not_isSuccPrelimit : Β¬IsSuccPrelimit x β sSup s < x β β a β s, a < x
le_sSup_iff_of_not_isSuccPrelimit : Β¬IsSuccPrelimit x β x β€ sSup s β β a β s, x β€ a
Order.IsSuccPrelimit.sSup_lt_iff : IsSuccPrelimit x β sSup s < x β β a < x, β b β s, b < a
Order.IsSuccPrelimit.le_sSup_iff : IsSuccPrelimit x β x β€ sSup s β β a < x, β b β s, a β€ b
```
They are similar to these existing theorems, but not the same:
```lean
sSup_lt_iff : sSup s < x β β a < x, β b β s, b β€ a
le_sSup_iff_forall_lt : x β€ sSup s β β a < x, β b β s, a < b
```
---
[](https://gitpod.io/from-referrer/)
|
t-order |
43/0 |
Mathlib/Order/SuccPred/CompleteLinearOrder.lean |
1 |
6 |
['SnirBroshi', 'github-actions', 'vihdzp'] |
nobody |
11-39880 11 days ago |
12-36794 12 days ago |
12-36773 12 days |
| 38707 |
tb65536 author:tb65536 |
feat(Algebra/Polynomial/Lifts): add `natDegree` verison of `exists_natDegree_eq_of_mem_lifts` |
This PR adds a `natDegree` version of `exists_degree_eq_of_mem_lifts`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
4/0 |
Mathlib/Algebra/Polynomial/Lifts.lean |
1 |
1 |
['github-actions'] |
nobody |
11-18705 11 days ago |
11-18705 11 days ago |
11-18685 11 days |
| 38708 |
tb65536 author:tb65536 |
feat(Algebra/Polynomial/Lifts): every polynomial lifts along a surjective ring homomorphism |
This PR adds a lemma stating that every polynomial lifts along a surjective ring homomorphism (this could also be phrased as `lifts_eq_top`, but in practice it's membership in lifts that unlocks all of the API for `lifts`).
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
3/0 |
Mathlib/Algebra/Polynomial/Lifts.lean |
1 |
1 |
['github-actions'] |
nobody |
11-18456 11 days ago |
11-18456 11 days ago |
11-18437 11 days |
| 37389 |
martinwintermath author:martinwintermath |
chore(LinearAlgebra/SesquilinearForm): generalize `orthogonalBilin` in order to simplify definition of `orthogonal` |
- generalize `Submodule.orthogonalBilin` to `CommSemiring` and `AddCommMonoid`, and to general sesquilinear forms with inputs from different modules. This enables subsequent changes.
- redefine `BilinForm.orthogonal` in terms of `orthogonalBilin`.
- reorder arguments of `Submodule.orthogonalBilin` to match other instances of duality across mathlib.
For comparison
Before
```lean4
Submodule.orthogonalBilin.{u_1, u_2, u_5, u_6} {R : Type u_1} {Rβ : Type u_2} {M : Type u_5} {Mβ : Type u_6}
[CommRing R] [CommRing Rβ] [AddCommGroup Mβ] [Module Rβ Mβ] [AddCommGroup M] [Module R M] {Iβ Iβ : Rβ β+* R}
(N : Submodule Rβ Mβ) (B : Mβ βββ[Iβ] Mβ βββ[Iβ] M) : Submodule Rβ Mβ
```
After
```lean4
Submodule.orthogonalBilin.{u_1, u_2, u_3, u_5, u_6, u_7} {R : Type u_1} {Rβ : Type u_2} {Rβ : Type u_3} {M : Type u_5}
{Mβ : Type u_6} {Mβ : Type u_7} [CommSemiring R] [CommSemiring Rβ] [CommSemiring Rβ] [AddCommMonoid M] [Module R M]
[AddCommMonoid Mβ] [Module Rβ Mβ] [AddCommMonoid Mβ] [Module Rβ Mβ] {Iβ : Rβ β+* R} {Iβ : Rβ β+* R} (B : Mβ βββ[Iβ] Mβ βββ[Iβ] M)
(N : Submodule Rβ Mβ) : Submodule Rβ Mβ
```
A few fixes in other files have been necessary as well.
This is an extract from #37381.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
28/21 |
Mathlib/Algebra/Lie/InvariantForm.lean,Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean,Mathlib/LinearAlgebra/QuadraticForm/Basic.lean,Mathlib/LinearAlgebra/RootSystem/Finite/Nondegenerate.lean,Mathlib/LinearAlgebra/SesquilinearForm/Basic.lean |
5 |
8 |
['eric-wieser', 'github-actions', 'martinwintermath', 'themathqueen', 'vihdzp'] |
ocfnash assignee:ocfnash |
11-18140 11 days ago |
11-18048 11 days ago |
40-73236 40 days |
| 38269 |
b-mehta author:b-mehta |
feat(Combinatorics/Additive): link Freiman homs and Freiman isos tighter |
---
Some work I had lying around in a forgotten branch, recently resurrected.
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
maintainer-merge
|
118/76 |
Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean,Mathlib/Combinatorics/Additive/AP/Three/Defs.lean,Mathlib/Combinatorics/Additive/FreimanHom.lean |
3 |
15 |
['YaelDillies', 'b-mehta', 'github-actions', 'mathlib-merge-conflicts'] |
nobody |
11-17237 11 days ago |
11-17237 11 days ago |
12-17534 12 days |
| 38709 |
tb65536 author:tb65536 |
feat(Algebra/Polynomial/Roots): roots of `p(-X)` |
This PR proves that the roots of `p(-X)` are just the negatives of the roots of `p`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
21/0 |
Mathlib/Algebra/Polynomial/RingDivision.lean,Mathlib/Algebra/Polynomial/Roots.lean |
2 |
1 |
['github-actions'] |
nobody |
11-17137 11 days ago |
11-17137 11 days ago |
11-17117 11 days |
| 38622 |
mariainesdff author:mariainesdff |
feat(RingTheory/PowerSeries/ExponentialModule): add exponential module |
Let `R` be a commutative ring. The exponential module of `R` is the set of all power series
`f : Rβ¦Xβ§` that are of exponential type : `f (X + Y) = f X * f Y` where `X` and `Y` are two
indeterminates. It is an abelian group under multiplication, and an `R`-module under rescaling.
Co-authored by: @AntoineChambert-Loir
---
- [ ] depends on: #38615
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
425/0 |
Mathlib.lean,Mathlib/Algebra/BigOperators/Finsupp/Fin.lean,Mathlib/Data/Nat/Choose/Sum.lean,Mathlib/RingTheory/PowerSeries/ExponentialModule.lean,Mathlib/RingTheory/PowerSeries/Substitution.lean |
5 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
nobody |
11-15565 11 days ago |
11-15630 11 days ago |
11-16706 11 days |
| 38684 |
yuanyi-350 author:yuanyi-350 |
chore(LinearAlgebra/CliffordAlgebra/EvenEquiv): remove erws |
- rewrites the `toEven` and `toEven_ΞΉ` proofs through `even_toSubmodule`, replacing the `erw` steps with `simp` and `rw`
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-algebra
label:t-algebra$ |
5/8 |
Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean |
1 |
2 |
['github-actions', 'jcommelin', 'yuanyi-350'] |
nobody |
11-6645 11 days ago |
11-63531 11 days ago |
11-63510 11 days |
| 38721 |
tb65536 author:tb65536 |
feat(GroupTheory/Torsion): the torsion subgroup is preserved by isomorphisms |
This PR proves that the torsion subgroup is preserved by isomorphisms.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-group-theory
label:t-algebra$ |
10/1 |
Mathlib/GroupTheory/Torsion.lean |
1 |
1 |
['github-actions'] |
nobody |
11-6458 11 days ago |
11-6458 11 days ago |
11-6438 11 days |
| 38719 |
tb65536 author:tb65536 |
feat(GroupTheory/QuotientGroup/Basic): `(G Γ H) / (A.prod B) β (G / A) Γ (H / B)` |
This PR proves the isomorphism `(G Γ H) β§Έ (A.prod B) β* (G β§Έ A) Γ H β§Έ B` and uses it to golf `Subgroup.index_prod`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-group-theory
label:t-algebra$ |
20/3 |
Mathlib/GroupTheory/Index.lean,Mathlib/GroupTheory/QuotientGroup/Basic.lean |
2 |
1 |
['github-actions'] |
nobody |
11-3358 11 days ago |
11-3358 11 days ago |
11-3339 11 days |
| 33392 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(LinearAlgebra/Transvection/Generation): non-exceptional case in DieudonnΓ©'s theorem |
We prove the theorem of [DieudonnΓ©-1955][J. DieudonnΓ©, βSur les gΓ©nΓ©rateurs
des groupes classiquesβ].
Let `K` be a division ring and `V` be a `K`-module.
* `LinearEquiv.mem_transvections_pow_mul_dilatransvections_of_fixedReduce_eq_one`:
If `e.fixedReduce = 1`, then `e` can be written as the product
of `finrank K (V β§Έ e.fixedSubmodule) - 1` transvections
and one dilatransvection.
This is the first part of the non-exceptional case in DieudonnΓ©'s theorem.
(This statement is not interesting when `e = 1`.)
* `LinearEquiv.mem_transvections_pow_mul_dilatransvections_of_fixedReduce_ne_smul_id`:
If `e.fixedReduce` is not a homothety, then `e` can be written as the product
of `finrank K (V β§Έ e.fixedSubmodule) - 1` transvections and one dilatransvection.
This is the second part of the non-exceptional case in DieudonnΓ©'s theorem.
* `LinearEquiv.IsExceptional`:
A linear equivalence `e : V ββ[K] V` is exceptional if `1 < finrank K (V β§Έ e.fixedSubmodule)`
and if `e.fixedReduce` is a nontrivial homothety.
* `LinearEquiv.mem_dilatransvections_pow_of_notIsExceptional`:
This is the non-exceptional case in DieudonnΓ©'s theorem,
as a combination of the two preceding statements.
---
- [x] depends on: #33348
- [x] depends on: #33282
- [x] depends on: #33347
- [ ] depends on: #33387
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
555/0 |
Mathlib.lean,Mathlib/LinearAlgebra/Center.lean,Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean,Mathlib/LinearAlgebra/Transvection/Basic.lean,Mathlib/LinearAlgebra/Transvection/Generation.lean |
5 |
12 |
['AntoineChambert-Loir', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
joelriou assignee:joelriou |
10-81304 10 days ago |
10-81333 10 days ago |
41-41269 41 days |
| 27493 |
themathqueen author:themathqueen |
feat(RingTheory/Coalgebra): define Frobenius algebra |
A Frobenius algebra `A` has the structure of both an algebra and a coalgebra such that:
`(mul β id) β assoc.symm β (id β comul) = comul β mul = (id β mul) β assoc β (comul β id)`.
In diagrams this law looks like:

It suffices to show that
`(mul β id) β assoc.symm β (id β comul) = (id β mul) β assoc β (comul β id)`.
---
- [x] depends on: #27567
- [x] depends on: #27569
- [x] depends on: #32245
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
112/0 |
Mathlib.lean,Mathlib/RingTheory/FrobeniusAlgebra.lean |
2 |
25 |
['YaelDillies', 'erdOne', 'github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'themathqueen'] |
alreadydone assignee:alreadydone |
10-72879 10 days ago |
10-72922 10 days ago |
57-51291 57 days |
| 38426 |
SnirBroshi author:SnirBroshi |
feat(Data/Set/Card): `Fintype.card s = s.ncard` |
We have `β(Fintype.card s) = s.encard` but we don't yet have a theorem relating `Fintype.card` and `Set.ncard`.
This adds `Fintype.card s = s.ncard` for `Fintype s`, and also `s.ncard = s.encard` for `Finite s`.
---
~~(tagging `simp` is problematic since the aforementioned theorem (`Set.coe_fintypeCard`) is `simp`, and I'm not sure we should untag it)~~
[](https://gitpod.io/from-referrer/)
|
t-data |
8/0 |
Mathlib/Data/Set/Card.lean |
1 |
4 |
['SnirBroshi', 'Vierkantor', 'b-mehta', 'github-actions'] |
Vierkantor assignee:Vierkantor |
10-70161 10 days ago |
11-52894 11 days ago |
15-46558 15 days |
| 38746 |
eric-wieser author:eric-wieser |
chore: `AffineSubspace.Parallel` is an equivalence relation |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
12/0 |
Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
10-67952 10 days ago |
10-68029 10 days ago |
10-68008 10 days |
| 38349 |
SnirBroshi author:SnirBroshi |
chore(Combinatorics/SimpleGraph/Coloring/VertexColoring): rename to `Vertex.lean` |
After #37525 moved `Coloring.lean` to `Coloring/VertexColoring.lean`, a [Zulip](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/Coloring.20module.20names/with/583281500) poll decided to avoid duplicating the word "Coloring", so this renames `Coloring/VertexColoring.lean` to `Coloring/Vertex.lean`.
---
I planned to make this move in #33313 but it isn't moving along, so I think it's best to split the renaming.
#37546 adds module deprecation
[](https://gitpod.io/from-referrer/)
|
file-removed
t-combinatorics
|
6/6 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/Coloring/Constructions.lean,Mathlib/Combinatorics/SimpleGraph/Coloring/Vertex.lean,Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean,Mathlib/Combinatorics/SimpleGraph/Partition.lean,Mathlib/Combinatorics/SimpleGraph/Sum.lean |
7 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
10-60938 10 days ago |
10-60964 10 days ago |
18-61089 18 days |
| 36667 |
NoneMore author:NoneMore |
feat(ModelTheory): add `exClosure` definition for first-order formulas |
Prepare for moving realizations between elementarily equivalent structures.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-logic
|
37/0 |
Mathlib/ModelTheory/Semantics.lean,Mathlib/ModelTheory/Syntax.lean |
2 |
2 |
['github-actions'] |
fpvandoorn assignee:fpvandoorn |
10-60313 10 days ago |
56-45398 56 days ago |
56-45377 56 days |
| 37682 |
SabrinaJewson author:SabrinaJewson |
refactor(Order/OrdContinuous): redefine left and right order continuity to not require preserving β₯/β€ |
`LeftOrdContinuous` currently requires that `f β₯ = β₯`, but this means that many functions that are perhaps intuitively left-continuous (like `f x = x + 1` on `ββ₯0`) are not. In particular, this change means that functions between conditionally complete lattices are `LeftOrdContinuous` iff they are monotone and topologically left continuous (see `MonotoneOn.map_csSup_of_continuousWithinAt` for the reverse direction).
If one wants the concept that existed before, one can either accept the `f β₯ = β₯` hypothesis separately or, if the function is between complete lattices, use the left side of a `GaloisConnection` (which is equivalent, although I think this is not yet in Mathlib).
This removes the definitional equality of the type in favour of a structure. Since most of the time users will be working with the `sSup` versions and not with `IsLUB`, I think this is justified. As a consequence, this removes the definitional equality between `LeftOrdContinuous` and `RightOrdContinuous` of the dual β the latter could be redefined to re-add this, but we do have conversion functions.
`LeftOrdContinuous.continuousWithinAt_Iic` is rewritten to accomodate these changes; the superfluous `DenselyOrdered` assumption is also removed.
[Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/LeftOrdContinuous.20requires.20f.28.E2.8A.A5.29.20.3D.20.E2.8A.A5/near/582932491)
---
- [x] depends on: #37735
- [x] depends on: #37772
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-order
|
52/38 |
Mathlib/Order/OrdContinuous.lean,Mathlib/Order/SemiconjSup.lean,Mathlib/Topology/Order/Basic.lean |
3 |
10 |
['SabrinaJewson', 'astrainfinita', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp'] |
bryangingechen assignee:bryangingechen |
10-60307 10 days ago |
30-69205 30 days ago |
32-66293 32 days |
| 38428 |
tb65536 author:tb65536 |
refactor(RepresentationTheory/Coinvariants): use `IntertwiningMap` in `Coinvariants.map` |
Currently `Coinvariants.map` has the intertwining condition as as a separatel hypothesis. This PR switches over to the bundled `IntertwiningMap`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-group-theory
label:t-algebra$ |
16/20 |
Mathlib/RepresentationTheory/Coinvariants.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/Basic.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/FiniteCyclic.lean,Mathlib/RepresentationTheory/Homological/Resolution.lean,Mathlib/RepresentationTheory/Induced.lean,Mathlib/RepresentationTheory/Rep/Basic.lean |
6 |
1 |
['Whysoserioushah', 'github-actions'] |
riccardobrasca assignee:riccardobrasca |
10-60300 10 days ago |
16-76654 16 days ago |
16-76635 16 days |
| 38748 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Basic): `G.edgeSet β s.sym2 β G.support β s` |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
19/4 |
Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Finite.lean |
2 |
1 |
['github-actions'] |
nobody |
10-55342 10 days ago |
10-55414 10 days ago |
10-55393 10 days |
| 38097 |
NoahW314 author:NoahW314 |
feat: add `IndiscreteTopology` instances |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
24/0 |
Mathlib/Topology/Homotopy/Contractible.lean,Mathlib/Topology/Inseparable.lean,Mathlib/Topology/NoetherianSpace.lean,Mathlib/Topology/Separation/Connected.lean |
4 |
5 |
['NoahW314', 'github-actions', 'scholzhannah', 'vihdzp'] |
PatrickMassot assignee:PatrickMassot |
10-53051 10 days ago |
24-17657 24 days ago |
24-36675 24 days |
| 37076 |
ertwro author:ertwro |
feat(Combinatorics/SimpleGraph/Hasse): Hasse diagram is triangle-free |
Add `SimpleGraph.hasse_cliqueFree_three`: the Hasse diagram of a preorder is triangle-free (`CliqueFree 3`).
This is the graph-theoretic formulation of `not_covBy_of_lt_of_lt`: if `a β b` and `b β c`, then `Β¬ a β c`, so no three elements can be pairwise adjacent in the Hasse diagram.
The proof extracts three vertices from a hypothetical 3-clique, case-splits on the covering directions (8 cases), and closes each by `not_covBy_of_lt_of_lt` (6 transitive cases) or `lt_asymm` (2 cyclic cases).
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
11/0 |
Mathlib/Combinatorics/SimpleGraph/Hasse.lean |
1 |
21 |
['Rida-Hamadani', 'SnirBroshi', 'ertwro', 'github-actions', 'vlad902'] |
nobody |
10-52241 10 days ago |
21-49726 21 days ago |
29-59485 29 days |
| 37930 |
vlad902 author:vlad902 |
chore(SimpleGraph): move `cycleGraph` to its own file |
PR #34797 re-defined `cycleGraph` independent of `circulantGraph`. Now move the definition of `cycleGraph` to its own file so that the definition can be used without importing the algebra hierarchy.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
173/148 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Circulant.lean,Mathlib/Combinatorics/SimpleGraph/Cycle.lean |
3 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
10-43849 10 days ago |
10-43872 10 days ago |
10-44238 10 days |
| 38449 |
WenrongZou author:WenrongZou |
feat(MvPowerSeries): some lemmas about `subst` of infinite sum |
In this PR, I add some lemmas about substituion of a infinite sum equal to infinite sum of substitution.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
34/0 |
Mathlib/RingTheory/MvPowerSeries/Substitution.lean,Mathlib/RingTheory/PowerSeries/Substitution.lean |
2 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
10-36904 10 days ago |
10-36926 10 days ago |
16-5317 16 days |
| 38731 |
martinwintermath author:martinwintermath |
feat(LinearAlgebra/AffineSpace/AffineSubspace): using `AffineSubspace.direction` to reinterpret `AffineSubspace` as `Submodule` |
* add `AffineSubspace.vsub_self_of_zero_mem` that states `s -α΅₯ s = s ` if `0 β s`
* add `AffineSubspace.direction_eq_self_of_zero_mem` that states that if `0 β s`, then the directions coerce back to the affine subspace.
* add corresponding `CanLift` instance.
* modify doc-string of `AffineSubspace.direction` to state that this can be used for reinterpretation of an affine subspace as a submodule.
* add `Coe` instance based on `Submodule.toAffineSubspace` and adds corresponding @[coe] attribute.
The PR also performs a slight cleanup of the file: statements about `SetLike` or `Submodule.toAffineSubspace` have been moved closer to their respective definitions.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
56/26 |
Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Defs.lean |
1 |
3 |
['github-actions', 'wwylele'] |
nobody |
10-36063 10 days ago |
10-85098 10 days ago |
10-86228 10 days |
| 38753 |
tb65536 author:tb65536 |
chore(GroupTheory/Nilpotent): to_additivize file |
This PR to_additivizes `Nilpotent.lean`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-group-theory
label:t-algebra$ |
201/35 |
Mathlib/GroupTheory/Commutator/Finite.lean,Mathlib/GroupTheory/Nilpotent.lean,Mathlib/GroupTheory/Subgroup/Center.lean |
3 |
1 |
['github-actions'] |
nobody |
10-29635 10 days ago |
10-29635 10 days ago |
10-29615 10 days |
| 38768 |
yuanyi-350 author:yuanyi-350 |
chore(Condensed/Light/Epi): remove an erw |
Removes an `erw` that is now handled by `simp`.
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
t-condensed
LLM-generated
maintainer-merge
|
2/8 |
Mathlib/Condensed/Light/Epi.lean |
1 |
3 |
['dagurtomas', 'github-actions'] |
nobody |
10-8742 10 days ago |
10-8843 10 days ago |
10-23761 10 days |
| 37832 |
YaelDillies author:YaelDillies |
chore(Algebra/Order/GroupWithZero): flatten `Unbundled` folder |
The algebraic order classes are unbundled now.
---
More thought is needed to do the same for `Algebra.Order.Monoid` since filenames conflict.
[](https://gitpod.io/from-referrer/)
|
file-removed
t-algebra
t-order
label:t-algebra$ |
20/20 |
Mathlib.lean,Mathlib/Algebra/Order/BigOperators/GroupWithZero/Finset.lean,Mathlib/Algebra/Order/BigOperators/GroupWithZero/List.lean,Mathlib/Algebra/Order/Field/Basic.lean,Mathlib/Algebra/Order/Field/Pointwise.lean,Mathlib/Algebra/Order/GroupWithZero/Basic.lean,Mathlib/Algebra/Order/GroupWithZero/Bounds.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/GroupWithZero/Defs.lean,Mathlib/Algebra/Order/GroupWithZero/Finset.lean,Mathlib/Algebra/Order/GroupWithZero/OrderIso.lean,Mathlib/Algebra/Order/GroupWithZero/Submonoid.lean,Mathlib/Algebra/Order/GroupWithZero/WithZero.lean,Mathlib/Algebra/Order/Nonneg/Basic.lean,Mathlib/Algebra/Order/Ring/Defs.lean,Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean,Mathlib/Order/Filter/IsBounded.lean,Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean,Mathlib/Tactic/FieldSimp/Lemmas.lean |
19 |
3 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
10-8734 10 days ago |
10-8760 10 days ago |
29-13856 29 days |
| 38026 |
mrdouglasny author:mrdouglasny |
feat(Analysis/Calculus): define absolutely monotone functions |
## Summary
- Define `AbsolutelyMonotoneOn f s` for functions `f : β β β` that are smooth on `s` with all iterated derivatives within `s` nonneg
- Prove closure under `add`, `smul`, `mul`
- Show `exp`, `cosh`, constants, and powers are absolutely monotone on appropriate domains
This is the first part of a split of #37879. Follow-up PRs will add:
- Bernstein backward direction (nonneg coefficients β absolutely monotone)
- Bernstein forward direction (absolutely monotone β analytic at 0)
- Matrix applications (Schur product theorem for power series, entrywise exp)
## Test plan
- [ ] CI passes (build + lint)
- [ ] Verify `AbsolutelyMonotoneOn` structure and examples type-check
π€ Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.6 (1M context) |
t-analysis
new-contributor
LLM-generated
|
123/0 |
Mathlib.lean,Mathlib/Analysis/Calculus/AbsolutelyMonotone.lean,docs/references.bib |
3 |
28 |
['ADedecker', 'github-actions', 'j-loreaux', 'mrdouglasny', 'sgouezel', 'vihdzp', 'wwylele'] |
sgouezel assignee:sgouezel |
10-8479 10 days ago |
10-8523 10 days ago |
18-29638 18 days |
| 33313 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Coloring/Edge): create a basic edge-coloring API |
Module name decided on [Zulip](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/Coloring.20module.20names/with/583281500).
---
Future work (which I'm working on):
- Relating degrees to edge-colorability (`G.maxDegree β€ G.chromaticIndex`, `G.EdgeColorable 1 β G.maxDegree β€ 1`, `G.chromaticIndex = 1 β G.maxDegree = 1`, `G.EdgeColorable 2 β G.maxDegree β€ 2`, `G.chromaticIndex = 2 β G.maxDegree = 2`)
- [Vizing's theorem](https://en.wikipedia.org/wiki/Vizing%27s_theorem) (`G.chromaticIndex β€ G.maxDegree + 1`)
- `chromaticIndex β€ = (if Even #V then #V - 1 else #V)`
- `[Infinite Ξ±] β chromaticIndex β€ = β€`
- [x] depends on: #33292
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
300/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Coloring/Edge.lean |
2 |
27 |
['SnirBroshi', 'YaelDillies', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'ooovi'] |
YaelDillies assignee:YaelDillies |
10-3645 10 days ago |
10-3704 10 days ago |
47-39954 47 days |
| 37997 |
emlis42 author:emlis42 |
feat(Algebra/ContinuedFractions): generalize determinant formula to GenContFract |
Let $g$ be a `GenContFract K`.
In this PR I generalize the determinant formula for continued fractions from the simple continued fraction case
$$A_n B_{n+1} - B_n A_{n+1} = (-1)^n$$
to the generalized continued fraction product formula
$$A_n B_{n+1} - B_n A_{n+1} = (-a_0) (-a_1) \dots (-a_n)$$
- The `SimpContFract` version is still available unchanged, so this should avoid breaking existing users of the old API.
- The use of `0` as the default partial numerator in `(g.partNums.get? i).getD 0` allows product formulation that remains valid when the fraction is terminated. |
t-algebra
new-contributor
large-import
label:t-algebra$ |
53/28 |
Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean,Mathlib/Algebra/ContinuedFractions/Determinant.lean |
2 |
13 |
['emlis42', 'github-actions', 'themathqueen', 'vihdzp'] |
ocfnash assignee:ocfnash |
9-80706 9 days ago |
13-8327 13 days ago |
27-20523 27 days |
| 38747 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Basic): more `neighborSet` and `IsIsolated` lemmas |
---
`neighborSet_mono` moved from `Maps.lean` to `Basic.lean` with a simpler proof
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
72/17 |
Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Finite.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean,Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean |
4 |
2 |
['github-actions', 'vlad902'] |
nobody |
9-65528 9 days ago |
9-72484 9 days ago |
10-40352 10 days |
| 37623 |
IvanRenison author:IvanRenison |
feat(Order/RelIso): add theorems about `RelHom.comp` and `RelEmbedding.trans` |
Co-authored-by: SnirBroshi <26556598+SnirBroshi@users.noreply.github.com>
---
Missing of this theorems noticed by @SnirBroshi in #37598
[](https://gitpod.io/from-referrer/)
|
t-order |
18/0 |
Mathlib/Order/RelIso/Basic.lean |
1 |
6 |
['IvanRenison', 'SnirBroshi', 'eric-wieser', 'github-actions'] |
nobody |
9-61180 9 days ago |
35-4151 35 days ago |
36-27665 36 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.
- [x] depends on: #34598
---
|
new-contributor
t-euclidean-geometry
LLM-generated
|
360/0 |
Mathlib.lean,Mathlib/Geometry/Polygon/Boundary.lean,Mathlib/Geometry/Polygon/Simple.lean,Mathlib/Logic/Equiv/Fin/Rotate.lean |
4 |
30 |
['A-M-Berns', 'eric-wieser', 'github-actions', 'joneugster', 'jsm28', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp', 'wwylele'] |
eric-wieser assignee:eric-wieser |
9-60008 9 days ago |
74-635 74 days ago |
76-34900 76 days |
| 35865 |
vihdzp author:vihdzp |
chore: review `Cardinal.ord` API |
This PR does the following:
- Mark `Cardinal.ord` as no expose.
- Prove the defining property `gciOrdCard` earlier.
- Deprecate the unused `ord.orderEmbedding` (it simply restates that the function is strictly monotonic).
- Rename `ord_nat` β `ord_natCast`.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
39/36 |
Mathlib/SetTheory/Cardinal/Aleph.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean |
3 |
6 |
['github-actions', 'mathlib-merge-conflicts'] |
b-mehta assignee:b-mehta |
9-60007 9 days ago |
31-70287 31 days ago |
67-14548 67 days |
| 37347 |
JovanGerb author:JovanGerb |
feat: implementation of `@[use_set_notation_for_order]` |
This PR allows the use of `β` notation while the underlying constant is `β€`.
Similarly for `β`/`<`, `β`/`β₯` and `β`/`>`.
- The idea is to later extend this feature to other set notation constants, such as union/intersection.
- There are some types for which we cannot use `LE.le` as the underlying constant, such as `List` and `Multiset`. So, the elaborator for the `β` notation needs to make a decision which underlying constant to elaborate to, depending on the type. Sometimes the type is not known yet, which makes things awkward. Most of these cases are solved by delaying the elaboration until later when the type is known.
- However, in some cases this doesn't work either, such as `simp_rw [and_comm (_ β _)]`, where it is impossible to tell the type when elaborating the term. So, some such cases need to be fixed by making it `simp_rw [and_comm ((_ : Set _) β _)]`. This is because `simp_rw`, unlike `rw`, fully elaborates the rewrite rules before using them. A linter warns you whever there is such an ambiguity.
See also https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/Any.20infimum.20based.20version.20of.20.60OmegaCompletePartialOrder.60.3F/near/579333629
---
[](https://gitpod.io/from-referrer/)
|
t-meta
maintainer-merge
|
364/0 |
Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/SetNotationForOrder.lean,MathlibTest/SetNotationForOrder.lean |
4 |
51 |
['JovanGerb', 'Vierkantor', 'github-actions', 'thorimur'] |
alexjbest and dwrensha assignee:dwrensha assignee:alexjbest |
9-60006 9 days ago |
27-66579 27 days ago |
41-7645 41 days |
| 37900 |
tb65536 author:tb65536 |
feat(RingTheory/Localization/FractionRing): add `IsFractionRing.ofAlgEquiv` and `IsFractionRing.ofAlgHom` |
This PR gives constructors for `IsFractionRing` from an `AlgEquiv` and from an `AlgHom`. The first is just a specialization of `IsLocalization.isLocalization_of_algEquiv`, but the second has a bit more content.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
9/0 |
Mathlib/RingTheory/Localization/FractionRing.lean |
1 |
3 |
['github-actions', 'tb65536'] |
alreadydone assignee:alreadydone |
9-60003 9 days ago |
30-1447 30 days ago |
30-1427 30 days |
| 37870 |
Jun2M author:Jun2M |
feat(Combinatorics/Graph): `Simple` typeclass for `Graph` |
This PR introduces two type classes on `Graph`: `Loopless` and `Simple`.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
93/0 |
Mathlib.lean,Mathlib/Combinatorics/Graph/Simple.lean |
2 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
9-58067 9 days ago |
9-58091 9 days ago |
29-6103 29 days |
| 38716 |
YaelDillies author:YaelDillies |
feat(Algebra/Order): `NNRat.cast_sub` |
From AddCombi
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
large-import
label:t-algebra$ |
29/22 |
Mathlib/Algebra/Order/Field/Rat.lean,Mathlib/Algebra/Order/Ring/Rat.lean,Mathlib/Combinatorics/SetFamily/LYM.lean,Mathlib/Data/Finset/Density.lean,Mathlib/Data/NNRat/Defs.lean,Mathlib/Data/NNRat/Floor.lean,Mathlib/Data/NNRat/Order.lean,Mathlib/Data/Rat/Star.lean,Mathlib/RingTheory/Binomial.lean,Mathlib/Topology/Instances/Rat.lean |
10 |
1 |
['github-actions'] |
nobody |
9-39430 9 days ago |
9-39494 9 days ago |
9-43856 9 days |
| 38795 |
YaelDillies author:YaelDillies |
feat(Algebra/Group/Action/Pointwise): `#(s β© (a β’ t)) = #{x β s ΓΛ’ t | x.1 / x.2 = a}` |
The `Finset` lemma already exists.
From AddCombi
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
37/18 |
Mathlib/Algebra/Group/Action/Pointwise/Finset.lean,Mathlib/Algebra/Group/Action/Pointwise/Set/Basic.lean,Mathlib/Algebra/GroupWithZero/Action/Pointwise/Finset.lean |
3 |
1 |
['github-actions'] |
nobody |
9-33223 9 days ago |
9-33283 9 days ago |
9-35480 9 days |
| 38745 |
FordUniver author:FordUniver |
chore(Combinatorics/SimpleGraph/Copy): rename labelledCopyCount |
Renames `labelledCopyCount` to `labeledCopyCount` (American spelling per the [naming conventions](https://leanprover-community.github.io/contribute/naming.html#spelling)). Deprecated aliases are provided for all renamed declarations.
---
Should probably be a prerequisite for #38631. |
t-combinatorics
new-contributor
|
31/19 |
Mathlib/Combinatorics/SimpleGraph/Copy.lean |
1 |
15 |
['FordUniver', 'SnirBroshi', 'YaelDillies', 'github-actions'] |
nobody |
9-31869 9 days ago |
10-6022 10 days ago |
10-44448 10 days |
| 37677 |
vihdzp author:vihdzp |
feat: club sets |
In set theory, a club set is a subset of an ordinal of uncountable cofinality, which is closed in the order topology, and unbounded within the ordinal.
We generalize this notion to that of a club set in a well-order `Ξ±`: this is a set which is cofinal and closed under suprema. We recover the more standard notion by setting `Ξ± = Iio o`, whenever `β΅β < o.cof`.
We prove that club sets are closed under intersections of size less than the cofinality of `Ξ±`, and that the fixed points of a normal function are a club set.
---
The idea is to eventually rework [`Ordinal.deriv`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/SetTheory/Ordinal/FixedPoint.html#Ordinal.deriv). This is simply the enumerator function for the fixed points of `f`, and enumerator functions for club sets are always normal.
- [x] depends on: #37670
[](https://gitpod.io/from-referrer/)
|
t-set-theory
t-order
|
158/0 |
Mathlib.lean,Mathlib/Order/IsNormal.lean,Mathlib/SetTheory/Cardinal/Club.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean |
4 |
7 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'staroperator', 'vihdzp'] |
nobody |
9-14781 9 days ago |
9-14567 9 days ago |
18-52358 18 days |
| 35868 |
Raph-DG author:Raph-DG |
feat(Topology): add variant of the sheaf condition which assumes non triviality of the cover |
In this PR we add in a variant of the sheaf condition which assumes the cover present in the sheaf condition is nontrivial in the sense that the indexing type is nonempty and the values of the presheaf on each element of the cover are nonempty.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
54/0 |
Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean |
1 |
5 |
['Raph-DG', 'chrisflav', 'github-actions'] |
PatrickMassot assignee:PatrickMassot |
9-13789 9 days ago |
9-33755 9 days ago |
15-11200 15 days |
| 38169 |
tb65536 author:tb65536 |
chore(GroupTheory/Finiteness): make `Subgroup.FG` a class |
This PR refactors `Subgroup.FG` to be a class to match `Group.FG`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-group-theory
label:t-algebra$ |
37/20 |
Mathlib/GroupTheory/Commutator/Finite.lean,Mathlib/GroupTheory/Finiteness.lean,Mathlib/GroupTheory/Rank.lean,Mathlib/GroupTheory/Schreier.lean |
4 |
10 |
['JovanGerb', 'github-actions', 'mathlib-bors', 'riccardobrasca', 'tb65536'] |
riccardobrasca assignee:riccardobrasca |
8-84610 8 days ago |
9-12278 9 days ago |
23-416 23 days |
| 38420 |
eliasjudin author:eliasjudin |
feat(Algebra/MvPolynomial): add coefficient lemma for uniqueAlgEquiv |
Adds `MvPolynomial.coeff_uniqueAlgEquiv` and `MvPolynomial.coeff_uniqueAlgEquiv_symm`,
identifying coefficients under `MvPolynomial.uniqueAlgEquiv` in both directions.
|
new-contributor
t-algebra
label:t-algebra$ |
19/0 |
Mathlib/Algebra/MvPolynomial/Equiv.lean |
1 |
5 |
['eliasjudin', 'eric-wieser', 'github-actions'] |
kim-em assignee:kim-em |
8-75203 8 days ago |
16-30655 16 days ago |
17-4743 17 days |
| 35610 |
IvanRenison author:IvanRenison |
feat(Data/Fin): add several lemmas about subtraction of `Fin.{castLT, castAdd, castSucc, castPred}` |
---
[](https://gitpod.io/from-referrer/)
|
t-data |
66/0 |
Mathlib/Data/Fin/Basic.lean,Mathlib/Data/Fin/SuccPred.lean |
2 |
13 |
['IvanRenison', 'chrisflav', 'github-actions', 'robin-carlier', 'wwylele'] |
eric-wieser assignee:eric-wieser |
8-71211 8 days ago |
8-71211 8 days ago |
74-18298 74 days |
| 38825 |
tb65536 author:tb65536 |
feat(RingTheory/Spectrum/FreeLocus): rank of fiber over residue field |
This PR proves the formula `finrank p.ResidueField (p.Fiber M) = finrank R M`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
9/0 |
Mathlib/RingTheory/Spectrum/Prime/FreeLocus.lean |
1 |
1 |
['github-actions'] |
nobody |
8-70604 8 days ago |
8-70604 8 days ago |
8-70585 8 days |
| 38826 |
tb65536 author:tb65536 |
feat(RingTheory/LocalRing/ResidueField/Fiber): `IsLiesOverAlgebra` instance |
We use the new `IsLiesOverAlgebra` predicate from #38465 to express the fact that the existing `R_p`-algebra instance on `(p.Fiber S)_q` agrees with the one coming from the fact that `q` lies over `p`. (The point of this predicate is to avoid exactly this sort of diamond).
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
7/1 |
Mathlib/RingTheory/LocalRing/ResidueField/Fiber.lean |
1 |
1 |
['github-actions'] |
nobody |
8-69774 8 days ago |
8-69774 8 days ago |
8-69754 8 days |
| 38646 |
yuanyi-350 author:yuanyi-350 |
refactor(Analysis): golf `Mathlib/Analysis/Normed/Unbundled/SpectralNorm` |
- rewrites `spectralValue_eq_zero_iff` via `eq_X_pow_iff_natDegree_le_natTrailingDegree` and `spectralValueTerms_of_lt_natDegree`
- rewrites `spectralNorm.eq_of_normalClosure'` as two applications of `spectralNorm.eq_of_tower`
- tidies `spectralNorm_unique` by switching the local transported structures to `set`/`letI`/`haveI` with `inferInstanceAs`
Extracted from #37968
[](https://gitpod.io/from-referrer/) |
codex
t-analysis
LLM-generated
|
9/23 |
Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean |
1 |
7 |
['github-actions', 'leanprover-radar', 'sgouezel', 'themathqueen', 'yuanyi-350'] |
sgouezel assignee:sgouezel |
8-60689 8 days ago |
9-6046 9 days ago |
11-1052 11 days |
| 34045 |
smmercuri author:smmercuri |
feat: `algebraMap K L` is uniform continuous with respect to adic topologies, when the ideal `w` of `L` lies above `v` |
- `A` is a Dedekind domain with field of fractions `K`.
- `B` is a Dedekind domain with field of fractions `L`.
- `L` is a field extension of `K`.
- `v` is a height one prime ideal of `A`.
- `w` is a height one prime ideal of `B` lying over `v`.
Then respective valuations are related via the ramification index, and `algebraMap (WithVal (v.valuation K)) (WithVal (w.valuation L))` is uniform continuous.
---
- [x] depends on: #34049
- [x] depends on: #35972
- [x] depends on: #36144
- [x] depends on: #36310
[](https://gitpod.io/from-referrer/)
|
FLT
t-algebra
t-number-theory
label:t-algebra$ |
159/12 |
Mathlib.lean,Mathlib/Algebra/Order/Hom/Units.lean,Mathlib/NumberTheory/RamificationInertia/Valuation.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean,Mathlib/RingTheory/Valuation/Discrete/RankOne.lean,Mathlib/Topology/Algebra/Valued/WithVal.lean |
6 |
10 |
['dagurtomas', 'github-actions', 'jjdishere', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'smmercuri'] |
alreadydone assignee:alreadydone |
8-60483 8 days ago |
13-14729 13 days ago |
31-16942 31 days |
| 37784 |
SnirBroshi author:SnirBroshi |
feat(Order/ConditionallyCompleteLattice/Basic): `ConditionallyCompleteLinearOrderBot (WithBot Ξ±)` |
---
[](https://gitpod.io/from-referrer/)
|
t-order |
29/0 |
Mathlib/Order/ConditionallyCompleteLattice/Basic.lean |
1 |
1 |
['github-actions'] |
bryangingechen assignee:bryangingechen |
8-60475 8 days ago |
32-56845 32 days ago |
32-56824 32 days |
| 38382 |
dagurtomas author:dagurtomas |
feat(CategoryTheory/Limits): explicit coends in `Type` |
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
211/0 |
Mathlib.lean,Mathlib/CategoryTheory/Limits/Chosen/End.lean,Mathlib/CategoryTheory/Limits/Types/End.lean |
3 |
7 |
['dagurtomas', 'github-actions', 'robin-carlier'] |
robin-carlier assignee:robin-carlier |
8-60468 8 days ago |
9-48342 9 days ago |
11-3636 11 days |
| 38821 |
Jun2M author:Jun2M |
feat(Data/List): rotation of sublist is sublist of rotation |
This PR proves `(β Lβ : List Ξ±, L ~r Lβ β§ Lβ <+ L') β (β Lβ : List Ξ±, L <+ Lβ β§ Lβ ~r L')`.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
10/0 |
Mathlib/Data/List/Rotate.lean |
1 |
3 |
['SnirBroshi', 'eric-wieser', 'github-actions'] |
nobody |
8-55555 8 days ago |
8-79496 8 days ago |
8-79475 8 days |
| 38092 |
SnirBroshi author:SnirBroshi |
chore(Order/Defs/Unbundled): deprecate `def Symmetric` in favor of `class Std.Symm` |
---
[Mathlib's `def Symmetric`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/Defs/Unbundled.html#Symmetric)
[Core's `class Std.Symm`](https://leanprover-community.github.io/mathlib4_docs/Init/Core.html#Std.Symm)
[Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Relation.20properties.20duplication/near/544638270)
[](https://gitpod.io/from-referrer/)
|
t-order |
468/412 |
Archive/Wiedijk100Theorems/FriendshipGraphs.lean,Archive/Wiedijk100Theorems/Konigsberg.lean,Counterexamples/HeawoodUnitDistance.lean,Mathlib/Algebra/BigOperators/Group/List/Lemmas.lean,Mathlib/Algebra/Divisibility/Units.lean,Mathlib/Algebra/Group/Basic.lean,Mathlib/Analysis/BoxIntegral/Partition/Basic.lean,Mathlib/Analysis/BoxIntegral/Partition/Split.lean,Mathlib/Analysis/InnerProductSpace/Orthogonal.lean,Mathlib/Analysis/Normed/Operator/Compact/FredholmAlternative.lean,Mathlib/CategoryTheory/Abelian/Pseudoelements.lean,Mathlib/CategoryTheory/IsConnected.lean,Mathlib/CategoryTheory/Limits/Final.lean,Mathlib/CategoryTheory/Limits/IsConnected.lean,Mathlib/Combinatorics/Additive/ErdosGinzburgZiv.lean,Mathlib/Combinatorics/Digraph/Orientation.lean,Mathlib/Combinatorics/Graph/Basic.lean,Mathlib/Combinatorics/Graph/Delete.lean,Mathlib/Combinatorics/Graph/Lattice.lean,Mathlib/Combinatorics/Graph/Maps.lean,Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean,Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/Circulant.lean,Mathlib/Combinatorics/SimpleGraph/Clique.lean,Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Dart.lean,Mathlib/Combinatorics/SimpleGraph/Density.lean,Mathlib/Combinatorics/SimpleGraph/Hall.lean,Mathlib/Combinatorics/SimpleGraph/Hasse.lean,Mathlib/Combinatorics/SimpleGraph/LineGraph.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean,Mathlib/Combinatorics/SimpleGraph/Operations.lean,Mathlib/Combinatorics/SimpleGraph/Prod.lean,Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean,Mathlib/Combinatorics/SimpleGraph/Sum.lean,Mathlib/Combinatorics/SimpleGraph/Triangle/Tripartite.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Operations.lean,Mathlib/Data/Finset/Pairwise.lean,Mathlib/Data/Finsupp/BigOperators.lean,Mathlib/Data/List/Pairwise.lean,Mathlib/Data/List/Sigma.lean,Mathlib/Data/Multiset/Bind.lean,Mathlib/Data/Multiset/Defs.lean,Mathlib/Data/Multiset/Pairwise.lean,Mathlib/Data/Multiset/Replicate.lean,Mathlib/Data/Nat/GCD/Basic.lean,Mathlib/Data/Rel/Separated.lean,Mathlib/Data/Seq/Computation.lean,Mathlib/Data/Set/Pairwise/Basic.lean,Mathlib/Data/Set/Pairwise/List.lean,Mathlib/Data/Sym/Sym2.lean,Mathlib/Data/WSeq/Relation.lean,Mathlib/GroupTheory/Perm/Cycle/Factors.lean,Mathlib/GroupTheory/Perm/Cycle/Type.lean,Mathlib/GroupTheory/Perm/Support.lean,Mathlib/Logic/Function/Basic.lean,Mathlib/Logic/Relation.lean,Mathlib/MeasureTheory/Measure/AEDisjoint.lean,Mathlib/MeasureTheory/Measure/NullMeasurable.lean,Mathlib/ModelTheory/Graph.lean,Mathlib/ModelTheory/Semantics.lean,Mathlib/NumberTheory/ArithmeticFunction/Defs.lean,Mathlib/Order/Antichain.lean,Mathlib/Order/Defs/Unbundled.lean,Mathlib/Order/Disjoint.lean,Mathlib/Order/Lattice.lean,Mathlib/Order/Preorder/Chain.lean,Mathlib/Order/PropInstances.lean,Mathlib/RingTheory/Coprime/Ideal.lean,Mathlib/RingTheory/Radical/Basic.lean,Mathlib/Topology/CWComplex/Classical/Graph.lean,Mathlib/Topology/CompactOpen.lean,Mathlib/Topology/Connected/Clopen.lean,Mathlib/Topology/MetricSpace/MetricSeparated.lean,Mathlib/Topology/Separation/Basic.lean,Mathlib/Topology/Separation/GDelta.lean |
81 |
5 |
['SnirBroshi', 'github-actions', 'leanprover-radar', 'mathlib-merge-conflicts'] |
nobody |
8-54887 8 days ago |
8-54914 8 days ago |
23-45924 23 days |
| 38142 |
SnirBroshi author:SnirBroshi |
feat(Order/SuccPred/CompleteLinearOrder): generalize `csSup_mem_of_not_isSuccLimit` |
Given `s.Nonempty` and `BddAbove s` we can conclude `sSup s β s` using either:
- `csSup_mem_of_not_isSuccPrelimit`, given `ConditionallyCompleteLinearOrder` and `Β¬IsSuccPrelimit (sSup s)`
- `csSup_mem_of_not_isSuccLimit`, given `ConditionallyCompleteLinearOrderBot` and `Β¬IsSuccLimit (sSup s)`
We generalize both to a theorem that requires `ConditionallyCompleteLinearOrder` and `Β¬IsSuccLimit (sSup s)`.
This creates 8 theorems that require `Β¬IsSuccPrelimit` but are now easily proved with the `Β¬IsSuccLimit` theorems, we replace `csSup_mem_of_not_isSuccPrelimit`/`exists_eq_ciSup_of_not_isSuccPrelimit` with their primed `ConditionallyCompleteLinearOrderBot` theorems, and deprecates the other 6.
Tags a random `to_dual` (in `ConditionallyCompleteLattice/Basic.lean`) to let us `to_dual`ize the new lemmas.
---
~~Should we also deprecate the 8 theorems that require `Β¬IsSuccPrelimit` and now use `mt`?~~
[](https://gitpod.io/from-referrer/)
|
t-order |
55/42 |
Mathlib/Order/ConditionallyCompleteLattice/Basic.lean,Mathlib/Order/SuccPred/CompleteLinearOrder.lean,Mathlib/SetTheory/Cardinal/Order.lean |
3 |
9 |
['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] |
nobody |
8-54764 8 days ago |
8-54788 8 days ago |
23-53173 23 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.
---
- [x] depends on: #30436
- [x] depends on: #38179
[](https://gitpod.io/from-referrer/)
|
t-algebra
large-import
label:t-algebra$ |
361/6 |
Mathlib.lean,Mathlib/Combinatorics/Enumerative/Pentagonal.lean,Mathlib/RingTheory/PowerSeries/Pentagonal.lean,Mathlib/Topology/Algebra/InfiniteSum/Pentagonal.lean,docs/1000.yaml |
5 |
59 |
['copilot-pull-request-reviewer', 'github-actions', 'jcommelin', 'mathlib-dependent-issues', 'tb65536', 'urkud', 'vihdzp', 'wwylele'] |
chrisflav assignee:chrisflav |
8-52173 8 days ago |
8-62604 8 days ago |
118-74440 118 days |
| 38841 |
SnirBroshi author:SnirBroshi |
feat(Mathlib/Order/SuccPred/Limit): more `WithTop` lemmas about `IsMin`/`CovBy`/`IsSuccLimit` |
---
Continues the work from #38244
We should probably also have such lemmas for `WithTopBot`/`WithBotTop`, but that's for another day
[](https://gitpod.io/from-referrer/)
|
t-order |
111/30 |
Mathlib/Order/Cover.lean,Mathlib/Order/SuccPred/Limit.lean,Mathlib/Order/WithBot.lean |
3 |
1 |
['github-actions'] |
nobody |
8-24326 8 days ago |
8-34842 8 days ago |
8-35628 8 days |
| 38830 |
Jun2M author:Jun2M |
feat(Data/List): Nodup and head & getLast lemmas |
Given a Nodup list:
* If a prefix contains the last element, they are equal
* If a suffix contains the first element, they are equal
* If an infix contains the first element, it is a prefix
* If an infix contains the last element, it is a suffix
* If the first and the last element are the same, it is a singleton
* `countP` is cardinality of the filter of `toFinset`.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
29/0 |
Mathlib/Data/Finset/Card.lean,Mathlib/Data/List/Nodup.lean |
2 |
6 |
['SnirBroshi', 'github-actions'] |
nobody |
8-16837 8 days ago |
8-16847 8 days ago |
8-50745 8 days |
| 37618 |
WenrongZou author:WenrongZou |
feat(PowerSeries): rename a power series as multivariate power series |
---
In this PR, I define the `PowerSeries.toMvPowerSeries` which use `Polynomial.toMvPolynomial` as reference. Also there is some missing APIs in `MvPowerSeries/Equiv.lean` with respect to `MvPolynomial/Equiv.lean`. I will try to add them in next several PRs.
- [x] depends on: #37576
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
large-import
|
80/1 |
Mathlib/RingTheory/MvPowerSeries/Equiv.lean |
1 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
8-15481 8 days ago |
8-35077 8 days ago |
8-36788 8 days |
| 38316 |
tannerduve author:tannerduve |
feat(Order/OmegaCompletePartialOrder): least fixed point and Scott induction |
Adds `ContinuousHom.lfp` for endomorphisms on an ΟCPO with `β₯`, as the `ΟSup` of the iterate chain from `β₯`, together with `map_lfp`, `isFixedPt_lfp`, `lfp_le_fixed`, `isLeast_lfp`, and the Scott induction theorem `lfp_induction` (specialized from a more general seed-based `ΟSup_iterate_induction`).
For `Part.fix`, adds:
* `Part.exists_mem_approx_of_mem_fix`: if `y β Part.fix g x`, some finite approximation of `g` already contains `y`.
* `Part.Fix.approx_eq_iterate_bot` and `Part.Fix.approxChain_eq_iterateChain`: bridges between `Fix.approx`/`approxChain` and `f^[n] β₯`/`iterateChain`.
* `Part.fix_eq_lfp`: `Part.fix g = ContinuousHom.lfp (.ofFun g hc)` when `g` is Ο-Scott continuous.
* `Part.fix_scott_induction`: Scott induction specialized to `Part.fix`.
* `Part.fix_induction_mem`: membership induction on `Part.fix`, derived from `fix_scott_induction`. |
new-contributor |
114/0 |
Mathlib/Control/LawfulFix.lean,Mathlib/Order/OmegaCompletePartialOrder.lean,docs/references.bib |
3 |
2 |
['github-actions'] |
nobody |
7-85551 7 days ago |
19-61653 19 days ago |
19-62158 19 days |
| 38018 |
matthewjasper author:matthewjasper |
feat(Algebra): expand Subalgebra.restrictScalars API |
Add an instance for the original algebra structure, the implied scalar tower instances, and the algebra equivalence with the original subalgebra. Use this to remove some `set_option backward.isDefEq.respectTransparency`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
53/14 |
Mathlib/Algebra/Algebra/Subalgebra/Tower.lean,Mathlib/RingTheory/AlgebraicIndependent/TranscendenceBasis.lean,Mathlib/RingTheory/Finiteness/Basic.lean,Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean |
4 |
2 |
['eric-wieser', 'github-actions'] |
mariainesdff assignee:mariainesdff |
7-60133 7 days ago |
26-73073 26 days ago |
26-74669 26 days |
| 38589 |
vlad902 author:vlad902 |
feat(SimpleGraph): add universal vertex predicate |
Add the predicate `G.IsUniversal v` to indicate that `v` is a universal vertex, i.e. connected to all other vertices in `G`. This matches the recently added `G.IsIsolated v` predicate for isolated vertices.
Co-authored-by: Justin Lai
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
63/10 |
Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Finite.lean,Mathlib/Combinatorics/SimpleGraph/Tutte.lean,Mathlib/Combinatorics/SimpleGraph/UniversalVerts.lean |
5 |
4 |
['8e7', 'github-actions', 'vlad902'] |
nobody |
7-45271 7 days ago |
12-77992 12 days ago |
12-77971 12 days |
| 38358 |
yuanyi-350 author:yuanyi-350 |
doc(1000.yaml): note more formalised theorems |
---
[](https://gitpod.io/from-referrer/)
|
documentation
maintainer-merge
|
9/2 |
docs/1000.yaml |
1 |
12 |
['YaelDillies', 'github-actions', 'grunweg', 'vihdzp', 'yuanyi-350'] |
nobody |
7-29228 7 days ago |
7-29290 7 days ago |
18-30925 18 days |
| 38634 |
Maldooor author:Maldooor |
feat(MeasureTheory): `restrict_absolutelyContinuous_restrict` |
Adding three lemmas about absolute continuity of restrictions of measures to subsets.
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
19/0 |
Mathlib/MeasureTheory/Measure/Restrict.lean |
1 |
4 |
['EtienneC30', 'Maldooor', 'github-actions'] |
EtienneC30 assignee:EtienneC30 |
7-28264 7 days ago |
7-28264 7 days ago |
9-59434 9 days |
| 38835 |
yuanyi-350 author:yuanyi-350 |
refactor(NumberTheory): golf `Mathlib/NumberTheory/Zsqrtd/GaussianInt` |
- rewrites `normSq_le_normSq_of_re_le_of_im_le` to reduce to the squared-coordinate inequalities and finish with `nlinarith`
Extracted from #38144
[](https://gitpod.io/from-referrer/) |
codex
t-number-theory
LLM-generated
maintainer-merge
|
3/5 |
Mathlib/NumberTheory/Zsqrtd/GaussianInt.lean |
1 |
9 |
['MichaelStollBayreuth', 'github-actions', 'yuanyi-350'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
7-15493 7 days ago |
7-18555 7 days ago |
8-42145 8 days |
| 33355 |
0xTerencePrime author:0xTerencePrime |
feat(Combinatorics/SimpleGraph/Connectivity): define vertex connectivity |
This PR introduces the foundations of vertex connectivity for simple graphs, providing a counterpart to the edge connectivity theory in #32870.
### Main definitions
- `SimpleGraph.IsVertexReachable`: vertices remain reachable after removing strictly fewer than `k` other vertices.
- `SimpleGraph.IsVertexConnected`: a graph is `k`-vertex-connected if its order is strictly greater than `k` and any two distinct vertices are `k`-vertex-reachable.
Includes basic characterizations for $k=0$ and $k=1$, along with monotonicity lemmas (`anti` and `mono`). |
new-contributor
t-combinatorics
|
216/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/VertexConnectivity.lean,Mathlib/Combinatorics/SimpleGraph/IsolateVerts.lean |
3 |
147 |
['0xTerencePrime', 'SnirBroshi', 'SproutSeeds', 'YaelDillies', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] |
nobody |
7-12470 7 days ago |
7-22809 7 days ago |
42-79492 42 days |
| 38823 |
matthewjasper author:matthewjasper |
chore(LinearAlgebra/TensorProduct): fix diamond in `AddCommGroup` instance |
The `SMul` instance for tensor products directly used `AddCon.lift`, so wasn't type correct at instance transparency. This caused a diamond with the `AddCommGroup` instance on tensor products because after unfolding some types didn't match, so I've wrapped the sMul function in a semireducible def to prevent this.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
30/23 |
Mathlib/LinearAlgebra/TensorProduct/Basic.lean,Mathlib/LinearAlgebra/TensorProduct/Defs.lean |
2 |
5 |
['github-actions', 'kbuzzard', 'leanprover-radar'] |
nobody |
7-12335 7 days ago |
8-73989 8 days ago |
8-73968 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 β.
---
- [x] depends on: #34521
- [ ] depends on: #36374 |
t-measure-probability
large-import
new-contributor
|
123/17 |
Mathlib/Analysis/InnerProductSpace/Basic.lean,Mathlib/Probability/Distributions/Poisson/Basic.lean |
2 |
83 |
['CoolRmal', 'DavidLedvinka', 'EtienneC30', 'github-actions', 'huaizhangchu', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'pfaffelh', 'vianna04', 'yuanyi-350'] |
EtienneC30 assignee:EtienneC30 |
7-10763 7 days ago |
7-10763 7 days ago |
66-23748 66 days |
| 37577 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Walk): upgrade subset theorems to sublist/prefix/suffix |
Upgrades theorems about `p.support β q.support` / `p.darts β q.darts` / `p.edges β q.edges` to `List.IsInfix`/`List.IsSuffix`/`List.Sublist`, which imply the subset versions.
Also adds `cycleBypass` sublist lemmas that were missing, and golfs `length_bypass_le` and `bypass_eq_self_of_length_le` using the new sublist theorems.
Co-authored-by: IvΓ‘n Renison <85908989+IvanRenison@users.noreply.github.com>
---
Except for a couple of `cycleBypass` ones, I did not add such theorems where there was no subset theorem to begin with (e.g. `(p.take n).darts <+: p.darts`), as they are usually not worth stating since they're trivial and simp proves them.
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
108/79 |
Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Decomp.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Operations.lean |
4 |
1 |
['github-actions'] |
nobody |
6-72904 6 days ago |
37-71079 37 days ago |
37-71058 37 days |
| 38890 |
SnirBroshi author:SnirBroshi |
feat(Order/ConditionallyCompleteLattice/Basic): more `WithTop` instances |
Adds the following instances:
```
CompleteLattice Ξ± β CompleteLattice (WithTop Ξ±)
CompleteLinearOrder Ξ± β CompleteLinearOrder (WithBot Ξ±)
ConditionallyCompleteLinearOrder Ξ± β ConditionallyCompleteLinearOrder (WithTop Ξ±)
ConditionallyCompleteLinearOrder Ξ± β ConditionallyCompleteLinearOrderBot (WithBot Ξ±)
```
and some simp lemmas to help.
---
These `#synth`s all succeed after this PR:
(code)
```lean
variable {Ξ± : Type*} [Preorder Ξ±]
#synth Preorder Ξ±α΅α΅
#synth Preorder <| WithTop Ξ±
#synth Preorder <| WithBot Ξ±
#synth Preorder <| WithTopBot Ξ±
#synth Preorder <| WithBotTop Ξ±
variable {Ξ± : Type*} [PartialOrder Ξ±]
#synth PartialOrder Ξ±α΅α΅
#synth PartialOrder <| WithTop Ξ±
#synth PartialOrder <| WithBot Ξ±
#synth PartialOrder <| WithTopBot Ξ±
#synth PartialOrder <| WithBotTop Ξ±
variable {Ξ± : Type*} [LinearOrder Ξ±]
#synth LinearOrder Ξ±α΅α΅
#synth LinearOrder <| WithTop Ξ±
#synth LinearOrder <| WithBot Ξ±
#synth LinearOrder <| WithTopBot Ξ±
#synth LinearOrder <| WithBotTop Ξ±
variable {Ξ± : Type*} [CompleteLattice Ξ±]
#synth CompleteLattice Ξ±α΅α΅
#synth CompleteLattice <| WithTop Ξ± -- new
#synth CompleteLattice <| WithBot Ξ±
#synth CompleteLattice <| WithTopBot Ξ±
#synth CompleteLattice <| WithBotTop Ξ±
variable {Ξ± : Type*} [CompleteLinearOrder Ξ±]
#synth CompleteLinearOrder Ξ±α΅α΅
#synth CompleteLinearOrder <| WithTop Ξ±
#synth CompleteLinearOrder <| WithBot Ξ± -- new
#synth CompleteLinearOrder <| WithTopBot Ξ±
#synth CompleteLinearOrder <| WithBotTop Ξ±
variable {Ξ± : Type*} [ConditionallyCompleteLattice Ξ±]
#synth ConditionallyCompleteLattice Ξ±α΅α΅
#synth ConditionallyCompleteLattice <| WithTop Ξ±
#synth ConditionallyCompleteLattice <| WithBot Ξ±
#synth CompleteLattice <| WithTopBot Ξ±
#synth CompleteLattice <| WithBotTop Ξ±
variable {Ξ± : Type*} [ConditionallyCompleteLinearOrder Ξ±]
#synth ConditionallyCompleteLinearOrder Ξ±α΅α΅
#synth ConditionallyCompleteLinearOrder <| WithTop Ξ± -- new
#synth ConditionallyCompleteLinearOrderBot <| WithBot Ξ± -- new
#synth CompleteLinearOrder <| WithTopBot Ξ±
#synth CompleteLinearOrder <| WithBotTop Ξ±
variable {Ξ± : Type*} [ConditionallyCompleteLinearOrderBot Ξ±]
#synth ConditionallyCompleteLinearOrder Ξ±α΅α΅
#synth CompleteLinearOrder <| WithTop Ξ±
#synth ConditionallyCompleteLinearOrderBot <| WithBot Ξ± -- new
#synth CompleteLinearOrder <| WithTopBot Ξ±
#synth CompleteLinearOrder <| WithBotTop Ξ±
```
[](https://gitpod.io/from-referrer/)
|
t-order |
63/9 |
Mathlib/Order/ConditionallyCompleteLattice/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
6-63950 6 days ago |
6-64026 6 days ago |
6-64005 6 days |
| 37179 |
IvanRenison author:IvanRenison |
feat(Combinatorics/SimpleGraph): add lemmas about left and right elements of `SimpleGraph.sum` |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
18/0 |
Mathlib/Combinatorics/SimpleGraph/Sum.lean |
1 |
3 |
['WilliamCoram', 'github-actions'] |
b-mehta assignee:b-mehta |
6-60264 6 days ago |
45-76074 45 days ago |
45-76053 45 days |
| 38872 |
yuanyi-350 author:yuanyi-350 |
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Constructions/BorelSpace/Metrizable` |
- replaces the `aeSeq`-based construction in `measurable_limit_of_tendsto_metrizable_ae` with a direct choice of the pointwise limit
- proves a.e. measurability via `aemeasurable_of_tendsto_metrizable_ae` and then takes the measurable representative
Extracted from #38104
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-measure-probability
|
11/19 |
Mathlib/MeasureTheory/Constructions/BorelSpace/Metrizable.lean |
1 |
2 |
['github-actions', 'yuanyi-350'] |
kex-y assignee:kex-y |
6-60255 6 days ago |
7-18543 7 days ago |
7-18522 7 days |
| 38875 |
yuanyi-350 author:yuanyi-350 |
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Covering/Besicovitch` |
- shortens the proof of `r_t0` in `exists_closedBall_covering_tsum_measure_le` by turning the contradiction argument into a direct lambda
- replaces the manual `simp only` proof with `mem_iUnionβ` and a final `simp [r, this]`
Extracted from #38104
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-measure-probability
|
3/8 |
Mathlib/MeasureTheory/Covering/Besicovitch.lean |
1 |
2 |
['github-actions', 'yuanyi-350'] |
RemyDegenne assignee:RemyDegenne |
6-60252 6 days ago |
7-17386 7 days ago |
7-17365 7 days |
| 38876 |
yuanyi-350 author:yuanyi-350 |
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable` |
- rewrites `memLp_trim_of_mem_lpMeasSubgroup` to use `hf.mk f` instead of unpacking `hf.choose`
- shortens the norm comparison to a direct rewrite with `eLpNorm_trim` and `hf.ae_eq_mk`
Extracted from #38104
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-measure-probability
|
3/8 |
Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean |
1 |
2 |
['github-actions', 'yuanyi-350'] |
kex-y assignee:kex-y |
6-60251 6 days ago |
7-17051 7 days ago |
7-17030 7 days |
| 38881 |
yuanyi-350 author:yuanyi-350 |
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic` |
- shortens `stronglyMeasurable_in_set` by inlining the restricted approximation sequence and folding the `hg_eq` / `hg_zero` helper lemmas into the two `by_cases` branches
Extracted from #38104
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-measure-probability
|
7/13 |
Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean |
1 |
2 |
['github-actions', 'yuanyi-350'] |
kex-y assignee:kex-y |
6-60248 6 days ago |
7-14994 7 days ago |
7-14973 7 days |
| 38882 |
yuanyi-350 author:yuanyi-350 |
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Function/AEMeasurableOrder` |
- replaces the manual `ΞΌ t = 0` to `ae` conversion with `measure_eq_zero_iff_ae_notMem`
- rewrites the two density arguments in `aemeasurable_of_exist_almost_disjoint_supersets` using `s_dense.exists_between` and `mem_iUnionβ`
Extracted from #38104
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-measure-probability
|
7/18 |
Mathlib/MeasureTheory/Function/AEMeasurableOrder.lean |
1 |
2 |
['github-actions', 'yuanyi-350'] |
kex-y assignee:kex-y |
6-60247 6 days ago |
7-14775 7 days ago |
7-14754 7 days |
| 31892 |
jsm28 author:jsm28 |
feat(Geometry/Euclidean/Sphere/PolePolar): poles and polars |
Define poles and polars for spheres in Euclidean affine spaces, and set up some basic API, including in particular La Hire's theorem (`pβ` lies on the polar of `pβ` if and only if `pβ` lies on the polar of `pβ`).
Poles and polars are actually meaningful for any quadric in a projective space over any field, but I think it's reasonable to set up this theory for spheres in the Euclidean context and potentially link it in future to more general projective geometry.
---
- [ ] depends on: #31891
- [ ] depends on: #32296
[](https://gitpod.io/from-referrer/)
|
t-euclidean-geometry |
159/0 |
Mathlib.lean,Mathlib/Geometry/Euclidean/Sphere/PolePolar.lean |
2 |
4 |
['Parcly-Taxel', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
6-52068 6 days ago |
43-85122 43 days ago |
43-85861 43 days |
| 38582 |
dennj author:dennj |
feat(LinearAlgebra/Matrix): add Hadamard matrices |
Introduce `Matrix.IsHadamard` over a general `Ring R`, with the basic theory:
- `IsHadamard` and `IsComplexHadamard` predicates (Definitions 2.3.1 and 2.7.1
of de LauneyβFlannery, *Algebraic Design Theory*).
- `IsHadamard.det_sq`: the Hadamard determinant identity `(det A)Β² = n^n`.
- `IsHadamard.det_ne_zero`: over an integral domain of characteristic zero.
- `IsHadamard.transpose`: `Aα΅` is Hadamard whenever `A` is (Theorem 2.3.6),
proved over `[CommRing R] [IsDomain R] [CharZero R]` via the adjugate.
- `IsHadamard.card_eq_sq_of_const_row_sum`: a Hadamard matrix with constant
row sum `s` has order `sΒ²` (slightly stronger than Theorem 2.3.7: the
constant-column-sum hypothesis is implied by orthogonality).
- `IsHadamard.kronecker`: the Sylvester (Kronecker product) construction.
- `IsHadamard.four_dvd_card`: order of a Hadamard matrix of order > 2 is
divisible by 4.
`Matrix.mul_eq_smul_one_symm`: if `M * N = c β’ 1` and `det M β 0` over an
integral domain, then `N * M = c β’ 1`. Used here for the transpose proof, but
generally useful, analogous to how `mul_eq_one_comm` works over stably finite
rings, but covers the integral-domain case (e.g. `β€`, `β€[X]`) where matrix
inverses don't exist.
## References
Adds the de LauneyβFlannery bibliography entry, cited from the new file.
Human-made PR with LLM used for proof golfing and documentation |
t-algebra
new-contributor
label:t-algebra$ |
155/0 |
Mathlib.lean,Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/Group/Commute/Defs.lean,Mathlib/LinearAlgebra/Matrix/HadamardMatrix.lean,docs/references.bib |
5 |
14 |
['JJYYY-JJY', 'dennj', 'eric-wieser', 'github-actions', 'themathqueen'] |
nobody |
6-51785 6 days ago |
13-10263 13 days ago |
13-10242 13 days |
| 38871 |
0xTerencePrime author:0xTerencePrime |
feat(Combinatorics/SimpleGraph): add parity lemmas for outer and inner vertices |
Adds three lemmas to `SimpleGraph.DegreeSum`:
- `sum_degrees_option_zmod_two`: the handshaking lemma for `Option I` over ZMod 2
- `degree_none_zmod_two_eq_sum`: simp-normal form of the above
- `card_degree_one_option_eq_outer_zmod_two`: under degree bound β€ 2, count of degree-1 inner vertices equals outer vertex degree mod 2 |
t-combinatorics
new-contributor
|
65/3 |
Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean |
1 |
6 |
['0xTerencePrime', 'SnirBroshi', 'github-actions'] |
nobody |
6-48636 6 days ago |
7-18864 7 days ago |
7-18843 7 days |
| 38897 |
0xTerencePrime author:0xTerencePrime |
feat(Combinatorics/SetFamily): formalize 1D Sperner's Lemma parity |
Formalizes the 1-dimensional Sperner's Lemma (parity version): given a coloring of
the `n + 1` vertices of a subdivided line segment with two colors (`ZMod 2`), if the
two endpoints have different colors, then the number of color-changing edges is odd.
This is **distinct** from `IsAntichain.sperner` in `SetFamily.LYM`, which concerns
antichains in a power set. This file formalizes the topological/combinatorial parity
statement used as the base case in higher-dimensional Sperner arguments.
## Key declarations
- `SpernerColoring`: type-safe coloring via `Fin (n + 1) β ZMod 2`
- `edgeDiff`: color difference on adjacent vertices, computed in `ZMod 2`
- `totalDiff`: telescoping sum of all edge differences
- `diffEdges`: the `Finset` of bichromatic (color-changing) edges
- `sperner_1d`: main theorem β `Odd (diffEdges c).card`
## Design notes
- Using `Fin (n + 1) β ZMod 2` instead of `β β ZMod 2` makes boundary conditions
unrepresentable at the type level, eliminating out-of-bounds cases entirely.
- The proof reduces to a telescoping sum in `ZMod 2`, using `CharTwo.add_self_eq_zero`
to cancel all interior vertices, avoiding parity case splits.
This is intended as the 1D base case, the approach generalizes to higher-dimensional
Sperner's Lemma in future work.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
133/0 |
Mathlib.lean,Mathlib/Combinatorics/SetFamily/Sperner1D.lean |
2 |
3 |
['github-actions', 'grunweg'] |
nobody |
6-39870 6 days ago |
6-50020 6 days ago |
6-49999 6 days |
| 38723 |
xgenereux author:xgenereux |
feat(EuclideanDomain.Basic): RingEquiv.euclideanDomain |
Add `RingEquiv.euclideanDomain` similar to other `RingEquiv` transport lemmas.
Co-authored-by: MarΓa InΓ©s de Frutos FernΓ‘ndez <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)>
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
large-import
label:t-algebra$ |
26/1 |
Mathlib/Algebra/EuclideanDomain/Basic.lean |
1 |
3 |
['github-actions', 'wwylele'] |
nobody |
6-37260 6 days ago |
11-4711 11 days ago |
11-5057 11 days |
| 38755 |
TJHeeringa author:TJHeeringa |
feat(Analysis/innerProductSpace/GramMatrix): Add Gram.posSemidef_of_mapL |
---
`Analysis/innerProductSpace/TensorProduct` has a TODO for a continuous version of `TensorProduct.map`. One place which contains a proof for this is at [stack](https://math.stackexchange.com/a/3934668). This PR is lemma 1 of that.
It is written with `.PosSemidef` instead of `β€` because the LΓΆwner Order on matrices is only defined in lean for matrices with values in `π`.
No AI used.
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
14/0 |
Mathlib/Analysis/InnerProductSpace/GramMatrix.lean |
1 |
10 |
['TJHeeringa', 'github-actions', 'themathqueen'] |
urkud assignee:urkud |
6-26226 6 days ago |
9-30706 9 days ago |
9-57817 9 days |
| 38912 |
yuanyi-350 author:yuanyi-350 |
chore(Algebra/Category/Grp/LeftExactFunctor): remove an erw |
- rewrites `unitIsoAux` by expanding the functorial unit and multiplication maps directly in the `rw` chain
- replaces the final `erw`/manual simplification mix with a `simp only [types_tensorObj_def]` proof step
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
|
8/6 |
Mathlib/Algebra/Category/Grp/LeftExactFunctor.lean |
1 |
1 |
['github-actions'] |
nobody |
6-24984 6 days ago |
6-25161 6 days ago |
6-25140 6 days |
| 38915 |
yuanyi-350 author:yuanyi-350 |
chore(Algebra/Category/ModuleCat/Presheaf/Sheafification): remove an erw |
- rewrites `homEquiv_naturality_left_symm` by expanding the composite passed to `toSheaf_map_sheafificationHomEquiv_symm`
- replaces the `erw` step with a direct `rw`/`simp only [Functor.map_comp]` proof
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
|
3/4 |
Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafification.lean |
1 |
1 |
['github-actions'] |
nobody |
6-24977 6 days ago |
6-25155 6 days ago |
6-25134 6 days |
| 38916 |
yuanyi-350 author:yuanyi-350 |
chore(CategoryTheory/CatCommSq): remove an erw |
- rewrites `hInv_hInv` by using `conv_rhs` with `iso_hom_naturality`
- removes the `rw`/`erw` pair around `Functor.comp_map`
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
|
3/2 |
Mathlib/CategoryTheory/CatCommSq.lean |
1 |
1 |
['github-actions'] |
nobody |
6-24975 6 days ago |
6-25111 6 days ago |
6-25090 6 days |
| 38917 |
yuanyi-350 author:yuanyi-350 |
chore(CategoryTheory/Comma/Basic): remove an erw |
- rewrites the `full_map` proof by pushing `Functor.comp_map` and the naturality equalities into a single `rw`/`simp only` chain
- removes the `erw`-based transport of `Ξ±.naturality_assoc` and `Ξ².naturality`
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
|
5/5 |
Mathlib/CategoryTheory/Comma/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
6-24973 6 days ago |
6-25109 6 days ago |
6-25088 6 days |
| 38832 |
yuanyi-350 author:yuanyi-350 |
refactor(NumberTheory): golf `Mathlib/NumberTheory/FrobeniusNumber` |
- rewrites `frobeniusNumber_pair` to use `Nat.exists_add_mul_eq_of_gcd_dvd_of_mul_pred_le` instead of constructing the witnesses via the Chinese remainder argument
- closes the final witness equality by applying `succ_inj` to the resulting additive decomposition
Extracted from #38144
[](https://gitpod.io/from-referrer/) |
codex
t-number-theory
LLM-generated
maintainer-merge
|
3/12 |
Mathlib/NumberTheory/FrobeniusNumber.lean |
1 |
3 |
['YaelDillies', 'github-actions', 'yuanyi-350'] |
tb65536 assignee:tb65536 |
6-17805 6 days ago |
8-44695 8 days ago |
8-44674 8 days |
| 38127 |
riccardobrasca author:riccardobrasca |
feat: add ClassGroup.extendedHom |
---
[](https://gitpod.io/from-referrer/)
|
file-removed
t-algebra
t-ring-theory
label:t-algebra$ |
110/6 |
Mathlib.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean,Mathlib/NumberTheory/ClassNumber/Finite.lean,Mathlib/NumberTheory/NumberField/CanonicalEmbedding/FundamentalCone.lean,Mathlib/RingTheory/ClassGroup/Basic.lean,Mathlib/RingTheory/ClassGroup/ExtendedHom.lean,Mathlib/RingTheory/FractionalIdeal/Extended.lean,Mathlib/RingTheory/PicardGroup.lean,Mathlib/RingTheory/UniqueFactorizationDomain/ClassGroup.lean |
9 |
17 |
['faenuccio', 'github-actions', 'mathlib-merge-conflicts', 'riccardobrasca'] |
mattrobball assignee:mattrobball |
6-15300 6 days ago |
10-30736 10 days ago |
23-51069 23 days |
| 35402 |
samueloettl author:samueloettl |
feat(Dynamics/BirkhoffSum): birkhoffAverage const |
---
I think this is useful and one of these should be a simp lemma.
I'm not really sure if I got the naming of the theorems correct.
When generalizing to the assumption (n : R) β 0 instead of the special case CharZero R with n β 0 I had to use "open Classical in". I'm a bit unfamiliar with that part so please check if this makes sense. See also https://github.com/leanprover-community/mathlib4/pull/35307#discussion_r2823586252
[](https://gitpod.io/from-referrer/)
|
t-dynamics
new-contributor
|
14/0 |
Mathlib/Dynamics/BirkhoffSum/Average.lean |
1 |
26 |
['Maldooor', 'github-actions', 'lua-vr', 'mcdoll', 'samueloettl'] |
mcdoll assignee:mcdoll |
6-7297 6 days ago |
11-14129 11 days ago |
77-12921 77 days |
| 35753 |
Vilin97 author:Vilin97 |
feat(Topology/Algebra/Order): regular grid helpers and piecewise linear interpolation |
Make API for piecewise linear interpolation on regular grids. I need these to for ODE time-stepping methods, like forward Euler, and later RungeβKutta methods.
Follow-up PR: #35755 (forward Euler method convergence).
I don't know if these numerical analysis ODE-solving methods even belong in mathlib. If someone could advise me on it, I would appreciate it.
---
The initial proof was produced by [Aristotle](https://aristotle.harmonic.fun). The code was iteratively refined (factoring out lemmas, golfing, simplifying proofs) using Claude Code.
- [ ] depends on: #38091 |
t-topology
new-contributor
LLM-generated
maintainer-merge
|
201/0 |
Mathlib.lean,Mathlib/Topology/Algebra/Order/PiecewiseLinear.lean |
2 |
58 |
['Vilin97', 'YanYablonovskiy', 'adomani', 'botbaki-review', 'copilot-pull-request-reviewer', 'dagurtomas', 'eric-wieser', 'github-actions', 'grunweg', 'j-loreaux', 'mathlib-dependent-issues', 'wwylele'] |
j-loreaux assignee:j-loreaux |
5-84800 5 days ago |
8-71900 8 days ago |
41-34758 41 days |
| 37295 |
wwylele author:wwylele |
feat(Analysis/InnerProductSpace): generalized determinant of a rectangle matrix / linear map |
This is the volume factor of a linear map
---
I have encountered the expression `sqrt(det(T' * T))` a few times in various places but it doesn't look like it has a standard name and entry in mathlib, so this adds it.
Zulip thread [#Is there code for X? > (norm of) "determinant" of map between inner product spaces](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/.28norm.20of.29.20.22determinant.22.20of.20map.20between.20inner.20product.20spaces/with/581776873)
One motivation to define this is to state volume formula under transformations. From *Measure theory and fine properties of functions*:
- Lemma 3.1: for linear map $L : \mathbb{R}^n \to \mathbb{R}^m$, we have $\mathcal{H}^n(L(A)) = [ L ] \mathcal{L}^n(A)$. This is proved in this PR at `euclideanHausdorffMeasure_image_eq_normDet_mul_volume`
- Theorem 3.8, for (not necessarily linear) $f : \mathbb{R}^n \to \mathbb{R}^m$ ($n \le m$) and $\mathcal{L}^n$-measurable set $A \subset \mathbb{R}^n$, we have $\int_A J f dx = \int_{\mathbb{R}^m} \mathcal{H}^0(A \cap f\^{-1}\{y\}) d\mathcal{H}^n(y)$, where $J f$ is the `normDet` of the rectangular Jacobian matrix
AI usage disclosure: AI was used in the following parts
- searching for related literature for an appropriate name
- generate draft proofs for some lemma to verify their correctness, though the final code has been completely rewritten by me.
- [ ] depends on: #37918
[](https://gitpod.io/from-referrer/)
|
t-analysis
maintainer-merge
|
480/0 |
Mathlib.lean,Mathlib/Analysis/InnerProductSpace/Adjoint.lean,Mathlib/Analysis/InnerProductSpace/NormDet.lean,docs/references.bib |
4 |
18 |
['copilot-pull-request-reviewer', 'github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'themathqueen', 'wwylele'] |
j-loreaux assignee:j-loreaux |
5-83319 5 days ago |
5-83057 5 days ago |
39-71198 39 days |
| 38002 |
Raph-DG author:Raph-DG |
feat(Topology): Relating irreducible components of a space to codimension one points in non dense subsets |
In this PR we show that the coheight zero points of a sober space (in the specialization order) correspond to the irreducible components. Furthermore, we show that the coheight one points of any non dense subset p of X (in the specialization order on p) have coheight zero in the specialization order on X.
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-topology
|
103/0 |
Mathlib/Order/Hom/Basic.lean,Mathlib/Order/KrullDimension.lean,Mathlib/Order/Minimal.lean,Mathlib/Topology/Inseparable.lean,Mathlib/Topology/Sober.lean |
5 |
3 |
['ADedecker', 'github-actions', 'mathlib-merge-conflicts'] |
urkud assignee:urkud |
5-82728 5 days ago |
5-82765 5 days ago |
22-62017 22 days |
| 38816 |
tb65536 author:tb65536 |
refactor(GroupTheory/Finiteness): make duplicate definitions into abbrevs |
The definitions `Submonoid.FG`, `Group.FG`, and `Subgroup.FG` are all equivalent to `Monoid.FG`, so I've made them into abbrevs. In the future we might even want to consider deprecating all but one to avoid having four ways to write the same thing.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-group-theory
label:t-algebra$ |
140/122 |
Mathlib/Algebra/AffineMonoid/Irreducible.lean,Mathlib/GroupTheory/Finiteness.lean,Mathlib/GroupTheory/MonoidLocalization/Finite.lean,Mathlib/GroupTheory/Schreier.lean,Mathlib/ModelTheory/Arithmetic/Presburger/Semilinear/Basic.lean,Mathlib/ModelTheory/Arithmetic/Presburger/Semilinear/Defs.lean,Mathlib/RingTheory/FiniteType.lean,Mathlib/RingTheory/Finiteness/Defs.lean,Mathlib/RingTheory/Localization/InvSubmonoid.lean |
9 |
5 |
['eric-wieser', 'github-actions', 'j-loreaux', 'tb65536'] |
nobody |
5-67800 5 days ago |
8-82833 8 days ago |
8-82813 8 days |
| 32294 |
jsm28 author:jsm28 |
feat(Geometry/Euclidean/Angle/Incenter): distance from second intersection with circumcircle |
Add the following lemma: given a triangle ABC, suppose an angle bisector from A through the incenter or excenter I meets the circumcircle again at X (including the case of an external bisector at A tangent to the circle, in which case X = A). Then XB = XI (= XC, by applying this lemma again). This is a standard configuration: https://en.wikipedia.org/wiki/Incenter%E2%80%93excenter_lemma
---
- [ ] depends on: #30981
- [ ] depends on: #30982
- [ ] depends on: #32019
- [ ] depends on: #32021
- [ ] depends on: #32023
- [ ] depends on: #32270
- [ ] depends on: #32290
[](https://gitpod.io/from-referrer/)
|
t-euclidean-geometry |
189/0 |
Mathlib/Geometry/Euclidean/Angle/Incenter.lean |
1 |
5 |
['github-actions', 'jsm28', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'peakpoint'] |
eric-wieser assignee:eric-wieser |
5-60482 5 days ago |
43-85136 43 days ago |
43-85905 43 days |
| 37522 |
matthewjasper author:matthewjasper |
chore: adjust Module.Finite instance priority |
Make instances that are rarely going to be helpful lower priority.
Increase the priority of `FiniteDimensional.complexToReal`, because it's more likely correct than the other priority 100 `Module.Finite` instances.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
6/4 |
Mathlib/LinearAlgebra/Complex/FiniteDimensional.lean,Mathlib/LinearAlgebra/Dimension/Free.lean,Mathlib/LinearAlgebra/Dual/Lemmas.lean |
3 |
3 |
['github-actions', 'grunweg', 'leanprover-radar'] |
themathqueen assignee:themathqueen |
5-60478 5 days ago |
38-74258 38 days ago |
38-74237 38 days |
| 37984 |
loefflerd author:loefflerd |
feat: abstract theory of measures |
General foundations of non-archimedean measure theory (intended for applications to Iwasawa algebras)
---
- [x] depends on: #38701 |
t-topology |
458/0 |
Mathlib.lean,Mathlib/NumberTheory/Padics/Measure/Basic.lean,Mathlib/NumberTheory/Padics/Measure/Group.lean,Mathlib/NumberTheory/Padics/Measure/Topology.lean |
4 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
PatrickMassot assignee:PatrickMassot |
5-60476 5 days ago |
5-74866 5 days ago |
5-75573 5 days |
| 38049 |
WilliamCoram author:WilliamCoram |
feat: lemmas towards showing gaussNorm on MvPowerSeries is an absolute value |
We prove lemmas: ``gaussNorm_mul_le`` and ``gaussNorm_le_mul`` which will allow us to show it is an absolute value on Mv restricted power series.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
144/1 |
Mathlib/RingTheory/MvPowerSeries/GaussNorm.lean |
1 |
4 |
['WilliamCoram', 'github-actions'] |
alreadydone assignee:alreadydone |
5-60475 5 days ago |
26-3420 26 days ago |
26-3399 26 days |
| 38098 |
astrainfinita author:astrainfinita |
chore: make `SMul.comp.smul` `implicit_reducible` |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
2/1 |
Mathlib/Algebra/Group/Action/Defs.lean |
1 |
3 |
['astrainfinita', 'github-actions', 'leanprover-radar'] |
themathqueen assignee:themathqueen |
5-60474 5 days ago |
24-50933 24 days ago |
24-50912 24 days |
| 38801 |
TBUGTB author:TBUGTB |
feat(Topology/Order): order topology on WithTop API lemmas |
Upstream lemmas on the order topology on WithTop from the brownian motion project.
Co-authored-by: Kexing Ying
---
[](https://gitpod.io/from-referrer/)
|
t-topology
brownian
new-contributor
|
24/0 |
Mathlib/Order/Filter/AtTopBot/Basic.lean,Mathlib/Topology/Order/WithTop.lean |
2 |
8 |
['TBUGTB', 'github-actions', 'plp127', 'vihdzp'] |
j-loreaux assignee:j-loreaux |
5-60472 5 days ago |
8-28666 8 days ago |
9-13732 9 days |
| 38880 |
yuanyi-350 author:yuanyi-350 |
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Function/LpSpace/Complete` |
- shortens `ae_tendsto_of_cauchy_eLpNorm'` by rewriting the telescoping partial sums in `hx.hasSum.tendsto_sum_nat` directly and concluding with `add_const`, instead of introducing an intermediate eventual `β l`
Extracted from #38104
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-measure-probability
|
4/20 |
Mathlib/MeasureTheory/Function/LpSpace/Complete.lean |
1 |
2 |
['Parcly-Taxel', 'github-actions', 'yuanyi-350'] |
kex-y assignee:kex-y |
5-60469 5 days ago |
7-15268 7 days ago |
7-15247 7 days |
| 38883 |
yuanyi-350 author:yuanyi-350 |
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Function/AEMeasurableSequence` |
- rewrites `iSup` by filtering directly along `aeSeq_eq_fun_ae hf hp`, instead of proving a subset statement about `aeSeqSet` and then using `measure_mono_null`
Extracted from #38104
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-measure-probability
|
2/6 |
Mathlib/MeasureTheory/Function/AEMeasurableSequence.lean |
1 |
2 |
['github-actions', 'yuanyi-350'] |
kex-y assignee:kex-y |
5-60468 5 days ago |
7-14556 7 days ago |
7-14535 7 days |
| 38895 |
emlis42 author:emlis42 |
chore(Algebra/ContinuedFractions): golf |
This PR simplifies some proofs in `Algebra/ContinuedFractions` |
t-algebra
new-contributor
label:t-algebra$ |
39/63 |
Mathlib/Algebra/ContinuedFractions/Computation/ApproximationCorollaries.lean,Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean,Mathlib/Algebra/ContinuedFractions/Computation/CorrectnessTerminating.lean,Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean,Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean,Mathlib/Algebra/ContinuedFractions/ContinuantsRecurrence.lean,Mathlib/Algebra/ContinuedFractions/ConvergentsEquiv.lean |
7 |
2 |
['github-actions'] |
nobody |
5-58986 5 days ago |
5-64197 5 days ago |
6-52479 6 days |
| 37714 |
mortarsanjaya author:mortarsanjaya |
feat(Algebra/Order/Floor/Defs): `Nat.cast` is strictly monotone in `FloorSemiring` and `FloorRing` |
As title says, and without the `IsOrderedRing` assumption.
Other than that, I removed the `IsOrderedRing` assumption from pretty much all the lemmas in `Algebra/Order/Floor/Defs` that could possibly have this assumption removed, and reduced some `IsStrictOrderedRing` assumptions to `IsOrderedRing` + `Nontrivial`.
Due to strict monotonicity, we can also provide `CharZero` instance on `FloorSemiring` and `FloorRing`. Thus we can remove the `NeZero` and `Nontrivial` instances on them.
The changes on `/Ring` and `/Semiring` are trivial changes due to some lemmas not requiring an `IsOrderedRing` instance anymore.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
96/39 |
Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean,Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean,Mathlib/Algebra/Order/Floor/Defs.lean,Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/Algebra/Order/Floor/Semiring.lean |
5 |
24 |
['dagurtomas', 'eric-wieser', 'github-actions', 'mathlib-bors', 'mortarsanjaya'] |
eric-wieser assignee:eric-wieser |
5-44780 5 days ago |
9-20551 9 days ago |
33-20020 33 days |
| 37062 |
tannerduve author:tannerduve |
feat(Computability): Turing join and semilattice structure on Turing degrees |
## Summary
- Add `Partrec.kronecker` (equality test) and `Partrec.join` (disjoint union by parity) in `Partrec.lean`
- Prove `Nat.RecursiveIn` is closed under computable conditionals (`cond_const`, `cond`)
- Show each component reduces to the join (`left_le_join`, `right_le_join`) and the join is the least upper bound (`join_le`)
- Establish `SemilatticeSup` instance on `TuringDegree` |
t-computability
new-contributor
large-import
|
311/15 |
Mathlib/Computability/Partrec.lean,Mathlib/Computability/RecursiveIn.lean,Mathlib/Computability/TuringDegree.lean |
3 |
7 |
['Komyyy', 'github-actions', 'mathlib-merge-conflicts', 'tannerduve'] |
Komyyy assignee:Komyyy |
5-44688 5 days ago |
27-9682 27 days ago |
27-71955 27 days |
| 38906 |
lua-vr author:lua-vr |
feat(ConditionallyCompleteLattice/Indexed): add binary versions of lemmas |
Add binary versions of some of the lemmas. Those are useful when the domain is indexed over the members of a set.
From the Carleson project.
---
[](https://gitpod.io/from-referrer/)
|
t-order
carleson
|
22/5 |
Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean |
1 |
12 |
['JovanGerb', 'SnirBroshi', 'github-actions', 'grunweg', 'lua-vr'] |
nobody |
5-39980 5 days ago |
6-12305 6 days ago |
6-23131 6 days |
| 36815 |
EtienneC30 author:EtienneC30 |
feat: a measurable space structure on the type of continuous maps |
Endow the type `C(X, Y)` of continuous maps from `X` to `Y` with the Borel sigma-algebra coming from the compact-open topology and show that, under some assumptions on `X` and `Y`, this is equal to the restriction of the product sigma-algebra over `X β Y`.
Provide a measurable equivalence between `{f : X β Y // Continuous f}` and `C(X, Y)`.
Co-authored-by: @RemyDegenne
---
[](https://gitpod.io/from-referrer/)
|
t-topology
brownian
t-measure-probability
|
256/0 |
Mathlib.lean,Mathlib/MeasureTheory/Constructions/BorelSpace/ContinuousMap.lean,Mathlib/Topology/Bases.lean,Mathlib/Topology/Basic.lean,Mathlib/Topology/Compactness/Compact.lean,Mathlib/Topology/Separation/Regular.lean |
6 |
27 |
['ADedecker', 'EtienneC30', 'felixpernegger', 'github-actions', 'mathlib-merge-conflicts'] |
nobody |
5-33983 5 days ago |
5-34023 5 days ago |
45-29352 45 days |
| 38951 |
thomaskwaring author:thomaskwaring |
feat(Order/PrimeSeparator): remove unnecessary hypotheses |
In `mem_ideal_sup_principal`, boundedness and distributivity were unused, and in `prime_ideal_of_disjoint_filter_ideal`, boundedness was only used to produce an element of the filter `F`, which is already nonempty by definition.
---
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
|
9/19 |
Mathlib/Order/PrimeSeparator.lean |
1 |
2 |
['github-actions'] |
nobody |
5-32561 5 days ago |
5-32648 5 days ago |
5-32627 5 days |
| 38866 |
j-mayoral author:j-mayoral |
feat(PresentedGroup): free-product of presentations is isomorphic to the presentation of the union (over the disjoint union of generators) |
---
Adds the theorem that the free product of presentations is isomorphic to the presentation on the disjoint union of the generators with the union of the relations. That is,
`<Ξ± | Rβ> * <Ξ² | Rβ> β* <Ξ± β Ξ² | iΞ±(Rβ) βͺ iΞ²(Rβ)>`.
Don't know if the current file is the best to add this result.
I have the feeling this could be made more elegant, avoiding the need to state lemmas explicitly about the relations of the canonical maps, by instead working with relations on the free product of free groups and then studying how quotienting by relations behaves in terms of isomorphisms. However, that approach is less straightforward, so I prefer to keep the current PR as is and discuss possible refinements there to get better feedback (Iβm new and still learning).
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-group-theory
large-import
|
60/0 |
Mathlib/GroupTheory/PresentedGroup.lean |
1 |
6 |
['github-actions', 'j-mayoral', 'kbuzzard'] |
tb65536 assignee:tb65536 |
5-27514 5 days ago |
6-44778 6 days ago |
7-21177 7 days |
| 31222 |
Thmoas-Guan author:Thmoas-Guan |
feat(Algebra): `Hom` commute with flat base change |
In this PR, we proved `Hom_S (M \tensor S, N \tensor S)` is base change of `Hom_R (M, N)` with respect to `LinearMap.baseChangeHom`.
Co-authored-by: Wang Jingting
---
- [x] depends on: #31218
- [x] depends on: #31219
- [x] depends on: #31696
[](https://gitpod.io/from-referrer/)
|
large-import
t-algebra
label:t-algebra$ |
49/0 |
Mathlib/Algebra/Module/FinitePresentation.lean |
1 |
5 |
['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] |
nobody |
5-19688 5 days ago |
9-69739 9 days ago |
9-69984 9 days |
| 37975 |
Thmoas-Guan author:Thmoas-Guan |
feat(RingTheory): AdicCompletion of local ring is local |
In this PR, we proved that AdicCompletion of local ring wrt the maximal ideal is local ring with maximal ideal equal to the map of the original maximal ideal.
Also, removing some old junk produced by myself.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
large-import
|
173/5 |
Mathlib/RingTheory/AdicCompletion/LocalRing.lean |
1 |
15 |
['BryceT233', 'Thmoas-Guan', 'github-actions'] |
alreadydone assignee:alreadydone |
5-19198 5 days ago |
27-28360 27 days ago |
27-40133 27 days |
| 38925 |
yuanyi-350 author:yuanyi-350 |
chore(ModelTheory/ElementaryMaps): remove an erw |
- rewrites `map_boundedFormula` by avoiding the `iff_eq_eq` detour and using the restricted free-variable realization lemma directly
- shortens `isElementary_of_exists` by replacing the `map_rel` `erw` with explicit `simp_rw` and `rw`
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-logic
maintainer-merge
|
9/7 |
Mathlib/ModelTheory/ElementaryMaps.lean |
1 |
3 |
['github-actions', 'j-loreaux', 'loefflerd'] |
nobody |
5-15968 5 days ago |
6-25093 6 days ago |
6-25072 6 days |
| 38833 |
yuanyi-350 author:yuanyi-350 |
refactor(NumberTheory): golf `Mathlib/NumberTheory/EllipticDivisibilitySequence` |
- rewrites `complEDSβ_mul_b` by evaluating the parity split directly with `simp_rw` and `split_ifs`, removing the separate `Int.negInduction` proof
Extracted from #38144
[](https://gitpod.io/from-referrer/) |
codex
t-number-theory
LLM-generated
maintainer-merge
|
3/8 |
Mathlib/NumberTheory/EllipticDivisibilitySequence.lean |
1 |
3 |
['github-actions', 'loefflerd', 'yuanyi-350'] |
loefflerd assignee:loefflerd |
5-11407 5 days ago |
8-44693 8 days ago |
8-44672 8 days |
| 36954 |
FMLJohn author:FMLJohn |
feat(Topology/ClosedBases): `TopologicalSpace.IsClosedBasis` and `TopologicalSpace.IsClosedSubbasis s` |
In this pull request, I have defined closed bases and closed subbases of topologies, and proved some basic properties of them.
## Main definitions
* `TopologicalSpace.IsClosedBasis s`: A closed basis of a topological space `Ξ±` is a collection of closed sets `s : Set (Set Ξ±)` such that every closed subset of `Ξ±` can be written as an intersection of elements of `s`.
---
[](https://gitpod.io/from-referrer/) |
t-topology |
117/0 |
Mathlib.lean,Mathlib/Topology/Bases.lean,Mathlib/Topology/ClosedBases.lean |
3 |
19 |
['github-actions', 'scholzhannah'] |
PatrickMassot assignee:PatrickMassot |
5-10298 5 days ago |
17-21154 17 days ago |
46-23459 46 days |
| 38967 |
abeldonate author:abeldonate |
doc(Algebra/Module/Projective): remove TODOs |
Remove the TODO list, since the have already been implemented on an instance. |
t-algebra
new-contributor
label:t-algebra$ |
0/7 |
Mathlib/Algebra/Module/Projective.lean |
1 |
3 |
['github-actions'] |
nobody |
5-7350 5 days ago |
5-9020 5 days ago |
5-8999 5 days |
| 33958 |
chrisflav author:chrisflav |
feat(AlgebraicGeometry): the small affine Γ©tale site |
We define the small affine Γ©tale site of a scheme `S`. The underlying category is the category of commutative rings `R` equipped with an Γ©tale structure morphism `Spec R βΆ S`. This category is essentially small (in contrast to the full small Γ©tale site).
We show that it has the same category of sheaves as the small Γ©tale site of `S` and deduce from this that Γ©tale sheafification of presheaves with values in `Type u` exists and that the category of sheaves on the Γ©tale site with values in a Grothendieck abelian category is Grothendieck abelian.
In particular, this allows us to define the Γ©tale cohomology groups of a sheaf with values in `Ab.{u}` to be in `Type u`.
From Proetale.
Co-authored-by: JoΓ«l Riou
---
- [x] depends on: #35711
- [x] depends on: #35240
- [x] depends on: #34976
- [x] depends on: #33957
- [x] depends on: #38820
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry |
261/1 |
Mathlib.lean,Mathlib/AlgebraicGeometry/LimitsOver.lean,Mathlib/AlgebraicGeometry/Morphisms/Etale.lean,Mathlib/AlgebraicGeometry/Sites/Affine.lean,Mathlib/AlgebraicGeometry/Sites/AffineEtale.lean,Mathlib/CategoryTheory/ObjectProperty/Small.lean |
6 |
20 |
['chrisflav', 'github-actions', 'joelriou', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'robin-carlier'] |
nobody |
5-1933 5 days ago |
5-1933 5 days ago |
8-65189 8 days |
| 38786 |
martinwintermath author:martinwintermath |
feat(Data/SetLike): add `IsConcreteNeg` |
Add file `SetLike/Pointwise.lean` with main definition `class IsConcreteNeg` which expresses that a given `Neg` on a `SetLike` objects is compatible with the injection into sets.
This is in analogy to `SetLike.IsConcreteLE`.
For demonstration:
- we rework negation on `Submodule` to make use of `IsConcreteNeg`
- we provide `Neg` in `AffineSubspace`
---
[](https://gitpod.io/from-referrer/)
|
t-convex-geometry |
185/20 |
Mathlib.lean,Mathlib/Algebra/Module/Submodule/Pointwise.lean,Mathlib/Data/SetLike/Pointwise.lean,Mathlib/Geometry/Convex/Cone/Pointed.lean,Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Pointwise.lean,Mathlib/LinearAlgebra/Span/Basic.lean |
6 |
2 |
['github-actions', 'mathlib-bors'] |
nobody |
4-84055 4 days ago |
4-83986 4 days ago |
4-84259 4 days |
| 34742 |
Brian-Nugent author:Brian-Nugent |
feat(SheafCohomology): add API for Sheaf Cohomology |
Defines `H.equivβ`, the additive equivalence between `H F 0` and `F.obj.obj (op T)` when the category has a terminal object `T`.
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-category-theory
|
99/23 |
Mathlib/Algebra/Category/Grp/ForgetCorepresentable.lean,Mathlib/CategoryTheory/Sites/Abelian.lean,Mathlib/CategoryTheory/Sites/SheafCohomology/Basic.lean |
3 |
53 |
['Brian-Nugent', 'adamtopaz', 'dagurtomas', 'github-actions', 'joelriou', 'joneugster', 'mathlib-merge-conflicts', 'robin-carlier'] |
robin-carlier assignee:robin-carlier |
4-83325 4 days ago |
4-83429 4 days ago |
85-71415 85 days |
| 35672 |
dennj author:dennj |
feat(RingTheory/Polynomial/Cyclotomic): vanishing sums and fiber equidistribution at primitive roots |
## Summary
Building on `sum_eq_zero_iff_forall_eq` from #34592, this PR adds:
- cyclotomic_dvd_of_aeval_eq_zero, exists_int_smul_cyclotomic_of_natDegree_le_totient β integer polynomials vanishing at a primitive n-th root are divisible by cyclotomic n β€, and (for degree β€ Ο(n)) integer multiples of it.
- sum_eq_zero_iff_forall_eq and its β€ / ZMod p variants β vanishing iff all coefficients equal.
- sum_fiber_eq_sum_fiber_of_sum_weighted_pow_eq_zero, card_fiber_eq_card_div_of_sum_pow_eq_zero β fiber equidistribution.
- cyclotomic_prime_coeff β the formula (cyclotomic p R).coeff i = if i < p then 1 else 0, generalising existing coeff_zero/coeff_one lemmas.
-
References: [deLauneyFlannery2011, Lemma 2.8.5] (underlying β/β fact) and [armario2024, Lemma 7 and Theorem 3] (β€ statement and the fiber-counting application).
Theorems imported from: https://github.com/Latinum-Agentic-Commerce/AlgebraicDesignTheory
Human made PR with LLM used for documentation and proof golfing |
t-ring-theory
new-contributor
|
128/2 |
Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean,Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean,docs/references.bib |
3 |
6 |
['dennj', 'github-actions', 'grunweg', 'ocfnash'] |
ocfnash assignee:ocfnash |
4-78779 4 days ago |
4-78779 4 days ago |
23-6468 23 days |
| 36501 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(RingTheory/GradedAlgebra/Homogeneous/RingQuot): graded structure on the quotient of a graded ring by a homogeneous ideal |
Define the graded structure on the quotient of a graded ring by a homogeneous ideal
Co-authored with: @mariainesdff
(Possible TODO:
- Maybe define the graded structure on the quotient of a graded module by a homogeneous submodule.
- There is also an issue of working with ring congruences rather than with ideals. )
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
551/19 |
Mathlib.lean,Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean,Mathlib/Algebra/DirectSum/Decomposition.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean,Mathlib/Data/DFinsupp/BigOperators.lean,Mathlib/RingTheory/GradedAlgebra/Basic.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/Ideal.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/RingQuot.lean,Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean,Mathlib/RingTheory/Ideal/Span.lean |
11 |
131 |
['AntoineChambert-Loir', 'chrisflav', 'eric-wieser', 'github-actions', 'robin-carlier'] |
eric-wieser, ocfnash, robin-carlier assignee:eric-wieser assignee:ocfnash assignee:robin-carlier |
4-74580 4 days ago |
10-81439 10 days ago |
34-78503 34 days |
| 38974 |
Brian-Nugent author:Brian-Nugent |
chore: fix documentation of `LocallyQuasiFinite` |
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry
easy
|
6/5 |
Mathlib/AlgebraicGeometry/Morphisms/QuasiFinite.lean |
1 |
1 |
['github-actions'] |
nobody |
4-71236 4 days ago |
4-72311 4 days ago |
4-72290 4 days |
| 38667 |
SnirBroshi author:SnirBroshi |
feat(Order/Hom/Basic): equivalences of `Order{Hom/Embedding/Iso}` |
- `OrderHom`s are equivalent to `RelHom`s of `LE` (unlike `OrderEmbedding`/`OrderIso` they aren't defined using it)
- Congruence equivs for `OrderEmbedding`/`OrderIso` when the two sides are order-isomorphic. This already exists for `OrderHom`.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
55/1 |
Mathlib/Order/Hom/Basic.lean |
1 |
3 |
['SnirBroshi', 'dagurtomas', 'github-actions'] |
nobody |
4-69611 4 days ago |
4-69611 4 days ago |
11-67111 11 days |
| 38975 |
ldct author:ldct |
feat(EReal): Add equations for EReal |
Add equational lemmas for the simplifier to simplify `[natural number literal] + β€` in `EReal`, and add a test file in `MathlibTest/EReal.lean`.
Without these lemmas, `simp` fails to close many of the goals in `MathlibTest/EReal.lean`. I believe simp should close all of them.
An alternative is to add something like this as a simp lemma, to allow `top_add_of_ne_bot` to make progress, but it's not clear to me that this is desirable as a simp lemma, since it's not equational
```
example {n : β} [n.AtLeastTwo] : (ofNat(n) : EReal) β β€ := by
exact Ne.symm (not_eq_of_beq_eq_false rfl)
```
---
[](https://gitpod.io/from-referrer/)
|
t-data |
32/0 |
Mathlib/Data/EReal/Operations.lean,MathlibTest/EReal.lean |
2 |
2 |
['github-actions', 'vihdzp'] |
nobody |
4-65378 4 days ago |
4-68366 4 days ago |
4-68345 4 days |
| 37712 |
eric-wieser author:eric-wieser |
feat: add a `LawfulXor` typeclass |
I've put this in mathlib since it can use `Function.Involutive`; it can of course be upstreamed at a later date.
Having this generalization encourages downstream code in cslib to be expressed in terms of involutive functions, rather than just `^^^` on bitvectors.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
130/0 |
Mathlib.lean,Mathlib/Data/LawfulXor.lean |
2 |
6 |
['eric-wieser', 'github-actions', 'linesthatinterlace'] |
nobody |
4-60738 4 days ago |
4-60810 4 days ago |
11-53381 11 days |
| 34713 |
dennj author:dennj |
feat(Probability/Markov): stationary distributions for stochastic matrices |
This PR proves that every row-stochastic matrix on a finite nonempty
state space has a stationary distribution in the standard simplex.
Main additions to `Mathlib/Probability/Markov/Stationary.lean`:
- `IsStationary`: A distribution ΞΌ is stationary for matrix P if ΞΌ α΅₯* P = ΞΌ
- `cesaroAverage`: CesΓ ro average of iterates of a vector under a matrix
- `Matrix.rowStochastic.exists_stationary_distribution`: existence theorem
The proof uses CesΓ ro averaging: start with uniform distribution, form
averages, extract convergent subsequence by compactness, show limit is
stationary via LΒΉ non-expansiveness.
Also adds `vecMul_mem_stdSimplex` to `Stochastic.lean`: multiplying a
probability vector by a row-stochastic matrix preserves simplex membership.
This is human-made PR with AI help in golfing proof and documenting the code. |
new-contributor
t-measure-probability
|
166/0 |
Mathlib.lean,Mathlib/LinearAlgebra/Matrix/Stochastic.lean,Mathlib/Probability/Markov/Stationary.lean |
3 |
16 |
['dennj', 'dupuisf', 'github-actions', 'grunweg', 'j-loreaux', 'mathlib-merge-conflicts', 'riccardobrasca'] |
EtienneC30 assignee:EtienneC30 |
4-60498 4 days ago |
13-68099 13 days ago |
24-14691 24 days |
| 37584 |
kennethgoodman author:kennethgoodman |
feat(Data/Nat/Fib): formalize LamΓ©'s theorem |
## Summary
Formalize [LamΓ©'s theorem](https://en.wikipedia.org/wiki/Lam%C3%A9%27s_theorem) (1844), the founding result of computational complexity theory.
**LamΓ©'s Theorem:** If the Euclidean algorithm on inputs `(a, b)` with `b β€ a` takes `n + 1` division steps, then `b β₯ fib(n + 1)` and `a β₯ fib(n + 2)`.
### New definitions
- `Nat.euclidSteps`: counts the number of division steps in the Euclidean algorithm on natural number inputs.
### New theorems
- `Nat.fib_le_of_euclidSteps`: the main LamΓ© bound β Fibonacci lower bound on inputs given a step count.
- `Nat.euclidSteps_le_of_lt_fib`: the contrapositive β step count upper bound given a Fibonacci bound on the smaller input.
- `Nat.add_mod_le`: helper lemma that `b + a % b β€ a` when `b β€ a` and `0 < b`.
### Proof strategy
Induction on `n`, tracking both elements of the pair. The key insight is that each Euclidean step replaces `(a, b)` with `(b, a % b)`, and since `a β₯ b + a % b` (because `a / b β₯ 1`), the Fibonacci recurrence `fib(n+3) = fib(n+2) + fib(n+1)` matches the structure of the algorithm.
### References
- Gabriel LamΓ©, *Note sur la limite du nombre des divisions dans la recherche du plus grand commun diviseur entre deux nombres entiers*, Comptes rendus de l'AcadΓ©mie des sciences, 1844.
---
### AI usage disclosure
Per the [Mathlib AI guidelines](https://leanprover-community.github.io/contribute/index.html#use-of-ai): Claude Code (Claude Opus 4.6) was used to assist with writing the Lean 4 proof code, fixing tactic errors, and drafting this PR description. The mathematical proof (induction on step count, tracking both pair elements through the Fibonacci recurrence) was designed by hand and verified on paper before formalization. I have reviewed and understand every line of the resulting Lean code and can explain all proof steps.
---
- [x] builds cleanly (`lake build Mathlib.Data.Nat.Fib.Lame`)
- [x] no `sorry`
- [x] lines β€ 100 characters, no trailing whitespace
- [x] `autoImplicit false`
- [x] docstrings on all public declarations |
new-contributor
LLM-generated
t-data
|
121/0 |
Mathlib.lean,Mathlib/Data/Nat/Basic.lean,Mathlib/Data/Nat/Fib/Basic.lean,Mathlib/Data/Nat/Fib/Lame.lean,docs/1000.yaml |
5 |
24 |
['euprunin', 'github-actions', 'kennethgoodman', 'vihdzp', 'wwylele'] |
TwoFX assignee:TwoFX |
4-60496 4 days ago |
29-17697 29 days ago |
36-60041 36 days |
| 38052 |
WenrongZou author:WenrongZou |
feat(FormalGroup): `F(X,0)=X` and `F(0,X)=X` |
In this PR, I prove that given a formal group law `F`, then `F(X,0) = X` and `F(0,X) = X`. And modify the definition of `FormalGroup.Point` to be a subtype. And prove that this subtype is a `AddZeroClass`. Eventually we will prove that this is a `AddGroup`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
257/33 |
Mathlib/RingTheory/FormalGroup/Basic.lean,Mathlib/RingTheory/MvPowerSeries/Substitution.lean,Mathlib/RingTheory/PowerSeries/Basic.lean,Mathlib/RingTheory/PowerSeries/Evaluation.lean,Mathlib/RingTheory/PowerSeries/Substitution.lean |
5 |
17 |
['WenrongZou', 'eric-wieser', 'github-actions', 'mariainesdff'] |
mattrobball assignee:mattrobball |
4-60492 4 days ago |
7-73481 7 days ago |
25-71913 25 days |
| 38231 |
NoneMore author:NoneMore |
feat(ModelTheory/Definablity): add syntax-to-definability bridge lemmas |
Add bridge lemmas from syntax to definability and refactor downstream proofs to use them.
---
[](https://gitpod.io/from-referrer/) |
t-logic |
88/56 |
Mathlib/ModelTheory/Definability.lean,Mathlib/ModelTheory/ElementarySubstructures.lean |
2 |
1 |
['github-actions'] |
fpvandoorn assignee:fpvandoorn |
4-60491 4 days ago |
21-45865 21 days ago |
21-45844 21 days |
| 38778 |
felixpernegger author:felixpernegger |
feat(Topology/EMetricSpace): instances of weak extended metric spaces |
Continuation of #38105.
In particular, this makes `ENNReal` and `EReal` weak extended metric spaces. After this PR one can probably generalise various results/definition which use `(Pseudo)EMetricSpace` to use `Weak(Pseudo)EMetricSpace` (so that they in particular also hold for `ENNReal` and `EReal`) |
t-topology |
247/0 |
Mathlib.lean,Mathlib/Topology/EMetricSpace/Weak.lean |
2 |
1 |
['github-actions'] |
PatrickMassot assignee:PatrickMassot |
4-60486 4 days ago |
5-58390 5 days ago |
5-59323 5 days |
| 38815 |
dagurtomas author:dagurtomas |
feat(Tactic/CategoryTheory): extend `@[to_app]` to natural transformations |
This extends the `@[to_app]` attribute so it also generates componentwise lemmas from equalities of natural transformations between functors, while preserving the existing bicategory behavior. It also ensures generated component lemmas remain usable by dsimp when they are definitionally true. |
t-category-theory
LLM-generated
t-meta
|
148/22 |
Mathlib/Tactic/CategoryTheory/ToApp.lean,Mathlib/Util/AddRelatedDecl.lean,MathlibTest/CategoryTheory/ToApp.lean |
3 |
1 |
['github-actions'] |
kim-em assignee:kim-em |
4-60485 4 days ago |
9-280 9 days ago |
9-313 9 days |
| 37707 |
MavenRain author:MavenRain |
feat(Combinatorics/SimpleGraph): add IsMaximalClique/IsMaximalIndepSet, refactor IsMaximum* to MaximalFor |
Addresses #34962
|
new-contributor
t-combinatorics
|
44/31 |
Mathlib/Combinatorics/SimpleGraph/Clique.lean |
1 |
4 |
['MavenRain', 'SnirBroshi', 'github-actions'] |
nobody |
4-53461 4 days ago |
4-54547 4 days ago |
4-56166 4 days |
| 38009 |
CBirkbeck author:CBirkbeck |
feat(RingTheory/Valuation): define the valuation spectrum and its topology |
## Summary
Define the valuation spectrum `Spv A` of a commutative ring and equip it with the topology generated by basic open sets, following Wedhorn's *Adic Spaces*. Also define the pullback (`comap`) of a `ValuativeRel` along a ring homomorphism. This is preparation for later defining adic spaces.
Note the code was generated by claude code, but I have cleaned up and pre-reviewed the work.
|
t-ring-theory
LLM-generated
|
362/0 |
Mathlib.lean,Mathlib/RingTheory/Valuation/ValuationSpectrum.lean,Mathlib/RingTheory/Valuation/ValuativeRel/Comap.lean |
3 |
40 |
['CBirkbeck', 'adamtopaz', 'chrisflav', 'dagurtomas', 'faenuccio', 'github-actions', 'jjdishere', 'riccardobrasca'] |
riccardobrasca assignee:riccardobrasca |
4-39622 4 days ago |
26-21539 26 days ago |
26-21671 26 days |
| 36785 |
hommmmm author:hommmmm |
feat(RingTheory/Localization): Nagata's criterion for primality in localization away |
## Summary
- Add `dvd_of_mem_span_singleton_localization`: if `p` is prime and `p β€ x`, then
membership in the span of the image of `x` in `R[1/p]` implies divisibility by `x`.
- Add `prime_of_prime_in_localization` (Nagata's criterion): if `p` is prime, `x` is
irreducible, and the image of `x` in `R[1/p]` is prime, then `x` is prime.
## References
- [Stacks Project, Tag 0AFU](https://stacks.math.columbia.edu/tag/0afu)
## AI Disclosure
This code is written without AI, then uses Claude Code with cameronfreer's [Lean4-skills](https://github.com/cameronfreer/lean4-skills) (specifically, the `review`, `refactor`, and `golf` workflow) for style changes, refactoring and golfing.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
50/0 |
Mathlib/RingTheory/Localization/Away/Basic.lean |
1 |
8 |
['chrisflav', 'github-actions', 'hommmmm'] |
chrisflav assignee:chrisflav |
4-38692 4 days ago |
4-38692 4 days ago |
27-22812 27 days |
| 36739 |
mbkybky author:mbkybky |
feat(RingTheory): UFD criteria via height `1` prime ideals and localization |
We prove the following UFD criteria via height `1` prime ideals and localization:
1. Let `R` be a Noetherian domain. Then `R` is a UFD if and only if every height `1` prime ideal is principal.
2. Let `R` be a Noetherian domain, `x β R` be a prime element. If `Rβ` is a UFD, then `R` is also a UFD.
- [x] depends on: #38933
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
193/2 |
Mathlib.lean,Mathlib/RingTheory/Ideal/Height.lean,Mathlib/RingTheory/Ideal/Maximal.lean,Mathlib/RingTheory/Ideal/UFD.lean,Mathlib/RingTheory/Localization/Away/Basic.lean,Mathlib/RingTheory/UniqueFactorizationDomain/Localization.lean |
6 |
20 |
['chrisflav', 'github-actions', 'mathlib-dependent-issues', 'mbkybky', 'tb65536'] |
chrisflav assignee:chrisflav |
4-37163 4 days ago |
5-38412 5 days ago |
53-38656 53 days |
| 38047 |
mbkybky author:mbkybky |
feat(RingTheory/Finiteness/Ideal): `I` is finitely generated if `f(I)` and `I β© ker(f)` are finitely generated |
Let `f : R β+* S` be a surjective ring homomorphism, and let `I` be an ideal of `R`. If `f(I)` and `I β© ker(f)` are finitely generated ideals, then `I` is also finitely generated.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
13/3 |
Mathlib/RingTheory/Finiteness/Ideal.lean |
1 |
1 |
['github-actions'] |
mattrobball assignee:mattrobball |
4-37157 4 days ago |
25-49562 25 days ago |
25-50702 25 days |
| 38950 |
smmercuri author:smmercuri |
chore(Algebra): `coe_algHom` -> `coe_toAlgHom` |
---
There are also instances of `coe_ringHom`, `coe_linearMap` etc which I can fix in follow-up PRs
[](https://gitpod.io/from-referrer/)
|
|
78/64 |
Mathlib/Algebra/Algebra/Equiv.lean,Mathlib/Algebra/Algebra/Spectrum/Basic.lean,Mathlib/Algebra/Algebra/Subalgebra/Centralizer.lean,Mathlib/Algebra/Azumaya/Basic.lean,Mathlib/Algebra/MvPolynomial/Equiv.lean,Mathlib/AlgebraicGeometry/AffineSpace.lean,Mathlib/Analysis/CStarAlgebra/GelfandDuality.lean,Mathlib/FieldTheory/Extension.lean,Mathlib/FieldTheory/Galois/Basic.lean,Mathlib/FieldTheory/Isaacs.lean,Mathlib/FieldTheory/KummerExtension.lean,Mathlib/FieldTheory/LinearDisjoint.lean,Mathlib/FieldTheory/Minpoly/Field.lean,Mathlib/FieldTheory/SeparableDegree.lean,Mathlib/FieldTheory/SeparablyGenerated.lean,Mathlib/LinearAlgebra/Charpoly/Basic.lean,Mathlib/LinearAlgebra/TensorProduct/Subalgebra.lean,Mathlib/NumberTheory/Cyclotomic/Gal.lean,Mathlib/RingTheory/Algebraic/MvPolynomial.lean,Mathlib/RingTheory/Bialgebra/Equiv.lean,Mathlib/RingTheory/Bialgebra/Hom.lean,Mathlib/RingTheory/DividedPowerAlgebra/Init.lean,Mathlib/RingTheory/Extension/Presentation/Basic.lean,Mathlib/RingTheory/Extension/Presentation/Core.lean,Mathlib/RingTheory/GradedAlgebra/AlgHom.lean,Mathlib/RingTheory/GradedAlgebra/TensorProduct.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/MvPolynomial/Symmetric/FundamentalTheorem.lean,Mathlib/RingTheory/NoetherNormalization.lean,Mathlib/RingTheory/Polynomial/Cyclotomic/Factorization.lean,Mathlib/RingTheory/Smooth/Basic.lean,Mathlib/RingTheory/Smooth/IntegralClosure.lean,Mathlib/RingTheory/TensorProduct/Maps.lean |
33 |
2 |
['github-actions'] |
nobody |
4-34046 4 days ago |
5-30570 5 days ago |
5-32384 5 days |
| 38628 |
tautschnig author:tautschnig |
feat(Data/ZMod/Basic): unit characterization for ZMod (p ^ d) |
Add two lemmas characterizing units in `ZMod (p ^ d)` for a prime `p`:
* `ZMod.isUnit_natCast_of_not_dvd_pow`: a natural number not divisible by `p` is a unit in `ZMod (p ^ d)`.
* `ZMod.prime_natCast_not_isUnit_pow`: the prime `p` is not a unit in `ZMod (p ^ d)` when `d β₯ 1`.
These complement the existing `isUnit_prime_iff_not_dvd` (which characterizes when a *prime* is a unit in `ZMod n`) by characterizing when an *arbitrary* natural number is a unit in `ZMod (p ^ d)`.
**Motivation.** Arithmetic verification over fixed-width bitvectors works in `ZMod (2 ^ d)`. A GrΓΆbner basis solver over this ring needs to know which constants are invertible: odd constants are units (enabling algebraic simplification), while even constants are not (requiring fallback to SAT). These lemmas formalize that characterization for any prime, not just 2.
Further work related to GrΓΆbner basis will be published once #29203 (and, before that, #34873) have been merged.
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
12/0 |
Mathlib/Data/ZMod/Basic.lean |
1 |
4 |
['dagurtomas', 'github-actions'] |
nobody |
4-33818 4 days ago |
12-24619 12 days ago |
12-24598 12 days |
| 38557 |
SnirBroshi author:SnirBroshi |
feat(Order/Monotone/Defs): weaken `Preorder` to `LE`/`LT` |
`Monotone`/`Antitone`/`MonotoneOn`/`AntitoneOn` can use any `LE`,
and `StrictMono`/`StrictAnti`/`StrictMonoOn`/`StrictAntiOn` can use any `LT`.
This makes it necessary to add some explicit type params (e.g. `(Ξ± := Ξ±)`) in some places that use monotone-related theorems (e.g. `Function.monotone_eval`).
---
Currently `OrderEmbedding` and `OrderIso` can use `LE` but `OrderHom` requires `Preorder` because it's defined using `Monotone`. Generalizing `Monotone` and friends will let us fix this oddity. This follows other basic definitions such as `IsMax`/`CovBy`.
[](https://gitpod.io/from-referrer/)
|
t-order |
21/15 |
Mathlib/Analysis/BoxIntegral/Box/Basic.lean,Mathlib/Data/Finsupp/Lex.lean,Mathlib/Data/Finsupp/MonomialOrder/DegLex.lean,Mathlib/Order/Interval/Lex.lean,Mathlib/Order/Monotone/Defs.lean,Mathlib/RingTheory/MvPowerSeries/Trunc.lean,Mathlib/Topology/Order/MonotoneConvergence.lean |
7 |
2 |
['JovanGerb', 'github-actions'] |
nobody |
4-31808 4 days ago |
13-61809 13 days ago |
13-64619 13 days |
| 38483 |
jessealama author:jessealama |
feat(Algebra/BigOperators): add `Antiperiodic.sum_Ico_shift` |
Three lemmas about `Finset` sums of `Function.Antiperiodic` functions: `sum_map_add_right` says that for `f` antiperiodic with antiperiod `c`, summing `f` over a `Finset` shifted by `c` (via `addRightEmbedding c`) negates the sum over the original; `sum_Ico_shift` is the half-open-interval specialization, immediate via `Finset.map_add_right_Ico`; and `sum_Ico_mul_add_sum_Ico_mul_shift_eq_zero` is a bilinear cancellation variant. Spun off from #29713 (Euler-PoincarΓ© formula), where the bilinear form is used. |
t-algebra label:t-algebra$ |
63/0 |
Mathlib.lean,Mathlib/Algebra/BigOperators/Periodic.lean |
2 |
5 |
['github-actions', 'j-loreaux', 'jessealama', 'wwylele'] |
nobody |
4-25242 4 days ago |
5-40781 5 days ago |
15-13791 15 days |
| 36155 |
grunweg author:grunweg |
feat: custom elaborators for TangentSpace and tangentMap(Within) |
And use these to golf the differential geometry files a bit further.
---
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry
t-meta
|
85/30 |
Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean,Mathlib/Geometry/Manifold/GroupLieAlgebra.lean,Mathlib/Geometry/Manifold/IntegralCurve/Basic.lean,Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean,Mathlib/Geometry/Manifold/MFDeriv/Tangent.lean,Mathlib/Geometry/Manifold/Notation.lean,Mathlib/Topology/FiberBundle/Constructions.lean,MathlibTest/DifferentialGeometry/Notation/Basic.lean |
8 |
7 |
['JovanGerb', 'github-actions', 'grunweg', 'mathlib-merge-conflicts', 'ocfnash'] |
JovanGerb assignee:JovanGerb |
4-25057 4 days ago |
27-20005 27 days ago |
65-28442 65 days |
| 38949 |
YaelDillies author:YaelDillies |
chore: untag duplicated `gcongr` lemmas |
Follow-up to #38793
---
[](https://gitpod.io/from-referrer/)
|
maintainer-merge |
11/9 |
Mathlib/Algebra/Module/Submodule/Basic.lean,Mathlib/Algebra/Module/Submodule/RestrictScalars.lean,Mathlib/Algebra/Order/Ring/Ordering/Basic.lean,Mathlib/Analysis/SpecialFunctions/Sigmoid.lean,Mathlib/Data/Finset/Density.lean,Mathlib/RingTheory/Localization/Submodule.lean |
6 |
3 |
['JovanGerb', 'github-actions'] |
nobody |
4-19583 4 days ago |
4-19670 4 days ago |
5-42050 5 days |
| 37310 |
CoolRmal author:CoolRmal |
feat(MeasureTheory): uniformly distributed outer regular measures in a second countable pseudometric space are unique up to a finite constant |
In this PR we define uniformly distributed measures and prove [Christensen's Lemma](https://en.wikipedia.org/wiki/Spherical_measure), which says that uniformly distributed outer regular measures in a second countable pseudometric space are unique up to a finite constant.
A classical application of Christensen's Lemma is to show that the restriction of the `n - 1`-dimensional
Hausdorff measure onto an `n`-dimensional sphere coincides with the spherical measure. This will be done in another PR.
---
- [x] depends on: #37311
- [x] depends on: #37312
- [x] depends on: #37313
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
201/1 |
Mathlib.lean,Mathlib/MeasureTheory/Measure/Regular.lean,Mathlib/MeasureTheory/Measure/UniformlyDistributed.lean,Mathlib/Order/LiminfLimsup.lean |
4 |
17 |
['CoolRmal', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'wwylele'] |
RemyDegenne assignee:RemyDegenne |
4-19107 4 days ago |
5-62221 5 days ago |
9-6096 9 days |
| 38989 |
grunweg author:grunweg |
chore: remove `(d)simp only []` |
Either remove them (when they were unnecessary), or replace by something more low-level.
---
I'm happy to make them `simp only` instead, if that is preferred.
[](https://gitpod.io/from-referrer/)
|
|
10/17 |
Counterexamples/AharoniKorman.lean,Mathlib/Analysis/SpecialFunctions/Integrals/PosLogEqCircleAverage.lean,Mathlib/CategoryTheory/Limits/Fubini.lean,Mathlib/Computability/PartrecCode.lean,Mathlib/Computability/RE.lean,Mathlib/Computability/TuringMachine/Config.lean,Mathlib/Computability/TuringMachine/StackTuringMachine.lean,Mathlib/LinearAlgebra/Matrix/Basis.lean,Mathlib/MeasureTheory/Covering/Besicovitch.lean,Mathlib/MeasureTheory/Measure/Restrict.lean,Mathlib/ModelTheory/Encoding.lean |
11 |
4 |
['b-mehta', 'github-actions', 'grunweg'] |
nobody |
4-18650 4 days ago |
4-33918 4 days ago |
4-33897 4 days |
| 37553 |
grunweg author:grunweg |
chore: golf using .ne and friends |
ne_of_gt -> .ne'
ne_of_lt -> .ne
le_of_lt -> .le
Drive-by golfs using gcongr and positivity and been split into separate PRs.
---
- [x] depends on: #37462
- [x] depends on: #37715
- [x] depends on: #37554
- [x] depends on: #37845
[](https://gitpod.io/from-referrer/)
|
|
302/321 |
Archive/Imo/Imo1981Q3.lean,Archive/Imo/Imo2011Q3.lean,Archive/Imo/Imo2013Q5.lean,Archive/Imo/Imo2019Q4.lean,Archive/Wiedijk100Theorems/CubingACube.lean,Counterexamples/DiscreteTopologyNonDiscreteUniformity.lean,Counterexamples/NowhereDifferentiable.lean,Counterexamples/TopologistsSineCurve.lean,Mathlib/Algebra/BigOperators/Fin.lean,Mathlib/Algebra/BigOperators/Group/List/Lemmas.lean,Mathlib/Algebra/CharP/Defs.lean,Mathlib/Algebra/Group/Fin/Basic.lean,Mathlib/Algebra/Group/Pointwise/Set/Finite.lean,Mathlib/Algebra/Lie/Nilpotent.lean,Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/Algebra/Module/ZLattice/Basic.lean,Mathlib/Algebra/Module/ZLattice/Covolume.lean,Mathlib/Algebra/Order/Antidiag/Nat.lean,Mathlib/Algebra/Order/Archimedean/Basic.lean,Mathlib/Algebra/Order/Archimedean/Class.lean,Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean,Mathlib/Algebra/Order/BigOperators/GroupWithZero/Finset.lean,Mathlib/Algebra/Order/CauSeq/Basic.lean,Mathlib/Algebra/Order/CauSeq/BigOperators.lean,Mathlib/Algebra/Order/CompleteField.lean,Mathlib/Algebra/Order/Field/Basic.lean,Mathlib/Algebra/Order/GroupWithZero/Range.lean,Mathlib/Algebra/Order/GroupWithZero/Unbundled/Basic.lean,Mathlib/Algebra/Order/Interval/Set/Instances.lean,Mathlib/Algebra/Order/Module/HahnEmbedding.lean,Mathlib/Algebra/Order/Ring/WithTop.lean,Mathlib/Algebra/Order/Round.lean,Mathlib/Algebra/Order/ToIntervalMod.lean,Mathlib/Algebra/Polynomial/DenomsClearable.lean,Mathlib/Algebra/Polynomial/EraseLead.lean,Mathlib/Algebra/Polynomial/Monic.lean,Mathlib/Algebra/QuadraticDiscriminant.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Proper.lean,Mathlib/Analysis/Analytic/Composition.lean,Mathlib/Analysis/Analytic/Inverse.lean,Mathlib/Analysis/Analytic/OfScalars.lean,Mathlib/Analysis/Analytic/Uniqueness.lean,Mathlib/Analysis/Asymptotics/ExpGrowth.lean,Mathlib/Analysis/Asymptotics/LinearGrowth.lean,Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean,Mathlib/Analysis/Asymptotics/TVS.lean,Mathlib/Analysis/BoxIntegral/Basic.lean,Mathlib/Analysis/BoxIntegral/Partition/Tagged.lean,Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean,Mathlib/Analysis/Calculus/ContDiff/Defs.lean,Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean,Mathlib/Analysis/Calculus/DerivativeTest.lean,Mathlib/Analysis/Calculus/FDeriv/Extend.lean,Mathlib/Analysis/Calculus/FDeriv/Measurable.lean,Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean,Mathlib/Analysis/Calculus/LHopital.lean,Mathlib/Analysis/Complex/Exponential.lean,Mathlib/Analysis/Complex/Hadamard.lean,Mathlib/Analysis/Complex/OpenMapping.lean,Mathlib/Analysis/Complex/Poisson.lean,Mathlib/Analysis/Complex/Trigonometric.lean,Mathlib/Analysis/Convex/Between.lean,Mathlib/Analysis/Convex/Caratheodory.lean,Mathlib/Analysis/Convex/Combination.lean,Mathlib/Analysis/Convex/Gauge.lean,Mathlib/Analysis/Convex/Radon.lean,Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean,Mathlib/Analysis/Convolution.lean,Mathlib/Analysis/InnerProductSpace/Subspace.lean,Mathlib/Analysis/LocallyConvex/WithSeminorms.lean,Mathlib/Analysis/MeanInequalities.lean,Mathlib/Analysis/MeanInequalitiesPow.lean,Mathlib/Analysis/MellinInversion.lean,Mathlib/Analysis/MellinTransform.lean,Mathlib/Analysis/Normed/Field/Approximation.lean,Mathlib/Analysis/Normed/Module/FiniteDimension.lean,Mathlib/Analysis/Normed/Operator/ContinuousAlgEquiv.lean,Mathlib/Analysis/Normed/Ring/Units.lean,Mathlib/Analysis/Normed/Unbundled/IsPowMulFaithful.lean,Mathlib/Analysis/Normed/Unbundled/SmoothingSeminorm.lean,Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean,Mathlib/Analysis/Oscillation.lean,Mathlib/Analysis/Real/Hyperreal.lean,Mathlib/Analysis/Real/Pi/Bounds.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/IntegralRepresentation.lean,Mathlib/Analysis/SpecialFunctions/Log/Basic.lean,Mathlib/Analysis/SpecialFunctions/PolarCoord.lean,Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean,Mathlib/Analysis/SpecialFunctions/Pow/Real.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean,Mathlib/Data/EReal/Inv.lean,Mathlib/Data/Finset/Image.lean,Mathlib/Data/Int/Interval.lean,Mathlib/Data/Int/ModEq.lean,Mathlib/Data/Nat/Bitwise.lean,Mathlib/Data/Nat/Lattice.lean,Mathlib/Data/Nat/Log.lean,Mathlib/Data/Nat/Multiplicity.lean,Mathlib/Data/Real/ConjExponents.lean,Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean |
114 |
6 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
4-17692 4 days ago |
4-30768 4 days ago |
10-44164 10 days |
| 38979 |
ldct author:ldct |
feat(EReal): simplify nat + β€ |
Alternative version of https://github.com/leanprover-community/mathlib4/pull/38975
---
[](https://gitpod.io/from-referrer/)
|
t-data |
28/2 |
Mathlib/Data/EReal/Basic.lean,Mathlib/Data/EReal/Operations.lean,MathlibTest/EReal.lean |
3 |
6 |
['SnirBroshi', 'eric-wieser', 'github-actions', 'ldct', 'leanprover-radar'] |
nobody |
4-13493 4 days ago |
4-13259 4 days ago |
4-13368 4 days |
| 38698 |
Thmoas-Guan author:Thmoas-Guan |
feat(RingTheory/Regular): freeness of `QuotSMulTop` |
For finitely generated module `M` over Noetherian local ring `(R, m)`, if `x β m` is `M`-regular, `M/xM` is free over `R/(x)` iff `M` is free over `R`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
114/0 |
Mathlib.lean,Mathlib/RingTheory/Regular/Free.lean |
2 |
1 |
['github-actions'] |
nobody |
4-9090 4 days ago |
11-50676 11 days ago |
11-50655 11 days |
| 39006 |
tb65536 author:tb65536 |
feat(Algebra/Field/Subfield/Basic): add definition of finitely generated fields |
This PR adds a definition of finitely generated fields with API relating this definition to the existing definitions.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
18/0 |
Mathlib/Algebra/Field/Subfield/Basic.lean,Mathlib/FieldTheory/IntermediateField/Adjoin/Algebra.lean,Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.lean |
3 |
1 |
['github-actions'] |
nobody |
4-7497 4 days ago |
4-7497 4 days ago |
4-7478 4 days |
| 38884 |
yuanyi-350 author:yuanyi-350 |
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Function/Egorov` |
- shortens `tendstoUniformlyOn_diff_iUnionNotConvergentSeq` by extracting the needed distance bound from `hx` with a single `not_lt.mp` argument, instead of unpacking `hx` via a long `simp`/`push Not` chain
Extracted from #38104
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-measure-probability
|
4/8 |
Mathlib/MeasureTheory/Function/Egorov.lean |
1 |
2 |
['github-actions', 'yuanyi-350'] |
sgouezel assignee:sgouezel |
4-6534 4 days ago |
7-14343 7 days ago |
7-14322 7 days |
| 38553 |
Whysoserioushah author:Whysoserioushah |
feat(RepresentationTheory/Homological): define Tate cohomology |
co-authored-by : class field theory team
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
CFT
label:t-algebra$ |
287/1 |
Mathlib.lean,Mathlib/RepresentationTheory/Homological/GroupCohomology/LongExactSequence.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/LongExactSequence.lean,Mathlib/RepresentationTheory/Homological/TateCohomology/Basic.lean |
4 |
30 |
['Multramate', 'Whysoserioushah', 'faenuccio', 'github-actions', 'kbuzzard', 'riccardobrasca'] |
faenuccio assignee:faenuccio |
4-6187 4 days ago |
9-63541 9 days ago |
13-82974 13 days |
| 36216 |
michaellee94 author:michaellee94 |
feat(CategoryTheory): characterize pullback squares via the `Over` category |
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
new-contributor
maintainer-merge
|
47/0 |
Mathlib/CategoryTheory/Limits/Shapes/Pullback/IsPullback/Basic.lean |
1 |
18 |
['dagurtomas', 'github-actions', 'joelriou', 'michaellee94'] |
robin-carlier assignee:robin-carlier |
4-4224 4 days ago |
4-4251 4 days ago |
6-55060 6 days |
| 38431 |
joelriou author:joelriou |
refactor(Topology): redefine Delta-generated spaces |
Delta-generated spaces are made particular cases of `X`-generated spaces, where `X` is a family of topological spaces.
---
- [x] depends on: #38080
- [x] depends on: #37799
[](https://gitpod.io/from-referrer/)
|
t-topology
large-import
|
139/208 |
Mathlib/Topology/Category/DeltaGenerated.lean,Mathlib/Topology/Compactness/DeltaGeneratedSpace.lean,Mathlib/Topology/Convenient/Category.lean,Mathlib/Topology/Convenient/GeneratedBy.lean |
4 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
4-2892 4 days ago |
4-2790 4 days ago |
4-2847 4 days |
| 39011 |
Vierkantor author:Vierkantor |
chore(Algebra/Polynomial/Module): workaround for backward.inferInstanceAs |
This PR, like #38990, works around a `backward.inferInstanceAs` compatibility flag introduced by identifying `PolynomialModule` with `Finsupp` in our definitions. We introduce a new dsimp lemma `funLike_eq` that transfers the `FunLike` instances, and now we can use `PolynomialModule`'s `FunLike` instance, instead of the custom `CoeFun` instance.
This is not a great approach, but it seems the least painful for the short term. The alternative would be to strictly enforce the defeq barrier between `PolynomialModule` and `Finsupp`, which would mean a substantial rewrite of this corner of Mathlib. We can't make `PolynomialModule` an `@[implicit_reducible]`, because we need different multiplication on it than `Finsupp` has.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
tech debt
label:t-algebra$ |
8/5 |
Mathlib/Algebra/Polynomial/Module/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
4-2757 4 days ago |
4-2841 4 days ago |
4-2820 4 days |
| 38968 |
eric-wieser author:eric-wieser |
fix: improve defeqs of comp actions |
The (deliberately) non-reducible `SMul.comp.smul` definition caused us to end with these failing unification examples at instance reducibility:
```lean
example : (Module.compHom β (RingHom.id β)).toSMul = SMul.comp β (RingHom.id β) := by
with_reducible_and_instances rfl
example : (Module.compHom β (RingHom.id β)).toMulAction = MulAction.compHom β (MonoidHom.id β) := by
with_reducible_and_instances rfl
```
There are two issues this fixes:
* the `compHom` constructors are inconsistent on whether they use `SMul.comp.smul` or reimplement its contents
* we need `SMul.comp.smul` to be instance-reducible, so that when invoked with the identity function it is instance-defeq to the original action.
As a bonus, allowing these to unify means we can have a single `SMul.comp_smul_def` lemma that works for all of the `compHom` definitions.
We could also consider changing `compHom` to take a `HomClass` in order to remove the casts entirely, which would remove the need to add these `SMul.comp` terms. This PR leaves that for possible future work, noting that in the past we have moved away from writing `def`s taking `HomClass`es.
Co-authored-by: Junye Ji
---
[](https://gitpod.io/from-referrer/)
Refined from #38777 |
t-algebra label:t-algebra$ |
35/19 |
Mathlib/Algebra/Algebra/Defs.lean,Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/GroupWithZero/Action/Defs.lean,Mathlib/Algebra/GroupWithZero/Action/End.lean,Mathlib/Algebra/Module/RingHom.lean |
5 |
3 |
['JJYYY-JJY', 'eric-wieser', 'github-actions'] |
nobody |
3-65528 3 days ago |
3-74958 3 days ago |
3-74937 3 days |
| 37718 |
SabrinaJewson author:SabrinaJewson |
feat(Order): add conversions from `Std` order typeclasses to Mathlib ones |
`{Preorder, PartialOrder, LinearOrder}.ofStd` exist to facilitate convenient translation from `Std` order typeclasses to Mathlib ones.
---
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
|
366/0 |
Mathlib.lean,Mathlib/Order/Std.lean,MathlibTest/OrderOfStd.lean |
3 |
2 |
['github-actions'] |
nobody |
3-61181 3 days ago |
33-64092 33 days ago |
33-64564 33 days |
| 38014 |
cduenasnavarro author:cduenasnavarro |
feat(InformationTheory): linear codes over finite fields and minimum distance properties |
Define linear codes over a finite field `F` as finite-dimensional subspaces of `Fin n β F`,
together with their minimum Hamming distance.
Main definitions:
* `LinearCode`
* `minDist`
* `LinearCodeWithDist`
* `hammingSphere`
Main results:
* `minDist_eq_sInf_pairwiseDist`: characterisation of the minimum distance via pairwise distances
* `disjoint_spheres`: Hamming spheres of radius `t` around distinct codewords are disjoint
if `2 * t < d`
Pending:
* Choosing an adequate book reference
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
new-contributor
|
143/0 |
Mathlib.lean,Mathlib/InformationTheory/Coding/LinearCode.lean |
2 |
37 |
['cduenasnavarro', 'github-actions', 'linesthatinterlace', 'rkirov', 'vihdzp', 'wwylele'] |
EtienneC30 assignee:EtienneC30 |
3-60281 3 days ago |
26-79122 26 days ago |
26-79864 26 days |
| 38189 |
artie2000 author:artie2000 |
feat: simplify proof of `IsAdjoinRootMonic.mkOfAdjoinEqTop'` |
* Simplify the proof of `IsAdjoinRootMonic.mkOfAdjoinEqTop'` by factoring out a lemma `OrzechProperty.bijective_of_surjective_of_finrank_le` and making use of the existing lemma `finrank_le_iff_exists_linearMap`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
22/21 |
Mathlib/LinearAlgebra/Dimension/Free.lean,Mathlib/RingTheory/IsAdjoinRoot.lean |
2 |
6 |
['Vierkantor', 'artie2000', 'github-actions'] |
riccardobrasca assignee:riccardobrasca |
3-60278 3 days ago |
22-65968 22 days ago |
22-68612 22 days |
| 38885 |
yuanyi-350 author:yuanyi-350 |
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Function/LpOrder` |
- rewrites `coeFn_nonneg` to use the `Lp.coeFn_zero` eventual equality directly via `trans_le`, instead of a separate `filter_upwards` proof
Extracted from #38104
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-measure-probability
|
1/4 |
Mathlib/MeasureTheory/Function/LpOrder.lean |
1 |
2 |
['github-actions', 'yuanyi-350'] |
RemyDegenne assignee:RemyDegenne |
3-60274 3 days ago |
7-14123 7 days ago |
7-14102 7 days |
| 38886 |
yuanyi-350 author:yuanyi-350 |
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Function/SimpleFuncDenseLp` |
- rewrites `measure_preimage_lt_top_of_memLp` via `FinMeasSupp.of_lintegral_ne_top` and `FinMeasSupp.map_iff`, instead of expanding `eLpNorm'` and splitting through `ENNReal.mul_lt_top_iff`
Extracted from #38104
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-measure-probability
|
9/21 |
Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean |
1 |
2 |
['github-actions', 'yuanyi-350'] |
RemyDegenne assignee:RemyDegenne |
3-60273 3 days ago |
7-13915 7 days ago |
7-13894 7 days |
| 39004 |
zhuyizheng author:zhuyizheng |
chore(ModelTheory): fix hypo of `realize_liftAt` |
changes the hypo of `realize_liftAt` from the incorrect `(hmn : m + n' β€ n + 1)` to the correct `(hmn : m β€ n)`
---
[](https://gitpod.io/from-referrer/)
|
t-logic |
2/2 |
Mathlib/ModelTheory/Semantics.lean |
1 |
3 |
['github-actions', 'plp127', 'zhuyizheng'] |
nobody |
3-60122 3 days ago |
4-9851 4 days ago |
4-9830 4 days |
| 39018 |
khwilson author:khwilson |
feat(Topology/Separation/Regular): facts about `nhdsSet` in normal spaces |
A few lemmas about `nhdsSet` in normal spaces that mirror `nhds` in regular spaces. Originally built as part of a proof of Michael's Selection Theorem, that didn't make the final cut, but nonetheless seemed useful to the library.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
24/0 |
Mathlib/Topology/Separation/Regular.lean |
1 |
1 |
['github-actions'] |
nobody |
3-55054 3 days ago |
3-55130 3 days ago |
3-55124 3 days |
| 37755 |
YaelDillies author:YaelDillies |
refactor(Data/Finsupp): use `single` in `uniqueEquiv` |
In essence, this changes `(Finsupp.uniqueEquiv i).symm m` from having support `univ.filter (fun _ β¦ m β 0)` to having support `if m = 0 then {i} else β
`. These are equal, but having the RHS be `single 1 r` is much more useful in practice. Similarly for `MonoidAlgebra`.
Also rename `Equiv.finsuppUnique` to `Finsupp.uniqueEquiv` and change the `Unique ΞΉ` argument into `Subsingleton ΞΉ` and `i : ΞΉ`. Similarly for `AddEquiv` and `LinearEquiv`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
98/74 |
Mathlib/Algebra/FreeAlgebra/Cardinality.lean,Mathlib/Algebra/Group/Finsupp.lean,Mathlib/Algebra/MonoidAlgebra/Defs.lean,Mathlib/AlgebraicGeometry/Spec.lean,Mathlib/Data/Finsupp/Defs.lean,Mathlib/Data/Finsupp/Single.lean,Mathlib/LinearAlgebra/Dimension/FreeAndStrongRankCondition.lean,Mathlib/LinearAlgebra/FiniteDimensional/Basic.lean,Mathlib/LinearAlgebra/Finsupp/Pi.lean,Mathlib/RepresentationTheory/Action.lean,Mathlib/RepresentationTheory/Equiv.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean,Mathlib/RepresentationTheory/Homological/Resolution.lean,Mathlib/RingTheory/AdjoinRoot.lean,Mathlib/RingTheory/PicardGroup.lean,Mathlib/RingTheory/PowerSeries/Basic.lean,Mathlib/RingTheory/PowerSeries/GaussNorm.lean,Mathlib/RingTheory/PowerSeries/PiTopology.lean,Mathlib/RingTheory/PowerSeries/Substitution.lean,Mathlib/RingTheory/QuasiFinite/Basic.lean,Mathlib/RingTheory/TensorProduct/Free.lean |
21 |
6 |
['YaelDillies', 'eric-wieser', 'github-actions'] |
nobody |
3-49897 3 days ago |
3-80677 3 days ago |
3-80895 3 days |
| 38310 |
ZRTMRH author:ZRTMRH |
feat(Combinatorics/Quiver/Schreier): word evaluation and reachability |
Adds word evaluation and reachability results to the Schreier graph API.
* `SchreierGraph.evalWord` : evaluates a word `List (S Γ Bool)` as an element of the ambient group, where `(s, true)` contributes `ΞΉ s` and `(s, false)` contributes `(ΞΉ s)β»ΒΉ`.
* `SchreierGraph.evalWord_eq_lift` : agreement with `FreeGroup.lift`.
* `SchreierGraph.evalWord_mem_closure` : every word evaluates into the subgroup generated by `ΞΉ`.
* `SchreierGraph.pathFromWord` : a Bool-tagged word yields a path in `Symmetrify (SchreierGraph V ΞΉ)` from `x` to `evalWord ΞΉ w β’ x`.
* `SchreierGraph.reachable_iff` : two vertices are connected by a path in the symmetrification iff some element of the subgroup closure carries one to the other.
Follow-up to #36320.
This PR was written with AI assistance (Claude). The code has been reviewed by the author.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-combinatorics
large-import
LLM-generated
|
157/0 |
Mathlib/Combinatorics/Quiver/Schreier.lean |
1 |
2 |
['github-actions'] |
nobody |
3-46576 3 days ago |
19-80050 19 days ago |
19-80029 19 days |
| 38907 |
YaelDillies author:YaelDillies |
chore(Geometry): move `ConvexSpace` out of `LinearAlgebra` |
`ConvexSpace` is convex geometry, not linear algebra
---
[](https://gitpod.io/from-referrer/)
|
t-convex-geometry
file-removed
maintainer-merge
|
6/7 |
Mathlib.lean,Mathlib/Analysis/Convex/MetricSpace.lean,Mathlib/Geometry/Convex/ConvexSpace/AffineSpace.lean,Mathlib/Geometry/Convex/ConvexSpace/Defs.lean,Mathlib/Geometry/Convex/README.md |
5 |
5 |
['YaelDillies', 'github-actions', 'mathlib-merge-conflicts', 'themathqueen'] |
nobody |
3-45032 3 days ago |
3-45071 3 days ago |
6-5257 6 days |
| 38873 |
yuanyi-350 author:yuanyi-350 |
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Constructions/BorelSpace/Real` |
- rewrites `measurable_const_mul` by splitting off the `c = 0` case and proving the nonzero case via `measurable_of_continuousOn_compl_singleton`
- replaces the ad hoc case analysis on `β₯`, `β€`, and real coefficients with a direct continuity argument for multiplication on `EReal`
Extracted from #38104
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-measure-probability
|
5/19 |
Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean |
1 |
3 |
['LorenzoLuccioli', 'github-actions', 'yuanyi-350'] |
kex-y assignee:kex-y |
3-44386 3 days ago |
3-63696 3 days ago |
6-74784 6 days |
| 39003 |
TwoFX author:TwoFX |
chore: avoid declaring duplicate instances `LE String` and `LT String` |
Since forever, mathlib has declared `LE String` and `LT String` instances which are propositionally, but not definitionally, equal to the `LE String` and `LT String` instances that have shipped with core. This regularly leads to problems with automation that expects instances to be canonical, most recently as described in leanprover/lean4#13544.
This PR demotes the mathlib instances to definitions, and redefines the `LinearOrder String` instance to use the core-provided instances rather than the ones defined in mathlib. It also redeclares the theorems `String.lt_iff_toList_lt` and `String.le_iff_toList_le` to be about the core-provided instances rather than the mathlib ones, and the theorems about the mathlib instances are now called `String.lt_iff_toList_lt'` and `String.le_iff_toList_le'`.
Deprecating the material related to the mathlib instances would be a logical next step, but it might make sense to wait with this until core ships more API for `LE String` and `LT String` (right now it ships none).
---
[](https://gitpod.io/from-referrer/)
|
t-data |
31/14 |
Mathlib/Data/String/Basic.lean |
1 |
5 |
['TwoFX', 'eric-wieser', 'github-actions'] |
nobody |
3-41080 3 days ago |
3-42906 3 days ago |
3-43358 3 days |
| 39016 |
vihdzp author:vihdzp |
chore: deprecate `WithZero.zero_le` |
This is a duplicate of `zero_le` in the root namespace.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
14/24 |
Mathlib/Algebra/Order/Archimedean/Basic.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/FieldTheory/RatFunc/Valuation.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean |
4 |
1 |
['github-actions'] |
nobody |
3-41063 3 days ago |
3-41521 3 days ago |
3-43720 3 days |
| 39023 |
TBUGTB author:TBUGTB |
feat(Algebra/Order): API lemmas on floor and abs |
Co-authored-by: Etienne Marion @EtienneC30
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
brownian
new-contributor
label:t-algebra$ |
9/0 |
Mathlib/Algebra/Order/Floor/Semiring.lean,Mathlib/Algebra/Order/Ring/Abs.lean |
2 |
3 |
['TBUGTB', 'github-actions'] |
nobody |
3-28302 3 days ago |
3-31491 3 days ago |
3-31470 3 days |
| 36472 |
EtienneC30 author:EtienneC30 |
feat: finite dimensional distribution of Brownian motion |
Define `gaussianProjectiveFamily : (I : Finset ββ₯0) β Measure (I β β)`. Each `gaussianProjectiveFamily I` is the centered Gaussian measure over `I β β` with covariance matrix given by `brownianCovMatrix I s t := min s t`.
Prove that these measures satisfy `IsProjectiveMeasureFamily`, which means that they can be extended into a measure over `ββ₯0 β β` thanks to the Kolmogorov's extension theorem (not in Mathlib yet). The obtained measure is a measure over the set of real processes indexed by `ββ₯0` and is the law of the Brownian motion.
---
- [x] depends on: #36143
[](https://gitpod.io/from-referrer/)
|
brownian
t-measure-probability
|
226/1 |
Mathlib.lean,Mathlib/MeasureTheory/Function/L2Space.lean,Mathlib/Probability/BrownianMotion/GaussianProjectiveFamily.lean,Mathlib/Probability/Distributions/Gaussian/HasGaussianLaw/Basic.lean,Mathlib/Probability/Moments/Basic.lean |
5 |
3 |
['github-actions', 'mathlib-dependent-issues', 'sgouezel'] |
sgouezel assignee:sgouezel |
3-22072 3 days ago |
55-25575 55 days ago |
55-25555 55 days |
| 39029 |
felixpernegger author:felixpernegger |
chore: remove redundant `unfold`s |
This PR removed roughly (estimated by files I went through) half of the `unfold`'s in mathlib which can be removed such that the proof still works (found by searching `unfold ` in VSCode in manually going through ~600/1100 occurences).
I originally planned to replace all, but I couldn't find any relevant discussion if this is actually a good practice, so to save potentially wasted time, I make this PR now. (similarly with the `clear` tactic)
---
[](https://gitpod.io/from-referrer/)
|
|
63/108 |
Archive/Imo/Imo1994Q1.lean,Archive/Imo/Imo1998Q2.lean,Archive/Imo/Imo2001Q5.lean,Archive/Wiedijk100Theorems/BuffonsNeedle.lean,Mathlib/Algebra/EuclideanDomain/Basic.lean,Mathlib/Algebra/MvPolynomial/Variables.lean,Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean,Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean,Mathlib/AlgebraicTopology/SimplicialSet/Coskeletal.lean,Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean,Mathlib/Analysis/Complex/JensenFormula.lean,Mathlib/Analysis/Convex/Strict.lean,Mathlib/Analysis/InnerProductSpace/Calculus.lean,Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean,Mathlib/Analysis/InnerProductSpace/PiL2.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/Orthogonality.lean,Mathlib/CategoryTheory/Functor/Flat.lean,Mathlib/CategoryTheory/Functor/FullyFaithful.lean,Mathlib/CategoryTheory/Monoidal/Closed/Functor.lean,Mathlib/Combinatorics/Enumerative/Partition/Basic.lean,Mathlib/Combinatorics/Graph/Delete.lean,Mathlib/Computability/PartrecCode.lean,Mathlib/Computability/RegularExpressions.lean,Mathlib/Computability/TuringMachine/PostTuringMachine.lean,Mathlib/Computability/TuringMachine/StackTuringMachine.lean,Mathlib/Condensed/Light/TopCatAdjunction.lean,Mathlib/Data/Fintype/EquivFin.lean,Mathlib/Data/Fintype/List.lean,Mathlib/Data/Int/GCD.lean,Mathlib/Data/List/Intervals.lean,Mathlib/Data/Matrix/Basis.lean,Mathlib/Data/Nat/BinaryRec.lean,Mathlib/Data/Nat/ChineseRemainder.lean,Mathlib/Data/Nat/Digits/Div.lean,Mathlib/Data/Nat/Dist.lean,Mathlib/Data/Ordmap/Ordset.lean,Mathlib/Data/PNat/Prime.lean,Mathlib/Data/Real/Embedding.lean,Mathlib/Data/Seq/Defs.lean,Mathlib/Data/Stream/Init.lean,Mathlib/Data/WSeq/Basic.lean,Mathlib/Data/ZMod/Basic.lean |
44 |
3 |
['felixpernegger', 'github-actions', 'leanprover-radar'] |
nobody |
3-21421 3 days ago |
3-26008 3 days ago |
3-25987 3 days |
| 28685 |
mitchell-horner author:mitchell-horner |
feat(Combinatorics/SimpleGraph): prove the minimal-degree version of the ErdΕs-Stone theorem |
Proves the minimal degree-version of the ErdΕs-Stone theorem:
If `G` has a minimal degree of at least `(1 - 1 / r + o(1)) * card V`, then `G` contains a copy of a `completeEquipartiteGraph` in `r + 1` parts each of size `t`.
The double-counting construction from the proof is available in `namespace ErdosStone`.
---
- [x] depends on: #25843
- [x] depends on: #27597
- [x] depends on: #27599
- [x] depends on: #28443
- [x] depends on: #28445
- [x] depends on: #28446
- [x] depends on: #28447
This is the first of several pull requests towards the full ErdΕs-Stone(-Simonovits) theorem, hence the name of the file.
[](https://gitpod.io/from-referrer/) |
t-combinatorics
maintainer-merge
|
329/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/ErdosStoneSimonovits.lean |
2 |
19 |
['YaelDillies', 'b-mehta', 'github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'mitchell-horner', 'robin-carlier'] |
b-mehta assignee:b-mehta |
3-19353 3 days ago |
6-61318 6 days ago |
66-70039 66 days |
| 39030 |
FordUniver author:FordUniver |
feat(Analysis/SpecialFunctions/Pow/Continuity): add Filter.Tendsto.rpow_const_nhds_zero |
Specialises `Filter.Tendsto.rpow_const` to base `β 0`. The strict `0 < p` (rather than `0 β€ p` from the parent) is needed to identify `0 ^ p` with `0`. Refactors the one in-tree call site (`ZetaAsymp.term_tsum_of_lt`).
Co-authored-by: Sebastian Pokutta <23001135+pokutta@users.noreply.github.com>
---
This came out of a FrankβWolfe convergence formalisation, where gap rates of the form `f t ^ p β 0` recur and manually discharging the disjunction together with the `0 ^ p = 0` rewrite every time is a bit of a nuisance. A sweep over mathlib turned up `ZetaAsymp.term_tsum_of_lt` as the one place the same pattern already appears in the library.
I am not 100% sure on what the convention of adding these single-line specializations is, but this specific case did seem worth adding to me. |
new-contributor
t-analysis
|
7/3 |
Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean,Mathlib/NumberTheory/Harmonic/ZetaAsymp.lean |
2 |
2 |
['github-actions'] |
nobody |
3-17520 3 days ago |
3-25566 3 days ago |
3-25545 3 days |
| 39033 |
tb65536 author:tb65536 |
feat(Analysis/DirichletEigenvalue): Dirichlet eigenvalues of a set |
This PR defines the Dirichlet eigenvalues of a set (in the sense of "can you hear the shape of a drum").
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
58/0 |
Mathlib.lean,Mathlib/Analysis/DirichletEigenvalue.lean |
2 |
1 |
['github-actions'] |
nobody |
3-17104 3 days ago |
3-17104 3 days ago |
3-17085 3 days |
| 38466 |
Thmoas-Guan author:Thmoas-Guan |
feat(ModuleCat): some lemmas for `Ext` over `ModuleCat` |
some lemmas for `Ext` over `ModuleCat`
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
large-import
|
70/0 |
Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Ext/Basic.lean,Mathlib/RingTheory/Ideal/Maps.lean |
4 |
4 |
['chrisflav', 'github-actions'] |
nobody |
3-15394 3 days ago |
3-15394 3 days ago |
16-9788 16 days |
| 36832 |
KryptosAI author:KryptosAI |
chore(Data/Finset/Card): rename `pred_card_le_card_erase` to `sub_one_card_le_card_erase` |
## Summary
The name `pred_card_le_card_erase` suggests `Nat.pred` but the statement uses `- 1` (i.e., `Nat.sub 1`). Rename to `sub_one_card_le_card_erase` to match the actual statement.
A deprecated alias is added for backwards compatibility.
### Files changed
- `Mathlib/Data/Finset/Card.lean` β definition renamed + deprecated alias
- `Mathlib/Data/Finset/Powerset.lean` β reference updated
- `Mathlib/Combinatorics/Additive/SubsetSum.lean` β reference updated
- `Mathlib/Algebra/Polynomial/EraseLead.lean` β reference updated
Addresses the `Finset.pred_card_le_card_erase` item in #21584.
## AI disclosure
I used Claude Code to explore the codebase (finding all references to rename) and to draft the PR description. I reviewed and understand all changes β these are straightforward renames with a deprecated alias. |
new-contributor |
22/15 |
Mathlib/Algebra/Polynomial/EraseLead.lean,Mathlib/Combinatorics/Additive/SubsetSum.lean,Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean,Mathlib/Combinatorics/SetFamily/Shadow.lean,Mathlib/Data/Finset/Card.lean,Mathlib/Data/Finset/Powerset.lean,Mathlib/Data/Set/Card.lean,Mathlib/GroupTheory/Perm/Support.lean,Mathlib/RingTheory/Ideal/Operations.lean |
9 |
8 |
['KryptosAI', 'Multramate', 'dagurtomas', 'github-actions', 'mattrobball', 'ooovi'] |
nobody |
3-15322 3 days ago |
37-57362 37 days ago |
51-67669 51 days |
| 38999 |
joelriou author:joelriou |
feat(Algebra/Homology): homology sequence and acyclic complexes |
This PR adds lemmas `ShortComplex.ShortExact.acyclic_Xβ/β/β` which allow to deduce that certain homological complexes in a short exact sequence are acyclic.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
t-algebra
maintainer-merge
label:t-algebra$ |
61/2 |
Mathlib/Algebra/Homology/HomologySequenceLemmas.lean |
1 |
6 |
['dagurtomas', 'github-actions', 'joelriou'] |
nobody |
3-3719 3 days ago |
3-4521 3 days ago |
4-20957 4 days |
| 38867 |
jvanwinden author:jvanwinden |
feat(Probability/Process/Adapted): add IsProgressive and basic API |
This PR is a follow-up of #38254 and introduces a `Measurable` variant of `IsStronglyProgressive` with basic API. The statements of the lemmas are modeled after the corresponding lemma's for `Measurable`, and the proof is simply to apply them pointwise in `i`.
I have refrained from adding too many basic lemma's, since it remains to be seen if `IsProgressive` will see extensive use.
Zulip discussion at [#Brownian motion > Adapted Filtrations for Markov Chains and Markov Processes](https://leanprover.zulipchat.com/#narrow/channel/509433-Brownian-motion/topic/Adapted.20Filtrations.20for.20Markov.20Chains.20and.20Markov.20Processes/with/563702867)
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
91/9 |
Mathlib/Probability/Process/Adapted.lean |
1 |
3 |
['RemyDegenne', 'github-actions', 'jvanwinden'] |
kex-y assignee:kex-y |
2-82756 2 days ago |
7-26165 7 days ago |
7-26278 7 days |
| 38527 |
archiebrowne author:archiebrowne |
feat(Analysis/Calculus): continuously differentiable actions |
define the class `ContDiffSMul π M X n` which asserts that the map `(c, x) β¦ c β’ x` is `n` times continuously differentiable on `M Γ X`.
Many of the results are the C^n analogues of those in the module Mathlib.Topology.Algebra.MulAction.
|
t-differential-geometry
new-contributor
|
317/24 |
Mathlib.lean,Mathlib/Analysis/Calculus/BumpFunction/Basic.lean,Mathlib/Analysis/Calculus/ContDiff/Operations.lean,Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean,Mathlib/Analysis/ContDiffMulAction.lean,Mathlib/Analysis/InnerProductSpace/Calculus.lean |
6 |
11 |
['archiebrowne', 'github-actions', 'grunweg', 'peabrainiac'] |
PatrickMassot and grunweg assignee:grunweg assignee:PatrickMassot |
2-76963 2 days ago |
2-77038 2 days ago |
10-62926 10 days |
| 37928 |
AlexeyMilovanov author:AlexeyMilovanov |
refactor(Computability.Encoding): unbundle Ξ and remove FinEncoding |
This PR unbundles the alphabet `Ξ` from the `Encoding` structure and completely removes `FinEncoding`.
`Encoding`: The alphabet `Ξ` is now an explicit parameter: `structure Encoding (Ξ± : Type u) (Ξ : Type v)`.
`FinEncoding`: Removed. Finiteness is now handled via standard typeclasses (e.g., `[Fintype Ξ] (e : Encoding Ξ± Ξ)`).
Combinators: Functions like `finEncodingPair` are simplified to `encodingPair`, dropping the `fin` prefix and `[Fintype]` requirements where no longer needed.
Downstream: Mechanically updated `Mathlib.Computability` and `Mathlib.ModelTheory` to pass the explicit `Ξ` and use `[Fintype Ξ]` where `FinEncoding` was previously required.
|
new-contributor |
87/67 |
Mathlib/Computability/Encoding.lean,Mathlib/ModelTheory/Encoding.lean |
2 |
7 |
['AlexeyMilovanov', 'dagurtomas', 'github-actions', 'vihdzp'] |
nobody |
2-75742 2 days ago |
3-29347 3 days ago |
29-9182 29 days |
| 38336 |
chrisflav author:chrisflav |
feat(CategoryTheory/Monoidal): `MulAction` induced by a `ModObj` |
We define the `MulAction` on hom types induced by a monoid object `M` action on `X` in a cartesian monoidal category.
---
- [x] depends on: #38342
Given that `Mathlib.CategoryTheory.Monoidal.Cartesian.Mod`, I think the import increase is fine.
[](https://gitpod.io/from-referrer/)
|
t-category-theory
large-import
|
153/3 |
Mathlib/CategoryTheory/Monoidal/Cartesian/Basic.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Mod.lean,Mathlib/CategoryTheory/Monoidal/Mod.lean |
3 |
14 |
['JovanGerb', 'chrisflav', 'dagurtomas', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'robin-carlier'] |
nobody |
2-73174 2 days ago |
2-73174 2 days ago |
3-74566 3 days |
| 38903 |
lua-vr author:lua-vr |
feat(Covering/Vitali): add `exists_disjoint_subfamily_covering_enlargement_ball` |
Adds the analogous version `exists_disjoint_subfamily_covering_enlargement_ball` of the Vitali covering theorem for open balls.
For the Carleson project.
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
37/0 |
Mathlib/MeasureTheory/Covering/Vitali.lean |
1 |
2 |
['github-actions'] |
EtienneC30 assignee:EtienneC30 |
2-73098 2 days ago |
6-36385 6 days ago |
6-36364 6 days |
| 39055 |
vihdzp author:vihdzp |
chore: deprecate `not_lt_zero'` and `bot_eq_zero''` |
Two easy pickings from #38663.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
24/37 |
Mathlib/Algebra/Order/Floor/Extended.lean,Mathlib/Algebra/Order/IsBotOne.lean,Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean,Mathlib/Combinatorics/Enumerative/DyckWord.lean,Mathlib/Data/Int/WithZero.lean,Mathlib/Data/List/Shortlex.lean,Mathlib/Data/Rat/Cast/Order.lean,Mathlib/GroupTheory/Coxeter/Basic.lean,Mathlib/GroupTheory/GroupAction/Blocks.lean,Mathlib/RingTheory/Perfection.lean,Mathlib/Topology/MetricSpace/PiNat.lean |
11 |
1 |
['github-actions'] |
nobody |
2-63606 2 days ago |
2-67327 2 days ago |
2-67306 2 days |
| 39059 |
vihdzp author:vihdzp |
feat: `IsBotOneClass (Associates M)` |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
11/9 |
Mathlib/Algebra/GroupWithZero/Associated.lean,Mathlib/RingTheory/ChainOfDivisors.lean |
2 |
1 |
['github-actions'] |
nobody |
2-61281 2 days ago |
2-61357 2 days ago |
2-63362 2 days |
| 37598 |
IvanRenison author:IvanRenison |
feat(Combinatorics/SimpleGraph/Coloring): add lemmas about coloring and maps |
---
Idea from this Zulip thread: [graph theory>Second Order Monadic Logic for Graph](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/Second.20Order.20Monadic.20Logic.20for.20Graph/with/583013775)
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
37/13 |
Mathlib/Combinatorics/SimpleGraph/Coloring/VertexColoring.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean |
2 |
18 |
['IvanRenison', 'SnirBroshi', 'b-mehta', 'github-actions', 'mathlib-bors', 'mathlib-merge-conflicts'] |
nobody |
2-61181 2 days ago |
23-78541 23 days ago |
35-21336 35 days |
| 39061 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Walk/Paths): a trail which isn't a path has a cycle subwalk |
- `p.IsPath β β (v : V) (w : G.Walk v v), w.IsSubwalk p β w.Nil`
- `p.IsTrail β (p.IsPath β β (v : V) (w : G.Walk v v), w.IsSubwalk p β Β¬w.IsCycle)`
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
28/0 |
Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Decomp.lean |
2 |
1 |
['github-actions'] |
nobody |
2-60571 2 days ago |
2-60655 2 days ago |
2-60634 2 days |
| 36219 |
gasparattila author:gasparattila |
chore(Order/SupClosed): use `to_dual` |
---
[](https://gitpod.io/from-referrer/)
|
t-order |
66/215 |
Mathlib/Order/ConditionallyCompleteLattice/Finset.lean,Mathlib/Order/SupClosed.lean |
2 |
6 |
['github-actions', 'mathlib-merge-conflicts'] |
bryangingechen assignee:bryangingechen |
2-60228 2 days ago |
25-2914 25 days ago |
29-7104 29 days |
| 37527 |
bryanboehnke author:bryanboehnke |
feat(LocalRing/Etale): Finite Γ©tale extensions of local rings are monogenic |
Formalization of Lemma 3.2 from https://arxiv.org/abs/2503.07846: Given a finite extension of local rings R -> S, if the extension is Γ©tale, then there exists Ξ² β S such that R[Ξ²] = S. Furthermore, if f(z) β R[z] is the minimal polynomial of Ξ², then fβ²(Ξ²) is a unit in S. This file also includes some relevant intermediate results used in the formalization of the proof of Lemma 3.1 from the same paper.
Co-authored-by: George Peykanu
Co-authored-by: Bianca Viray
Co-authored-by: Grant Yang
---
- [ ] depends on: #36421
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
148/0 |
Mathlib.lean,Mathlib/RingTheory/LocalRing/Etale.lean |
2 |
5 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
riccardobrasca assignee:riccardobrasca |
2-60228 2 days ago |
20-60500 20 days ago |
20-81456 20 days |
| 38021 |
IvanRenison author:IvanRenison |
feat(Data/Int/ModEq): add theorem `modEq_two_abs` |
---
[](https://gitpod.io/from-referrer/)
|
t-data |
4/0 |
Mathlib/Data/Int/ModEq.lean |
1 |
1 |
['github-actions'] |
TwoFX assignee:TwoFX |
2-60226 2 days ago |
26-70533 26 days ago |
26-70512 26 days |
| 38095 |
astrainfinita author:astrainfinita |
perf(Algebra/*/{InjSurj, TransferInstance}): reduce instance `Expr`s |
---
We can not just use `fast_instance%`, because `fast_instance%` reduces instances into constructor applications, but their arguments may still not be reduced.
This PR continues the work from #13795.
Original PR: https://github.com/leanprover-community/mathlib4/pull/13795
[Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/instance.20unfolding.20phenomenon/) |
t-algebra label:t-algebra$ |
401/219 |
Mathlib/Algebra/Field/Basic.lean,Mathlib/Algebra/Field/TransferInstance.lean,Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/Group/Action/TransferInstance.lean,Mathlib/Algebra/Group/InjSurj.lean,Mathlib/Algebra/Group/TransferInstance.lean,Mathlib/Algebra/GroupWithZero/Action/Defs.lean,Mathlib/Algebra/GroupWithZero/Action/End.lean,Mathlib/Algebra/GroupWithZero/Action/TransferInstance.lean,Mathlib/Algebra/GroupWithZero/InjSurj.lean,Mathlib/Algebra/Module/Defs.lean,Mathlib/Algebra/Module/RingHom.lean,Mathlib/Algebra/Ring/InjSurj.lean,Mathlib/Algebra/Ring/TransferInstance.lean,Mathlib/Util/TermReduce.lean,scripts/noshake.json |
16 |
7 |
['astrainfinita', 'github-actions', 'leanprover-radar'] |
dagurtomas assignee:dagurtomas |
2-60224 2 days ago |
24-50528 24 days ago |
24-53037 24 days |
| 38198 |
JovanGerb author:JovanGerb |
chore(Data/Real/Basic): `no_expose` the private operations |
This PR puts `no_expose` on all of the operations on `Real` that are defined in terms of quotients. This is a step in the direction of not exposing the definiton of `Real`.
Note that I leave the `irreducible_def`s as is. This is because the `simpNF` linter does not participate in the module system, and it would time out otherwise.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
11/32 |
Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean,Mathlib/Data/Real/Basic.lean,Mathlib/Topology/Algebra/Valued/NormedValued.lean |
3 |
11 |
['JovanGerb', 'eric-wieser', 'github-actions', 'leanprover-radar'] |
TwoFX assignee:TwoFX |
2-60223 2 days ago |
22-31768 22 days ago |
22-32688 22 days |
| 38208 |
mbkybky author:mbkybky |
chore: rename two instances |
Rename [Module.Free.Module.free_shrink](https://leanprover-community.github.io/mathlib4_docs/Mathlib/LinearAlgebra/FreeModule/Basic.html#Module.Free.Module.free_shrink) to `Module.Free.shrink` and rename [Module.Finite.Module.finite_shrink](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/Finiteness/Basic.html#Module.Finite.Module.finite_shrink) to `Module.Finite.shrink`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-ring-theory
label:t-algebra$ |
6/2 |
Mathlib/LinearAlgebra/FreeModule/Basic.lean,Mathlib/RingTheory/Finiteness/Basic.lean |
2 |
3 |
['github-actions', 'mbkybky', 'plp127'] |
riccardobrasca assignee:riccardobrasca |
2-60222 2 days ago |
22-17316 22 days ago |
22-18510 22 days |
| 38282 |
JovanGerb author:JovanGerb |
chore(Algebra/Lie/Submodule): remove duplicate instance |
This PR removes the explicit `CoeSort` instance on `LieSubmodule`, because it is identical to the one inherited from its `SetLike` instance.
This instance was added in #16509, and I'm not quite sure why it was needed then and not anymore.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
0/3 |
Mathlib/Algebra/Lie/Submodule.lean |
1 |
1 |
['github-actions'] |
ocfnash assignee:ocfnash |
2-60221 2 days ago |
20-30807 20 days ago |
20-30786 20 days |
| 38725 |
yuanyi-350 author:yuanyi-350 |
chore(AlgebraicGeometry/ProjectiveSpectrum): remove `erw`s |
- folds the `erw` steps in `isSeparated` into the surrounding `simp only` rewrites, including `affineOpenCover_f`
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
t-algebraic-geometry |
9/12 |
Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Proper.lean |
1 |
2 |
['dagurtomas', 'github-actions'] |
dagurtomas assignee:dagurtomas |
2-60219 2 days ago |
9-3526 9 days ago |
10-19205 10 days |
| 38762 |
yuanyi-350 author:yuanyi-350 |
chore(AlgebraicGeometry/EllipticCurve/Projective/Point): remove erws |
- rewrites `neg_of_Z_ne_zero` by splitting the `Fin 3` equality and closing the coordinates with `rw`
- rewrites `addXYZ_neg` with `rw` followed by `simp`
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
t-algebraic-geometry
LLM-generated
|
6/3 |
Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Point.lean |
1 |
3 |
['dagurtomas', 'github-actions'] |
dagurtomas assignee:dagurtomas |
2-60218 2 days ago |
9-63946 9 days ago |
10-16113 10 days |
| 38957 |
wwylele author:wwylele |
chore(GroupTheory/DivisibleHull): remove `backward.privateInPublic` |
---
[](https://gitpod.io/from-referrer/)
|
tech debt
t-group-theory
maintainer-merge
|
5/12 |
Mathlib/GroupTheory/DivisibleHull.lean |
1 |
3 |
['github-actions', 'grunweg', 'wwylele'] |
jcommelin assignee:jcommelin |
2-60217 2 days ago |
4-78493 4 days ago |
5-13980 5 days |
| 38984 |
kebekus author:kebekus |
feat: variants of the principle of isolated zeros for meromorphic functions |
Add simple, but useful, variants of the principle of isolated zeros for meromorphic functions.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
24/1 |
Mathlib/Analysis/Meromorphic/IsolatedZeros.lean,Mathlib/Analysis/Meromorphic/Order.lean |
2 |
1 |
['github-actions'] |
themathqueen assignee:themathqueen |
2-60216 2 days ago |
4-42216 4 days ago |
4-42195 4 days |
| 39036 |
ajhendel author:ajhendel |
doc: fix Lean 3 namespace in DiophantineApproximation |
The implementation notes section references the Lean 3 namespace \`real.contfrac_legendre\`, but this was renamed to \`Real.ContfracLegendre\` during the port. This fixes the reference.
---
Co-Authored-By: Claude Opus 4.6 |
t-number-theory
new-contributor
maintainer-merge
|
1/1 |
Mathlib/NumberTheory/DiophantineApproximation/Basic.lean |
1 |
4 |
['github-actions', 'tb65536'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
2-60215 2 days ago |
3-14043 3 days ago |
3-14022 3 days |
| 39056 |
vihdzp author:vihdzp |
feat: `IsBotOneClass β+` |
---
[](https://gitpod.io/from-referrer/)
|
t-data |
17/14 |
Mathlib/Data/PNat/Basic.lean,Mathlib/Data/PNat/Defs.lean,Mathlib/Data/PNat/Prime.lean |
3 |
1 |
['github-actions'] |
nobody |
2-58027 2 days ago |
2-58094 2 days ago |
2-62782 2 days |
| 39057 |
vihdzp author:vihdzp |
feat: `min` and `max` theorems for `IsBotZeroClass` |
We also remove a redundant `ZeroLEOneClass Ordinal` instance (which can now be inferred via `CanonicallyOrderedAdd` β `IsBotZeroClass` β `ZeroLEOneClass`).
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-order
|
36/22 |
Mathlib/Algebra/Order/IsBotOne.lean,Mathlib/Analysis/Normed/Lp/ProdLp.lean,Mathlib/Data/ENNReal/Basic.lean,Mathlib/Data/ENNReal/Real.lean,Mathlib/SetTheory/Ordinal/Basic.lean,Mathlib/Topology/EMetricSpace/Diam.lean,Mathlib/Topology/MetricSpace/HausdorffDistance.lean |
7 |
1 |
['github-actions'] |
nobody |
2-53853 2 days ago |
2-53923 2 days ago |
2-58205 2 days |
| 38918 |
yuanyi-350 author:yuanyi-350 |
chore(CategoryTheory/Groupoid/FreeGroupoid): remove an erw |
- rewrites `lift` by simplifying the quotient-lift compatibility condition with `simp only`
- replaces the remaining `erw` chain with a direct rewrite through `Quiver.symmetrify_reverse` and `Groupoid.reverse_eq_inv`
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
|
5/3 |
Mathlib/CategoryTheory/Groupoid/FreeGroupoid.lean |
1 |
2 |
['github-actions', 'loefflerd'] |
nobody |
2-42579 2 days ago |
6-25107 6 days ago |
6-25086 6 days |
| 38029 |
Thmoas-Guan author:Thmoas-Guan |
refactor(RingTheory): refactor APIs for minimal primes to lessen defeq abuse |
Remove access by `.1.1` and `.1.2` to mem minimal primes.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
94/78 |
Mathlib/RingTheory/Ideal/AssociatedPrime/Localization.lean,Mathlib/RingTheory/Ideal/Height.lean,Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean,Mathlib/RingTheory/Ideal/MinimalPrime/Basic.lean,Mathlib/RingTheory/Ideal/MinimalPrime/Colon.lean,Mathlib/RingTheory/Ideal/MinimalPrime/Localization.lean,Mathlib/RingTheory/KrullDimension/Regular.lean,Mathlib/RingTheory/KrullDimension/Zero.lean,Mathlib/RingTheory/Spectrum/Prime/Topology.lean |
9 |
14 |
['Thmoas-Guan', 'chrisflav', 'github-actions', 'themathqueen'] |
mattrobball assignee:mattrobball |
2-38681 2 days ago |
2-38681 2 days ago |
24-66435 24 days |
| 35287 |
arnoudvanderleer author:arnoudvanderleer |
feat(AlgebraicTopology/SimplicialSet): define isomorphisms in simplicial sets, and the coherent isomorphism simplicial set |
show that any edge in a simplicial set, that is the image of the forward edge of the coherent isomorphism under a simplicial set morphism, is an isomorphism.
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-topology
new-contributor
infinity-cosmos
|
367/3 |
Mathlib.lean,Mathlib/AlgebraicTopology/SimplicialSet/CoherentIso.lean,Mathlib/AlgebraicTopology/SimplicialSet/CompStruct.lean,Mathlib/AlgebraicTopology/SimplicialSet/NerveCodiscrete.lean,Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean,Mathlib/CategoryTheory/CodiscreteCategory.lean |
6 |
111 |
['arnoudvanderleer', 'dagurtomas', 'github-actions', 'joelriou', 'mathlib-merge-conflicts', 'robin-carlier'] |
robin-carlier assignee:robin-carlier |
2-37226 2 days ago |
9-30896 9 days ago |
28-15273 28 days |
| 39067 |
mbkybky author:mbkybky |
feat(Algebra/Module): define modules admitting finite free resolutions |
We say that an `R`-module `M` has a finite free resolution if there exists an exact sequence `0 βΆ Eβ βΆ β― βΆ Eβ βΆ M βΆ 0` such that `Eα΅’` are finite free `R`-modules.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
186/0 |
Mathlib.lean,Mathlib/Algebra/Module/Equiv/Defs.lean,Mathlib/Algebra/Module/FiniteFreeResolution/Basic.lean |
3 |
1 |
['github-actions'] |
nobody |
2-36139 2 days ago |
2-36387 2 days ago |
2-36366 2 days |
| 38970 |
themathqueen author:themathqueen |
chore(Analysis/InnerProductSpace/Projection): rename `orthogonalProjection` to `orthogonalProjectionOnto` |
To match the current (continuous) linear projection to a submodule along its complement `Submodule.projection(Onto)(L)`, we change `Submodule.orthogonalProjection` to `Submodule.orthogonalProjectionOnto` (and later will change `Submodule.starProjection` to `Submodule.orthogonalProjection`).
---
Zulip thread: [#**mathlib4>Two variants of linear projections**](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Two.20variants.20of.20linear.20projections/with/591234152)
[](https://gitpod.io/from-referrer/)
|
t-analysis |
267/183 |
Mathlib/Analysis/InnerProductSpace/Adjoint.lean,Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean,Mathlib/Analysis/InnerProductSpace/MeanErgodic.lean,Mathlib/Analysis/InnerProductSpace/PiL2.lean,Mathlib/Analysis/InnerProductSpace/Positive.lean,Mathlib/Analysis/InnerProductSpace/ProdL2.lean,Mathlib/Analysis/InnerProductSpace/Projection/Basic.lean,Mathlib/Analysis/InnerProductSpace/Projection/FiniteDimensional.lean,Mathlib/Analysis/InnerProductSpace/Projection/Reflection.lean,Mathlib/Analysis/InnerProductSpace/Projection/Submodule.lean,Mathlib/Analysis/InnerProductSpace/Spectrum.lean,Mathlib/Analysis/InnerProductSpace/l2Space.lean,Mathlib/Geometry/Euclidean/Projection.lean,Mathlib/Geometry/Euclidean/Volume/Measure.lean,Mathlib/Geometry/Manifold/Instances/Sphere.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean,Mathlib/MeasureTheory/Measure/Hausdorff.lean,Mathlib/Topology/MetricSpace/HausdorffDimension.lean,docs/overview.yaml,docs/undergrad.yaml |
20 |
16 |
['ADedecker', 'eric-wieser', 'github-actions', 'themathqueen'] |
mcdoll assignee:mcdoll |
2-34623 2 days ago |
2-34571 2 days ago |
4-48441 4 days |
| 36103 |
SnkXyx author:SnkXyx |
feat(Algebra/MvPolynomial/CharacteristicSet): add Characteristic Set |
This PR adds some definitions and theorems of Characteristic Set Method (also known as Wu's Method).
Definitions:
* `MvPolynomial.mainDegree`
* `MvPolynomial.initialOf`
* `MvPolynomial.reducedTo`
* `TriangulatedSet`
* `MvPolynomial.pseudo`
* `MvPolynomial.setPseudo`
* `MvPolynomial.isRemainder`
* `MvPolynomial.isSetRemainder`
* `AscendingSetTheory`
* `TriangulatedSet.isAscendingSet`
* `HasBasicSet`
* `TriangulatedSet.isCharacteristicSet`
* `MvPolynomial.List.characteristicSet`
* `MvPolynomial.List.zeroDecomposition`
Main Theorems:
* `MvPolynomial.initialOf_mul_eq`: $init_i(p \cdot q) = init_i(p) \cdot init_i(q)$ if there is no zero divisors in the coefficient ring.
* `TriangulatedSet.instWellFoundedLT`: The set of Triangulated Sets is well-founded under the lexicographic ordering.
* `MvPolynomial.pseudo_remainder_isRemainder`: The remainder $r$ of $g$ by $f$ is reduced with respect to $f$ and satisfies $init(f)^s \cdot g = q \cdot f + r$ for some $s \in \mathbb{N}$ and $q \in R[X_{\sigma}]$.
* `MvPolynomial.setPseudo_remainder_isSetRemainder`: The remainder $r$ of $g$ by a set $S$ is reduced with respect to $S$ and satisfies $(\prod S_i^{e_i}) \cdot g = \sum q_i \cdot S_i + r$ for some sequences $\{e_i\}$ and $\{q_i\}$.
* `MvPolynomial.setPseudo_remainder_eq_zero_of_mem`: The remainder of $p$ by a set $S$ is $0$ if $p \in S$.
* `MvPolynomial.List.basicSet_append_lt_of_exists_reducedToSet`: Appending an element which is reduced w.r.t. the basic set of list strictly decreases the order.
* `MvPolynomial.List.characteristicSet_isCharacteristicSet`: The computed Characteristic Set $CS$ satisfies the key algebraic property (pseudo-remainder of input polynomials is 0) and the geometric property ( $Zero(PS) \subseteq Zero(CS)$ ).
* `MvPolynomial.List.vanishingSet_eq_zeroDecomposition_union`: The zero set of a polynomial system $PS$ can be decomposed into a finite union of "quasi-varieties" defined by triangular sets:
$Zero(PS) = \bigcup_{CS \in \mathcal{ZD}} Zero(CS / \text{InitialProd}(CS))$
The PR is upstreamized from [github.com/WuProver/lean_characteristic_set](https://github.com/WuProver/lean_characteristic_set)
---
[](https://gitpod.io/from-referrer/)
- [x] depends on: #36386
- [x] depends on: #37791
|
t-algebra
new-contributor
label:t-algebra$ |
3860/0 |
Mathlib.lean,Mathlib/Algebra/MvPolynomial/CharacteristicSet/AscendingSet.lean,Mathlib/Algebra/MvPolynomial/CharacteristicSet/CharacteristicSet.lean,Mathlib/Algebra/MvPolynomial/CharacteristicSet/Initial.lean,Mathlib/Algebra/MvPolynomial/CharacteristicSet/MainDegree.lean,Mathlib/Algebra/MvPolynomial/CharacteristicSet/Order.lean,Mathlib/Algebra/MvPolynomial/CharacteristicSet/PseudoDivision.lean,Mathlib/Algebra/MvPolynomial/CharacteristicSet/Reduce.lean,Mathlib/Algebra/MvPolynomial/CharacteristicSet/StandardAscendingSet.lean,Mathlib/Algebra/MvPolynomial/CharacteristicSet/TriangularSet.lean,Mathlib/Algebra/MvPolynomial/CharacteristicSet/WeakAscendingSet.lean,docs/references.bib |
12 |
20 |
['Hagb', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
2-30975 2 days ago |
2-31017 2 days ago |
6-18083 6 days |
| 38990 |
Vierkantor author:Vierkantor |
chore(Algebra/DirectSum): workaround for `backward.inferInstanceAs` |
This PR works around a `backward.inferInstanceAs` compatibility flag introduced by identifying `DirectSum` with `DFinsupp` in our definitions. We introduce a new dsimp lemma `funLike_eq` that transfers the `FunLike` instances, and now we can use `DirectSum`'s `FunLike` instance, instead of the custom `CoeFun` instance. I unsqueezed a few `simp`s, which all ran pretty much instant on my machine so it shouldn't cause much slowdown. Also we fix two porting notes.
This is not a great approach, but it seems the least painful for the short term. The alternative would be to strictly enforce the defeq barrier between `DirectSum` and `DFinsupp`, which would mean a substantial rewrite of this corner of Mathlib. We can't make `DirectSum` an `@[implicit_reducible]`, because we need different multiplication on it than `DFinsupp` has.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
tech debt
t-ring-theory
label:t-algebra$ |
36/38 |
Mathlib/Algebra/DirectSum/Basic.lean,Mathlib/Algebra/DirectSum/Internal.lean,Mathlib/Algebra/DirectSum/Ring.lean,Mathlib/Algebra/Lie/DirectSum.lean,Mathlib/Algebra/Order/Module/HahnEmbedding.lean,Mathlib/Analysis/InnerProductSpace/Projection/FiniteDimensional.lean,Mathlib/Analysis/InnerProductSpace/Subspace.lean,Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean,Mathlib/RingTheory/Spectrum/Prime/RingHom.lean |
9 |
2 |
['JovanGerb', 'github-actions'] |
nobody |
2-30459 2 days ago |
4-30575 4 days ago |
4-31583 4 days |
| 38785 |
scholzhannah author:scholzhannah |
feat: use `alias_in` attribute for CW complexes |
Using the `alias_in` attribute for classical CW complexes to get rid of the `export` sections.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
90/58 |
Mathlib/Topology/CWComplex/Classical/Basic.lean,Mathlib/Topology/CWComplex/Classical/Finite.lean,Mathlib/Topology/CWComplex/Classical/Subcomplex.lean |
3 |
8 |
['github-actions', 'grunweg', 'scholzhannah'] |
grunweg, mcdoll, urkud assignee:urkud assignee:grunweg assignee:mcdoll |
2-27598 2 days ago |
2-35447 2 days ago |
9-23788 9 days |
| 35316 |
mkaratarakis author:mkaratarakis |
feat: lemmas for the analytic part of the proof of the GelfondβSchneider theorem (Part 4/5) |
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
new-contributor
large-import
|
84/1 |
Mathlib/Analysis/Analytic/Order.lean |
1 |
29 |
['MichaelStollBayreuth', 'SnirBroshi', 'github-actions', 'kebekus', 'mathlib-dependent-issues', 'mkaratarakis'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
2-27269 2 days ago |
3-66685 3 days ago |
27-14613 27 days |
| 39075 |
Thmoas-Guan author:Thmoas-Guan |
feat(Algebra/CommRingCat): colimit of local ring via local hom |
In this PR, we deal with filtered colimit of local ring via local homomorphisms, proving it is
again local, with maximal ideal equal to the union of images of maximal ideals.
Co-authored-by: Wang Jingting
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
209/0 |
Mathlib.lean,Mathlib/Algebra/Category/Ring/FilteredColimitsLocal.lean |
2 |
1 |
['github-actions'] |
nobody |
2-19482 2 days ago |
2-20340 2 days ago |
2-20436 2 days |
| 39078 |
fpvandoorn author:fpvandoorn |
feat: add lemmas about products over Finset.Iio |
* Mostly useful for `β`
* I added the `Finset.Iic` lemmas by symmetry, but I'm happy to remove them if we think they are redundant.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
29/0 |
Mathlib/Algebra/Order/BigOperators/Group/LocallyFinite.lean |
1 |
1 |
['github-actions'] |
nobody |
2-18947 2 days ago |
2-19027 2 days ago |
2-19006 2 days |
| 37851 |
gaetanserre author:gaetanserre |
feat(Category/Kernel): `Stoch` is a positive Markov category |
`Stoch` is a positive category (see _A synthetic approach to Markov kernels, conditional independence and theorems on sufficient statistics_, Fritz, 2020, Example 11.25).
Add several `Deterministic` instances for `SFinKer` and `Stoch` associators, unitors, braiding, counit, and comul morphisms.
- [x] depends on: #38211
- [x] depends on: #38212
- [x] depends on: #39042
- [x] depends on: #39043
- [x] depends on: #39051
- [x] depends on: #39052
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
t-category-theory
|
97/10 |
Mathlib/Probability/Kernel/Category/SFinKer.lean,Mathlib/Probability/Kernel/Category/Stoch.lean |
2 |
23 |
['RemyDegenne', 'dagurtomas', 'gaetanserre', 'github-actions', 'joelriou', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib-splicebot'] |
RemyDegenne assignee:RemyDegenne |
2-17266 2 days ago |
2-17352 2 days ago |
10-15065 10 days |
| 39082 |
emlis42 author:emlis42 |
feat(Analysis\Calculus\Deriv): add deriv_const_op |
This PR adds some lemmas so `simp` can automatically evaluate derivatives of partially applied heterogeneous operations such as `HAdd.hAdd`, `HMul.hMul` `HDiv.hDiv`, and `HPow.hPow`. |
t-analysis
new-contributor
|
47/5 |
Mathlib/Analysis/Analytic/Binomial.lean,Mathlib/Analysis/Calculus/Deriv/Add.lean,Mathlib/Analysis/Calculus/Deriv/Inv.lean,Mathlib/Analysis/Calculus/FDeriv/Norm.lean,Mathlib/Analysis/SpecialFunctions/BinaryEntropy.lean,Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean,MathlibTest/Deriv.lean |
7 |
2 |
['github-actions'] |
nobody |
2-15416 2 days ago |
2-15495 2 days ago |
2-16194 2 days |
| 34759 |
Hagb author:Hagb |
feat(RingTheory/MvPolynomial/MonomialOrder): add degree with `β₯` as degree of `0` |
`withBotDegree` is to distinguish the degree of zero polynomial from the degree of non-zero constant polynomial. `MonomialOrder.degree` of both are 0, while `withBotDegree` is `β₯` for zero polynomial and 0 for non-zero constant polynomial.
`MonomialOrder.withBotDegree` is to `MonomialOrder.degree` as `Polynomial.degree` is to `Polynomial.natDegree`.
It's upstreamized from https://github.com/WuProver/groebner_proj.
---
`MonomialOrder.withBotDegree` is to [`MonomialOrder.degree`](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=MonomialOrder.degree#doc) as [`Polynomial.degree`](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Polynomial.degree#doc) is to [`Polynomial.natDegree`](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Polynomial.natDegree#doc).
It's upstreamized from [`Groebner/MonomialOrder.lean` in the repo `WuProver/groebner_proj`](https://github.com/WuProver/groebner_proj/blob/main/Groebner/MonomialOrder.lean).
- [x] ~~depends on: #34755~~
- [x] depends on: #34756
- [x] depends on: #34758
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
243/2 |
Mathlib/Data/Finsupp/MonomialOrder.lean,Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean |
2 |
17 |
['Hagb', 'github-actions', 'joneugster', 'mariainesdff', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
mariainesdff assignee:mariainesdff |
2-14108 2 days ago |
2-14183 2 days ago |
37-2233 37 days |
| 38814 |
sharky564 author:sharky564 |
refactor(LinearAlgebra/Projection): refactor `quotientEquivOfIsCompl` via `LinearEquiv.ofLinear` |
This PR refactors `Submodule.quotientEquivOfIsCompl` to use `LinearEquiv.ofLinear` rather than `LinearEquiv.symm <| LinearEquiv.ofBijective`. The new definition makes both directions of the equivalence explicit: the forward idirection is `Submodule.liftQ` of the projection onto `q` along `p`, and the backward direction is `Submodule.mkQ` composed with the inclusion `q` in `E`.
---
The motivation is work on topological complements of submodules in PR #38547. The proof of `IsCompl.isTopCompl_iff_continuous_quotientEquiv` reduces, via the quotient-map property of `mkQ`, to identifying the composite `quotientEquivOfIsCompl β mkQ` with the linear projection. This identifications feels like it should belong at the algebraic level and not mixed in with the topological reasoning. Additionally, these lemmas seem useful independently. |
t-algebra
new-contributor
maintainer-merge
label:t-algebra$ |
43/22 |
Mathlib/LinearAlgebra/Projection.lean |
1 |
27 |
['ADedecker', 'github-actions', 'sharky564', 'themathqueen'] |
nobody |
2-9642 2 days ago |
4-9552 4 days ago |
8-40094 8 days |
| 38654 |
MichaelStollBayreuth author:MichaelStollBayreuth |
feat(RingTheory.DedekindDomain.Factorization): add API for factorization |
This PR adds
* `simp` lemmas that convert ways of expressing the multiplicity of a prime ideal `p` in the factorization of an ideal `I` into `multiplicity p.asIdeal I` (see [#Is there code for X? > Results on elements of number fields and ideals @ π¬](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Results.20on.20elements.20of.20number.20fields.20and.20ideals/near/574739650)),
* API lemmas on multiplicities, expressed in terms of `multiplicity p.asIdeal I`.
* We also refactor a proof in Mathlib.RingTheory.DedekindDomain.Ideal.Lemmas by extracting a couple of lemmas that we can reuse in one of the new lemmas.
These will be useful in proving the Northcott property of heights on number fields.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-number-theory
|
166/23 |
Mathlib/RingTheory/DedekindDomain/Factorization.lean,Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean,Mathlib/RingTheory/UniqueFactorizationDomain/NormalizedFactors.lean |
3 |
17 |
['AntoineChambert-Loir', 'MichaelStollBayreuth', 'Ruben-VandeVelde', 'github-actions', 'xroblot'] |
jcommelin assignee:jcommelin |
2-7752 2 days ago |
6-14823 6 days ago |
12-9444 12 days |
| 39091 |
tb65536 author:tb65536 |
feat(FieldTheory/Galois/IsGaloisGroup): add version of `IsGaloisGroup.to_isFractionRing` assuming only `IsIntegral` |
This PR adds a version of `IsGaloisGroup.to_isFractionRing` assuming only `Algebra.IsIntegral A B` (which is weaker than the existing assumption `Finite G`).
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
22/9 |
Mathlib/FieldTheory/Galois/IsGaloisGroup.lean,Mathlib/RingTheory/Invariant/Basic.lean |
2 |
1 |
['github-actions'] |
nobody |
2-5555 2 days ago |
2-5555 2 days ago |
2-5535 2 days |
| 38729 |
tb65536 author:tb65536 |
feat(GroupTheory/Torsion): torsion subgroup of a product |
This PR proves that the torsion subgroup of a product is the product of the torsion subgroups.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-group-theory
label:t-algebra$ |
13/2 |
Mathlib/GroupTheory/Torsion.lean |
1 |
2 |
['github-actions', 'robin-carlier'] |
nobody |
2-5199 2 days ago |
2-5265 2 days ago |
10-84963 10 days |
| 39073 |
tb65536 author:tb65536 |
feat(RingTheory/RamificationInertia/Inertia): add `inertiaDeg'_pos` |
This PR adds a positivity lemma for the new `inertiaDeg'` (which will eventually replace `inertiaDeg`).
An extra import is needed to synthesize finiteness on the residue fields.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
6/0 |
Mathlib/RingTheory/RamificationInertia/Inertia.lean |
1 |
1 |
['github-actions'] |
nobody |
2-5078 2 days ago |
2-5078 2 days ago |
2-5059 2 days |
| 39072 |
tb65536 author:tb65536 |
feat(RingTheory/Unramified/Locus): add `iff` lemma relating `Unramified` to `IsUnramifiedAt` |
This PR adds an `iff` lemma relating `Unramified` to `IsUnramifiedAt`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
10/2 |
Mathlib/RingTheory/RingHom/Unramified.lean,Mathlib/RingTheory/Unramified/Locus.lean |
2 |
1 |
['github-actions'] |
nobody |
2-5045 2 days ago |
2-5045 2 days ago |
2-5025 2 days |
| 39070 |
tb65536 author:tb65536 |
chore(RingTheory/Ideal/GoingUp): weaken `IsIntegralClosure` to `Algebra.IsIntegral` |
Several results in `GoingUp.lean` assumed `IsIntegralClosure` when they only used `Algebra.IsIntegral`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
37/30 |
Mathlib/RingTheory/DedekindDomain/Basic.lean,Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean,Mathlib/RingTheory/Ideal/GoingUp.lean |
3 |
1 |
['github-actions'] |
nobody |
2-4741 2 days ago |
2-4741 2 days ago |
2-4721 2 days |
| 37840 |
tb65536 author:tb65536 |
chore(RingTheory/Localization/AtPrime/Basic): use `under` instead of `comap (algebraMap R S)` |
This PR switches over from `comap (algebraMap R S)` to `under`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
maintainer-merge
label:t-algebra$ |
171/149 |
Mathlib/AlgebraicGeometry/Noetherian.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean,Mathlib/RingTheory/DedekindDomain/Dvr.lean,Mathlib/RingTheory/Etale/QuasiFinite.lean,Mathlib/RingTheory/Frobenius.lean,Mathlib/RingTheory/Ideal/AssociatedPrime/Localization.lean,Mathlib/RingTheory/Ideal/GoingUp.lean,Mathlib/RingTheory/Ideal/Height.lean,Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean,Mathlib/RingTheory/Ideal/MinimalPrime/Localization.lean,Mathlib/RingTheory/Ideal/Over.lean,Mathlib/RingTheory/IntegralClosure/GoingDown.lean,Mathlib/RingTheory/Jacobson/Ring.lean,Mathlib/RingTheory/KrullDimension/Polynomial.lean,Mathlib/RingTheory/LocalProperties/Injective.lean,Mathlib/RingTheory/Localization/AtPrime/Basic.lean,Mathlib/RingTheory/Localization/AtPrime/Extension.lean,Mathlib/RingTheory/Localization/Ideal.lean,Mathlib/RingTheory/QuasiFinite/Basic.lean,Mathlib/RingTheory/Spectrum/Prime/Topology.lean |
20 |
14 |
['chrisflav', 'github-actions', 'mathlib-merge-conflicts', 'robin-carlier', 'tb65536'] |
chrisflav and erdOne assignee:erdOne assignee:chrisflav |
2-985 2 days ago |
2-985 2 days ago |
23-25794 23 days |
| 38899 |
thorimur author:thorimur |
feat: `#scope` |
This PR is the first step in creating a toolset of (transient) utilities for assisting with moving declaration commands between files (including sorting out their dependencies, and integrating their needs into the new location).
Capturing the current scope necessary for the command is the first task, and to that end this PR contributes the command `#scope`, which reifies the current scope into portable syntax. `#scope` by itself produces a try-this suggestion placing a scope specification after `#scope`, of the following form:
```
#scope
(@[expose])? (public)? (noncomputable)? (section)? scope
(universe ...)?
(namespace ...)?
(open @idβ @idβ ...)?
(open scoped @idβ @idβ ...)?
(set_options keyβ valβ, keyβ valβ ...)?
(variable ...)?
(include ...)?
(omit ...)?
```
This is intended to fully capture the "semantic" aspects of the current scope, but not the full scope stack (and so e.g. disregards `section`s). Likewise this slightly-unusual syntax (e.g. `open @Foo` instead of `open Foo`) is intended to act as a portable record of the open declaration which can be acted on by automation, and to discourage interpretation as a "normal" `open` statement.
By itself, this is only a slightly odd `#where`. Future PRs (e.g. #38900) will build on this in order to provide a suite of tools for transporting scopes between files and managing them once there, making it easier to move declarations.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
512/3 |
Mathlib.lean,Mathlib/Lean/Elab/Options.lean,Mathlib/Lean/Name.lean,Mathlib/Util/Scope.lean,MathlibTest/Scope.lean |
5 |
3 |
['JovanGerb', 'github-actions', 'thorimur'] |
JovanGerb assignee:JovanGerb |
1-85384 1 day ago |
6-35865 6 days ago |
6-35851 6 days |
| 33506 |
Rida-Hamadani author:Rida-Hamadani |
feat(SimpleGraph): construct a cycle of two distinct paths with same start and end |
Co-authored-by: Vlad Tsyrklevich
Co-authored-by: Snir Broshi <26556598+SnirBroshi@users.noreply.github.com>
---
- [x] depends on: #33249
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
maintainer-merge
|
111/5 |
Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Decomp.lean,Mathlib/Data/List/Basic.lean,Mathlib/Data/List/Nodup.lean |
5 |
60 |
['Rida-Hamadani', 'SnirBroshi', 'YaelDillies', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'vlad902'] |
nobody |
1-83374 1 day ago |
2-52783 2 days ago |
20-31962 20 days |
| 39098 |
BoltonBailey author:BoltonBailey |
chore(Data/Vector): add `grind` to cons lemmas |
This PR affects `List.Vector.head_cons` and `List.Vector.tail_cons`. It moves the simp attribute assignment of these lemmas to the lemma declarations and also applies the `grind =` attribute.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
2/2 |
Mathlib/Data/Vector/Basic.lean,Mathlib/Data/Vector/Defs.lean |
2 |
2 |
['github-actions'] |
nobody |
1-82382 1 day ago |
1-82874 1 day ago |
1-82853 1 day |
| 39074 |
tb65536 author:tb65536 |
feat(RingTheory/RamificationInertia/Ramification): relate `ramificationIdx'` to `Algebra.IsUnramifiedAt` |
This PR relates the new `ramificationIdx'` (which will eventually replace `ramificationIdx`) to `Algebra.IsUnramifiedAt`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
large-import
label:t-algebra$ |
30/0 |
Mathlib/RingTheory/RamificationInertia/Ramification.lean |
1 |
1 |
['github-actions'] |
nobody |
1-82311 1 day ago |
2-11567 2 days ago |
2-11547 2 days |
| 33178 |
gw90 author:gw90 |
feat(Analysis/CStarAlgebra/Spectrum): Adding lemmas that the CStarAlgebra norm equals the square root of the spectral radius of star a * a |
Adds lemmas that the ||a||^2_A=sqrt(spectralRadius C (star a * a)). I think it would be helpful to have these lemmas available in Mathlib. It'll help with some of the other things I'm working on. Feel free to move them to a different file or rename them as you see fit. |
new-contributor
t-analysis
|
24/0 |
Mathlib/Analysis/CStarAlgebra/Spectrum.lean |
1 |
17 |
['github-actions', 'gw90', 'themathqueen', 'vihdzp'] |
nobody |
1-81177 1 day ago |
1-81535 1 day ago |
2-10323 2 days |
| 34271 |
gasparattila author:gasparattila |
feat(Topology/Sets): second-countability of `(Nonempty)Compacts` |
---
- [x] depends on: #34266
- [x] depends on: #34268
[](https://gitpod.io/from-referrer/)
|
t-topology |
17/76 |
Mathlib/Topology/MetricSpace/Closeds.lean,Mathlib/Topology/Sets/VietorisTopology.lean |
2 |
9 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'scholzhannah'] |
urkud assignee:urkud |
1-77308 1 day ago |
1-77346 1 day ago |
38-86228 38 days |
| 38223 |
Deicyde author:Deicyde |
feat(Geometry/Manifold): add `MfldCat`, the category of `C^n` manifolds |
We define `MfldCat π n`: the category of `C^n` manifolds over a field `π`, following the pattern of `TopCat` in
`Mathlib.Topology.Category.TopCat.Basic`. We also implement `HasForgetβ (MfldCat π n) TopCat`βthe forgetful functor into the category of topological spaces. For more discussion see the Zulip thread: [#PR reviews > #38223 The Category of C^n Manifolds](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2338223.20The.20Category.20of.20C.5En.20Manifolds/with/587038032)
Also added: `ContMDiffMap.id_apply`, `.coe_id` and `.coe_comp` which are comparable to `ContinuousMap` API.
### Future work
- β
Define a Monoidal structure via product manifolds, analogous to `Manifold.Topology.Category.TopCat.Monoidal` #38560
- β
Define the tangent functor: `M β¦ TM`, `F β¦ F.tangentMap` from `MfldCat (n+1) π` to `MfldCat n π` #38270
- Functor `FGModuleCat π β₯€ MfldCat π n` sending a finite-dimensional `π`-vector space to the manifold modeled on itself. Left as `TODO`.
- Define `FGModuleCat π` as an enriched category over `MfldCat n π`. Then _smooth functors_ can be realized as endofunctors on the enriched category. This is the main motivation for this construction.
---
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry
new-contributor
t-category-theory
|
224/0 |
Mathlib.lean,Mathlib/Geometry/Manifold/Category/MfldCat/Basic.lean,Mathlib/Geometry/Manifold/ContMDiffMap.lean |
3 |
57 |
['Deicyde', 'chrisflav', 'dagurtomas', 'github-actions', 'idontgetoutmuch', 'peabrainiac'] |
kim-em assignee:kim-em |
1-75933 1 day ago |
1-79357 1 day ago |
15-43052 15 days |
| 39058 |
vihdzp author:vihdzp |
chore: `IsBotZeroClass (Fin n)` |
We also deprecate a bunch of theorems that now follow from the typeclass.
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-order
|
31/28 |
Archive/Imo/Imo2024Q5.lean,Mathlib/AlgebraicTopology/Quasicategory/Basic.lean,Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean,Mathlib/AlgebraicTopology/SimplicialObject/Basic.lean,Mathlib/AlgebraicTopology/SimplicialSet/Basic.lean,Mathlib/Combinatorics/Additive/FreimanHom.lean,Mathlib/Data/Fin/SuccPred.lean,Mathlib/GroupTheory/Perm/Sign.lean,Mathlib/Logic/Equiv/Fin/Rotate.lean,Mathlib/Order/Fin/Basic.lean,Mathlib/Order/Grade.lean,Mathlib/Order/Interval/Set/Basic.lean,Mathlib/RingTheory/ChainOfDivisors.lean |
13 |
1 |
['github-actions'] |
nobody |
1-74053 1 day ago |
2-57510 2 days ago |
2-62930 2 days |
| 39063 |
khwilson author:khwilson |
feat(Topology/Algebra/Module/LocallyConvex): a very nice basis of locally convex spaces |
In proving facts about locally convex spaces, you often work with a basis of the neighborhoods of 0 that are open, symmetric, convex, antitone, and have the property that `V (n + 1) + V (n + 1) β V n` and `closure (V (n + 1)) β V n`.
These lemmas construct such a basis.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
89/0 |
Mathlib/Topology/Algebra/Group/Pointwise.lean,Mathlib/Topology/Algebra/Module/LocallyConvex.lean |
2 |
2 |
['github-actions', 'khwilson'] |
nobody |
1-71764 1 day ago |
2-52607 2 days ago |
2-52600 2 days |
| 35394 |
HugLycan author:HugLycan |
feat(Tactic/Positivity): make positivity work for types that are not partial orders |
Make positivity work for types that are not partial orders
Most PositivityExt haven't been updated for non partial order cases yet. They will be updated in the later PR.
`Strictness` now depends on `Option Q(PartialOrder $Ξ±)` instead of `Q(PartialOrder $Ξ±)`, and the constructors `Strictness.positive`/`Strictness.nonnegative` now have their `Q(PartialOrder $Ξ±)` typeclass arguments.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-meta
|
661/375 |
Mathlib/Algebra/Order/AbsoluteValue/Basic.lean,Mathlib/Algebra/Order/Algebra.lean,Mathlib/Algebra/Order/BigOperators/Expect.lean,Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean,Mathlib/Algebra/Order/Field/Basic.lean,Mathlib/Algebra/Order/Field/Power.lean,Mathlib/Algebra/Order/Floor/Extended.lean,Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/Algebra/Order/Interval/Basic.lean,Mathlib/Algebra/Order/Module/Field.lean,Mathlib/Analysis/Complex/Exponential.lean,Mathlib/Analysis/Complex/Order.lean,Mathlib/Analysis/Complex/Trigonometric.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean,Mathlib/Analysis/Normed/Group/Basic.lean,Mathlib/Analysis/SpecialFunctions/Bernstein.lean,Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean,Mathlib/Analysis/SpecialFunctions/Log/Basic.lean,Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean,Mathlib/Analysis/SpecialFunctions/Pow/Real.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/DerivHyp.lean,Mathlib/Combinatorics/Enumerative/DyckWord.lean,Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean,Mathlib/Combinatorics/SimpleGraph/Triangle/Removal.lean,Mathlib/Data/ENNReal/Basic.lean,Mathlib/Data/ENNReal/Real.lean,Mathlib/Data/EReal/Basic.lean,Mathlib/Data/EReal/Inv.lean,Mathlib/Data/EReal/Operations.lean,Mathlib/Data/NNReal/Defs.lean,Mathlib/Data/Nat/Factorial/DoubleFactorial.lean,Mathlib/Data/Nat/Totient.lean,Mathlib/Data/Rat/Cast/Order.lean,Mathlib/Data/Real/Sqrt.lean,Mathlib/Geometry/Euclidean/Altitude.lean,Mathlib/MeasureTheory/Covering/Besicovitch.lean,Mathlib/MeasureTheory/Integral/Bochner/Basic.lean,Mathlib/MeasureTheory/Measure/Real.lean,Mathlib/NumberTheory/ArithmeticFunction/Misc.lean,Mathlib/NumberTheory/ArithmeticFunction/Zeta.lean,Mathlib/NumberTheory/Height/Basic.lean,Mathlib/NumberTheory/Height/NumberField.lean,Mathlib/NumberTheory/Height/Projectivization.lean,Mathlib/NumberTheory/LucasLehmer.lean,Mathlib/NumberTheory/SelbergSieve.lean,Mathlib/Tactic/Positivity/Basic.lean,Mathlib/Tactic/Positivity/Core.lean,Mathlib/Tactic/Positivity/Finset.lean,Mathlib/Topology/Algebra/InfiniteSum/Order.lean,Mathlib/Topology/MetricSpace/Bounded.lean,Mathlib/Topology/MetricSpace/Pseudo/Defs.lean,MathlibTest/positivity.lean |
54 |
69 |
['HugLycan', 'JovanGerb', 'fpvandoorn', 'github-actions', 'joneugster', 'leanprover-radar', 'mathlib-merge-conflicts'] |
dwrensha assignee:dwrensha |
1-63165 1 day ago |
3-64238 3 days ago |
46-22388 46 days |
| 35216 |
kim-em author:kim-em |
doc(Tactic/Translate/ToDual): add deployment guide for @[to_dual] |
This PR expands the documentation for `@[to_dual]` with practical advice for deploying it to existing code.
**Module docstring** (`Mathlib/Tactic/Translate/ToDual.lean`): adds a "Deploying `@[to_dual]` to existing code" section covering name agreement, attribute propagation, docstring syntax ordering, declaration order dependencies, and known structural mismatches (conjunct reordering, type class gaps, interval argument swapping).
**Attribute docstring**: adds a note that `@[simp]` is not auto-copied (must use `(attr := simp)`), and shows the correct ordering when combining `(attr := ...)` with docstrings.
**Agent skill** (`.claude/skills/to_dual/SKILL.md`): detailed step-by-step instructions for an AI agent deploying `@[to_dual]`, including how to identify candidates, common patterns, and debugging.
π€ Prepared with Claude Code |
documentation
enhancement
LLM-generated
|
31/3 |
Mathlib/Tactic/Translate/ToDual.lean |
1 |
30 |
['JovanGerb', 'MichaelStollBayreuth', 'github-actions', 'kim-em', 'mathlib-merge-conflicts', 'vihdzp'] |
nobody |
1-61156 1 day ago |
22-67523 22 days ago |
29-54386 29 days |
| 37956 |
artie2000 author:artie2000 |
feat(Algebra/Polynomial): lemmas about polynomial degree |
* Add various small lemmas about polynomial degree
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
28/5 |
Mathlib/Algebra/Polynomial/Degree/Defs.lean,Mathlib/Algebra/Polynomial/Degree/Operations.lean,Mathlib/Algebra/Polynomial/FieldDivision.lean,Mathlib/Algebra/Polynomial/Monic.lean,MathlibTest/hintAll.lean |
5 |
7 |
['artie2000', 'github-actions', 'vihdzp'] |
nobody |
1-61156 1 day ago |
28-1738 28 days ago |
28-3518 28 days |
| 36451 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Matching): `edgeSet` is injective and strictly monotonic on matchings, and more API |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
maintainer-merge
|
36/10 |
Mathlib/Combinatorics/SimpleGraph/Matching.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean |
2 |
13 |
['SnirBroshi', 'YaelDillies', 'github-actions', 'mathlib-merge-conflicts'] |
b-mehta assignee:b-mehta |
1-60329 1 day ago |
17-3206 17 days ago |
45-41135 45 days |
| 37190 |
cjrl author:cjrl |
feat(Combinatorics): Set-Valued Pigeonhole Principle |
This PR contributes two theorems to combinatorics:
- `exists_lt_card_cover_of_card_biUnion_lt_card` is a set-valued version of the pigeonhole principle.
- `sum_card_eq_sum_card_cover_biUnion` is a set theoretic corollary of a double counting result proved for bipartite graphs (`Finset.sum_card_bipartiteAbove_eq_sum_card_bipartiteBelow`). This was needed to prove the above pigeonhole principle.
The motivation for these results is our Latin Square PR #36698. These results were proved in less general terms in that PR, but are independent of Latin Square considerations and so we have generalized and moved them into more relevant files.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-combinatorics
|
38/0 |
Mathlib/Combinatorics/Enumerative/DoubleCounting.lean,Mathlib/Combinatorics/Pigeonhole.lean |
2 |
16 |
['IvanRenison', 'cjrl', 'ghseeli', 'github-actions', 'j-loreaux', 'vlad902'] |
b-mehta assignee:b-mehta |
1-60328 1 day ago |
27-80824 27 days ago |
43-51602 43 days |
| 37521 |
jessealama author:jessealama |
feat(Data/Part): add Part.bind_eq_some_iff |
Add `Part.bind_eq_some_iff`, the `Part` analogue of `Option.bind_eq_some_iff`. Noticed this small gap while working on some equivalence proofs with partial functions. |
t-data |
6/0 |
Mathlib/Data/Part.lean |
1 |
3 |
['github-actions', 'jessealama', 'vihdzp'] |
joneugster assignee:joneugster |
1-60326 1 day ago |
38-76303 38 days ago |
38-76282 38 days |
| 37534 |
EtienneC30 author:EtienneC30 |
feat: cardinality of subsets of a given cardinality |
Given a finite set `s`, the number of subsets of `s` with cardinality `n` is `s.ncard.choose n`. This is analog to [Finset.card_powersetCard](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finset/Powerset.html#Finset.card_powersetCard) and [Set.powersetCard.card](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Set/PowersetCard.html#Set.powersetCard.card) but with a set of sets rather than involving finsets.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
18/0 |
Mathlib/Data/Set/Card.lean |
1 |
1 |
['github-actions'] |
joneugster assignee:joneugster |
1-60325 1 day ago |
38-27977 38 days ago |
38-27956 38 days |
| 37761 |
EtienneC30 author:EtienneC30 |
feat: define Bernoulli distribution |
Define the Bernoulli distribution over an arbitrary measurable space as
`Ber(x, y, p) := toNNReal p β’ dirac x + toNNReal (Ο p) β’ dirac y`.
Deprecate `PMF.binomial`.
Co-authored-by: @DavidLedvinka
---
- [ ] depends on: #37762
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
large-import
|
206/7 |
Mathlib.lean,Mathlib/Data/ENNReal/Action.lean,Mathlib/MeasureTheory/Measure/Typeclasses/Probability.lean,Mathlib/Probability/Distributions/Bernoulli.lean,Mathlib/Probability/Distributions/SetBernoulli.lean,Mathlib/Probability/Moments/SubGaussian.lean,Mathlib/Probability/ProbabilityMassFunction/Binomial.lean,Mathlib/Probability/ProbabilityMassFunction/Constructions.lean,Mathlib/Probability/ProbabilityMassFunction/Integrals.lean |
9 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
sgouezel assignee:sgouezel |
1-60324 1 day ago |
2-12030 2 days ago |
2-12871 2 days |
| 38087 |
kbuzzard author:kbuzzard |
perf: add some fast_instance% |
---
[](https://gitpod.io/from-referrer/)
`fast_instance%` experts should take a look at this and say which if any are spurious. I confess to throwing them around rather randomly.
Zulip thread [#mathlib4 > random fast_instance% makes gains @ π¬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/random.20fast_instance.25.20makes.20gains/near/585737520)
|
t-algebra label:t-algebra$ |
10/9 |
Mathlib/Algebra/EuclideanDomain/Field.lean,Mathlib/Topology/Algebra/GroupCompletion.lean,Mathlib/Topology/Algebra/Valued/WithVal.lean |
3 |
4 |
['github-actions', 'kbuzzard', 'leanprover-radar', 'themathqueen'] |
joneugster assignee:joneugster |
1-60321 1 day ago |
24-82089 24 days ago |
24-82084 24 days |
| 38199 |
vihdzp author:vihdzp |
chore: add items to set theory overview |
---
[](https://gitpod.io/from-referrer/)
|
documentation
t-set-theory
|
11/2 |
docs/overview.yaml |
1 |
3 |
['SnirBroshi', 'github-actions', 'vihdzp'] |
alreadydone assignee:alreadydone |
1-60320 1 day ago |
22-34136 22 days ago |
22-34214 22 days |
| 38225 |
kim-em author:kim-em |
ci: block merging PRs with large import increases unless reviewed |
This PR makes the existing `large-import` label into a merge gate. PRs that significantly increase transitive imports (>2% for any modified file) are now blocked from merging until a reviewer adds the `allow-large-import` label.
### Why three labels?
Bors's `block_labels` has no conditional logic β if a label is in the list, merge is blocked unconditionally. We need "blocked unless a reviewer has approved", i.e. `large-import β§ Β¬allow-large-import`. Since bors can't express that, we use a derived label:
| Label | Managed by | Purpose |
|---|---|---|
| `large-import` | `build` job (import analysis) | Factual: this PR increases imports |
| `blocked-by-large-import` | `check-large-import` job | Operational: blocks bors |
| `allow-large-import` | Reviewer | Override: reviewer approves the increase |
Each label is managed by exactly one actor, so there is no label-fighting.
### How it works
1. The existing `build` job adds/removes `large-import` based on import analysis (unchanged).
2. A new `check-large-import` job (in the same workflow) waits for `build` to finish, then:
- If `large-import` is present and `allow-large-import` is absent β adds `blocked-by-large-import`
- Otherwise β removes `blocked-by-large-import`
3. `blocked-by-large-import` is added to `block_labels` in `bors.toml`.
When a reviewer adds `allow-large-import`, the `labeled` event re-triggers the workflow. The heavy `build` job is skipped (guarded by `github.event.action != 'labeled'`), but the lightweight `check-large-import` job runs, sees both labels, and removes `blocked-by-large-import`. Bors can now merge.
### Reviewer workflow
The CI failure message tells the reviewer to consider whether the PR could be improved by splitting files, rearranging material, or creating new intermediate files. If the import increase is reasonable, they add `allow-large-import`.
False positives can be reported on the [mathlib4 Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/large-import.20label).
π€ Prepared with Claude Code |
CI |
78/2 |
.github/workflows/PR_summary.yml,bors.toml |
2 |
6 |
['SnirBroshi', 'github-actions', 'jcommelin', 'joneugster', 'kim-em'] |
joneugster assignee:joneugster |
1-60319 1 day ago |
19-65930 19 days ago |
19-66527 19 days |
| 38309 |
ntapiam author:ntapiam |
feat(Algebra/NonAssoc): dendriform algebras |
Define dendriform semirings and algebras
---
This PR introduces dendriform structures such as dendriform semirings
and algebras, and proves basic facts linking them to their pre-Lie
counterparts.
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
270/0 |
Mathlib.lean,Mathlib/Algebra/NonAssoc/Dendriform/Defs.lean,docs/references.bib |
3 |
5 |
['dagurtomas', 'github-actions', 'ntapiam'] |
ocfnash assignee:ocfnash |
1-60318 1 day ago |
2-26096 2 days ago |
17-31372 17 days |
| 38317 |
WenrongZou author:WenrongZou |
feat(Date/Choose): add some lemmas about choose of prime pow |
In this PR, I add some lemma about choose of prime pow.
1) For primes `p` and positive integer `n`, assume that for all `i β Icc 1 (n - 1)`, `choose n i` congruent to `0` module `p`, then `n = p ^ multiplicity p n`.
2) For a prime power `n`, the greatest common divisor of `choose n 1, β―, choose n (n - 1)` is actually the minimal prime factor of `n`.
3) For a natural number `n` greater than `1`, assume that `n` is not a prime power, then the greatest common divisor of `choose n 1, β―, choose n (n - 1)` is `1`.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
88/1 |
Mathlib/Data/Nat/Choose/Lucas.lean |
1 |
1 |
['github-actions'] |
joneugster assignee:joneugster |
1-60317 1 day ago |
19-69987 19 days ago |
19-69966 19 days |
| 38323 |
NoahW314 author:NoahW314 |
feat(RingTheory/MvPolynomial/MonomialOrder): remove unnecessary hypothesis |
Some results had a nonzero hypothesis which can be eliminated since the result holds trivially when the polynomial is zero.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
13/5 |
Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean |
1 |
1 |
['github-actions'] |
joneugster assignee:joneugster |
1-60316 1 day ago |
19-53711 19 days ago |
19-53690 19 days |
| 38340 |
xroblot author:xroblot |
refactor(Data/ZMod): move `coe_int_isUnit_iff_isCoprime` to `ZMod.Units` |
Move `ZMod.coe_int_isUnit_iff_isCoprime` from `Mathlib.Data.ZMod.Coprime` to `Mathlib.Data.ZMod.Units`, where it more naturally belongs as a statement about units in `ZMod`. The proof is rewritten to only use tools available in `Mathlib.Data.ZMod.Units`, avoiding the dependency on `Mathlib.Algebra.EuclideanDomain.Int`.
This is motivated by the desire to use `coe_int_isUnit_iff_isCoprime` without the overhead of importing `Mathlib.Data.ZMod.Coprime` (see #38339 for a use case).
π€ Co-Authored with [Claude Code](https://claude.com/claude-code) |
t-data |
10/7 |
Mathlib/Data/ZMod/Coprime.lean,Mathlib/Data/ZMod/Units.lean |
2 |
1 |
['github-actions'] |
joneugster assignee:joneugster |
1-60314 1 day ago |
18-79339 18 days ago |
18-79704 18 days |
| 38343 |
mortarsanjaya author:mortarsanjaya |
chore(Data/Nat/Cast/Order/Ring): move two Nat lemmas to Data/Nat/Basic |
These two lemmas have no correlation with `Nat.cast`, and the proof can be golfed to fit `Data/Nat/Basic`.
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
23/27 |
Mathlib/Data/Nat/Basic.lean,Mathlib/Data/Nat/Cast/Order/Ring.lean |
2 |
6 |
['dagurtomas', 'github-actions', 'mortarsanjaya'] |
joneugster assignee:joneugster |
1-60313 1 day ago |
18-83865 18 days ago |
18-83844 18 days |
| 38347 |
artie2000 author:artie2000 |
doc(LinearAlgebra/FreeModule/StrongRankCondition): clarify context of `commRing_strongRankCondition` |
* Replace mathematical documentation in `Mathlib.LinearAlgebra.FreeModule.StrongRankCondition`, with explanation that the file comprises a shortcut instance `commRing_strongRankCondition`
* Signpost `commRing_strongRankCondition` at both its parent instances
* Increase priority of shortcut instance `commRing_strongRankCondition` above that of its parent instances
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
28/41 |
Mathlib/LinearAlgebra/FreeModule/StrongRankCondition.lean,Mathlib/LinearAlgebra/InvariantBasisNumber.lean,Mathlib/RingTheory/FiniteType.lean |
3 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
joneugster assignee:joneugster |
1-60312 1 day ago |
13-83933 13 days ago |
18-47258 18 days |
| 38373 |
Nicola9Falciola author:Nicola9Falciola |
feat (Algebra/FreeAbelianGroup /Finsupp) : The support of non zero element in a freeabeliangroup is non empty |
Add the lemma that for a nonzero a : FreeAbelianGroup X the support of it is non empty.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
3/0 |
Mathlib/Algebra/FreeAbelianGroup/Finsupp.lean |
1 |
7 |
['Nicola9Falciola', 'SnirBroshi', 'github-actions'] |
ocfnash assignee:ocfnash |
1-60310 1 day ago |
17-16053 17 days ago |
18-4473 18 days |
| 38375 |
WenrongZou author:WenrongZou |
feat(MvPowerSeries): some lemmas `truncTotal` of `subst` |
This PR adds some lemmas about truncation of total degree of a substitution.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
124/7 |
Mathlib/RingTheory/MvPowerSeries/Substitution.lean,Mathlib/RingTheory/MvPowerSeries/Trunc.lean |
2 |
3 |
['BryceT233', 'github-actions'] |
joneugster assignee:joneugster |
1-60309 1 day ago |
18-9719 18 days ago |
18-9698 18 days |
| 38943 |
felixpernegger author:felixpernegger |
feat(Topology/CWComplex/Classical): discrete spaces are CW complexes |
as well as some useful lemmas
This is partly based on code by @scholzhannah
I think this is notable to include, since it is pretty much the only (easy) "topological" sufficient condition for something being a CW complex there is.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
89/3 |
Mathlib/Topology/CWComplex/Classical/Basic.lean,Mathlib/Topology/DiscreteSubset.lean |
2 |
28 |
['felixpernegger', 'github-actions', 'scholzhannah'] |
PatrickMassot assignee:PatrickMassot |
1-60307 1 day ago |
4-31161 4 days ago |
5-45177 5 days |
| 39064 |
kim-em author:kim-em |
feat: make showLinter detect tactics that assign metavariables |
This PR removes a short-circuit in `showLinter` that suppressed the
linter whenever the syntactic goal was unchanged by a `show` tactic.
A `show` invocation can still have side-effects on the metavariable
context β tactic elaboration may assign metavariables while leaving
the goal type unchanged β so the existing `instantiateMVars`-based
diff check should run unconditionally. The fast path for the genuine
no-op case is preserved: if `before` and `after` types still match
after `instantiateMVars`, the linter doesn't fire.
This was discovered while adapting Mathlib to nightly-2026-05-03 in
https://github.com/leanprover-community/mathlib4-nightly-testing/pull/215
and is being extracted here so it can land independently of that bump.
π€ Prepared with Claude Code |
t-linter |
1/1 |
Mathlib/Tactic/Linter/Style.lean |
1 |
1 |
['github-actions'] |
thorimur assignee:thorimur |
1-60306 1 day ago |
2-42411 2 days ago |
2-42390 2 days |
| 39101 |
ldct author:ldct |
feat: Tag exp_nat_mul and exp_int_mul |
Tag these two lemmas to allow
- pushing the `^` in `(exp ...)^...`
- pushing the `exp` in `exp (... * ...)`
and add unit tests.
Also tag the real versions, and `exp 0` for `push exp`
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
28/2 |
Mathlib/Analysis/Complex/Exponential.lean,MathlibTest/push.lean |
2 |
1 |
['github-actions'] |
nobody |
1-58263 1 day ago |
1-58204 1 day ago |
1-60517 1 day |
| 36376 |
jessealama author:jessealama |
feat(SimpleGraph): hamiltonian cycle from cyclic permutation |
This PR provides `IsHamiltonian.of_perm`, a bridge from `Equiv.Perm.IsCycle` to `SimpleGraph.IsHamiltonian`: if Ο is a permutation that is a single cycle with full support on at least 3 elements, and each step `v β Ο v` is an edge of `G`, then `G` is Hamiltonian.
### New definitions and lemmas
**`Mathlib/Data/List/Chain.lean`**:
- `IsChain.iterate`: `List.iterate f a n` is a chain under `r` whenever `r a (f a)` holds for all `a`
**`Mathlib/Data/List/Iterate.lean`**:
- `getLast_iterate`: the last element of `List.iterate f a n` is `f^[n - 1] a`
**`Mathlib/Combinatorics/SimpleGraph/Walk/Iterate.lean`** (new file):
- `Walk.iterate`: builds a walk of length `n` from `x` to `f^[n] x` for any function `f` with `G.Adj x (f x)` for all `x`, defined via `Walk.ofSupport`
- `Walk.length_iterate`, `Walk.support_iterate`, `Walk.edges_iterate`: basic API
**`Mathlib/GroupTheory/Perm/Cycle/Basic.lean`**:
- `IsCycleOn.injOn_pow_apply`: the map `n β¦ (f ^ n) a` is injective on `Finset.range #s`
**`Mathlib/GroupTheory/Perm/Cycle/Concrete.lean`**:
- `IsCycleOn.injOn_sym2_pow_apply`: the unordered-pair edge map `k β¦ s((f ^ k) a, (f ^ (k + 1)) a)` is injective on `[0, #s)` when `#s β 2`
- `IsCycleOn.sym2_pow_apply_ne`: edge distinctness for cycle-on permutations β `s((f ^ k) a, (f ^ (k + 1)) a) β s(a, f a)` when `k β 0`, `k < #s`, and `#s β 2`
- `Perm.toList_eq_range_map_pow`: expresses `toList` as a range map over powers
**`Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean`**:
- `cons_isHamiltonianCycle_iff`: a Hamiltonian path closed by an edge outside its support is a Hamiltonian cycle, and conversely
- `IsHamiltonian.of_perm`: the main theorem
---
- [x] depends on: #36307 |
t-combinatorics
maintainer-merge
|
182/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian/Perm.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Iterate.lean,Mathlib/Data/List/Chain.lean,Mathlib/Data/List/Iterate.lean,Mathlib/GroupTheory/Perm/Cycle/Basic.lean,Mathlib/GroupTheory/Perm/Cycle/Concrete.lean |
8 |
75 |
['SnirBroshi', 'YaelDillies', 'github-actions', 'jessealama', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
1-47908 1 day ago |
4-28726 4 days ago |
42-33767 42 days |
| 38859 |
SnirBroshi author:SnirBroshi |
feat(Order/CompleteLattice/Basic): tag `iSup_of_empty'` with `@[simp]` |
The theorem says `iSup f = sSup β
` when the domain of `f` is empty, and dually `iInf f = sInf β
`.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
31/47 |
Mathlib/Analysis/Normed/Lp/lpSpace.lean,Mathlib/Analysis/Seminorm.lean,Mathlib/Data/ENat/Lattice.lean,Mathlib/Data/NNReal/Basic.lean,Mathlib/Data/Nat/Lattice.lean,Mathlib/Data/Real/Archimedean.lean,Mathlib/Data/Set/Finite/Lattice.lean,Mathlib/LinearAlgebra/Eigenspace/Pi.lean,Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean,Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean,Mathlib/Order/ConditionallyCompletePartialOrder/Indexed.lean,Mathlib/Order/Filter/Basic.lean,Mathlib/Order/Filter/Lift.lean |
14 |
1 |
['github-actions'] |
nobody |
1-40700 1 day ago |
7-30592 7 days ago |
7-34347 7 days |
| 38741 |
eric-wieser author:eric-wieser |
feat: Nat.card lemmas for Sym and Sym2 |
These are just translations of the `Fintype` counterparts.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
109/7 |
Mathlib.lean,Mathlib/Data/Sym/Card.lean,Mathlib/Data/Sym/NatCard.lean,Mathlib/Data/Sym/Sym2.lean |
4 |
18 |
['SnirBroshi', 'YaelDillies', 'eric-wieser', 'github-actions'] |
nobody |
1-40435 1 day ago |
2-63481 2 days ago |
8-80618 8 days |
| 38464 |
xroblot author:xroblot |
feat(FieldTheory/Galois/IsGaloisGroup): generalize mulEquivCongr |
Generalizes `mulEquivCongr` from field extensions to domain extensions. The field version is renamed to `mulEquivCongr'`.
Also adds some simp lemmas.
---
- [x] depends on: #38377 |
t-algebra label:t-algebra$ |
56/15 |
Mathlib/FieldTheory/Galois/IsGaloisGroup.lean |
1 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
nobody |
1-40101 1 day ago |
2-7792 2 days ago |
2-8825 2 days |
| 39084 |
scholzhannah author:scholzhannah |
feat: generalize `OpenPartialHomeomorph.Defs` file to `PartialHomeomorph` |
As discussed on Zulip ([#mathlib4 > Generalizing `PartialHomeomorph`?](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Generalizing.20.60PartialHomeomorph.60.3F/with/536896273)), I renamed `PartialHomeomorph` to `OpenPartialHomeomorph` in #29113.
In this PR I now add a new `PartialHomeomorph` which is a `PartialEquiv` that is continuous on both source and target. An `OpenPartialHomeomorph` is then a `PartialHomeomorph` that additionally has open source and target. In subsequent PRs I will generalize the other files. See this draft PR (#39071) for what I think the end result to be.
`PartialHomeomorph` should find uses at least for and manifolds (`ModelWithCorners`). Afterwards, I want to add a `ClosedPartialHomeomorph` to use for CWComplexes.
---
I don't have a lot of experience doing these kind of modifications of a large piece of code. Additionally, I am not familiar with the main uses of `OpenPartialHomeomorph` in Mathlib. So while I did this to the best of my abilities, you should read this carefully because there might be things I did wrong or in non-ideal ways.
[](https://gitpod.io/from-referrer/)
|
t-topology |
286/47 |
Mathlib.lean,Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean,Mathlib/Geometry/Manifold/IsManifold/Basic.lean,Mathlib/Geometry/Manifold/LocalSourceTargetProperty.lean,Mathlib/NumberTheory/NumberField/CanonicalEmbedding/NormLeOne.lean,Mathlib/Topology/FiberBundle/Trivialization.lean,Mathlib/Topology/OpenPartialHomeomorph/Basic.lean,Mathlib/Topology/OpenPartialHomeomorph/Composition.lean,Mathlib/Topology/OpenPartialHomeomorph/Constructions.lean,Mathlib/Topology/OpenPartialHomeomorph/Defs.lean,Mathlib/Topology/OpenPartialHomeomorph/IsImage.lean,Mathlib/Topology/PartialHomeomorph/Defs.lean |
12 |
1 |
['github-actions'] |
grunweg assignee:grunweg |
1-38935 1 day ago |
2-11676 2 days ago |
2-12276 2 days |
| 38328 |
astrainfinita author:astrainfinita |
feat: `OrderSupSet` |
This PR introduces `OrderSupSet` and `OrderInfSet`, which are typeclasses expressing that `sSup` (resp., `sInf`) returns the least upper bound (resp., the greatest lower bound) of a set whenever one exists.
This allows us to prove properties about the `sSup` of specific sets (such as `β
`, singletons, finite sets, and `univ`) without any typeclasses asserting the existence of LUBs. For example, `sSup β
= β₯` holds for any type equipped with `OrderBot` `OrderSupSet`, no longer requiring typeclasses like `ConditionallyCompleteLinearOrderBot`.
For a general set `s`, this gives a uniform way to extend results about `IsLUB s a β motive a` to `motive (sSup s)`, `motive (β¨ i, f i)`, `motive (a β b)`, etc., which allows proof reuse for basic API such as [`csSup_insert`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/ConditionallyCompleteLattice/Basic.html#csSup_insert), [`iSup_insert`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/CompleteLattice/Basic.html#iSup_insert), and [`sSup_insert`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/CompleteLattice/Basic.html#sSup_insert) and downstream code like [`csSup_add`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Group/Pointwise/CompleteLattice.html#csSup_add), [`sSup_add`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Group/Pointwise/CompleteLattice.html#sSup_add), and [`sup_add`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Group/Lattice.html#sup_add).
Furthermore, this allows us to refactor incrementally, reducing the dependency of results about various completeness typeclasses on the specific implementation of `sSup`.
---
[Zulip](https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/Any.20infimum.20based.20version.20of.20.60OmegaCompletePartialOrder.60.3F)
[](https://gitpod.io/from-referrer/)
|
t-order |
156/73 |
Mathlib/MeasureTheory/OuterMeasure/Induced.lean,Mathlib/Order/Bounds/Basic.lean,Mathlib/Order/Bounds/Defs.lean,Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/CompleteLattice/Defs.lean,Mathlib/Order/SetNotation.lean,Mathlib/Topology/UniformSpace/OfCompactT2.lean |
7 |
16 |
['JovanGerb', 'astrainfinita', 'b-mehta', 'github-actions', 'j-loreaux', 'mathlib-merge-conflicts', 'openendings', 'vihdzp'] |
nobody |
1-38457 1 day ago |
1-38496 1 day ago |
6-69183 6 days |
| 39107 |
SnirBroshi author:SnirBroshi |
feat(Geometry/Manifold/ChartedSpace): `H ββ M` β `ChartedSpace H M` |
---
I thought it was strange that `Homeomorph`s didn't have this easy dot-notation, though I'm not familiar with this part of the library so I might be missing something.
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry |
6/0 |
Mathlib/Geometry/Manifold/ChartedSpace.lean |
1 |
1 |
['github-actions'] |
nobody |
1-38338 1 day ago |
1-38424 1 day ago |
1-38403 1 day |
| 37464 |
martinwintermath author:martinwintermath |
feat(Geometry/Convex/Cone): Minor additions to pointed cones |
Minor additions to pointed cones:
* `PointedCone.ofSubmodule_le_ofSubmodule` and `PointedCone.ofSubmodule_lt_ofSubmodule`. These are not made simp lemmas, instead the underlying `Submodule.restrictScalars_le` and `Submodule.restrictScalars_lt` have been changed into simp lemmas.
* `PointedCone.hull_le_span` as a short form of `Submodule.span_le_restrictScalars Rβ₯0 R s`
Co-authored by: Artie Khovanov
---
In preparation of #36605.
[](https://gitpod.io/from-referrer/)
|
t-convex-geometry
maintainer-merge
|
20/14 |
Mathlib/Algebra/Module/Submodule/RestrictScalars.lean,Mathlib/Geometry/Convex/Cone/Pointed.lean |
2 |
24 |
['YaelDillies', 'artie2000', 'github-actions', 'justus-springer', 'martinwintermath', 'mathlib-merge-conflicts', 'ooovi', 'vihdzp'] |
nobody |
1-37850 1 day ago |
1-37822 1 day ago |
38-50826 38 days |
| 39045 |
justus-springer author:justus-springer |
chore(AlgebraicGeometry/RationalMap): Move two lemmas to more appropriate place |
These two lemmas are simply about opens and have nothing to do with rational maps.
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry
easy
|
8/8 |
Mathlib/AlgebraicGeometry/Morphisms/UnderlyingMap.lean,Mathlib/AlgebraicGeometry/RationalMap.lean |
2 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
1-36689 1 day ago |
1-36726 1 day ago |
2-44951 2 days |
| 38739 |
CoolRmal author:CoolRmal |
feat: Analytic Hahn Banach theorem for locally convex spaces |
Closes #38419
This PR proves Hahn-Banach theorem for locally convex spaces, which allow us to
generalize both [ContinuousLinearMap.exist_extension_of_finiteDimensional_range](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Normed/Module/HahnBanach.html#ContinuousLinearMap.exist_extension_of_finiteDimensional_range) and [Submodule.ClosedComplemented.of_finiteDimensional](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Normed/Module/HahnBanach.html#Submodule.ClosedComplemented.of_finiteDimensional) (I also moved these two lemmas to the new file I created). Some helper lemmas about continuity of seminorms/linear functions are added.
Created with the help of Codex.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
154/46 |
Mathlib.lean,Mathlib/Analysis/LocallyConvex/HahnBanach.lean,Mathlib/Analysis/LocallyConvex/WithSeminorms.lean,Mathlib/Analysis/Normed/Module/HahnBanach.lean,Mathlib/Analysis/Seminorm.lean |
5 |
7 |
['ADedecker', 'CoolRmal', 'github-actions'] |
ADedecker assignee:ADedecker |
1-36500 1 day ago |
6-40856 6 days ago |
10-55625 10 days |
| 38536 |
CoolRmal author:CoolRmal |
feat: a lemma about the symmetric difference of unions |
Created with the help of Codex.
---
[](https://gitpod.io/from-referrer/)
|
t-data
easy
|
45/2 |
Mathlib/Data/Set/Lattice.lean,Mathlib/Order/CompleteBooleanAlgebra.lean |
2 |
12 |
['CoolRmal', 'SnirBroshi', 'eric-wieser', 'github-actions'] |
nobody |
1-36491 1 day ago |
3-72147 3 days ago |
3-73918 3 days |
| 38234 |
vihdzp author:vihdzp |
chore: make `IsSuccLimit` a structure |
This lets us name the fields. Note that the `mk_iff` lemma overwrites a recently deprecated theorem.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
40/33 |
Mathlib/Order/SuccPred/InitialSeg.lean,Mathlib/Order/SuccPred/Limit.lean |
2 |
5 |
['github-actions', 'plp127'] |
nobody |
1-36261 1 day ago |
1-36332 1 day ago |
17-24598 17 days |
| 38153 |
xroblot author:xroblot |
chore(IsGaloisGroup): refactor `IsGaloisGroup.quotient` |
Refactors the quotient construction in `IsGaloisGroup` to work at the level of ring extensions rather than intermediate fields.
---
- [x] depends on: #38377
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
218/53 |
Mathlib/Algebra/Algebra/Basic.lean,Mathlib/FieldTheory/Galois/IsGaloisGroup.lean |
2 |
8 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'tb65536'] |
riccardobrasca assignee:riccardobrasca |
1-31232 1 day ago |
1-31232 1 day ago |
1-51946 1 day |
| 39102 |
yuanyi-350 author:yuanyi-350 |
chore: reduce imports in 50 files |
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
70/81 |
Mathlib/Analysis/BoxIntegral/Box/Basic.lean,Mathlib/Analysis/BoxIntegral/Box/SubboxInduction.lean,Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean,Mathlib/Analysis/Calculus/Taylor.lean,Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean,Mathlib/Analysis/Distribution/DerivNotation.lean,Mathlib/Analysis/Distribution/SchwartzSpace/Basic.lean,Mathlib/Analysis/Distribution/SchwartzSpace/Deriv.lean,Mathlib/Analysis/Distribution/Sobolev.lean,Mathlib/Analysis/LocallyConvex/AbsConvex.lean,Mathlib/Analysis/LocallyConvex/Barrelled.lean,Mathlib/Analysis/LocallyConvex/ContinuousOfBounded.lean,Mathlib/Analysis/LocallyConvex/Montel.lean,Mathlib/Analysis/LocallyConvex/PointwiseConvergence.lean,Mathlib/Analysis/LocallyConvex/SeparatingDual.lean,Mathlib/Analysis/LocallyConvex/WeakDual.lean,Mathlib/Analysis/LocallyConvex/WeakOperatorTopology.lean,Mathlib/Analysis/LocallyConvex/WeakSpace.lean,Mathlib/Analysis/Meromorphic/Divisor.lean,Mathlib/Analysis/Normed/Affine/AddTorsor.lean,Mathlib/Analysis/Normed/Affine/AddTorsorBases.lean,Mathlib/Analysis/Normed/Affine/Convex.lean,Mathlib/Analysis/Normed/Algebra/Basic.lean,Mathlib/Analysis/Normed/Algebra/Exponential.lean,Mathlib/Analysis/Normed/Algebra/MatrixExponential.lean,Mathlib/Analysis/Normed/Algebra/QuaternionExponential.lean,Mathlib/Analysis/Normed/Algebra/UnitizationL1.lean,Mathlib/Analysis/Normed/Field/Dense.lean,Mathlib/Analysis/Normed/Field/Instances.lean,Mathlib/Analysis/Normed/Field/Ultra.lean,Mathlib/Analysis/Normed/Group/AddCircle.lean,Mathlib/Analysis/Normed/Group/Bounded.lean,Mathlib/Analysis/Normed/Group/ControlledClosure.lean,Mathlib/Analysis/Normed/Group/FunctionSeries.lean,Mathlib/Analysis/Normed/Group/Indicator.lean,Mathlib/Analysis/Normed/Group/NullSubmodule.lean,Mathlib/Analysis/Normed/Group/Tannery.lean,Mathlib/Analysis/Normed/Group/Ultra.lean,Mathlib/Analysis/Normed/Lp/WithLp.lean,Mathlib/Analysis/Normed/MulAction.lean,Mathlib/Analysis/ODE/PicardLindelof.lean,Mathlib/Analysis/ODE/Transform.lean,Mathlib/Analysis/Oscillation.lean,Mathlib/Analysis/PSeriesComplex.lean,Mathlib/Analysis/SpecificLimits/Fibonacci.lean,Mathlib/Analysis/SpecificLimits/FloorPow.lean,Mathlib/Analysis/Subadditive.lean,Mathlib/Analysis/SumIntegralComparisons.lean |
48 |
9 |
['JovanGerb', 'YaelDillies', 'github-actions', 'leanprover-radar', 'yuanyi-350'] |
nobody |
1-27049 1 day ago |
1-27070 1 day ago |
1-40268 1 day |
| 38994 |
JovanGerb author:JovanGerb |
feat(to_additive): support `(attr := reassoc)` |
This PR uses `registerGeneratingAttr`, so that `to_additive (attr := reassoc)` also tags the `_assoc` lemma with `to_additive`.
This interacts awkwarly with `to_dual (attr := reassoc)`, because in that case, the `reassoc` attribute is responsible for handling the `to_dual` attribute. This is solved by adding a check so that we only insert a new translation if it doesn't already exist (e.g. because `reassoc` could have added it).
---
[](https://gitpod.io/from-referrer/)
|
|
22/18 |
Mathlib/CategoryTheory/Monoidal/Mod.lean,Mathlib/CategoryTheory/Monoidal/Mon.lean,Mathlib/Tactic/CategoryTheory/Reassoc.lean,Mathlib/Tactic/Translate/Core.lean |
4 |
2 |
['chrisflav', 'github-actions'] |
nobody |
1-24802 1 day ago |
1-24875 1 day ago |
2-13758 2 days |
| 38865 |
JovanGerb author:JovanGerb |
chore: adaptations for quote4#134 |
This PR adds imports that are now necessary
---
[](https://gitpod.io/from-referrer/)
|
|
4/2 |
Mathlib/Tactic/Nontriviality/Core.lean,Mathlib/Tactic/Tauto.lean,lake-manifest.json |
3 |
7 |
['JovanGerb', 'bryangingechen', 'eric-wieser', 'github-actions', 'leanprover-radar'] |
nobody |
1-15020 1 day ago |
7-31177 7 days ago |
7-31156 7 days |
| 39090 |
EngelsVon author:EngelsVon |
feat(Analysis/Calculus/DifferentialForm): Stokes theorem on boxes for differential forms |
## Summary
This PR adds the first instances of the **generalized Stokes theorem for differential forms** in Mathlib, building on the existing `extDeriv` API from `Analysis.Calculus.DifferentialForm.Basic` and the divergence theorem from `MeasureTheory.Integral.DivergenceTheorem`.
### New files
#### `Mathlib.Analysis.Calculus.DifferentialForm.BoxStokes` (310 lines, **fully proved**)
Stokes theorem on rectangular boxes `[a, b] β β^(m+1)` for differential forms.
**Key definitions:**
- `detTopForm`: the determinant as a continuous alternating top-form
- `topFormDensity` / `topFormIntegral`: density and integral of top-form fields
- `boxFaceComponent Ο i`: the signed `i`-th face component of an `m`-form (`(-1)^i Β· Ο(Γͺ_i)`)
- `boxBoundaryIntegral Ο a b`: the signed boundary integral over `β[a,b]`
**Main theorem:**
- `box_stokes_of_contDiff`: `β«_{[a,b]} dΟ = β«_{β[a,b]} Ο` for `CΒΉ` `m`-forms on `β^(m+1)`
The proof proceeds by:
1. Showing `topFormDensity (extDeriv Ο) = divergence of (boxFaceComponent Ο Β·)`
2. Applying Mathlib's `integral_divergence_of_hasFDerivAt_off_countable'`
#### `Mathlib.Analysis.Calculus.DifferentialForm.HalfSpaceStokes` (224 lines, partially proved)
Stokes theorem on the upper half-space `{x : x_m β₯ 0}` with infrastructure.
**Key definitions:**
- `HalfSpace m`: `{x : Fin (m+1) β β | x (lastCoord m) β₯ 0}`
- `boundaryIntegral m Ο`: integral of `Ο` over `ββ^{m+1}_+`
**Key lemmas (proved):**
- `norm_insertNth_ge_norm`: `βxβ β€ βFin.insertNth i v xβ` for sup norm
- `formField_vanishes_at_insertNth_norm`: vanishing of form fields at large norms
**Main theorem (statement, proof TODO):**
- `halfSpace_stokes`: `β«_{β^{m+1}_+} dΟ = β«_{ββ^{m+1}_+} Ο`
### Relationship to existing Mathlib
- `MeasureTheory.Integral.DivergenceTheorem` proves the divergence theorem for vector fields (`ββΏβΊΒΉ β EβΏβΊΒΉ`). This PR translates it into the language of differential forms (`E β E [β^Fin n]βL[π] F`).
- `Analysis.Calculus.DifferentialForm.Basic` defines `extDeriv`. This PR provides the first *integration* results for `extDeriv`.
### Why this belongs in Mathlib
1. **Fills a known gap**: Mathlib has no Stokes-type theorem for differential forms despite having `extDeriv` and the divergence theorem.
2. **Self-contained**: Box Stokes depends only on `extDeriv` API and the divergence theorem.
3. **Useful infrastructure**: `boxFaceComponent`, `topFormDensity`, and `norm_insertNth_ge_norm` are independently useful.
### Future work
- Complete `halfSpace_stokes` (requires upstream API for `extDeriv` vanishing at zeros and `Fin.isClosedEmbedding_insertNth`)
- Chart-level Stokes via coordinate changes
- Partition of unity β manifold Stokes
## Checklist
- [x] The formulation of the main theorem is mathematically correct
- [x] Proofs follow Mathlib conventions (to the best of our knowledge)
- [ ] Code compiles on Mathlib CI (not tested locally due to build time)
- [ ] `#lint` passes (not tested locally)
|
t-analysis
new-contributor
LLM-generated
|
1246/0 |
Mathlib.lean,Mathlib/Analysis/Calculus/DifferentialForm/BoxStokes.lean,Mathlib/Analysis/Calculus/DifferentialForm/FullSpaceStokes.lean,Mathlib/Analysis/Calculus/DifferentialForm/HalfSpaceStokes.lean |
4 |
4 |
['EngelsVon', 'SnirBroshi', 'github-actions'] |
nobody |
1-14879 1 day ago |
1-16492 1 day ago |
1-56191 1 day |
| 35683 |
gasparattila author:gasparattila |
fix(Tactic/FunProp): detect `Continuous.subtype_mk` as compositional |
This PR changes `fun_prop` to detect some theorems involving dependent types, such as `Continous.subtype_mk` to be in compositional form. This lets `fun_prop` solve goals such as `Continuous fun x => (β¨x, trivialβ© : {x : β // True})`.
---
These theorems become compositional: `Continuous.subtype_mk`, `Topology.IsEmbedding.inclusion`, `Topology.IsOpenEmbedding.inclusion`, `Topology.IsClosedEmbedding.inclusion`, `Measurable.subtype_mk`, `Measurable.imp`, `Path.symm_continuous_family`, `Continuous.upperHalfPlaneMk`
These theorems become simple: `hasFDerivAt_prodMk_left`, `hasFDerivAt_prodMk_right`, `contDiff_prodMk_left`, `contDiff_prodMk_right`
[](https://gitpod.io/from-referrer/)
|
t-meta |
65/43 |
Mathlib/Tactic/FunProp/Core.lean,Mathlib/Tactic/FunProp/FunctionData.lean,Mathlib/Tactic/FunProp/Theorems.lean,Mathlib/Topology/Homeomorph/Lemmas.lean,MathlibTest/fun_prop_dev.lean |
5 |
15 |
['gasparattila', 'github-actions', 'grunweg', 'joneugster', 'lecopivo', 'mathlib-merge-conflicts'] |
joneugster assignee:joneugster |
1-7369 1 day ago |
1-7369 1 day ago |
74-69698 74 days |
| 39109 |
mbkybky author:mbkybky |
feat(RingTheory/LocalProperties): `Module.FinitePresentation` is a local property |
We show that if there exists a set `{ r }` of `R` such that `Mα΅£` is a finitely presented `Rα΅£`-module for each `r`, then `M` is a finitely presented `R`-module.
Co-authored-by: Sihan Su @su00000
Co-authored-by: Yi Song @syur2
From the [Local Properties of Modules](https://github.com/mbkybky/module_localProperties) project.
- [x] depends on: #39112
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
89/0 |
Mathlib.lean,Mathlib/RingTheory/LocalProperties/FinitePresentation.lean,Mathlib/RingTheory/Localization/Finiteness.lean |
3 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
nobody |
1-7245 1 day ago |
1-8801 1 day ago |
1-18945 1 day |
| 36743 |
Jun2M author:Jun2M |
feat(Combinatorics/GraphLike): introduce `GraphLike` typeclass |
Per discussion at ([#graph theory > HasAdj](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/HasAdj/with/575843445)), This PR introduces the `GraphLike` typeclass to capture the notions like `dart` and `walk` across various graph objects, such as `SimpleGraph`, `Graph`, and `Digraph`.
The goal is that by abstracting these core components into a typeclass, we can prove these results once for all graph-like structures rather than duplicating them across different graph types.
### Main definitions
* `GraphLike V D E Gr`: A typeclass parameterized by a vertex type `V`, dart type `D` and a graph type `Gr` (with `V`, `D` & `E` as an `outParam`).
* `GraphLike.verts : Set V`: The set of vertices of the graph.
* `GraphLike.darts : Set D`: The set of darts of the graph.
* `GraphLike.edges : Set E`: The set of edges of the graph.
* `GraphLike.Adj : V β V β Prop`: The adjacency relation, defined by default as `β d β darts, fst d = u β§ snd d = v`.
---
This PR generalises #35776 to also unify `Graph`.
PRs depending on this PR are
#39047 (graphLike with no multi edges) => #39050 (Digraph is graphLike)
||
V
#36829 (undirected graphLike) => #39053 (Graph is graphLike) & #39054 (Simplegraph is graphLike)
||
V
#36756 (def of walk on GraphLike) => #36971 (change Simplegraph to use GraphLike walk)
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
186/0 |
Mathlib.lean,Mathlib/Combinatorics/GraphLike/Basic.lean |
2 |
72 |
['IvanRenison', 'Jun2M', 'SnirBroshi', 'YaelDillies', 'github-actions', 'lauramonk', 'mathlib-merge-conflicts'] |
YaelDillies assignee:YaelDillies |
1-3256 1 day ago |
2-5583 2 days ago |
53-3978 53 days |
| 37185 |
gasparattila author:gasparattila |
chore(Data/Finset/Lattice/Fold): rename `comp_sup_*` to `apply_sup_*` |
These lemmas are of the form `g (s.sup f) = s.sup (g β f)` with no composition on the LHS.
---
- [x] depends on: #37047
[](https://gitpod.io/from-referrer/)
|
t-order |
44/26 |
Mathlib/Algebra/Order/Ring/Finset.lean,Mathlib/Analysis/CStarAlgebra/Basic.lean,Mathlib/Analysis/Normed/Group/Ultra.lean,Mathlib/Data/ENNReal/Lemmas.lean,Mathlib/Data/Finset/Lattice/Fold.lean,Mathlib/Data/Finset/Max.lean,Mathlib/Data/NNReal/Basic.lean,Mathlib/Order/PartialSups.lean,Mathlib/RingTheory/MvPolynomial/Symmetric/Defs.lean,Mathlib/Topology/ContinuousMap/CompactlySupported.lean,Mathlib/Topology/ContinuousMap/Ordered.lean |
11 |
4 |
['gasparattila', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
1-2176 1 day ago |
31-73780 31 days ago |
31-74085 31 days |
| 39123 |
SnirBroshi author:SnirBroshi |
chore(Data/Matrix/Basic): mention `mopMatrix` in `transpose{Ring/Alg}Equiv`s docstring and vice versa |
- `RingEquiv.mopMatrix` and `transposeRingEquiv` differ by a `α΅α΅α΅` since the latter assumes `CommMagma Ξ±` instead of `Mul Ξ±`
- `AlgEquiv.mopMatrix` and `transposeAlgEquiv` differ by a `α΅α΅α΅` since the latter assumes `CommSemiring Ξ±` instead of `Semiring Ξ±`
---
Also slightly golfs `RingEquiv.mopMatrix` as a drive-by.
[](https://gitpod.io/from-referrer/)
|
t-data |
18/11 |
Mathlib/Data/Matrix/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
0-83317 23 hours ago |
0-83399 23 hours ago |
0-83378 23 hours |
| 37779 |
mcdoll author:mcdoll |
feat(Data/FunLike): introduce typeclasses for algebraic properties of `FunLike` |
These typeclasses remove the need for each function space that has, e.g., a linear structure
to define `add_apply`, `smul_apply`, etc. Instead after defining the the `Add` instance one also defines a
`FunLikeAdd` instance (with a proof usually being `rfl`).
This removes some boilerplate as theorems like `sum_apply` are currently proved in various files, but here they
can be proved in an abstract way. Moreover, we can remove all of the instances that provide further structure (such as `Semigroup`` in
the concrete function spaces. This further removes boilerplate and also makes sure that all instances are available in every function space.
The docstrings were generated with AI (and heavily edited afterwards), everything else is handwritten.
---
The previous PR #33477 has gotten quite a few merge conflicts, so I opened a new PR with just the new features. I would like to get the approval of this design before going through the library and change everything. I am open to either do this in this PR or a second one (or multiple for different parts).
- [x] depends on: #38401
- [x] depends on: #38398
[](https://gitpod.io/from-referrer/)
|
t-data |
649/0 |
Mathlib.lean,Mathlib/Data/FunLike/Group.lean,Mathlib/Data/FunLike/IsApply.lean,Mathlib/Data/FunLike/Module.lean,Mathlib/Data/FunLike/Ring.lean |
5 |
19 |
['Vierkantor', 'github-actions', 'leanprover-radar', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mcdoll'] |
Vierkantor assignee:Vierkantor |
0-83048 23 hours ago |
11-50182 11 days ago |
12-33392 12 days |
| 39117 |
joelriou author:joelriou |
feat(CategoryTheory): the right derived functor commutes with the shift |
A few lemmas are obtained about precomposing and postcomposing left/right Kan extensions or right/left derived functors with equivalences of categories. By applying these results to the equivalences given by shifts, we construct a family of isomorphisms which shows that the right derived functor commutes with shifts, and by proving certain compatibilities, we obtain a `Functor.CommShift` instance of the right derived functor of a functor which commutes with shifts.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
305/7 |
Mathlib.lean,Mathlib/CategoryTheory/Functor/Derived/LeftDerived.lean,Mathlib/CategoryTheory/Functor/Derived/RightDerived.lean,Mathlib/CategoryTheory/Functor/Derived/RightDerivedCommShift.lean,Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean,Mathlib/CategoryTheory/Shift/CommShift.lean,Mathlib/CategoryTheory/Shift/Localization.lean |
7 |
1 |
['github-actions'] |
nobody |
0-78666 21 hours ago |
0-78743 21 hours ago |
0-79452 22 hours |
| 39118 |
MichaelStollBayreuth author:MichaelStollBayreuth |
feat: add more API for (rel)index and ideals |
This adds a few more API lemmas for `{Add|}Subgroup.{FiniteIndex|IsFiniteRelIndex}` and connects the index with `Ideal.absNorm`; we also add the fact that (relative) indices of nonzero ideals in a Dedekind domain that is finite and free over the integers are finite.
We also generalize `Algebra.norm_algebraMap` from base fields to commutative rings, assuming the algebra is free over the base ring, and add some more API (`Algebra.del_lsmul`, `Algebra.norm_natCast`).
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-ring-theory
label:t-algebra$ |
63/13 |
Mathlib/Algebra/Algebra/Tower.lean,Mathlib/GroupTheory/FiniteAbelian/Basic.lean,Mathlib/GroupTheory/Index.lean,Mathlib/RingTheory/Ideal/Norm/AbsNorm.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Norm/Defs.lean |
6 |
32 |
['MichaelStollBayreuth', 'github-actions', 'tb65536'] |
nobody |
0-77585 21 hours ago |
0-77356 21 hours ago |
1-3744 1 day |
| 37649 |
IvanRenison author:IvanRenison |
feat(Data): add theorem `Finset.image_eq_iff_eq_preimage` |
---
[](https://gitpod.io/from-referrer/)
|
t-data |
23/0 |
Mathlib/Data/Finset/Preimage.lean,Mathlib/Data/Set/Function.lean |
2 |
7 |
['Rida-Hamadani', 'github-actions', 'joneugster', 'themathqueen'] |
joneugster assignee:joneugster |
0-77267 21 hours ago |
0-76982 21 hours ago |
34-39590 34 days |
| 39095 |
tb65536 author:tb65536 |
feat(FieldTheory/Galois/IsGaloisGroup): `IsGaloisGroup` instance for `FixedPoints.subalgebra` |
This PR generalizes the existing `IsGaloisGroup` instance for `FixedPoints.intermediateField` to `FixedPoints.subalgebra`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
23/3 |
Mathlib/Algebra/Algebra/Subalgebra/Operations.lean,Mathlib/FieldTheory/Galois/IsGaloisGroup.lean,Mathlib/GroupTheory/GroupAction/Defs.lean |
3 |
5 |
['eric-wieser', 'github-actions', 'tb65536'] |
nobody |
0-76038 21 hours ago |
0-76106 21 hours ago |
1-42857 1 day |
| 38319 |
Zetetic-Dhruv author:Zetetic-Dhruv |
feat(Combinatorics/SetFamily): Assouad's dual VC bound |
Adds the Finset-level form of Assouad's 1983 dual VC bound: if a family
`π : Finset (Finset Ξ±)` has VC dimension at most `d`, then for any
ground set `X : Finset Ξ±` the dual family
`{π.filter (Β· β x) : x β X}` has VC dimension at most `2 ^ (d + 1) - 1`.
New declarations (in `Finset` namespace):
- `dualFamily π X`: for each `x β X`, the subfamily `{A β π | x β A}`
- `mem_dualFamily` (`@[simp]`): membership characterisation
- `exists_shatters_of_dualFamily_shatters`: Assouad's bitstring-coding lemma
- `vcDim_dualFamily_le`: the headline VC bound
Proof by Assouad's classical bitstring-coding argument. Sits on top of `Finset.shatterer` / `Finset.vcDim` from
`Mathlib.Combinatorics.SetFamily.Shatter`.
References:
- P. Assouad, Densite et dimension, Ann. Inst. Fourier 33(3) (1983), Thm 2.13
- J. Matousek, Lectures on Discrete Geometry, GTM 212, Springer, 2002, Section 10.3 Lemma 10.3.3
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
199/0 |
Mathlib.lean,Mathlib/Combinatorics/SetFamily/DualVC.lean,docs/references.bib |
3 |
34 |
['Shreyas4991', 'YaelDillies', 'Zetetic-Dhruv', 'github-actions'] |
nobody |
0-73798 20 hours ago |
0-73798 20 hours ago |
17-34426 17 days |
| 38829 |
AnandGokhale author:AnandGokhale |
feat(Analysis/ODE/Gronwall): added gronwall-bellman inequality |
Added 2 lemmas and 1 theorem to Analysis.ODE.Gronwall, making progress towards a TODO.
Lemma 1: Wrapper for Fundamental Theorem of Calculus
Lemma 2: Wrapper for the continuity of an integral on a closed, ordered interval
Theorem: Gronwall bellman inequality, as stated with proof in Appendix of Hassan Khalil, Nonlinear control, 3rd edition.
|
t-analysis
new-contributor
large-import
|
125/2 |
Mathlib/Analysis/ODE/Gronwall.lean |
1 |
12 |
['AnandGokhale', 'eric-wieser', 'github-actions', 'grunweg', 'mathlib-bors'] |
j-loreaux assignee:j-loreaux |
0-73489 20 hours ago |
1-73572 1 day ago |
3-34101 3 days |
| 37008 |
BryceT233 author:BryceT233 |
feat(RingTheory/LocalRing): `IsLocalRing` for pullbacks |
We provide basic lemmas for equalizers and pullbacks of `RingHom` and `AlgHom`, and show they are local rings under suitable condtions.
This is needed in #37940 to construct a residue algebra structure on pullbacks.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
167/0 |
Mathlib.lean,Mathlib/RingTheory/LocalRing/Pullback.lean |
2 |
6 |
['BryceT233', 'github-actions', 'wwylele'] |
mattrobball assignee:mattrobball |
0-71683 19 hours ago |
13-69300 13 days ago |
48-37632 48 days |
| 38324 |
BryceT233 author:BryceT233 |
chore(RingTheory/AdicCompletion): make `AdicCompletion.map` linear on linear maps |
This PR upgrades `AdicCompletion.map` to be an R-linear map on the space of linear maps `M ββ[R] N`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
38/12 |
Mathlib/RingTheory/AdicCompletion/Basic.lean,Mathlib/RingTheory/AdicCompletion/Functoriality.lean |
2 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
joneugster assignee:joneugster |
0-71670 19 hours ago |
16-63561 16 days ago |
19-46246 19 days |
| 39085 |
bryangingechen author:bryangingechen |
ci(shake.yaml): shake Archive, Counterexamples, MathlibTest; do not commit explain.txt |
cf. https://github.com/leanprover-community/mathlib4/pull/39080#discussion_r3209205008 and [#mathlib4 > shake @ π¬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/shake/near/593801927) |
CI
easy
|
6/1 |
.github/workflows/shake.yaml |
1 |
2 |
['bryangingechen', 'github-actions'] |
nobody |
0-71419 19 hours ago |
2-12927 2 days ago |
2-12906 2 days |
| 37625 |
slavanaprienko author:slavanaprienko |
feat(LinearAlgebra/Matrix/Charpoly): general coefficient formula as sum of principal minors |
This PR adds a general formula for the coefficients of `det(1 + X β’ M)` as sums of principal minors, generalizing the existing `coeff_det_one_add_X_smul_one` (k=1, trace) and `det_eq_sign_charpoly_coeff` (k=n, determinant). It also derives the corresponding formula for the coefficients of the characteristic polynomial via `charpolyRev`.
New results:
- `det_piecewise_one_eq_submatrix_det`: relates piecewise-with-identity to principal submatrix determinants
- `coeff_det_one_add_X_smul_eq_sum_minors`: the k-th coefficient of `det(1 + X β’ M)` equals the sum of kΓk principal minors
- `charpoly_coeff_eq_sum_minors`: coefficients of the characteristic polynomial as signed sums of principal minors
--- |
t-algebra
new-contributor
label:t-algebra$ |
105/1 |
Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean |
1 |
25 |
['eric-wieser', 'github-actions', 'slavanaprienko', 'wwylele'] |
kim-em assignee:kim-em |
0-70778 19 hours ago |
35-49072 35 days ago |
36-64539 36 days |
| 38318 |
JovanGerb author:JovanGerb |
feat(GRewrite): new `grw` implementation |
This PR adds a new implementation of the `grewrite` tactic. It replaces `grw` with the new implementation. The old implementation can be used with `grw +useKAbstract`.
New features:
- The new `grw` can rewrite terms with bound variables.
- The new `grw` will only rewrite in places where this is valid. Previously, if there were both valid and non-valid positions, it would try rewriting everywhere and then complain.
Future features that will build on the new implementation:
- I'd like to add support for strict rewrites that can change the strictness of parts of the goal. This would require the concept of asymmetric `gcongr` lemmas, something like `le_imp_lt_of_lt_left` and `le_imp_lt_of_lt_right`. An example of such a lemma that already exists in mathlib is `Ico_subset_Ioo_left`.
- I'd like to improve the support for rewriting with symmetric relations such as `=α΅₯`. The following doesn't work very well yet:
```
variable {R : Type*} [CommRing R] [ValuativeRel R] {x y z : R}
example (h : x =α΅₯ y) : x <α΅₯ z β y <α΅₯ z := by
grw [h]
```
Limitations:
- The new implementation does not support occurrences. So, `nth_grw` still uses the old `kabstract`-based implementation. The reason is that there are often multiple `gcongr` lemmas for rewriting in the same place (e.g. `add_le_add` and `add_le_add_left`), and it's tricky to keep track of exactly what is "the same" subexpression.
- The new implementation tries `gcongr` lemmas one by one, and commits to the first `gcongr` lemma that lets us do a rewrite. This means that we need to lower the priority of `add_le_add_left`, so that `add_le_add` is preferred, so that we can rewrite on both sides of `+` at the same time. However, `mul_le_mul_of_nonneg_left` and `mul_le_mul_of_nonneg_right` are still tried before `mul_le_mul`, to avoid getting unnecessary side goals.
- Because the new term is constructed from `gcongr` lemmas, rather than by instantiating the result of `kabstract`, it may be that metadata gets lost, or that some implicit arguments change. For example, rewriting inside `a β€ b` for `a b : Nat` will change the instance argument from `Nat.instLE` to `Nat.instPreorder.toLE`. This is not really a problem.
- Some problems arise when implementing a rewriting tactic that can rewrite under binders, because metavariables have a fixed local context of free variables that they are allowed to depend on. This issue also affects the new `rw` tactic that the FRO is currenlty working on. This PR works around this by "illegally" changing the local context of metavariabes, so as to allow them to depend on bound variables. This has the unfortunate side effect that the "Expected Type" view can get messed up when rewriting bound variables, because the expression is being delaborated with the wrong local context. But I think this is only a minor problem. We coould reconsider this design when the new `rw` tactic is done.
Changes to `gcongr`:
- The `@[goncgr]` attribute now checks more thoroughly whether the given lemma is of the right form. Some lemmas are not suitable for use in `grw`, but they still "feel" like a `gcongr` lemma, so we still allow them to be used in `gcongr`. For such cases I've added a linter warning that can be turned off.
- I've refactored how `gcongr` lemmas are applied, in order to share this code between `gcongr` and `grw`. Now, binder names are taken from the goal when possible, rather than not giving any name to new free variables. This improves `gcongr` (as it means you don't anymore need to write `gcongr with ...` to give the variable a name), and allows `grw` to preserve binder names in the goal.
The grewrite test file now tests the new `grw` implementation. Should I make a copy of the test file to also test the old implementation?
I have put myself as the copyright holder, instead of Sebastian Zimmer, as I think this more accurately reflect code ownership. The original `grw` PR was by Sebastian in 2023, but it was majorly rewritten by me in 2025. Sebastian is still in the list of authors.
---
- [x] depends on: #38558
- [x] depends on: #38556
[](https://gitpod.io/from-referrer/)
|
t-meta |
632/236 |
Mathlib/Algebra/BigOperators/Finsupp/Basic.lean,Mathlib/Algebra/Order/Group/Indicator.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean,Mathlib/Algebra/Order/Sub/Defs.lean,Mathlib/Analysis/CStarAlgebra/Extreme.lean,Mathlib/Analysis/Convex/StrictCombination.lean,Mathlib/Analysis/Distribution/Support.lean,Mathlib/Combinatorics/Graph/Maps.lean,Mathlib/Combinatorics/SimpleGraph/Clique.lean,Mathlib/Data/Finsupp/Order.lean,Mathlib/MeasureTheory/Function/SimpleFunc.lean,Mathlib/MeasureTheory/Integral/Average.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/AbsolutelyContinuousFun.lean,Mathlib/Order/Basic.lean,Mathlib/Probability/Distributions/Gaussian/HasGaussianLaw/Independence.lean,Mathlib/Tactic/GCongr/Core.lean,Mathlib/Tactic/GRewrite/Core.lean,Mathlib/Tactic/GRewrite/Elab.lean,Mathlib/Topology/MetricSpace/ThickenedIndicator.lean,MathlibTest/GCongr/GCongr.lean,MathlibTest/GCongr/implications.lean,MathlibTest/GRewrite.lean |
22 |
39 |
['JovanGerb', 'PatrickMassot', 'Vierkantor', 'github-actions', 'leanprover-radar', 'mathlib-bors', 'mathlib-dependent-issues'] |
dwrensha assignee:dwrensha |
0-67018 18 hours ago |
0-67018 18 hours ago |
1-85914 1 day |
| 30109 |
scholzhannah author:scholzhannah |
feat: the subcomplexes of a (relative classical) CW complex form a completely distributive lattice |
In this PR we prove that the space of subcomplexes `Subcomplex C` of a (relative classical) CW complex `C` is a `CompletelyDistribLattice`.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
304/1 |
Mathlib/Topology/CWComplex/Classical/Subcomplex.lean |
1 |
26 |
['ADedecker', 'github-actions', 'j-loreaux', 'scholzhannah'] |
nobody |
0-61182 16 hours ago |
16-19546 16 days ago |
23-2217 23 days |
| 37477 |
kebekus author:kebekus |
feat: canonical decomposition of complex-meromorphic functions on disks |
Establish the Finite Canonical Decomposition of meromorphic functions, where a complex-meromorphic function `f` on a disk is written as a product of an analytic function without zeros and poles, and canonical factors that take only values of norm one on the boundary of the disk.
A future PR will extend this theorem to handle zeros/poles on the boundary of the disk.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
305/10 |
Mathlib.lean,Mathlib/Analysis/Complex/CanonicalDecomposition.lean,Mathlib/Analysis/Meromorphic/Order.lean,Mathlib/Analysis/Meromorphic/RCLike.lean,Mathlib/Topology/MetricSpace/Pseudo/Defs.lean |
5 |
4 |
['github-actions', 'j-loreaux', 'kebekus'] |
nobody |
0-61181 16 hours ago |
11-46655 11 days ago |
39-31101 39 days |
| 38584 |
TJHeeringa author:TJHeeringa |
feat(Analysis/InnerProductSpace/Reproducing): Add outerKernel, mem_iff |
---
Adds the `outerKernel` definition and the theorem `mem_iff`. These are needed for proving statements involving embeddings of RKHS.
I can split `mem_of_posSemidef` and `mem_iff` off into a different pull request if that is preferred.
The theorems `mem_of_posSemidef` and `posSemidef_of_mem` are the two directions of `mem_iff`. `posSemidef_of_mem` is slightly stronger than the converse direction of `mem_iff` in the sense that it also specifies the constant `c` in the statement. The specified `c` is in fact the smallest possible `c` for which the statement holds.
The statement `mem_of_posSemidef` proves `β (g : H), (g : X β V) = f`. We could instead write `f β (coeCLM π (H:=H)).range`. Making this change would require the addition of the line `simp only [LinearMap.mem_range, coe_coe, coeCLM_apply]` in the beginning of the proof. The full beginning is then
```
lemma mem_of_posSemidef (f : X β V) {c : β}
(hc : ((c : π) ^ 2 β’ kernel H - outerKernel π f).PosSemidef) : f β (coeCLM π (H:=H)).range := by
simp only [LinearMap.mem_range, coe_coe, coeCLM_apply]
let Laux : ...
```
Making a `MemRKHS` like MemLp and MemSobolev and then writing `MemRKHS H f` is also an option. Happy to change it to whatever is preferred.
The proof of `mem_of_posSemidef` is based on the idea that any function f in the RKHS satisfies `=\sum_{n} ` for `x_n\in X` and `v_n\in V` by the reproducing property. We define the operator L(\sum_n K(\cdot,x_n)v_n) = \sum_{n} . This is bounded by the condition based on the kernels, and thus extends to a bounded linear operator on the RKHS. Its Riesz' representer agrees pointwise with f.
AI:
When asking how to avoid Classical.choose in constructing the operator L, Claude suggested the approach of going through the quotient. I made the proof using Claude as supplementary Loogle. Afterwards, I asked it to help shorted the proofs. Some suggestions for `mem_of_posSemidef` were applied. The other suggestions were not helping or not correct.
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
123/1 |
Mathlib/Analysis/InnerProductSpace/Reproducing.lean |
1 |
7 |
['TJHeeringa', 'github-actions', 'themathqueen'] |
nobody |
0-61180 16 hours ago |
13-2404 13 days ago |
13-2761 13 days |
| 37298 |
artie2000 author:artie2000 |
refactor(Algebra/Order): unbundle group and ring cone |
* Unbundle `GroupCone` and `RingCone` using `Submonoid.IsMulPointed`
The material in `Mathlib.Algebra.Group.Submonoid.Support` was created to treat uniformly
* positive cones in groups and rings
* pointed cones in vector spaces over an ordered field
* orderings in rings
This PR deprecates the [GroupCone](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Group/Cone.html#GroupCone) and [RingCone](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Ring/Cone.html#RingCone) structures, making use of the predicates `Submonoid.IsMulPointed` and `AddSubmonoid.IsPointed` defined in that file instead.
See also #36863 for the analogous change to ring orderings.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
large-import
label:t-algebra$ |
136/31 |
Mathlib/Algebra/Order/Group/Cone.lean,Mathlib/Algebra/Order/Ring/Cone.lean |
2 |
2 |
['github-actions', 'joneugster'] |
nobody |
0-61179 16 hours ago |
42-1370 42 days ago |
42-1904 42 days |
| 34273 |
gasparattila author:gasparattila |
feat(Topology/Sets): finite sets are dense in `(Nonempty)Compacts` |
---
- [x] depends on: #34266
[](https://gitpod.io/from-referrer/)
|
t-topology |
35/0 |
Mathlib/Topology/Sets/VietorisTopology.lean |
1 |
4 |
['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'scholzhannah'] |
nobody |
0-61178 16 hours ago |
47-4156 47 days ago |
47-5385 47 days |
| 39129 |
wwylele author:wwylele |
feat(Topology/Algebra): lemma about infinite sum on ENat |
This works towards resolving a todo in the ENNReal file. I intentionally kept the change short for quicker review, and hopefully this new file can invite future contributions by adding more lemma on demand. Also a lot of existing machinery on ENNReal will be superseded by #38489 and can be reused for ENat.
[](https://gitpod.io/from-referrer/)
|
t-topology |
43/1 |
Mathlib.lean,Mathlib/Topology/Algebra/InfiniteSum/ENNReal.lean,Mathlib/Topology/Algebra/InfiniteSum/ENat.lean |
3 |
2 |
['github-actions', 'mathlib-bors'] |
nobody |
0-61007 16 hours ago |
0-61178 16 hours ago |
0-62072 17 hours |
| 29701 |
Thmoas-Guan author:Thmoas-Guan |
feat(Algebra/RingTheory): polynomial over regular ring |
In this PR, we proved that polynomial over regular ring is regular.
---
- [x] depends on: #28684
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
128/0 |
Mathlib.lean,Mathlib/RingTheory/RegularLocalRing/Polynomial.lean |
2 |
5 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
joneugster assignee:joneugster |
0-59995 16 hours ago |
17-28970 17 days ago |
17-29200 17 days |
| 32692 |
WilliamCoram author:WilliamCoram |
feat: define multivariate restricted power series |
We define multivariate restricted power series over a normed ring R, and show the properties that they form a ring when R has the ultrametric property.
This work generalises my previous work in #26089 which will need to be refactored.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-number-theory
new-contributor
|
137/0 |
Mathlib.lean,Mathlib/Algebra/Order/Antidiag/Prod.lean,Mathlib/RingTheory/MvPowerSeries/Restricted.lean |
3 |
43 |
['WilliamCoram', 'erdOne', 'github-actions', 'jcommelin', 'mathlib-merge-conflicts'] |
jcommelin assignee:jcommelin |
0-59994 16 hours ago |
24-16451 24 days ago |
42-30092 42 days |
| 38380 |
linesthatinterlace author:linesthatinterlace |
feat(Data/Set): add Set.diag API |
Introduces `Set.diag (s : Set Ξ±) : Set (Ξ± Γ Ξ±) = {(a, a) | a β s}` as the set-level companion to `Set.offDiag`, mirroring the existing `Finset.diag` / `Finset.offDiag` pairing. The type-level `Set.diagonal : Type* β Set (Ξ± Γ Ξ±)` is retained unchanged; `diag_univ : (univ : Set Ξ±).diag = diagonal Ξ±` (`@[simp]`) keeps it canonical when the underlying set is `univ`.
Parallels to the existing `offDiag` API (`diag_mono`, `diag_nonempty`, `diag_eq_empty`, `diag_empty`, `diag_singleton`, `diag_subset_prod`, `diag_eq_sep_prod`, `diag_inter`, `diag_union`, `diag_insert`) plus bridges `diag_union_offDiag`, `disjoint_diag_offDiag`, `prod_sdiff_diag`, `prod_sdiff_offDiag`. Also `diag_eq_image`, `image_diag` (matching `Finset.image_diag`), `preimage_coe_coe_diag`, and `Finset.coe_diag`. Note `diag_union` and `diag_insert` are unconditional (no `Disjoint` / `a β s` hypothesis).
To free the `diag_` prefix for the set sense, the existing lemmas about the diagonal *map* `fun x => (x, x)` are renamed with deprecation aliases:
`range_diag` β `range_diagMap`, `diag_preimage_prod` β `diagMap_preimage_prod`, `diag_preimage_prod_self` β `diagMap_preimage_prod_self`. `diag_image` and `preimage_coe_coe_diagonal` are marked `@[deprecated]`. |
t-data |
124/15 |
Mathlib/Data/Finset/Prod.lean,Mathlib/Data/Set/Operations.lean,Mathlib/Data/Set/Prod.lean,Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean,Mathlib/Topology/Compactness/Compact.lean,Mathlib/Topology/Compactness/Lindelof.lean,Mathlib/Topology/NhdsSet.lean |
7 |
2 |
['github-actions', 'linesthatinterlace'] |
joneugster assignee:joneugster |
0-59990 16 hours ago |
17-77692 17 days ago |
17-77671 17 days |
| 38512 |
gasparattila author:gasparattila |
chore(MeasureTheory): replace remaining `@[measurability]` attributes by `@[fun_prop]` |
Since #30511, the `@[measurability]` attribute is equivalent to `@[fun_prop]` when applied to lemmas about measurability of functions. This PR replaces these attributes by `@[fun_prop]` and adds a warning for this use of `@[measurability]`. Note that `@[measurability]` is still used for lemmas about measurability of sets.
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
45/41 |
Mathlib/Analysis/Complex/UpperHalfPlane/Measure.lean,Mathlib/MeasureTheory/Function/StronglyMeasurable/AEStronglyMeasurable.lean,Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean,Mathlib/MeasureTheory/Group/Arithmetic.lean,Mathlib/MeasureTheory/MeasurableSpace/Basic.lean,Mathlib/MeasureTheory/Measure/AEMeasurable.lean,Mathlib/MeasureTheory/Order/Lattice.lean,Mathlib/Probability/Distributions/Gaussian/HasGaussianLaw/Basic.lean,Mathlib/Tactic/Measurability.lean |
9 |
2 |
['gasparattila', 'github-actions'] |
EtienneC30 assignee:EtienneC30 |
0-59989 16 hours ago |
15-24238 15 days ago |
15-25131 15 days |
| 38587 |
dagurtomas author:dagurtomas |
feat(Tactic/CategoryTheory): concrete category boilerplate |
Adds `mk_concrete_category`, a command for generating the initial boilerplate for concrete categories whose morphisms are given by a bundled function type.
The command creates the wrapper `Hom` type, named category and concrete category instances, `ofHom`, `Hom.hom`, and the basic dsimp lemmas.
It handles parameterized categories such as `ModuleCat`, and has a paired additive/multiplicative form for generating both structures at once (e.g. `MonCat`/`AddMonCat`).
Includes test categories checking the generated declarations.
[](https://gitpod.io/from-referrer/)
|
LLM-generated
t-meta
t-category-theory
|
905/0 |
Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/CategoryTheory/MkConcreteCategory.lean,MathlibTest/CategoryTheory/MkConcreteCategory.lean |
4 |
8 |
['dagurtomas', 'eric-wieser', 'github-actions'] |
adamtopaz assignee:adamtopaz |
0-59988 16 hours ago |
3-50727 3 days ago |
3-51467 3 days |
| 38713 |
justus-springer author:justus-springer |
feat(Algebra/Category/ModuleCat/Sheaf/ChangeOfRings): API for `restrictScalars` |
Extend the `restrictScalars` API for presheaves and sheaves of modules to match the existing API in `ModuleCat/ChangeOfRings`.
For both `PresheafOfModules` and `SheafOfModules` we add:
- `restrictScalarsCongr`: restriction of scalars along equal morphisms are naturally isomorphic
- `restrictScalarsId'/restrictScalarsId`: restriction along the identity is naturally isomorphic to the identity functor
- `restrictScalarsComp'/restrictScalarsComp`: restriction along a composition is naturally isomorphic to the composition of restriction functors
- `restrictScalarsEquivalenceOfIso`: an isomorphism `R β
R'` of (pre)sheaves of rings induces an equivalence of categories of (pre)sheaves of modules.
We also move up the "simp barrier": `PresheafOfModules.restrictScalars` and `SheafOfModules.restrictScalars` are no longer `@[simps]` as they have their own API now.
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry
t-algebra
label:t-algebra$ |
326/5 |
Mathlib/Algebra/Category/ModuleCat/Presheaf/ChangeOfRings.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafification.lean,Mathlib/Algebra/Category/ModuleCat/Sheaf/ChangeOfRings.lean |
3 |
6 |
['dagurtomas', 'github-actions', 'justus-springer'] |
joelriou assignee:joelriou |
0-59987 16 hours ago |
8-24732 8 days ago |
9-45337 9 days |
| 38720 |
tb65536 author:tb65536 |
feat(GroupTheory/Rank): nontrivial groups have positive rank |
This PR proves that nontrivial groups have positive rank.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-group-theory
label:t-algebra$ |
18/0 |
Mathlib/GroupTheory/Rank.lean |
1 |
2 |
['github-actions', 'wwylele'] |
mattrobball assignee:mattrobball |
0-59986 16 hours ago |
11-7263 11 days ago |
11-7243 11 days |
| 38761 |
yuanyi-350 author:yuanyi-350 |
chore(AlgebraicGeometry/EllipticCurve/Jacobian/Point): remove erws |
- rewrites `neg_of_Z_ne_zero` with a `simp only` chain in place of the former `erw`
- rewrites `addXYZ_neg` by splitting the vector equality into coordinate goals handled by `rw`
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
t-algebraic-geometry
LLM-generated
|
5/3 |
Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Point.lean |
1 |
5 |
['dagurtomas', 'github-actions', 'yuanyi-350'] |
joelriou assignee:joelriou |
0-59985 16 hours ago |
9-63913 9 days ago |
10-14408 10 days |
| 36507 |
BryceT233 author:BryceT233 |
feat(RingTheory/MvPowerSeries): various equivalences for `MvPowerSeries` |
This PR adds a number of equivalences related to power series rings and is patterned after `Mathlib/Algebra/MvPolynomial/Equiv.lean`.
To be specific, it adds:
* `MvPowerSeries.isEmptyEquiv` : The isomorphism between multivariable power series
in no variables and the ground ring.
* `MvPowerSeries.uniqueEquiv` : The isomorphism between multivariable power series
in a single variable and power series over the ground ring.
* `MvPowerSeries.mapEquiv`, `MvPowerSeries.mapAlgEquiv` : The isomorhism between
multivariable power series induced by an isomorphism between the coefficient rings.
* `MvPowerSeries.sumAlgEquiv` : The isomorphism between multivariable power series
in a sum of two types, and multivariable power series in one of the types,
with coefficients in multivariable power series in the other type.
* `MvPowerSeries.commAlgEquiv` : The isomorphism between multivariable power series
in variables `Ο` of multivariable power series in variables `Ο` and multivariable power series
in variables `Ο` of multivariable power series in variables `Ο`.
* `MvPowerSeries.optionEquivLeft` : The isomorphism between multivariable power series
in `Option Ο` and power series with coefficients in `MvPowerSeries Ο R`.
* `MvPowerSeries.optionEquivRight` : The isomorphism between multivariable power series
in `Option Ο` and multivariable power series in `Ο` with coefficients in `PowerSeries R`
* `MvPowerSeries.finSuccEquiv` : The isomorphism between multivariable power series
in `Fin (n + 1)` and power series over multivariable power series in `Fin n`.
---
[](https://gitpod.io/from-referrer/)
- [x] depends on: #35329
- [x] depends on: #36506 |
t-ring-theory
large-import
|
598/4 |
Mathlib/RingTheory/MvPowerSeries/Basic.lean,Mathlib/RingTheory/MvPowerSeries/Equiv.lean |
2 |
26 |
['AntoineChambert-Loir', 'BryceT233', 'Thmoas-Guan', 'WenrongZou', 'YaelDillies', 'eric-wieser', 'github-actions', 'mathlib-dependent-issues'] |
mattrobball assignee:mattrobball |
0-55747 15 hours ago |
0-55827 15 hours ago |
33-13349 33 days |
| 37216 |
mbkybky author:mbkybky |
feat(Algebra/Module): a finite stably free module `M` is free if it is invertible |
We show that a finite stably free module `M` is free if it is invertible.
- [x] depends on: #36951
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
74/0 |
Mathlib.lean,Mathlib/Algebra/Module/StablyFree/FreeOfInvertible.lean,Mathlib/RingTheory/Finiteness/Cardinality.lean |
3 |
11 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mbkybky', 'robin-carlier'] |
robin-carlier assignee:robin-carlier |
0-48976 13 hours ago |
0-48976 13 hours ago |
4-36464 4 days |
| 39133 |
Thmoas-Guan author:Thmoas-Guan |
feat(Algebra/ModuleCat): exactness of restrictScalars for general universe level |
Currently exactness of `ModuleCat.restrictScalars` is synth via being adjoint functor, however this needs the universe level to be some `max u v` where `u` is the universe level of the ring. Here we provide exactness of restrictScalars for general universe level using it preserves short exact sequence.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
46/0 |
Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/ChangeOfRingsExact.lean |
2 |
1 |
['github-actions'] |
nobody |
0-48514 13 hours ago |
0-48594 13 hours ago |
0-48573 13 hours |
| 38126 |
JovanGerb author:JovanGerb |
feat: overlapping instances linter |
This PR implements the overlapping instances linter, with better performance than the previous attempt.
An annoyance is the need for `withSetBoolOptionIn`. This is a private declaration in the `unusedInstancesInType` linter, with a link to an unsolved issue. I've marked it public, but maybe it should go to a separate file, depending on how fast we think the issue will be resolved.
See #35095 and #34955 for previous iterations of this linter.
See #14731 for an old attempt at a weaker form of this linter.
Co-authored-by: @thorimur
---
- [x] depends on: #38151
- [x] depends on: #38150
[](https://gitpod.io/from-referrer/)
|
t-linter |
770/47 |
Mathlib.lean,Mathlib/Algebra/Category/Ring/FilteredColimits.lean,Mathlib/Algebra/Colimit/DirectLimit.lean,Mathlib/Algebra/Module/DedekindDomain.lean,Mathlib/Algebra/Module/Equiv/Defs.lean,Mathlib/Algebra/Module/GradedModule.lean,Mathlib/Algebra/Order/Antidiag/Prod.lean,Mathlib/Algebra/Order/Invertible.lean,Mathlib/Algebra/Polynomial/Div.lean,Mathlib/Algebra/Star/StarRingHom.lean,Mathlib/Analysis/CStarAlgebra/Spectrum.lean,Mathlib/Analysis/Convex/StdSimplex.lean,Mathlib/Analysis/Fourier/FiniteAbelian/Orthogonality.lean,Mathlib/Analysis/Normed/Field/Krasner.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/ConjSqrt.lean,Mathlib/Analysis/SpecificLimits/Normed.lean,Mathlib/CategoryTheory/Localization/Predicate.lean,Mathlib/CategoryTheory/Monoidal/Closed/Cartesian.lean,Mathlib/CategoryTheory/MorphismProperty/OverAdjunction.lean,Mathlib/Control/Applicative.lean,Mathlib/Control/Functor.lean,Mathlib/FieldTheory/Normal/Defs.lean,Mathlib/GroupTheory/OreLocalization/Basic.lean,Mathlib/Init.lean,Mathlib/Lean/Elab/InfoTree.lean,Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean,Mathlib/LinearAlgebra/Eigenspace/Matrix.lean,Mathlib/LinearAlgebra/RootSystem/Finite/G2.lean,Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Lemmas.lean,Mathlib/LinearAlgebra/SesquilinearForm/Basic.lean,Mathlib/Logic/Basic.lean,Mathlib/MeasureTheory/Measure/Haar/Unique.lean,Mathlib/NumberTheory/ClassNumber/Finite.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Embeddings.lean,Mathlib/NumberTheory/RamificationInertia/Galois.lean,Mathlib/RingTheory/ChainOfDivisors.lean,Mathlib/RingTheory/ClassGroup.lean,Mathlib/RingTheory/DedekindDomain/Different.lean,Mathlib/RingTheory/DedekindDomain/Dvr.lean,Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean,Mathlib/RingTheory/DedekindDomain/Instances.lean,Mathlib/RingTheory/DedekindDomain/IntegralClosure.lean,Mathlib/RingTheory/DedekindDomain/LinearDisjoint.lean,Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean,Mathlib/RingTheory/FractionalIdeal/Extended.lean,Mathlib/RingTheory/HahnSeries/Lex.lean,Mathlib/RingTheory/Ideal/Norm/AbsNorm.lean,Mathlib/RingTheory/Ideal/Norm/RelNorm.lean,Mathlib/RingTheory/LocalRing/ResidueField/Instances.lean,Mathlib/RingTheory/NormalClosure.lean,Mathlib/RingTheory/Valuation/RankOne.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean,Mathlib/Tactic/Linter/OverlappingInstances.lean,Mathlib/Tactic/Linter/UnusedInstancesInType.lean,Mathlib/Tactic/NormNum/Ineq.lean,Mathlib/Topology/Algebra/MulAction.lean,Mathlib/Topology/Algebra/Nonarchimedean/Completion.lean,Mathlib/Topology/Connected/PathConnected.lean,MathlibTest/OverlappingInstances.lean,MathlibTest/Subsingleton.lean,MathlibTest/Variable.lean,MathlibTest/WhitespaceLinter.lean,MathlibTest/congr.lean,MathlibTest/norm_num.lean |
65 |
95 |
['JovanGerb', 'github-actions', 'leanprover-radar', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'thorimur'] |
thorimur assignee:thorimur |
0-46884 13 hours ago |
1-14511 1 day ago |
16-84245 16 days |
| 38896 |
peabrainiac author:peabrainiac |
feat(Algebra): multiplicative torsors |
Introduce a class `Torsor` for torsors of multiplicative groups, as a multiplicative counterpart to the existing `AddTorsor` for torsors of additive groups.
---
Adopted / migrated from #8608.
[](https://gitpod.io/from-referrer/)
|
t-algebra
file-removed
label:t-algebra$ |
643/544 |
Mathlib.lean,Mathlib/Algebra/AddTorsor/Basic.lean,Mathlib/Algebra/AddTorsor/Defs.lean,Mathlib/Algebra/Group/Pointwise/Set/Scalar.lean,Mathlib/Algebra/Notation/Defs.lean,Mathlib/Algebra/Torsor/Basic.lean,Mathlib/Algebra/Torsor/Defs.lean,Mathlib/Analysis/Convex/Segment.lean,Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean,Mathlib/LinearAlgebra/AffineSpace/Defs.lean,Mathlib/Tactic/Translate/ToAdditive.lean,Mathlib/Topology/Algebra/Group/AddTorsor.lean,Mathlib/Topology/Algebra/MulAction.lean,scripts/noshake.json |
14 |
2 |
['github-actions', 'grunweg'] |
nobody |
0-45132 12 hours ago |
0-45205 12 hours ago |
6-48871 6 days |
| 39103 |
CoolRmal author:CoolRmal |
feat(MeasureTheory): triangle inequality for the variation of vector measures |
We show that the variation of vector measures satisfies the triangle inequality. As an application, we show that integrals are additive in vector measures and bilinear forms in #30230.
Created with the help of Codex.
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
23/1 |
Mathlib/MeasureTheory/VectorMeasure/Variation/Basic.lean |
1 |
2 |
['github-actions', 'yoh-tanimoto'] |
EtienneC30 assignee:EtienneC30 |
0-43620 12 hours ago |
1-54291 1 day ago |
1-54270 1 day |
| 36169 |
SnirBroshi author:SnirBroshi |
feat(Order/ConditionallyCompleteLattice/Indexed): `iSup` of `sup`s vs `sup` of `iSup`s |
`ciSup_sup_eq`/`ciInf_inf_eq` match `CompleteLattice`'s `iSup_sup_eq`/`iInf_inf_eq`, and in a `ConditionallyCompleteLinearOrder` we get an inequality without any bounded assumptions.
`Finset.ciSup_union` for `ConditionallyCompleteLinearOrderBot` matches `CompleteLattice`'s `Finset.iSup_union`.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
58/0 |
Mathlib/Order/Bounds/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Finset.lean,Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean |
3 |
11 |
['SnirBroshi', 'Vierkantor', 'github-actions', 'vihdzp'] |
Vierkantor assignee:Vierkantor |
0-35667 9 hours ago |
10-61257 10 days ago |
32-14094 32 days |
| 38855 |
SnirBroshi author:SnirBroshi |
feat(Order/ConditionallyCompleteLattice/Indexed): `β€` version of `ciSup_or'` for `ConditionallyCompleteLattice` |
Deprime `ciSup_or'` because there's no `ciSup_or`, and add a `β€` version (and dual) for `ConditionallyCompleteLattice`.
Only `β€` because equality does not hold when `p β q` without `sSup β
= β₯`.
---
`ciSup_or'` can't have a dual because there's no dual to `ConditionallyCompleteLinearOrderBot`.
[](https://gitpod.io/from-referrer/)
|
t-order |
8/1 |
Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean |
1 |
1 |
['github-actions'] |
nobody |
0-35498 9 hours ago |
7-56706 7 days ago |
7-56685 7 days |
| 38856 |
SnirBroshi author:SnirBroshi |
feat(Order/ConditionallyCompleteLattice/Indexed): `iSup_iSup_eq_{left/right}` for `ConditionallyCompleteLinearOrderBot` |
and `β€` versions for `ConditionallyCompleteLattice`.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
32/9 |
Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean |
2 |
1 |
['github-actions'] |
nobody |
0-35335 9 hours ago |
7-49625 7 days ago |
7-49604 7 days |
| 37400 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Acyclic): endpoints of a path have at most one neighbor in the path |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
maintainer-merge
|
15/0 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean |
1 |
6 |
['Rida-Hamadani', 'Ruben-VandeVelde', 'SnirBroshi', 'bryangingechen', 'github-actions'] |
nobody |
0-34159 9 hours ago |
40-55006 40 days ago |
40-54985 40 days |
| 37914 |
j-loreaux author:j-loreaux |
feat: transfer `star`-related instances across equivalences |
This also adds `Function.Injective.{InvolutiveStar,...}` and related lemmas.
In addition we rename the existing `Equiv.star` to `Equiv.Perm.star` (without a deprecation) so that the name can be used for the declaration which transfers a `Star` instance across an `Equiv`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
95/2 |
Mathlib.lean,Mathlib/Algebra/Star/Basic.lean,Mathlib/Algebra/Star/Pointwise.lean,Mathlib/Algebra/Star/TransferInstance.lean |
4 |
5 |
['SnirBroshi', 'github-actions', 'themathqueen'] |
nobody |
0-33273 9 hours ago |
17-866 17 days ago |
17-2754 17 days |
| 39019 |
urkud author:urkud |
chore(*): reduce defeq abuse of `Set Ξ± = Ξ± β Prop` |
---
[](https://gitpod.io/from-referrer/)
|
tech debt |
16/15 |
Mathlib/Analysis/Complex/CoveringMap.lean,Mathlib/Analysis/Normed/Group/FunctionSeries.lean,Mathlib/Data/Nat/Order/Lemmas.lean,Mathlib/NumberTheory/EulerProduct/ExpLog.lean,Mathlib/NumberTheory/NumberField/Ideal/Asymptotics.lean,Mathlib/NumberTheory/NumberField/Ideal/KummerDedekind.lean,Mathlib/Topology/Algebra/InfiniteSum/Group.lean,Mathlib/Topology/FiberBundle/Basic.lean |
8 |
3 |
['JovanGerb', 'github-actions', 'urkud'] |
JovanGerb assignee:JovanGerb |
0-30776 8 hours ago |
3-46359 3 days ago |
3-46338 3 days |
| 29744 |
espottesmith author:espottesmith |
feat(Combinatorics): define directed hypergraphs |
This PR defines directed hypergraphs:
```
@[ext]
structure DiHypergraph (Ξ± : Type*) where
/-- The vertex set -/
vertexSet : Set Ξ±
/-- The edge set -/
edgeSet : Set ((Set Ξ±) Γ (Set Ξ±))
/-- Each edge is a pair (s, d), where s β vertexSet and d β vertexSet -/
edge_src_dst_isSubset_vertexSet' : β β¦eβ¦, e β edgeSet β e.1 β vertexSet β§ e.2 β vertexSet
```
Additional definitions:
- tail/head stars and negative/positive stars
- some special cases (B-Graph, F-Graph, BF-Graph, and what I'm calling a "non-endless" dihypergraph, where neither the source/tail nor the destination/head are empty)
- Vertex and (hyper)edge adjacency
- isolated vertices
- empty and nonempty dihypergraphs
The design employed here is based off of #28613, but this PR does not depend on that one.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
398/0 |
Mathlib.lean,Mathlib/Combinatorics/DiHypergraph/Basic.lean |
2 |
2 |
['github-actions', 'mathlib4-merge-conflict-bot'] |
YaelDillies assignee:YaelDillies |
0-30463 8 hours ago |
37-30565 37 days ago |
95-14011 95 days |
| 38552 |
joelriou author:joelriou |
feat(AlgebraicTopology/SimplicialSet/Homology): computing homology using nondegenerate simplices |
Given a simplicial set `X` and an object `R` in a preadditive category `C` (with coproducts), we introduce the chain complex `X.normalizedChainComplex R` which is a direct factor of `X.chainComplex R`, and is homotopy equivalent to it. The `n`-chains are coproducts indexed by nondegenerate `n`-simplices of `X` instead of all `n`-simplices. It follows that if `X` has dimension `< d`, then the homology of `X` vanishes in degrees `β₯ d`.
(This is an application of results previously obtained as part of the formalization of the Dold-Kan equivalence.)
---
- [x] depends on: #38954
- [x] depends on: #38544
- [x] depends on: #38543
[](https://gitpod.io/from-referrer/)
|
t-algebraic-topology |
273/2 |
Mathlib.lean,Mathlib/AlgebraicTopology/SimplicialObject/Split.lean,Mathlib/AlgebraicTopology/SimplicialSet/Homology/Nondegenerate.lean |
3 |
12 |
['github-actions', 'jcommelin', 'joelriou', 'mathlib-dependent-issues', 'mathlib-splicebot', 'robin-carlier'] |
nobody |
0-22401 6 hours ago |
0-22447 6 hours ago |
0-22428 6 hours |
| 38971 |
homeowmorphism author:homeowmorphism |
chore(FinitelyPresentedGroup): Use dot notation by default whenever possible and typo fix |
* Changing the usage of `IsNormalClosureFG N` to `N.IsNormalClosureFG` as the idiomatic use of the latter seems easier to read ("N is finitely generated under normal closure") and is in line with using dot notation for terms.
* Fix a typo in the main definition docstring regarding the usage of `map`: it should be `.map` instead of `_map`.
---
I used Copilot + Gemini Pro 3.1 to query about usage and took some of its suggestions.
[](https://gitpod.io/from-referrer/)
|
maintainer-merge
t-group-theory
|
7/7 |
Mathlib/GroupTheory/FinitelyPresentedGroup.lean |
1 |
3 |
['github-actions', 'homeowmorphism', 'tb65536'] |
tb65536 assignee:tb65536 |
0-22289 6 hours ago |
5-946 5 days ago |
5-925 5 days |
| 39110 |
SnirBroshi author:SnirBroshi |
chore(Data/Set): reduce defeq abuse of `Set Ξ± = Ξ± β Prop` |
These are among the first places that would fail if `Set Ξ±` wasn't defeq to `Ξ± β Prop`.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
37/23 |
Mathlib/Data/Set/Basic.lean,Mathlib/Data/Set/Defs.lean,Mathlib/Data/Set/Insert.lean,Mathlib/Data/Set/Prod.lean,Mathlib/Logic/Function/Basic.lean,Mathlib/Order/BooleanAlgebra/Set.lean |
6 |
10 |
['SnirBroshi', 'github-actions', 'leanprover-radar', 'themathqueen', 'vihdzp'] |
nobody |
0-22050 6 hours ago |
1-28847 1 day ago |
1-28854 1 day |
| 39038 |
joelriou author:joelriou |
feat(CategoryTheory): Guitart exact squares and quotient categories |
In this PR, we construct Guitart exact squares which involve quotient categories.
---
- [x] depends on: #38998
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
103/0 |
Mathlib.lean,Mathlib/CategoryTheory/GuitartExact/Quotient.lean |
2 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
nobody |
0-20790 5 hours ago |
0-20543 5 hours ago |
0-20534 5 hours |
| 39089 |
Whysoserioushah author:Whysoserioushah |
feat(RepresentationTheory): Define continuous representation |
co-authored-by : @rmhi
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
158/0 |
Mathlib.lean,Mathlib/RepresentationTheory/Continuous/Basic.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean |
3 |
9 |
['Whysoserioushah', 'github-actions', 'riccardobrasca'] |
riccardobrasca assignee:riccardobrasca |
0-20010 5 hours ago |
0-21969 6 hours ago |
2-3297 2 days |
| 39122 |
justus-springer author:justus-springer |
feat(AlgebraicGeometry/): Birationality and rationality of schemes |
This is a first step (of hopefully many) towards some basic birational geometry. This PR:
- Moves `RationalMap.lean` into a new subdirectory `Birational/`
- Adds `Birational/Birational.lean`, which defines predicates `Birational`, `BirationalOver` and `IsRationalOver` for arbitrary schemes and provides basic API (e.g. that they are equivalence relations, and that affine space is rational).
Some notes on the choice of definitions: There are multiple ways to define what it means for
two schemes to be birational to each other. A common one is: "There exists a
rational map with a rational inverse". However, this would require defining composition of
rational maps, which is not always defined (In order to compose `f : X β€ Y` with `g : Y β€ Z`, you
need at least `X` preirreducible, `Y` nonempty and `f` dominant). On the other hand, I can define
"There exist dense subsets `U : Opens X` and `V : Opens Y` such that `U β
V` as schemes" for
any two schemes `X` and `Y`, with no conditions. Hence I chose that as a definition. I'm also
working on defining composition of rational maps, and once that's done, there should be a theorem
connecting the two definitions.
For now, I've defined `IsRationalOver S X` to mean there exists a `n : Type 0` such that `X`
is birational to `πΈ(n; S)`. I fixed the universe of `n` to avoid bad universe levels in the
type of `IsRationalOver`. At least I wasn't able to find a way to make this universe polymorphic
and make the linter happy, but maybe there is a way. All references on birational geometry I
could find just work with finite-dimensional varieties anyway, which would fit in `Type 0`.
---
[](https://gitpod.io/from-referrer/)
|
file-removed
t-algebraic-geometry
|
297/1 |
Mathlib.lean,Mathlib/AlgebraicGeometry/Birational/Birational.lean,Mathlib/AlgebraicGeometry/Birational/RationalMap.lean,Mathlib/AlgebraicGeometry/Restrict.lean |
4 |
1 |
['github-actions'] |
nobody |
0-17465 4 hours ago |
0-84052 23 hours ago |
0-84802 23 hours |
| 38848 |
jcreinhold author:jcreinhold |
feat(AlgebraicTopology/SimplicialSet): exists_isPushout_of_ne_top |
Every proper subcomplex of a simplicial set extends by attaching a single cell along its boundary, exhibited as a pushout of `βΞ[n] βͺ Ξ[n]`. This is the per-cell input for cell-by-cell filtrations of monomorphisms in `SSet`.
Adapted from @joelriou 's [proof](https://github.com/joelriou/topcat-model-category/blob/813338a8c88cfe0096deed7e3ba7daf92d4a1c71/TopCatModelCategory/SSet/Boundary.lean#L187). I also added the supporting lemma `Types.isPullback_of_eq_setPreimage` (set-preimage square is a pullback in `Type u`).
AI use: Claude helped locate `subtype_val_mono` and the `backward.isDefEq.respectTransparency` option.
|
t-algebraic-topology
new-contributor
|
120/3 |
Mathlib/AlgebraicTopology/SimplicialSet/Boundary.lean,Mathlib/CategoryTheory/Limits/Types/Pullbacks.lean |
2 |
22 |
['github-actions', 'jcreinhold', 'joelriou', 'mckoen'] |
joelriou assignee:joelriou |
0-16347 4 hours ago |
0-81553 22 hours ago |
7-50309 7 days |
| 32058 |
Thmoas-Guan author:Thmoas-Guan |
feat(Algebra): Baer criterion for injective dimension |
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`. By dimension shifting, we also have `M` has injective dimension not exceeding `n` iff `Ext^{n + 1}(R/I, M)` vanish for all ideal `I`.
---
- [x] depends on: #36980
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-category-theory
label:t-algebra$ |
162/0 |
Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Ext/Baer.lean,Mathlib/Algebra/Homology/ShortComplex/ModuleCat.lean |
3 |
67 |
['Thmoas-Guan', 'dagurtomas', 'github-actions', 'joelriou', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] |
joelriou assignee:joelriou |
0-16032 4 hours ago |
0-16101 4 hours ago |
45-4520 45 days |
| 39138 |
Thmoas-Guan author:Thmoas-Guan |
refactor(Algebra/GeometricallyReduced): refactor `Algebra.IsGeometricallyReduced` |
Refactor `Algebra.IsGeometricallyReduced` to adapt to general algebra over commutative ring.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
41/16 |
Mathlib/RingTheory/Nilpotent/GeometricallyReduced.lean |
1 |
1 |
['github-actions'] |
nobody |
0-14467 4 hours ago |
0-34195 9 hours ago |
0-34745 9 hours |
| 38220 |
wwylele author:wwylele |
feat(LinearAlgebra/AffineSpace): shifting a subspace towards a point |
Split off from #36018 and excluded the Simplex part. This is preparing to calculate the volume of a simplex by integrating the cross-section created by shifting the base plane. Part of https://github.com/leanprover-community/mathlib4/pull/34826.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
133/0 |
Mathlib.lean,Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Shift.lean |
2 |
5 |
['copilot-pull-request-reviewer', 'github-actions'] |
themathqueen assignee:themathqueen |
0-12581 3 hours ago |
0-13166 3 hours ago |
21-74459 21 days |
| 37934 |
Thmoas-Guan author:Thmoas-Guan |
feat(FieldTheory): definition of transcendental separable field extension |
In this PR, we introduce the concept of separably generated field extension and transcendental separable field extension.
Further properties will be in #37838
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
69/0 |
Mathlib.lean,Mathlib/FieldTheory/TranscendentalSeparable.lean |
2 |
4 |
['Thmoas-Guan', 'github-actions', 'robin-carlier'] |
robin-carlier assignee:robin-carlier |
0-12196 3 hours ago |
0-12196 3 hours ago |
8-30352 8 days |
| 38489 |
Jun2M author:Jun2M |
feat(Topology/Algebra/InfiniteSum): Generalize ENNReal lemmas |
This PR generalizes many theorems in Topology/Algebra/InfiniteSum/ENNReal.lean from `ENNREal` to any type that satisfies a list of order-related instances, mostly
`[CommMonoid Ξ±] [CompleteLattice Ξ±] [CanonicallyOrderedMul Ξ±] [TopologicalSpace Ξ±] [SupConvergenceClass Ξ±]`
Deprecation of the original `ENNReal` lemmas are done in the next PR: #38193.
Related Zulip thread: [#Is there code for X? > Summing `ENat`s without topology](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Summing.20.60ENat.60s.20without.20topology/with/588756615)
---
[](https://gitpod.io/from-referrer/)
|
|
190/0 |
Mathlib/Topology/Algebra/InfiniteSum/Order.lean |
1 |
6 |
['SnirBroshi', 'github-actions', 'wwylele'] |
nobody |
0-12063 3 hours ago |
15-62809 15 days ago |
15-64015 15 days |
| 37592 |
erdOne author:erdOne |
feat(Geometry/Convex): indexed convex combinations |
We introduce `sConvexCombo` and the indexed version `iConvexCombo` as the main API for `ConvexSpace` and prove lemmas around the new definitions.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
large-import
label:t-algebra$ |
540/172 |
Mathlib/Analysis/Convex/MetricSpace.lean,Mathlib/LinearAlgebra/ConvexSpace.lean,Mathlib/LinearAlgebra/ConvexSpace/AffineSpace.lean |
3 |
88 |
['ADedecker', 'YaelDillies', 'b-mehta', 'bryangingechen', 'erdOne', 'eric-wieser', 'faenuccio', 'github-actions', 'grunweg', 'kbuzzard', 'martinwintermath', 'mathlib-bors', 'ocfnash'] |
nobody |
0-11949 3 hours ago |
0-45867 12 hours ago |
10-15195 10 days |
| 34705 |
mpenciak author:mpenciak |
feat(RingTheory): Grassmannian functor |
This PR shows that the association `A β G(k, (A β[R] M); A)` for an `R`-algebra `A` and `R`-module `M` forms a functor.
(AI disclosure: an early version of this PR was prepared with the help of Claude)
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
LLM-generated
|
138/2 |
Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean,Mathlib/LinearAlgebra/TensorProduct/Tower.lean,Mathlib/RingTheory/Grassmannian.lean |
3 |
28 |
['chrisflav', 'github-actions', 'mathlib-merge-conflicts', 'mpenciak', 'riccardobrasca', 'robin-carlier', 'smorel394'] |
riccardobrasca assignee:riccardobrasca |
0-11325 3 hours ago |
1-52480 1 day ago |
77-50637 77 days |
| 38794 |
YaelDillies author:YaelDillies |
feat(Algebra/Order): stronger positivity criterion for `expect` |
From AddCombi
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
maintainer-merge
label:t-algebra$ |
9/10 |
Mathlib/Algebra/Order/BigOperators/Expect.lean |
1 |
7 |
['YaelDillies', 'b-mehta', 'eric-wieser', 'github-actions', 'grunweg', 'mathlib-merge-conflicts', 'riccardobrasca'] |
nobody |
0-10972 3 hours ago |
7-39633 7 days ago |
8-20924 8 days |
| 39139 |
or4nge19 author:or4nge19 |
feat(LinearAlgebra): Schur triangulation |
Adds Schur triangulation API for algebraically closed `RCLike`, proved by triangularizing an endomorphism, aiming at a more mathlib idiomatic approach than the original one in #20730 as it now (better) specializes the existing triangularization API and generalizes supporting lemmas in more natural places. A prerequisite for porting `Matrix.det_exp` proof from physlib.
It also proves half of existing TODO in Eigenspace.Triangularizable. It may need a split into 2 PRs and coordination with #37006 .
See [this](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Contribute.20Schur.20decomposition/with/532385359) and [this](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/.28Matrix.20and.20NormedSpace.2Eexp.29.20.7C.20det.20.28exp.20A.29.20.3D.20exp.20.28trace.20A.29/with/581264603) zulip discussions.
Co-authored-by: [kuotsanhsu](https://github.com/kuotsanhsu)
---
[](https://gitpod.io/from-referrer/)
|
large-import |
687/75 |
Mathlib.lean,Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean,Mathlib/Analysis/InnerProductSpace/Triangularizable.lean,Mathlib/LinearAlgebra/Basis/Fin.lean,Mathlib/LinearAlgebra/Basis/Flag.lean,Mathlib/LinearAlgebra/Eigenspace/Basic.lean,Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean,Mathlib/LinearAlgebra/Matrix/Block.lean,Mathlib/LinearAlgebra/Matrix/Charpoly/Basic.lean,Mathlib/LinearAlgebra/Matrix/SchurTriangulation.lean |
10 |
2 |
['github-actions', 'wwylele'] |
nobody |
0-10925 3 hours ago |
0-26206 7 hours ago |
0-26314 7 hours |
| 38986 |
teorth author:teorth |
feat: lower bounds for Chebyshev theta and psi functions |
Adds lower bounds to Chebyshev.lean for the theta, psi, and prime counting functions.
Relating to this, the lcm of the first n natural numbers is defined, with some basic API, and the psi function is shown to equal to the log of this lcm.
A helper lemma on the prime factorization of a finset lcm is added to FinsetLemmas.lean.
API for `primesLE` (the primes less than or equal to a natural number) is added to `PrimeCounting.lean`. The API for `primesBelow` (the primes strictly less than a natural number) has been moved from `SmoothNumbers.lean` to `PrimeCounting.lean` and the two API have been aligned.
See also the discussion at https://leanprover.zulipchat.com/#narrow/channel/423402-PrimeNumberTheorem.2B/topic/A.20short.20proof.20of.20the.20Chebyshev.20lower.20bound
Also made minor edits to `Primorial.lean` to link it to the new `primesLE`.
A helper lemma that the log of a prime is always positive is added to `Analysis.SpecialFunctions.Log.Basic`.
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
large-import
|
392/60 |
Mathlib/Algebra/GCDMonoid/FinsetLemmas.lean,Mathlib/Analysis/SpecialFunctions/Log/Basic.lean,Mathlib/NumberTheory/Chebyshev.lean,Mathlib/NumberTheory/PrimeCounting.lean,Mathlib/NumberTheory/Primorial.lean,Mathlib/NumberTheory/SmoothNumbers.lean |
6 |
104 |
['MichaelStollBayreuth', 'SnirBroshi', 'b-mehta', 'faenuccio', 'github-actions', 'grunweg', 'kim-em', 'tb65536', 'teorth', 'vihdzp'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
0-10076 2 hours ago |
0-10128 2 hours ago |
1-82155 1 day |
| 38840 |
peabrainiac author:peabrainiac |
feat(Topology): continuous germs of maps |
Add a predicate `Filter.Germ.Continuous` for continuity of germs between topological spaces, and bundled types `ContinuousGerm x Y` / `PointedContinuousGerm x y` of continuous germs at `x` resp. continuous germs at `x` taking `x` to `y`.
---
See also #10977, which tried to introduce smooth germs between manifolds a while ago, though with a focus on pointwise algebraic operations instead of composability.
[](https://gitpod.io/from-referrer/)
|
t-topology |
204/0 |
Mathlib.lean,Mathlib/Topology/ContinuousGerm.lean,Mathlib/Topology/ContinuousOn.lean,Mathlib/Topology/Germ.lean |
4 |
2 |
['github-actions', 'j-loreaux'] |
nobody |
0-9959 2 hours ago |
8-35879 8 days ago |
8-35858 8 days |
| 39137 |
vihdzp author:vihdzp |
feat: normal function has a closed range |
---
[](https://gitpod.io/from-referrer/)
|
t-order |
18/0 |
Mathlib/Order/IsNormal.lean |
1 |
2 |
['YaelDillies', 'github-actions'] |
nobody |
0-9651 2 hours ago |
0-39576 10 hours ago |
0-39555 10 hours |
| 37399 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Paths): `IsPath` and `Nil` lemmas |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
10/3 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Paths.lean |
2 |
5 |
['Rida-Hamadani', 'SnirBroshi', 'YaelDillies', 'github-actions'] |
YaelDillies assignee:YaelDillies |
0-9511 2 hours ago |
40-53446 40 days ago |
40-53569 40 days |
| 39142 |
justus-springer author:justus-springer |
feat(Mathlib/AlgebraicGeometry/Restrict): Strengthen a technical lemma |
Strengthen the lemma `Scheme.ΞΉ_image_homOfLE_le_ΞΉ_image` so we get an equality instead of an LE. Also add a variant of `Scheme.homOfLE_apply` that takes in its argument unbundled, which is useful in the proof.
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry |
16/6 |
Mathlib/AlgebraicGeometry/Restrict.lean |
1 |
1 |
['github-actions'] |
nobody |
0-9109 2 hours ago |
0-9188 2 hours ago |
0-9167 2 hours |
| 37350 |
aditya-ramabadran author:aditya-ramabadran |
feat(Analysis/Distribution): define canonical maps between Schwartz/test functions, distributions/tempered distributions |
Defines these canonical maps: (1) continuous linear map from $\mathcal D$ to $\mathcal S$, and (2) induced (linear) restriction map from $\mathcal S'$ to $\mathcal D'$, as assigned by @ADedecker.
---
Put in a separate file since Distribution.lean only imports TestFunction right now and I thought it was cleaner to do in a new bridge file with both the maps. Open to changing this though.
* Made use of #36445 (proved first map locally on fixed support spaces first by local seminorm estimates, then used limitCLM)
* Needed a real to complex bridge `TestFunction.ToComplexSchwartzMap` since distributions are defined on real-valued test functions but tempered distributions in mathlib are defined on complex-valued Schwartz functions
* Induced map $\mathcal S'(E,F) \to \mathcal D'(Ξ©,F)$ is $\mathbb C$-linear
The main important defs are `ContDiffMapSupportedIn.toSchwartzMapCLM` which is the local fixed-support part, then `TestFunction.toSchwartzMapCLM` (where the continuity uses limitCLM to glue the local continuous linear maps on each $\mathcal D_K$), and `TemperedDistribution.toDistributionLM` which is the linear map from tempered distributions to ordinary distributions.
Tested with `lake env lean Mathlib/Analysis/Distribution/TestFunctionSchwartz.lean`
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
226/0 |
Mathlib.lean,Mathlib/Analysis/Distribution/TestFunctionSchwartz.lean |
2 |
24 |
['aditya-ramabadran', 'github-actions', 'j-loreaux'] |
j-loreaux assignee:j-loreaux |
0-8638 2 hours ago |
0-9585 2 hours ago |
32-9860 32 days |
| 39076 |
joelriou author:joelriou |
feat(Algebra/Homology): the homotopy category of bounded below cochain complexes |
---
- [ ] depends on: #38997
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
610/1 |
Mathlib.lean,Mathlib/Algebra/Homology/ComplexShape.lean,Mathlib/Algebra/Homology/HomotopyCategory/Plus.lean,Mathlib/Algebra/Homology/HomotopyCofiber.lean,Mathlib/Algebra/Homology/HomotopyFiber.lean,Mathlib/Algebra/Homology/Localization.lean,Mathlib/Algebra/Homology/Opposite.lean,Mathlib/Algebra/Homology/Precylinder.lean,Mathlib/AlgebraicTopology/ModelCategory/Cylinder.lean,Mathlib/AlgebraicTopology/ModelCategory/LeftHomotopy.lean,Mathlib/AlgebraicTopology/ModelCategory/PathObject.lean,Mathlib/AlgebraicTopology/ModelCategory/RightHomotopy.lean,Mathlib/CategoryTheory/Shift/Quotient.lean,Mathlib/CategoryTheory/Triangulated/Subcategory.lean |
14 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
nobody |
0-8001 2 hours ago |
0-8003 2 hours ago |
0-9076 2 hours |
| 39066 |
YaelDillies author:YaelDillies |
feat(Analysis): `LinearMap.id` is unitary |
This is for simp.
From MeanFourier
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
10/6 |
Mathlib/Analysis/InnerProductSpace/Adjoint.lean,Mathlib/Analysis/InnerProductSpace/Symmetric.lean |
2 |
5 |
['github-actions', 'leanprover-radar', 'themathqueen'] |
nobody |
0-6292 1 hour ago |
2-37389 2 days ago |
2-37368 2 days |
| 38962 |
sharky564 author:sharky564 |
refactor(Topology/Algebra/Module/LinearMap): rename subtypeL companion lemmas |
This PR renames the companion lemmas of `Submodule.subtypeL` for consistency with `Submodule.mkQL` (introduced in PR #38811). Specifically, `Submodule.coe_subtypeL` is renamed to `Submodule.toLinearMap_subtypeL` (to accurately reflect that it projects to the underlying LinearMap, not a function-level coercion), and `Submodule.coe_subtypeL'` is renamed to `Submodule.coe_subtypeL` (since this is the genuine function-level coercion lemma).
---
This brings the `subtypeL` API in line with the `mkQL` naming convention established in PR #38811. No behavioural changes. |
t-topology
new-contributor
maintainer-merge
|
38/32 |
Mathlib/Analysis/Calculus/Implicit.lean,Mathlib/Analysis/Normed/Operator/Banach.lean,Mathlib/Topology/Algebra/Module/LinearMap.lean,scripts/nolints_prime_decls.txt |
4 |
16 |
['ADedecker', 'github-actions', 'sharky564', 'themathqueen'] |
dagurtomas assignee:dagurtomas |
0-6093 1 hour ago |
4-16670 4 days ago |
4-29464 4 days |
| 31176 |
mcdoll author:mcdoll |
feat(Analysis): Taylor's theorem with the integral remainder |
Prove Taylor's theorem with the integral remainder in higher dimensions.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
145/1 |
Mathlib.lean,Mathlib/Analysis/Calculus/TaylorIntegral.lean,docs/100.yaml,docs/undergrad.yaml |
4 |
9 |
['github-actions', 'j-loreaux', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'mcdoll', 'sgouezel'] |
j-loreaux assignee:j-loreaux |
0-1321 22 minutes ago |
32-47774 32 days ago |
39-79496 39 days |
| 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 |
| 32583 |
MJ141592 author:MJ141592 |
refactor(SimpleGraph): change bridges not to require the edge to be present |
Remove the requirement for edges to exist in definition of isBridge, and then change the related lemmas to adjust for this, by renaming, fixing the statements and fixing the proofs, including in Acyclic.
Closes #31690.
---
- [x] depends on: #36802
- [x] depends on: #36804 |
t-combinatorics
new-contributor
|
84/84 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean |
4 |
20 |
['MJ141592', 'SnirBroshi', 'YaelDillies', 'b-mehta', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
nobody |
38-32311 1 month ago |
38-32347 38 days ago |
38-60847 38 days |
| 37720 |
cjrl author:cjrl |
feat(Data/Fintype/Card): existsUnique_notMem_image_of_injective_of_card_succ |
This pull requests adds a small theorem `existsUnique_notMem_image_of_injective_of_card_succ` to `Mathlib/Data/Fintype/Card` that says given an injective map f : Ξ± β Ξ² such that Ξ² has cardinality one more than Ξ±, there exists a unique element of Ξ² not in the image of f.
This can be viewed as going in the opposite direction of `card_lt_of_injective_of_notMem`.
This little fact is needed for our Latin Square PR #36698.
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
t-set-theory
|
15/0 |
Mathlib/Data/Fintype/Card.lean |
1 |
6 |
['IvanRenison', 'cjrl', 'github-actions'] |
nobody |
27-81581 27 days ago |
27-81639 27 days ago |
33-49069 33 days |
| 35569 |
goliath-klein author:goliath-klein |
refactor(PiTensorProduct/{InjectiveNorm, ProjectiveNorm}): deprecate `injectiveSeminorm` |
This PR:
* Deprecates `PiTensorProduct.injectiveSeminorm` and supporting lemmas.
* Moves the theory of `liftEquiv` from InjectiveSeminorm.lean to ProjectiveSeminorm.lean.
No changes are introduced beyond adding deprecation notices, adapting docstrings, and moving material between files.
The PR leaves InjectiveSeminorm.lean almost empty. A new implementation of `injectiveSeminorm`, one which reflects the common mathematical definition, is to be done.
This is the third in a series of three PRs with the goal to [deprecate `PiTensorProuduct.injectiveSeminorm`](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/injectiveSeminorm/with/568798633).
---
- [ ] depends on: #35567
- [ ] depends on: #35568
Deprecations:
- injectiveSeminorm
- dualSeminorms_bounded
- injectiveSeminorm_apply
- norm_eval_le_injectiveSeminorm
- injectiveSeminorm_le_projectiveSeminorm
- injectiveSeminorm_tprod_le
Preliminary work toward a reimplementation is at #33969.
I've added Davood and myself to the "Authors" field, as we have now significantly refactored this module.
Co-authored-by: Davood H. T. Tehrani
[](https://gitpod.io/from-referrer/)
|
new-contributor |
222/233 |
Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/ProjectiveSeminorm.lean |
2 |
6 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
23-33352 23 days ago |
23-33376 23 days ago |
40-1671 40 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
|
112/0 |
Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean |
2 |
39 |
['SnirBroshi', 'SproutSeeds', 'github-actions', 'jcommelin', 'ksenono'] |
b-mehta assignee:b-mehta |
21-60624 21 days ago |
23-10913 23 days ago |
122-78881 122 days |
| 37374 |
NoneMore author:NoneMore |
feat(Topology/DerivedSet): add relative derived set lemmas |
Add `relDerivedSet`, `relDerivedSet_subset`, and `IsClosed.relDerivedSet_eq`.
---
[](https://gitpod.io/from-referrer/)
|
t-topology
new-contributor
|
17/0 |
Mathlib/Topology/DerivedSet.lean |
1 |
6 |
['NoneMore', 'github-actions', 'plp127', 'vihdzp'] |
urkud assignee:urkud |
17-60573 17 days ago |
40-9229 40 days ago |
40-62622 40 days |
| 38214 |
emlis42 author:emlis42 |
feat(Algebra/ContinuedFractions): add Euler's continued fraction |
This PR formalizes Eulerβs continued fractions by providing `Euler` which construct one by giving head term and coefficients with some basic property.
We also introduce a transformation `GenContFract.toEuler` that maps a generalized continued fraction `g : GenContFract K` to an equivalent Euler-form continued fraction. |
new-contributor
t-algebra
label:t-algebra$ |
262/0 |
Mathlib.lean,Mathlib/Algebra/ContinuedFractions/Euler.lean |
2 |
15 |
['github-actions', 'mathlib-bors', 'wwylele'] |
nobody |
17-1296 17 days ago |
17-1296 17 days ago |
17-5027 17 days |
| 38114 |
javgomzar author:javgomzar |
feat(FinitelyPresentedGroup): add finite groups instance |
Add IsFinitelyPresented instance for finite groups.
Co-authored-by: Hang Lu Su , Thomas Browning
---
[](https://gitpod.io/from-referrer/)
|
t-group-theory
new-contributor
large-import
|
32/3 |
Mathlib/GroupTheory/FinitelyPresentedGroup.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean |
2 |
32 |
['github-actions', 'javgomzar', 'kbuzzard', 'mathlib-merge-conflicts', 'plp127', 'tb65536', 'vihdzp'] |
mattrobball assignee:mattrobball |
16-60567 16 days ago |
18-66606 18 days ago |
21-70126 21 days |
| 35504 |
JoaBjo author:JoaBjo |
feat(Probability/Distributions/Exponential): add MGF, moments, and memoryless property |
feat(Probability/Distributions/Exponential): add MGF, moments, and memoryless property
Add the main analytic results for the exponential distribution:
- moment-generating function `mgf id (expMeasure r) t = r / (r - t)` for `t < r`
- mean `β« x, x β(expMeasure r) = rβ»ΒΉ`
- variance `Var[id; expMeasure r] = rβ»ΒΉ ^ 2`
- `βp` membership for all `p`
- tail probability `P(X > x) = exp (-(r * x))`
- memoryless property `P(X > s + t | X > s) = P(X > t)`
The MGF is computed by reducing to the known improper integral `β« exp(c * x)` on `Ioi`,
and integrability is deduced by contradiction from the positive closed-form value.
The mean and variance are computed via the Gamma function integral
`β«β^β x^(n-1) exp(-r x) dx = Ξ(n) / rβΏ`. The memoryless property follows from
the exponential identity `exp(-(r(s+t))) = exp(-rt) * exp(-rs)`.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
200/0 |
Mathlib/Probability/Distributions/Exponential.lean |
1 |
6 |
['JoaBjo', 'Timeroot', 'github-actions'] |
kex-y assignee:kex-y |
15-24847 15 days ago |
15-24901 15 days ago |
31-23939 31 days |
| 38344 |
robo7179 author:robo7179 |
feat(SimpleGraph/Coloring/VertexColoring): Matching is 2 colorable |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
51/0 |
Mathlib/Combinatorics/SimpleGraph/Coloring/VertexColoring.lean |
1 |
5 |
['SnirBroshi', 'github-actions', 'vlad902'] |
nobody |
15-24815 15 days ago |
18-78759 18 days ago |
18-79124 18 days |
| 37722 |
SabrinaJewson author:SabrinaJewson |
feat(Order/Cover): intervals equal singletons iff |
To complement `Set.Icc_eq_singleton_iff`, this introduces:
- `Set.Ioc_eq_singleton_iff`
- `Set.Ico_eq_singleton_iff`
- `Set.Ioi_eq_singleton_iff`
- `Set.Iio_eq_singleton_iff`
- `Set.Ioo_eq_singleton_iff`
Unforunately because of the order of the ands, the last cannot be made self-dual.
---
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
|
39/0 |
Mathlib/Order/Cover.lean |
1 |
3 |
['github-actions', 'mathlib-merge-conflicts'] |
Komyyy and bryangingechen assignee:bryangingechen assignee:Komyyy |
13-60461 13 days ago |
31-62900 31 days ago |
33-49641 33 days |
| 38027 |
8e7 author:8e7 |
feat(Combinatorics/SimpleGraph/Star): define star graphs |
Add a new definition `starGraph` and several key lemmas. Star graphs are a trivial class of tree, often used in constructive proofs regarding trees. An example use case is shown in #38334.
---
All lemmas are hand written first, then golfed with the help of Claude Code.
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
85/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Star.lean |
2 |
39 |
['8e7', 'IvanRenison', 'JovanGerb', 'SnirBroshi', 'github-actions', 'vihdzp', 'vlad902'] |
nobody |
12-52808 12 days ago |
24-52754 24 days ago |
26-50998 26 days |
| 38364 |
openendings author:openendings |
feat: create Order/DirectedCompletePartialOrder/Defs.lean |
Define DirectedCompletePartialOrder and its interaction with iSup and sSup.
---
A DirectedCompletePartialOrder is equivalently:
- a partial order with LUBs of nonempty directed sets;
- what happens when you remove β₯ from a CompletePartialOrder; or
- a ConditionallyCompletePartialOrder in which every directed set is BddAbove.
Like CPOs, DCPOs are commonly studied in denotational semantics.
Potential applications:
- [#Is there code for X? > Summing `ENat`s without topology](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Summing.20.60ENat.60s.20without.20topology/with/590070848) -- defining infinite sums in an DCPO-enriched `AddCommMonoidWithTop` such as `ENat` or `ENNReal`.
- [#Is there code for X? > Scott Induction](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Scott.20Induction/with/590112858) -- fixpoint theorems similar to `OmegaCompletePartialOrder`, generalised to arbitrary cardinalities.
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
|
123/0 |
Mathlib.lean,Mathlib/Order/DirectedCompletePartialOrder/Defs.lean,docs/references.bib |
3 |
4 |
['SnirBroshi', 'github-actions', 'openendings'] |
nobody |
11-69071 11 days ago |
17-59191 17 days ago |
18-33996 18 days |
| 33714 |
idontgetoutmuch author:idontgetoutmuch |
feat(Mathlib/Geometry/Manifold): Riemannian metrics exist II |
Supersedes https://github.com/leanprover-community/mathlib4/pull/33519
---
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry
new-contributor
|
723/0 |
Mathlib.lean,Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Geometry/Manifold/ExistsRiemannianMetric.lean,Mathlib/Geometry/Manifold/PartitionOfUnity.lean |
4 |
200 |
['Rida-Hamadani', 'github-actions', 'grunweg', 'idontgetoutmuch'] |
fpvandoorn assignee:fpvandoorn |
11-60260 11 days ago |
21-14329 21 days ago |
66-21761 66 days |
| 38551 |
TTony2019 author:TTony2019 |
feat(Analysis/Convex/Intrinsic): add `affineSpan_prod_eq` and `intrinsicInterior_prod_eq` |
### Summary
We prove that the affine span of a product set equals the product of the affine spans, and that the intrinsic interior of a product set equals the product of the intrinsic interiors.
- `affineSpan_prod_eq`: for `s : Set Pβ` and `t : Set Pβ`, `affineSpan k (s ΓΛ’ t) = (affineSpan k s) ΓΛ’ (affineSpan k t)` as sets.
- `intrinsicInterior_prod_eq`: for `s : Set P` and `t : Set Q`, `intrinsicInterior π (s ΓΛ’ t) = intrinsicInterior π s ΓΛ’ intrinsicInterior π t`.
These two theorems are added to `Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Basic.lean` and `Mathlib/Analysis/Convex/Intrinsic.lean`.
### Collaboration
Co-authored-by: @imathwy |
new-contributor |
144/0 |
Mathlib/Algebra/AddTorsor/Basic.lean,Mathlib/Algebra/Group/Pointwise/Set/Basic.lean,Mathlib/Analysis/Convex/Intrinsic.lean,Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Basic.lean,Mathlib/LinearAlgebra/Prod.lean |
5 |
21 |
['TTony2019', 'github-actions', 'wwylele'] |
nobody |
11-55475 11 days ago |
11-55539 11 days ago |
13-85791 13 days |
| 28546 |
Sfgangloff author:Sfgangloff |
feat(SymbolicDynamics): basic setup of Zd, full shift, cylinders, pat⦠|
This PR adds a **group-generic** foundation for symbolic dynamics over an arbitrary group `G`, together with convenient specializations for `β€` and `β€^d`.
Summary of additions:
- **Full shift and shift action**
- `abbrev FullShift (A G) := G β A` (inherits product topology from the Ξ -type).
- Right shift `shift g x` with convention `(shift g x) h = x (h * g)`.
- **Cylinders and topology**
- `cylinder U x : Set (G β A)` for finite `U : Finset G`.
- Cylinders are open under `[DiscreteTopology A]`; with a finite alphabet they are also closed.
- Equality with dependent products:
`cylinder U x = Set.pi (βU) (fun i => ({x i} : Set A))`, enabling use of the `Set.pi` API.
- **Patterns, occurrences, and subshifts**
- `Pattern A G` with finite `support : Finset G` and `data : support β A`.
- `Pattern.occursIn p x g` (occurrence at translate `g`) and the expected shift law.
- `forbids F` and `Subshift A G` (closed, shift-invariant subsets).
- `FixedSupport A G U` with an equivalence to `(U β A)` to obtain finiteness.
- **Language on finite shapes and counting**
- `languageOn X U`, `languageCardOn X U`, and `patternCountOn Y U`.
- **Entropy along a shape sequence**
- `limsupAtTop` (as an `sInf` of eventual upper bounds).
- `entropyAlong X F hF := limsup (log (patternCountOn X (F n) + 1) / |F n|)`
for any nonempty finite shapes `F : β β Finset G` (the `+ 1` avoids `log 0`).
- **Specializations**
- `IntShapes`: segments `[-n,n]` on `Multiplicative β€`, with `entropy_Z`.
- `ZdShapes`: boxes `[-n,n]^d` on `β€^d` (as functions `Fin d β β€`), with `entropy_Zd`.
Mathematical remarks:
- The API is **shape-parametric**: entropy is defined along user-provided finite shapes.
- On **amenable** groups, using a **FΓΈlner** sequence yields a canonical value (OrnsteinβWeiss).
This PR does not assume amenability; the family of shapes is an explicit input.
Motivation:
Provide a clean, reusable base for symbolic dynamics on groups in mathlib.
Future work:
- Add a FΓΈlner predicate and prove shape-independence / limit existence on amenable groups.
- Expand the `β€`/`β€^d` toolkit (alternative shapes, mixing, factors).
- Develop 1D theory and, longer-term, multidimensional SFT results (e.g. along the lines of HochmanβMeyerovitch).
|
t-dynamics
new-contributor
|
631/0 |
Mathlib.lean,Mathlib/Dynamics/SymbolicDynamics/Basic.lean,Mathlib/Tactic/Translate/ToAdditive.lean |
3 |
187 |
['Sfgangloff', 'botbaki-review', 'eric-wieser', 'github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot', 'sgouezel'] |
urkud assignee:urkud |
11-50042 11 days ago |
11-50043 11 days ago |
174-45091 174 days |
| 36667 |
NoneMore author:NoneMore |
feat(ModelTheory): add `exClosure` definition for first-order formulas |
Prepare for moving realizations between elementarily equivalent structures.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-logic
|
37/0 |
Mathlib/ModelTheory/Semantics.lean,Mathlib/ModelTheory/Syntax.lean |
2 |
2 |
['github-actions'] |
fpvandoorn assignee:fpvandoorn |
10-60313 10 days ago |
56-45398 56 days ago |
56-45377 56 days |
| 37682 |
SabrinaJewson author:SabrinaJewson |
refactor(Order/OrdContinuous): redefine left and right order continuity to not require preserving β₯/β€ |
`LeftOrdContinuous` currently requires that `f β₯ = β₯`, but this means that many functions that are perhaps intuitively left-continuous (like `f x = x + 1` on `ββ₯0`) are not. In particular, this change means that functions between conditionally complete lattices are `LeftOrdContinuous` iff they are monotone and topologically left continuous (see `MonotoneOn.map_csSup_of_continuousWithinAt` for the reverse direction).
If one wants the concept that existed before, one can either accept the `f β₯ = β₯` hypothesis separately or, if the function is between complete lattices, use the left side of a `GaloisConnection` (which is equivalent, although I think this is not yet in Mathlib).
This removes the definitional equality of the type in favour of a structure. Since most of the time users will be working with the `sSup` versions and not with `IsLUB`, I think this is justified. As a consequence, this removes the definitional equality between `LeftOrdContinuous` and `RightOrdContinuous` of the dual β the latter could be redefined to re-add this, but we do have conversion functions.
`LeftOrdContinuous.continuousWithinAt_Iic` is rewritten to accomodate these changes; the superfluous `DenselyOrdered` assumption is also removed.
[Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/LeftOrdContinuous.20requires.20f.28.E2.8A.A5.29.20.3D.20.E2.8A.A5/near/582932491)
---
- [x] depends on: #37735
- [x] depends on: #37772
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-order
|
52/38 |
Mathlib/Order/OrdContinuous.lean,Mathlib/Order/SemiconjSup.lean,Mathlib/Topology/Order/Basic.lean |
3 |
10 |
['SabrinaJewson', 'astrainfinita', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp'] |
bryangingechen assignee:bryangingechen |
10-60307 10 days ago |
30-69205 30 days ago |
32-66293 32 days |
| 37076 |
ertwro author:ertwro |
feat(Combinatorics/SimpleGraph/Hasse): Hasse diagram is triangle-free |
Add `SimpleGraph.hasse_cliqueFree_three`: the Hasse diagram of a preorder is triangle-free (`CliqueFree 3`).
This is the graph-theoretic formulation of `not_covBy_of_lt_of_lt`: if `a β b` and `b β c`, then `Β¬ a β c`, so no three elements can be pairwise adjacent in the Hasse diagram.
The proof extracts three vertices from a hypothetical 3-clique, case-splits on the covering directions (8 cases), and closes each by `not_covBy_of_lt_of_lt` (6 transitive cases) or `lt_asymm` (2 cyclic cases).
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
11/0 |
Mathlib/Combinatorics/SimpleGraph/Hasse.lean |
1 |
21 |
['Rida-Hamadani', 'SnirBroshi', 'ertwro', 'github-actions', 'vlad902'] |
nobody |
10-52241 10 days ago |
21-49726 21 days ago |
29-59485 29 days |
| 38026 |
mrdouglasny author:mrdouglasny |
feat(Analysis/Calculus): define absolutely monotone functions |
## Summary
- Define `AbsolutelyMonotoneOn f s` for functions `f : β β β` that are smooth on `s` with all iterated derivatives within `s` nonneg
- Prove closure under `add`, `smul`, `mul`
- Show `exp`, `cosh`, constants, and powers are absolutely monotone on appropriate domains
This is the first part of a split of #37879. Follow-up PRs will add:
- Bernstein backward direction (nonneg coefficients β absolutely monotone)
- Bernstein forward direction (absolutely monotone β analytic at 0)
- Matrix applications (Schur product theorem for power series, entrywise exp)
## Test plan
- [ ] CI passes (build + lint)
- [ ] Verify `AbsolutelyMonotoneOn` structure and examples type-check
π€ Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.6 (1M context) |
t-analysis
new-contributor
LLM-generated
|
123/0 |
Mathlib.lean,Mathlib/Analysis/Calculus/AbsolutelyMonotone.lean,docs/references.bib |
3 |
28 |
['ADedecker', 'github-actions', 'j-loreaux', 'mrdouglasny', 'sgouezel', 'vihdzp', 'wwylele'] |
sgouezel assignee:sgouezel |
10-8479 10 days ago |
10-8523 10 days ago |
18-29638 18 days |
| 37997 |
emlis42 author:emlis42 |
feat(Algebra/ContinuedFractions): generalize determinant formula to GenContFract |
Let $g$ be a `GenContFract K`.
In this PR I generalize the determinant formula for continued fractions from the simple continued fraction case
$$A_n B_{n+1} - B_n A_{n+1} = (-1)^n$$
to the generalized continued fraction product formula
$$A_n B_{n+1} - B_n A_{n+1} = (-a_0) (-a_1) \dots (-a_n)$$
- The `SimpContFract` version is still available unchanged, so this should avoid breaking existing users of the old API.
- The use of `0` as the default partial numerator in `(g.partNums.get? i).getD 0` allows product formulation that remains valid when the fraction is terminated. |
t-algebra
new-contributor
large-import
label:t-algebra$ |
53/28 |
Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean,Mathlib/Algebra/ContinuedFractions/Determinant.lean |
2 |
13 |
['emlis42', 'github-actions', 'themathqueen', 'vihdzp'] |
ocfnash assignee:ocfnash |
9-80706 9 days ago |
13-8327 13 days ago |
27-20523 27 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.
- [x] depends on: #34598
---
|
new-contributor
t-euclidean-geometry
LLM-generated
|
360/0 |
Mathlib.lean,Mathlib/Geometry/Polygon/Boundary.lean,Mathlib/Geometry/Polygon/Simple.lean,Mathlib/Logic/Equiv/Fin/Rotate.lean |
4 |
30 |
['A-M-Berns', 'eric-wieser', 'github-actions', 'joneugster', 'jsm28', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp', 'wwylele'] |
eric-wieser assignee:eric-wieser |
9-60008 9 days ago |
74-635 74 days ago |
76-34900 76 days |
| 38745 |
FordUniver author:FordUniver |
chore(Combinatorics/SimpleGraph/Copy): rename labelledCopyCount |
Renames `labelledCopyCount` to `labeledCopyCount` (American spelling per the [naming conventions](https://leanprover-community.github.io/contribute/naming.html#spelling)). Deprecated aliases are provided for all renamed declarations.
---
Should probably be a prerequisite for #38631. |
t-combinatorics
new-contributor
|
31/19 |
Mathlib/Combinatorics/SimpleGraph/Copy.lean |
1 |
15 |
['FordUniver', 'SnirBroshi', 'YaelDillies', 'github-actions'] |
nobody |
9-31869 9 days ago |
10-6022 10 days ago |
10-44448 10 days |
| 38420 |
eliasjudin author:eliasjudin |
feat(Algebra/MvPolynomial): add coefficient lemma for uniqueAlgEquiv |
Adds `MvPolynomial.coeff_uniqueAlgEquiv` and `MvPolynomial.coeff_uniqueAlgEquiv_symm`,
identifying coefficients under `MvPolynomial.uniqueAlgEquiv` in both directions.
|
new-contributor
t-algebra
label:t-algebra$ |
19/0 |
Mathlib/Algebra/MvPolynomial/Equiv.lean |
1 |
5 |
['eliasjudin', 'eric-wieser', 'github-actions'] |
kim-em assignee:kim-em |
8-75203 8 days ago |
16-30655 16 days ago |
17-4743 17 days |
| 38316 |
tannerduve author:tannerduve |
feat(Order/OmegaCompletePartialOrder): least fixed point and Scott induction |
Adds `ContinuousHom.lfp` for endomorphisms on an ΟCPO with `β₯`, as the `ΟSup` of the iterate chain from `β₯`, together with `map_lfp`, `isFixedPt_lfp`, `lfp_le_fixed`, `isLeast_lfp`, and the Scott induction theorem `lfp_induction` (specialized from a more general seed-based `ΟSup_iterate_induction`).
For `Part.fix`, adds:
* `Part.exists_mem_approx_of_mem_fix`: if `y β Part.fix g x`, some finite approximation of `g` already contains `y`.
* `Part.Fix.approx_eq_iterate_bot` and `Part.Fix.approxChain_eq_iterateChain`: bridges between `Fix.approx`/`approxChain` and `f^[n] β₯`/`iterateChain`.
* `Part.fix_eq_lfp`: `Part.fix g = ContinuousHom.lfp (.ofFun g hc)` when `g` is Ο-Scott continuous.
* `Part.fix_scott_induction`: Scott induction specialized to `Part.fix`.
* `Part.fix_induction_mem`: membership induction on `Part.fix`, derived from `fix_scott_induction`. |
new-contributor |
114/0 |
Mathlib/Control/LawfulFix.lean,Mathlib/Order/OmegaCompletePartialOrder.lean,docs/references.bib |
3 |
2 |
['github-actions'] |
nobody |
7-85551 7 days ago |
19-61653 19 days ago |
19-62158 19 days |
| 33355 |
0xTerencePrime author:0xTerencePrime |
feat(Combinatorics/SimpleGraph/Connectivity): define vertex connectivity |
This PR introduces the foundations of vertex connectivity for simple graphs, providing a counterpart to the edge connectivity theory in #32870.
### Main definitions
- `SimpleGraph.IsVertexReachable`: vertices remain reachable after removing strictly fewer than `k` other vertices.
- `SimpleGraph.IsVertexConnected`: a graph is `k`-vertex-connected if its order is strictly greater than `k` and any two distinct vertices are `k`-vertex-reachable.
Includes basic characterizations for $k=0$ and $k=1$, along with monotonicity lemmas (`anti` and `mono`). |
new-contributor
t-combinatorics
|
216/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/VertexConnectivity.lean,Mathlib/Combinatorics/SimpleGraph/IsolateVerts.lean |
3 |
147 |
['0xTerencePrime', 'SnirBroshi', 'SproutSeeds', 'YaelDillies', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] |
nobody |
7-12470 7 days ago |
7-22809 7 days ago |
42-79492 42 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 β.
---
- [x] depends on: #34521
- [ ] depends on: #36374 |
t-measure-probability
large-import
new-contributor
|
123/17 |
Mathlib/Analysis/InnerProductSpace/Basic.lean,Mathlib/Probability/Distributions/Poisson/Basic.lean |
2 |
83 |
['CoolRmal', 'DavidLedvinka', 'EtienneC30', 'github-actions', 'huaizhangchu', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'pfaffelh', 'vianna04', 'yuanyi-350'] |
EtienneC30 assignee:EtienneC30 |
7-10763 7 days ago |
7-10763 7 days ago |
66-23748 66 days |
| 38582 |
dennj author:dennj |
feat(LinearAlgebra/Matrix): add Hadamard matrices |
Introduce `Matrix.IsHadamard` over a general `Ring R`, with the basic theory:
- `IsHadamard` and `IsComplexHadamard` predicates (Definitions 2.3.1 and 2.7.1
of de LauneyβFlannery, *Algebraic Design Theory*).
- `IsHadamard.det_sq`: the Hadamard determinant identity `(det A)Β² = n^n`.
- `IsHadamard.det_ne_zero`: over an integral domain of characteristic zero.
- `IsHadamard.transpose`: `Aα΅` is Hadamard whenever `A` is (Theorem 2.3.6),
proved over `[CommRing R] [IsDomain R] [CharZero R]` via the adjugate.
- `IsHadamard.card_eq_sq_of_const_row_sum`: a Hadamard matrix with constant
row sum `s` has order `sΒ²` (slightly stronger than Theorem 2.3.7: the
constant-column-sum hypothesis is implied by orthogonality).
- `IsHadamard.kronecker`: the Sylvester (Kronecker product) construction.
- `IsHadamard.four_dvd_card`: order of a Hadamard matrix of order > 2 is
divisible by 4.
`Matrix.mul_eq_smul_one_symm`: if `M * N = c β’ 1` and `det M β 0` over an
integral domain, then `N * M = c β’ 1`. Used here for the transpose proof, but
generally useful, analogous to how `mul_eq_one_comm` works over stably finite
rings, but covers the integral-domain case (e.g. `β€`, `β€[X]`) where matrix
inverses don't exist.
## References
Adds the de LauneyβFlannery bibliography entry, cited from the new file.
Human-made PR with LLM used for proof golfing and documentation |
t-algebra
new-contributor
label:t-algebra$ |
155/0 |
Mathlib.lean,Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/Group/Commute/Defs.lean,Mathlib/LinearAlgebra/Matrix/HadamardMatrix.lean,docs/references.bib |
5 |
14 |
['JJYYY-JJY', 'dennj', 'eric-wieser', 'github-actions', 'themathqueen'] |
nobody |
6-51785 6 days ago |
13-10263 13 days ago |
13-10242 13 days |
| 38871 |
0xTerencePrime author:0xTerencePrime |
feat(Combinatorics/SimpleGraph): add parity lemmas for outer and inner vertices |
Adds three lemmas to `SimpleGraph.DegreeSum`:
- `sum_degrees_option_zmod_two`: the handshaking lemma for `Option I` over ZMod 2
- `degree_none_zmod_two_eq_sum`: simp-normal form of the above
- `card_degree_one_option_eq_outer_zmod_two`: under degree bound β€ 2, count of degree-1 inner vertices equals outer vertex degree mod 2 |
t-combinatorics
new-contributor
|
65/3 |
Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean |
1 |
6 |
['0xTerencePrime', 'SnirBroshi', 'github-actions'] |
nobody |
6-48636 6 days ago |
7-18864 7 days ago |
7-18843 7 days |
| 38897 |
0xTerencePrime author:0xTerencePrime |
feat(Combinatorics/SetFamily): formalize 1D Sperner's Lemma parity |
Formalizes the 1-dimensional Sperner's Lemma (parity version): given a coloring of
the `n + 1` vertices of a subdivided line segment with two colors (`ZMod 2`), if the
two endpoints have different colors, then the number of color-changing edges is odd.
This is **distinct** from `IsAntichain.sperner` in `SetFamily.LYM`, which concerns
antichains in a power set. This file formalizes the topological/combinatorial parity
statement used as the base case in higher-dimensional Sperner arguments.
## Key declarations
- `SpernerColoring`: type-safe coloring via `Fin (n + 1) β ZMod 2`
- `edgeDiff`: color difference on adjacent vertices, computed in `ZMod 2`
- `totalDiff`: telescoping sum of all edge differences
- `diffEdges`: the `Finset` of bichromatic (color-changing) edges
- `sperner_1d`: main theorem β `Odd (diffEdges c).card`
## Design notes
- Using `Fin (n + 1) β ZMod 2` instead of `β β ZMod 2` makes boundary conditions
unrepresentable at the type level, eliminating out-of-bounds cases entirely.
- The proof reduces to a telescoping sum in `ZMod 2`, using `CharTwo.add_self_eq_zero`
to cancel all interior vertices, avoiding parity case splits.
This is intended as the 1D base case, the approach generalizes to higher-dimensional
Sperner's Lemma in future work.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
133/0 |
Mathlib.lean,Mathlib/Combinatorics/SetFamily/Sperner1D.lean |
2 |
3 |
['github-actions', 'grunweg'] |
nobody |
6-39870 6 days ago |
6-50020 6 days ago |
6-49999 6 days |
| 38755 |
TJHeeringa author:TJHeeringa |
feat(Analysis/innerProductSpace/GramMatrix): Add Gram.posSemidef_of_mapL |
---
`Analysis/innerProductSpace/TensorProduct` has a TODO for a continuous version of `TensorProduct.map`. One place which contains a proof for this is at [stack](https://math.stackexchange.com/a/3934668). This PR is lemma 1 of that.
It is written with `.PosSemidef` instead of `β€` because the LΓΆwner Order on matrices is only defined in lean for matrices with values in `π`.
No AI used.
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
14/0 |
Mathlib/Analysis/InnerProductSpace/GramMatrix.lean |
1 |
10 |
['TJHeeringa', 'github-actions', 'themathqueen'] |
urkud assignee:urkud |
6-26226 6 days ago |
9-30706 9 days ago |
9-57817 9 days |
| 35402 |
samueloettl author:samueloettl |
feat(Dynamics/BirkhoffSum): birkhoffAverage const |
---
I think this is useful and one of these should be a simp lemma.
I'm not really sure if I got the naming of the theorems correct.
When generalizing to the assumption (n : R) β 0 instead of the special case CharZero R with n β 0 I had to use "open Classical in". I'm a bit unfamiliar with that part so please check if this makes sense. See also https://github.com/leanprover-community/mathlib4/pull/35307#discussion_r2823586252
[](https://gitpod.io/from-referrer/)
|
t-dynamics
new-contributor
|
14/0 |
Mathlib/Dynamics/BirkhoffSum/Average.lean |
1 |
26 |
['Maldooor', 'github-actions', 'lua-vr', 'mcdoll', 'samueloettl'] |
mcdoll assignee:mcdoll |
6-7297 6 days ago |
11-14129 11 days ago |
77-12921 77 days |
| 35753 |
Vilin97 author:Vilin97 |
feat(Topology/Algebra/Order): regular grid helpers and piecewise linear interpolation |
Make API for piecewise linear interpolation on regular grids. I need these to for ODE time-stepping methods, like forward Euler, and later RungeβKutta methods.
Follow-up PR: #35755 (forward Euler method convergence).
I don't know if these numerical analysis ODE-solving methods even belong in mathlib. If someone could advise me on it, I would appreciate it.
---
The initial proof was produced by [Aristotle](https://aristotle.harmonic.fun). The code was iteratively refined (factoring out lemmas, golfing, simplifying proofs) using Claude Code.
- [ ] depends on: #38091 |
t-topology
new-contributor
LLM-generated
maintainer-merge
|
201/0 |
Mathlib.lean,Mathlib/Topology/Algebra/Order/PiecewiseLinear.lean |
2 |
58 |
['Vilin97', 'YanYablonovskiy', 'adomani', 'botbaki-review', 'copilot-pull-request-reviewer', 'dagurtomas', 'eric-wieser', 'github-actions', 'grunweg', 'j-loreaux', 'mathlib-dependent-issues', 'wwylele'] |
j-loreaux assignee:j-loreaux |
5-84800 5 days ago |
8-71900 8 days ago |
41-34758 41 days |
| 38049 |
WilliamCoram author:WilliamCoram |
feat: lemmas towards showing gaussNorm on MvPowerSeries is an absolute value |
We prove lemmas: ``gaussNorm_mul_le`` and ``gaussNorm_le_mul`` which will allow us to show it is an absolute value on Mv restricted power series.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
144/1 |
Mathlib/RingTheory/MvPowerSeries/GaussNorm.lean |
1 |
4 |
['WilliamCoram', 'github-actions'] |
alreadydone assignee:alreadydone |
5-60475 5 days ago |
26-3420 26 days ago |
26-3399 26 days |
| 38801 |
TBUGTB author:TBUGTB |
feat(Topology/Order): order topology on WithTop API lemmas |
Upstream lemmas on the order topology on WithTop from the brownian motion project.
Co-authored-by: Kexing Ying
---
[](https://gitpod.io/from-referrer/)
|
t-topology
brownian
new-contributor
|
24/0 |
Mathlib/Order/Filter/AtTopBot/Basic.lean,Mathlib/Topology/Order/WithTop.lean |
2 |
8 |
['TBUGTB', 'github-actions', 'plp127', 'vihdzp'] |
j-loreaux assignee:j-loreaux |
5-60472 5 days ago |
8-28666 8 days ago |
9-13732 9 days |
| 38895 |
emlis42 author:emlis42 |
chore(Algebra/ContinuedFractions): golf |
This PR simplifies some proofs in `Algebra/ContinuedFractions` |
t-algebra
new-contributor
label:t-algebra$ |
39/63 |
Mathlib/Algebra/ContinuedFractions/Computation/ApproximationCorollaries.lean,Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean,Mathlib/Algebra/ContinuedFractions/Computation/CorrectnessTerminating.lean,Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean,Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean,Mathlib/Algebra/ContinuedFractions/ContinuantsRecurrence.lean,Mathlib/Algebra/ContinuedFractions/ConvergentsEquiv.lean |
7 |
2 |
['github-actions'] |
nobody |
5-58986 5 days ago |
5-64197 5 days ago |
6-52479 6 days |
| 37714 |
mortarsanjaya author:mortarsanjaya |
feat(Algebra/Order/Floor/Defs): `Nat.cast` is strictly monotone in `FloorSemiring` and `FloorRing` |
As title says, and without the `IsOrderedRing` assumption.
Other than that, I removed the `IsOrderedRing` assumption from pretty much all the lemmas in `Algebra/Order/Floor/Defs` that could possibly have this assumption removed, and reduced some `IsStrictOrderedRing` assumptions to `IsOrderedRing` + `Nontrivial`.
Due to strict monotonicity, we can also provide `CharZero` instance on `FloorSemiring` and `FloorRing`. Thus we can remove the `NeZero` and `Nontrivial` instances on them.
The changes on `/Ring` and `/Semiring` are trivial changes due to some lemmas not requiring an `IsOrderedRing` instance anymore.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
96/39 |
Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean,Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean,Mathlib/Algebra/Order/Floor/Defs.lean,Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/Algebra/Order/Floor/Semiring.lean |
5 |
24 |
['dagurtomas', 'eric-wieser', 'github-actions', 'mathlib-bors', 'mortarsanjaya'] |
eric-wieser assignee:eric-wieser |
5-44780 5 days ago |
9-20551 9 days ago |
33-20020 33 days |
| 37062 |
tannerduve author:tannerduve |
feat(Computability): Turing join and semilattice structure on Turing degrees |
## Summary
- Add `Partrec.kronecker` (equality test) and `Partrec.join` (disjoint union by parity) in `Partrec.lean`
- Prove `Nat.RecursiveIn` is closed under computable conditionals (`cond_const`, `cond`)
- Show each component reduces to the join (`left_le_join`, `right_le_join`) and the join is the least upper bound (`join_le`)
- Establish `SemilatticeSup` instance on `TuringDegree` |
t-computability
new-contributor
large-import
|
311/15 |
Mathlib/Computability/Partrec.lean,Mathlib/Computability/RecursiveIn.lean,Mathlib/Computability/TuringDegree.lean |
3 |
7 |
['Komyyy', 'github-actions', 'mathlib-merge-conflicts', 'tannerduve'] |
Komyyy assignee:Komyyy |
5-44688 5 days ago |
27-9682 27 days ago |
27-71955 27 days |
| 38951 |
thomaskwaring author:thomaskwaring |
feat(Order/PrimeSeparator): remove unnecessary hypotheses |
In `mem_ideal_sup_principal`, boundedness and distributivity were unused, and in `prime_ideal_of_disjoint_filter_ideal`, boundedness was only used to produce an element of the filter `F`, which is already nonempty by definition.
---
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
|
9/19 |
Mathlib/Order/PrimeSeparator.lean |
1 |
2 |
['github-actions'] |
nobody |
5-32561 5 days ago |
5-32648 5 days ago |
5-32627 5 days |
| 38866 |
j-mayoral author:j-mayoral |
feat(PresentedGroup): free-product of presentations is isomorphic to the presentation of the union (over the disjoint union of generators) |
---
Adds the theorem that the free product of presentations is isomorphic to the presentation on the disjoint union of the generators with the union of the relations. That is,
`<Ξ± | Rβ> * <Ξ² | Rβ> β* <Ξ± β Ξ² | iΞ±(Rβ) βͺ iΞ²(Rβ)>`.
Don't know if the current file is the best to add this result.
I have the feeling this could be made more elegant, avoiding the need to state lemmas explicitly about the relations of the canonical maps, by instead working with relations on the free product of free groups and then studying how quotienting by relations behaves in terms of isomorphisms. However, that approach is less straightforward, so I prefer to keep the current PR as is and discuss possible refinements there to get better feedback (Iβm new and still learning).
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-group-theory
large-import
|
60/0 |
Mathlib/GroupTheory/PresentedGroup.lean |
1 |
6 |
['github-actions', 'j-mayoral', 'kbuzzard'] |
tb65536 assignee:tb65536 |
5-27514 5 days ago |
6-44778 6 days ago |
7-21177 7 days |
| 38967 |
abeldonate author:abeldonate |
doc(Algebra/Module/Projective): remove TODOs |
Remove the TODO list, since the have already been implemented on an instance. |
t-algebra
new-contributor
label:t-algebra$ |
0/7 |
Mathlib/Algebra/Module/Projective.lean |
1 |
3 |
['github-actions'] |
nobody |
5-7350 5 days ago |
5-9020 5 days ago |
5-8999 5 days |
| 35672 |
dennj author:dennj |
feat(RingTheory/Polynomial/Cyclotomic): vanishing sums and fiber equidistribution at primitive roots |
## Summary
Building on `sum_eq_zero_iff_forall_eq` from #34592, this PR adds:
- cyclotomic_dvd_of_aeval_eq_zero, exists_int_smul_cyclotomic_of_natDegree_le_totient β integer polynomials vanishing at a primitive n-th root are divisible by cyclotomic n β€, and (for degree β€ Ο(n)) integer multiples of it.
- sum_eq_zero_iff_forall_eq and its β€ / ZMod p variants β vanishing iff all coefficients equal.
- sum_fiber_eq_sum_fiber_of_sum_weighted_pow_eq_zero, card_fiber_eq_card_div_of_sum_pow_eq_zero β fiber equidistribution.
- cyclotomic_prime_coeff β the formula (cyclotomic p R).coeff i = if i < p then 1 else 0, generalising existing coeff_zero/coeff_one lemmas.
-
References: [deLauneyFlannery2011, Lemma 2.8.5] (underlying β/β fact) and [armario2024, Lemma 7 and Theorem 3] (β€ statement and the fiber-counting application).
Theorems imported from: https://github.com/Latinum-Agentic-Commerce/AlgebraicDesignTheory
Human made PR with LLM used for documentation and proof golfing |
t-ring-theory
new-contributor
|
128/2 |
Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean,Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean,docs/references.bib |
3 |
6 |
['dennj', 'github-actions', 'grunweg', 'ocfnash'] |
ocfnash assignee:ocfnash |
4-78779 4 days ago |
4-78779 4 days ago |
23-6468 23 days |
| 34713 |
dennj author:dennj |
feat(Probability/Markov): stationary distributions for stochastic matrices |
This PR proves that every row-stochastic matrix on a finite nonempty
state space has a stationary distribution in the standard simplex.
Main additions to `Mathlib/Probability/Markov/Stationary.lean`:
- `IsStationary`: A distribution ΞΌ is stationary for matrix P if ΞΌ α΅₯* P = ΞΌ
- `cesaroAverage`: CesΓ ro average of iterates of a vector under a matrix
- `Matrix.rowStochastic.exists_stationary_distribution`: existence theorem
The proof uses CesΓ ro averaging: start with uniform distribution, form
averages, extract convergent subsequence by compactness, show limit is
stationary via LΒΉ non-expansiveness.
Also adds `vecMul_mem_stdSimplex` to `Stochastic.lean`: multiplying a
probability vector by a row-stochastic matrix preserves simplex membership.
This is human-made PR with AI help in golfing proof and documenting the code. |
new-contributor
t-measure-probability
|
166/0 |
Mathlib.lean,Mathlib/LinearAlgebra/Matrix/Stochastic.lean,Mathlib/Probability/Markov/Stationary.lean |
3 |
16 |
['dennj', 'dupuisf', 'github-actions', 'grunweg', 'j-loreaux', 'mathlib-merge-conflicts', 'riccardobrasca'] |
EtienneC30 assignee:EtienneC30 |
4-60498 4 days ago |
13-68099 13 days ago |
24-14691 24 days |
| 37584 |
kennethgoodman author:kennethgoodman |
feat(Data/Nat/Fib): formalize LamΓ©'s theorem |
## Summary
Formalize [LamΓ©'s theorem](https://en.wikipedia.org/wiki/Lam%C3%A9%27s_theorem) (1844), the founding result of computational complexity theory.
**LamΓ©'s Theorem:** If the Euclidean algorithm on inputs `(a, b)` with `b β€ a` takes `n + 1` division steps, then `b β₯ fib(n + 1)` and `a β₯ fib(n + 2)`.
### New definitions
- `Nat.euclidSteps`: counts the number of division steps in the Euclidean algorithm on natural number inputs.
### New theorems
- `Nat.fib_le_of_euclidSteps`: the main LamΓ© bound β Fibonacci lower bound on inputs given a step count.
- `Nat.euclidSteps_le_of_lt_fib`: the contrapositive β step count upper bound given a Fibonacci bound on the smaller input.
- `Nat.add_mod_le`: helper lemma that `b + a % b β€ a` when `b β€ a` and `0 < b`.
### Proof strategy
Induction on `n`, tracking both elements of the pair. The key insight is that each Euclidean step replaces `(a, b)` with `(b, a % b)`, and since `a β₯ b + a % b` (because `a / b β₯ 1`), the Fibonacci recurrence `fib(n+3) = fib(n+2) + fib(n+1)` matches the structure of the algorithm.
### References
- Gabriel LamΓ©, *Note sur la limite du nombre des divisions dans la recherche du plus grand commun diviseur entre deux nombres entiers*, Comptes rendus de l'AcadΓ©mie des sciences, 1844.
---
### AI usage disclosure
Per the [Mathlib AI guidelines](https://leanprover-community.github.io/contribute/index.html#use-of-ai): Claude Code (Claude Opus 4.6) was used to assist with writing the Lean 4 proof code, fixing tactic errors, and drafting this PR description. The mathematical proof (induction on step count, tracking both pair elements through the Fibonacci recurrence) was designed by hand and verified on paper before formalization. I have reviewed and understand every line of the resulting Lean code and can explain all proof steps.
---
- [x] builds cleanly (`lake build Mathlib.Data.Nat.Fib.Lame`)
- [x] no `sorry`
- [x] lines β€ 100 characters, no trailing whitespace
- [x] `autoImplicit false`
- [x] docstrings on all public declarations |
new-contributor
LLM-generated
t-data
|
121/0 |
Mathlib.lean,Mathlib/Data/Nat/Basic.lean,Mathlib/Data/Nat/Fib/Basic.lean,Mathlib/Data/Nat/Fib/Lame.lean,docs/1000.yaml |
5 |
24 |
['euprunin', 'github-actions', 'kennethgoodman', 'vihdzp', 'wwylele'] |
TwoFX assignee:TwoFX |
4-60496 4 days ago |
29-17697 29 days ago |
36-60041 36 days |
| 37707 |
MavenRain author:MavenRain |
feat(Combinatorics/SimpleGraph): add IsMaximalClique/IsMaximalIndepSet, refactor IsMaximum* to MaximalFor |
Addresses #34962
|
new-contributor
t-combinatorics
|
44/31 |
Mathlib/Combinatorics/SimpleGraph/Clique.lean |
1 |
4 |
['MavenRain', 'SnirBroshi', 'github-actions'] |
nobody |
4-53461 4 days ago |
4-54547 4 days ago |
4-56166 4 days |
| 36785 |
hommmmm author:hommmmm |
feat(RingTheory/Localization): Nagata's criterion for primality in localization away |
## Summary
- Add `dvd_of_mem_span_singleton_localization`: if `p` is prime and `p β€ x`, then
membership in the span of the image of `x` in `R[1/p]` implies divisibility by `x`.
- Add `prime_of_prime_in_localization` (Nagata's criterion): if `p` is prime, `x` is
irreducible, and the image of `x` in `R[1/p]` is prime, then `x` is prime.
## References
- [Stacks Project, Tag 0AFU](https://stacks.math.columbia.edu/tag/0afu)
## AI Disclosure
This code is written without AI, then uses Claude Code with cameronfreer's [Lean4-skills](https://github.com/cameronfreer/lean4-skills) (specifically, the `review`, `refactor`, and `golf` workflow) for style changes, refactoring and golfing.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
50/0 |
Mathlib/RingTheory/Localization/Away/Basic.lean |
1 |
8 |
['chrisflav', 'github-actions', 'hommmmm'] |
chrisflav assignee:chrisflav |
4-38692 4 days ago |
4-38692 4 days ago |
27-22812 27 days |
| 38628 |
tautschnig author:tautschnig |
feat(Data/ZMod/Basic): unit characterization for ZMod (p ^ d) |
Add two lemmas characterizing units in `ZMod (p ^ d)` for a prime `p`:
* `ZMod.isUnit_natCast_of_not_dvd_pow`: a natural number not divisible by `p` is a unit in `ZMod (p ^ d)`.
* `ZMod.prime_natCast_not_isUnit_pow`: the prime `p` is not a unit in `ZMod (p ^ d)` when `d β₯ 1`.
These complement the existing `isUnit_prime_iff_not_dvd` (which characterizes when a *prime* is a unit in `ZMod n`) by characterizing when an *arbitrary* natural number is a unit in `ZMod (p ^ d)`.
**Motivation.** Arithmetic verification over fixed-width bitvectors works in `ZMod (2 ^ d)`. A GrΓΆbner basis solver over this ring needs to know which constants are invertible: odd constants are units (enabling algebraic simplification), while even constants are not (requiring fallback to SAT). These lemmas formalize that characterization for any prime, not just 2.
Further work related to GrΓΆbner basis will be published once #29203 (and, before that, #34873) have been merged.
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
12/0 |
Mathlib/Data/ZMod/Basic.lean |
1 |
4 |
['dagurtomas', 'github-actions'] |
nobody |
4-33818 4 days ago |
12-24619 12 days ago |
12-24598 12 days |
| 36216 |
michaellee94 author:michaellee94 |
feat(CategoryTheory): characterize pullback squares via the `Over` category |
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
new-contributor
maintainer-merge
|
47/0 |
Mathlib/CategoryTheory/Limits/Shapes/Pullback/IsPullback/Basic.lean |
1 |
18 |
['dagurtomas', 'github-actions', 'joelriou', 'michaellee94'] |
robin-carlier assignee:robin-carlier |
4-4224 4 days ago |
4-4251 4 days ago |
6-55060 6 days |
| 37718 |
SabrinaJewson author:SabrinaJewson |
feat(Order): add conversions from `Std` order typeclasses to Mathlib ones |
`{Preorder, PartialOrder, LinearOrder}.ofStd` exist to facilitate convenient translation from `Std` order typeclasses to Mathlib ones.
---
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
|
366/0 |
Mathlib.lean,Mathlib/Order/Std.lean,MathlibTest/OrderOfStd.lean |
3 |
2 |
['github-actions'] |
nobody |
3-61181 3 days ago |
33-64092 33 days ago |
33-64564 33 days |
| 38014 |
cduenasnavarro author:cduenasnavarro |
feat(InformationTheory): linear codes over finite fields and minimum distance properties |
Define linear codes over a finite field `F` as finite-dimensional subspaces of `Fin n β F`,
together with their minimum Hamming distance.
Main definitions:
* `LinearCode`
* `minDist`
* `LinearCodeWithDist`
* `hammingSphere`
Main results:
* `minDist_eq_sInf_pairwiseDist`: characterisation of the minimum distance via pairwise distances
* `disjoint_spheres`: Hamming spheres of radius `t` around distinct codewords are disjoint
if `2 * t < d`
Pending:
* Choosing an adequate book reference
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
new-contributor
|
143/0 |
Mathlib.lean,Mathlib/InformationTheory/Coding/LinearCode.lean |
2 |
37 |
['cduenasnavarro', 'github-actions', 'linesthatinterlace', 'rkirov', 'vihdzp', 'wwylele'] |
EtienneC30 assignee:EtienneC30 |
3-60281 3 days ago |
26-79122 26 days ago |
26-79864 26 days |
| 38310 |
ZRTMRH author:ZRTMRH |
feat(Combinatorics/Quiver/Schreier): word evaluation and reachability |
Adds word evaluation and reachability results to the Schreier graph API.
* `SchreierGraph.evalWord` : evaluates a word `List (S Γ Bool)` as an element of the ambient group, where `(s, true)` contributes `ΞΉ s` and `(s, false)` contributes `(ΞΉ s)β»ΒΉ`.
* `SchreierGraph.evalWord_eq_lift` : agreement with `FreeGroup.lift`.
* `SchreierGraph.evalWord_mem_closure` : every word evaluates into the subgroup generated by `ΞΉ`.
* `SchreierGraph.pathFromWord` : a Bool-tagged word yields a path in `Symmetrify (SchreierGraph V ΞΉ)` from `x` to `evalWord ΞΉ w β’ x`.
* `SchreierGraph.reachable_iff` : two vertices are connected by a path in the symmetrification iff some element of the subgroup closure carries one to the other.
Follow-up to #36320.
This PR was written with AI assistance (Claude). The code has been reviewed by the author.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-combinatorics
large-import
LLM-generated
|
157/0 |
Mathlib/Combinatorics/Quiver/Schreier.lean |
1 |
2 |
['github-actions'] |
nobody |
3-46576 3 days ago |
19-80050 19 days ago |
19-80029 19 days |
| 39023 |
TBUGTB author:TBUGTB |
feat(Algebra/Order): API lemmas on floor and abs |
Co-authored-by: Etienne Marion @EtienneC30
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
brownian
new-contributor
label:t-algebra$ |
9/0 |
Mathlib/Algebra/Order/Floor/Semiring.lean,Mathlib/Algebra/Order/Ring/Abs.lean |
2 |
3 |
['TBUGTB', 'github-actions'] |
nobody |
3-28302 3 days ago |
3-31491 3 days ago |
3-31470 3 days |
| 39030 |
FordUniver author:FordUniver |
feat(Analysis/SpecialFunctions/Pow/Continuity): add Filter.Tendsto.rpow_const_nhds_zero |
Specialises `Filter.Tendsto.rpow_const` to base `β 0`. The strict `0 < p` (rather than `0 β€ p` from the parent) is needed to identify `0 ^ p` with `0`. Refactors the one in-tree call site (`ZetaAsymp.term_tsum_of_lt`).
Co-authored-by: Sebastian Pokutta <23001135+pokutta@users.noreply.github.com>
---
This came out of a FrankβWolfe convergence formalisation, where gap rates of the form `f t ^ p β 0` recur and manually discharging the disjunction together with the `0 ^ p = 0` rewrite every time is a bit of a nuisance. A sweep over mathlib turned up `ZetaAsymp.term_tsum_of_lt` as the one place the same pattern already appears in the library.
I am not 100% sure on what the convention of adding these single-line specializations is, but this specific case did seem worth adding to me. |
new-contributor
t-analysis
|
7/3 |
Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean,Mathlib/NumberTheory/Harmonic/ZetaAsymp.lean |
2 |
2 |
['github-actions'] |
nobody |
3-17520 3 days ago |
3-25566 3 days ago |
3-25545 3 days |
| 36832 |
KryptosAI author:KryptosAI |
chore(Data/Finset/Card): rename `pred_card_le_card_erase` to `sub_one_card_le_card_erase` |
## Summary
The name `pred_card_le_card_erase` suggests `Nat.pred` but the statement uses `- 1` (i.e., `Nat.sub 1`). Rename to `sub_one_card_le_card_erase` to match the actual statement.
A deprecated alias is added for backwards compatibility.
### Files changed
- `Mathlib/Data/Finset/Card.lean` β definition renamed + deprecated alias
- `Mathlib/Data/Finset/Powerset.lean` β reference updated
- `Mathlib/Combinatorics/Additive/SubsetSum.lean` β reference updated
- `Mathlib/Algebra/Polynomial/EraseLead.lean` β reference updated
Addresses the `Finset.pred_card_le_card_erase` item in #21584.
## AI disclosure
I used Claude Code to explore the codebase (finding all references to rename) and to draft the PR description. I reviewed and understand all changes β these are straightforward renames with a deprecated alias. |
new-contributor |
22/15 |
Mathlib/Algebra/Polynomial/EraseLead.lean,Mathlib/Combinatorics/Additive/SubsetSum.lean,Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean,Mathlib/Combinatorics/SetFamily/Shadow.lean,Mathlib/Data/Finset/Card.lean,Mathlib/Data/Finset/Powerset.lean,Mathlib/Data/Set/Card.lean,Mathlib/GroupTheory/Perm/Support.lean,Mathlib/RingTheory/Ideal/Operations.lean |
9 |
8 |
['KryptosAI', 'Multramate', 'dagurtomas', 'github-actions', 'mattrobball', 'ooovi'] |
nobody |
3-15322 3 days ago |
37-57362 37 days ago |
51-67669 51 days |
| 38527 |
archiebrowne author:archiebrowne |
feat(Analysis/Calculus): continuously differentiable actions |
define the class `ContDiffSMul π M X n` which asserts that the map `(c, x) β¦ c β’ x` is `n` times continuously differentiable on `M Γ X`.
Many of the results are the C^n analogues of those in the module Mathlib.Topology.Algebra.MulAction.
|
t-differential-geometry
new-contributor
|
317/24 |
Mathlib.lean,Mathlib/Analysis/Calculus/BumpFunction/Basic.lean,Mathlib/Analysis/Calculus/ContDiff/Operations.lean,Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean,Mathlib/Analysis/ContDiffMulAction.lean,Mathlib/Analysis/InnerProductSpace/Calculus.lean |
6 |
11 |
['archiebrowne', 'github-actions', 'grunweg', 'peabrainiac'] |
PatrickMassot and grunweg assignee:grunweg assignee:PatrickMassot |
2-76963 2 days ago |
2-77038 2 days ago |
10-62926 10 days |
| 37928 |
AlexeyMilovanov author:AlexeyMilovanov |
refactor(Computability.Encoding): unbundle Ξ and remove FinEncoding |
This PR unbundles the alphabet `Ξ` from the `Encoding` structure and completely removes `FinEncoding`.
`Encoding`: The alphabet `Ξ` is now an explicit parameter: `structure Encoding (Ξ± : Type u) (Ξ : Type v)`.
`FinEncoding`: Removed. Finiteness is now handled via standard typeclasses (e.g., `[Fintype Ξ] (e : Encoding Ξ± Ξ)`).
Combinators: Functions like `finEncodingPair` are simplified to `encodingPair`, dropping the `fin` prefix and `[Fintype]` requirements where no longer needed.
Downstream: Mechanically updated `Mathlib.Computability` and `Mathlib.ModelTheory` to pass the explicit `Ξ` and use `[Fintype Ξ]` where `FinEncoding` was previously required.
|
new-contributor |
87/67 |
Mathlib/Computability/Encoding.lean,Mathlib/ModelTheory/Encoding.lean |
2 |
7 |
['AlexeyMilovanov', 'dagurtomas', 'github-actions', 'vihdzp'] |
nobody |
2-75742 2 days ago |
3-29347 3 days ago |
29-9182 29 days |
| 37527 |
bryanboehnke author:bryanboehnke |
feat(LocalRing/Etale): Finite Γ©tale extensions of local rings are monogenic |
Formalization of Lemma 3.2 from https://arxiv.org/abs/2503.07846: Given a finite extension of local rings R -> S, if the extension is Γ©tale, then there exists Ξ² β S such that R[Ξ²] = S. Furthermore, if f(z) β R[z] is the minimal polynomial of Ξ², then fβ²(Ξ²) is a unit in S. This file also includes some relevant intermediate results used in the formalization of the proof of Lemma 3.1 from the same paper.
Co-authored-by: George Peykanu
Co-authored-by: Bianca Viray
Co-authored-by: Grant Yang
---
- [ ] depends on: #36421
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
148/0 |
Mathlib.lean,Mathlib/RingTheory/LocalRing/Etale.lean |
2 |
5 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
riccardobrasca assignee:riccardobrasca |
2-60228 2 days ago |
20-60500 20 days ago |
20-81456 20 days |
| 39036 |
ajhendel author:ajhendel |
doc: fix Lean 3 namespace in DiophantineApproximation |
The implementation notes section references the Lean 3 namespace \`real.contfrac_legendre\`, but this was renamed to \`Real.ContfracLegendre\` during the port. This fixes the reference.
---
Co-Authored-By: Claude Opus 4.6 |
t-number-theory
new-contributor
maintainer-merge
|
1/1 |
Mathlib/NumberTheory/DiophantineApproximation/Basic.lean |
1 |
4 |
['github-actions', 'tb65536'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
2-60215 2 days ago |
3-14043 3 days ago |
3-14022 3 days |
| 35287 |
arnoudvanderleer author:arnoudvanderleer |
feat(AlgebraicTopology/SimplicialSet): define isomorphisms in simplicial sets, and the coherent isomorphism simplicial set |
show that any edge in a simplicial set, that is the image of the forward edge of the coherent isomorphism under a simplicial set morphism, is an isomorphism.
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-topology
new-contributor
infinity-cosmos
|
367/3 |
Mathlib.lean,Mathlib/AlgebraicTopology/SimplicialSet/CoherentIso.lean,Mathlib/AlgebraicTopology/SimplicialSet/CompStruct.lean,Mathlib/AlgebraicTopology/SimplicialSet/NerveCodiscrete.lean,Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean,Mathlib/CategoryTheory/CodiscreteCategory.lean |
6 |
111 |
['arnoudvanderleer', 'dagurtomas', 'github-actions', 'joelriou', 'mathlib-merge-conflicts', 'robin-carlier'] |
robin-carlier assignee:robin-carlier |
2-37226 2 days ago |
9-30896 9 days ago |
28-15273 28 days |
| 36103 |
SnkXyx author:SnkXyx |
feat(Algebra/MvPolynomial/CharacteristicSet): add Characteristic Set |
This PR adds some definitions and theorems of Characteristic Set Method (also known as Wu's Method).
Definitions:
* `MvPolynomial.mainDegree`
* `MvPolynomial.initialOf`
* `MvPolynomial.reducedTo`
* `TriangulatedSet`
* `MvPolynomial.pseudo`
* `MvPolynomial.setPseudo`
* `MvPolynomial.isRemainder`
* `MvPolynomial.isSetRemainder`
* `AscendingSetTheory`
* `TriangulatedSet.isAscendingSet`
* `HasBasicSet`
* `TriangulatedSet.isCharacteristicSet`
* `MvPolynomial.List.characteristicSet`
* `MvPolynomial.List.zeroDecomposition`
Main Theorems:
* `MvPolynomial.initialOf_mul_eq`: $init_i(p \cdot q) = init_i(p) \cdot init_i(q)$ if there is no zero divisors in the coefficient ring.
* `TriangulatedSet.instWellFoundedLT`: The set of Triangulated Sets is well-founded under the lexicographic ordering.
* `MvPolynomial.pseudo_remainder_isRemainder`: The remainder $r$ of $g$ by $f$ is reduced with respect to $f$ and satisfies $init(f)^s \cdot g = q \cdot f + r$ for some $s \in \mathbb{N}$ and $q \in R[X_{\sigma}]$.
* `MvPolynomial.setPseudo_remainder_isSetRemainder`: The remainder $r$ of $g$ by a set $S$ is reduced with respect to $S$ and satisfies $(\prod S_i^{e_i}) \cdot g = \sum q_i \cdot S_i + r$ for some sequences $\{e_i\}$ and $\{q_i\}$.
* `MvPolynomial.setPseudo_remainder_eq_zero_of_mem`: The remainder of $p$ by a set $S$ is $0$ if $p \in S$.
* `MvPolynomial.List.basicSet_append_lt_of_exists_reducedToSet`: Appending an element which is reduced w.r.t. the basic set of list strictly decreases the order.
* `MvPolynomial.List.characteristicSet_isCharacteristicSet`: The computed Characteristic Set $CS$ satisfies the key algebraic property (pseudo-remainder of input polynomials is 0) and the geometric property ( $Zero(PS) \subseteq Zero(CS)$ ).
* `MvPolynomial.List.vanishingSet_eq_zeroDecomposition_union`: The zero set of a polynomial system $PS$ can be decomposed into a finite union of "quasi-varieties" defined by triangular sets:
$Zero(PS) = \bigcup_{CS \in \mathcal{ZD}} Zero(CS / \text{InitialProd}(CS))$
The PR is upstreamized from [github.com/WuProver/lean_characteristic_set](https://github.com/WuProver/lean_characteristic_set)
---
[](https://gitpod.io/from-referrer/)
- [x] depends on: #36386
- [x] depends on: #37791
|
t-algebra
new-contributor
label:t-algebra$ |
3860/0 |
Mathlib.lean,Mathlib/Algebra/MvPolynomial/CharacteristicSet/AscendingSet.lean,Mathlib/Algebra/MvPolynomial/CharacteristicSet/CharacteristicSet.lean,Mathlib/Algebra/MvPolynomial/CharacteristicSet/Initial.lean,Mathlib/Algebra/MvPolynomial/CharacteristicSet/MainDegree.lean,Mathlib/Algebra/MvPolynomial/CharacteristicSet/Order.lean,Mathlib/Algebra/MvPolynomial/CharacteristicSet/PseudoDivision.lean,Mathlib/Algebra/MvPolynomial/CharacteristicSet/Reduce.lean,Mathlib/Algebra/MvPolynomial/CharacteristicSet/StandardAscendingSet.lean,Mathlib/Algebra/MvPolynomial/CharacteristicSet/TriangularSet.lean,Mathlib/Algebra/MvPolynomial/CharacteristicSet/WeakAscendingSet.lean,docs/references.bib |
12 |
20 |
['Hagb', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
2-30975 2 days ago |
2-31017 2 days ago |
6-18083 6 days |
| 35316 |
mkaratarakis author:mkaratarakis |
feat: lemmas for the analytic part of the proof of the GelfondβSchneider theorem (Part 4/5) |
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
new-contributor
large-import
|
84/1 |
Mathlib/Analysis/Analytic/Order.lean |
1 |
29 |
['MichaelStollBayreuth', 'SnirBroshi', 'github-actions', 'kebekus', 'mathlib-dependent-issues', 'mkaratarakis'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
2-27269 2 days ago |
3-66685 3 days ago |
27-14613 27 days |
| 39082 |
emlis42 author:emlis42 |
feat(Analysis\Calculus\Deriv): add deriv_const_op |
This PR adds some lemmas so `simp` can automatically evaluate derivatives of partially applied heterogeneous operations such as `HAdd.hAdd`, `HMul.hMul` `HDiv.hDiv`, and `HPow.hPow`. |
t-analysis
new-contributor
|
47/5 |
Mathlib/Analysis/Analytic/Binomial.lean,Mathlib/Analysis/Calculus/Deriv/Add.lean,Mathlib/Analysis/Calculus/Deriv/Inv.lean,Mathlib/Analysis/Calculus/FDeriv/Norm.lean,Mathlib/Analysis/SpecialFunctions/BinaryEntropy.lean,Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean,MathlibTest/Deriv.lean |
7 |
2 |
['github-actions'] |
nobody |
2-15416 2 days ago |
2-15495 2 days ago |
2-16194 2 days |
| 38814 |
sharky564 author:sharky564 |
refactor(LinearAlgebra/Projection): refactor `quotientEquivOfIsCompl` via `LinearEquiv.ofLinear` |
This PR refactors `Submodule.quotientEquivOfIsCompl` to use `LinearEquiv.ofLinear` rather than `LinearEquiv.symm <| LinearEquiv.ofBijective`. The new definition makes both directions of the equivalence explicit: the forward idirection is `Submodule.liftQ` of the projection onto `q` along `p`, and the backward direction is `Submodule.mkQ` composed with the inclusion `q` in `E`.
---
The motivation is work on topological complements of submodules in PR #38547. The proof of `IsCompl.isTopCompl_iff_continuous_quotientEquiv` reduces, via the quotient-map property of `mkQ`, to identifying the composite `quotientEquivOfIsCompl β mkQ` with the linear projection. This identifications feels like it should belong at the algebraic level and not mixed in with the topological reasoning. Additionally, these lemmas seem useful independently. |
t-algebra
new-contributor
maintainer-merge
label:t-algebra$ |
43/22 |
Mathlib/LinearAlgebra/Projection.lean |
1 |
27 |
['ADedecker', 'github-actions', 'sharky564', 'themathqueen'] |
nobody |
2-9642 2 days ago |
4-9552 4 days ago |
8-40094 8 days |
| 33178 |
gw90 author:gw90 |
feat(Analysis/CStarAlgebra/Spectrum): Adding lemmas that the CStarAlgebra norm equals the square root of the spectral radius of star a * a |
Adds lemmas that the ||a||^2_A=sqrt(spectralRadius C (star a * a)). I think it would be helpful to have these lemmas available in Mathlib. It'll help with some of the other things I'm working on. Feel free to move them to a different file or rename them as you see fit. |
new-contributor
t-analysis
|
24/0 |
Mathlib/Analysis/CStarAlgebra/Spectrum.lean |
1 |
17 |
['github-actions', 'gw90', 'themathqueen', 'vihdzp'] |
nobody |
1-81177 1 day ago |
1-81535 1 day ago |
2-10323 2 days |
| 38223 |
Deicyde author:Deicyde |
feat(Geometry/Manifold): add `MfldCat`, the category of `C^n` manifolds |
We define `MfldCat π n`: the category of `C^n` manifolds over a field `π`, following the pattern of `TopCat` in
`Mathlib.Topology.Category.TopCat.Basic`. We also implement `HasForgetβ (MfldCat π n) TopCat`βthe forgetful functor into the category of topological spaces. For more discussion see the Zulip thread: [#PR reviews > #38223 The Category of C^n Manifolds](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2338223.20The.20Category.20of.20C.5En.20Manifolds/with/587038032)
Also added: `ContMDiffMap.id_apply`, `.coe_id` and `.coe_comp` which are comparable to `ContinuousMap` API.
### Future work
- β
Define a Monoidal structure via product manifolds, analogous to `Manifold.Topology.Category.TopCat.Monoidal` #38560
- β
Define the tangent functor: `M β¦ TM`, `F β¦ F.tangentMap` from `MfldCat (n+1) π` to `MfldCat n π` #38270
- Functor `FGModuleCat π β₯€ MfldCat π n` sending a finite-dimensional `π`-vector space to the manifold modeled on itself. Left as `TODO`.
- Define `FGModuleCat π` as an enriched category over `MfldCat n π`. Then _smooth functors_ can be realized as endofunctors on the enriched category. This is the main motivation for this construction.
---
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry
new-contributor
t-category-theory
|
224/0 |
Mathlib.lean,Mathlib/Geometry/Manifold/Category/MfldCat/Basic.lean,Mathlib/Geometry/Manifold/ContMDiffMap.lean |
3 |
57 |
['Deicyde', 'chrisflav', 'dagurtomas', 'github-actions', 'idontgetoutmuch', 'peabrainiac'] |
kim-em assignee:kim-em |
1-75933 1 day ago |
1-79357 1 day ago |
15-43052 15 days |
| 35394 |
HugLycan author:HugLycan |
feat(Tactic/Positivity): make positivity work for types that are not partial orders |
Make positivity work for types that are not partial orders
Most PositivityExt haven't been updated for non partial order cases yet. They will be updated in the later PR.
`Strictness` now depends on `Option Q(PartialOrder $Ξ±)` instead of `Q(PartialOrder $Ξ±)`, and the constructors `Strictness.positive`/`Strictness.nonnegative` now have their `Q(PartialOrder $Ξ±)` typeclass arguments.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-meta
|
661/375 |
Mathlib/Algebra/Order/AbsoluteValue/Basic.lean,Mathlib/Algebra/Order/Algebra.lean,Mathlib/Algebra/Order/BigOperators/Expect.lean,Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean,Mathlib/Algebra/Order/Field/Basic.lean,Mathlib/Algebra/Order/Field/Power.lean,Mathlib/Algebra/Order/Floor/Extended.lean,Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/Algebra/Order/Interval/Basic.lean,Mathlib/Algebra/Order/Module/Field.lean,Mathlib/Analysis/Complex/Exponential.lean,Mathlib/Analysis/Complex/Order.lean,Mathlib/Analysis/Complex/Trigonometric.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean,Mathlib/Analysis/Normed/Group/Basic.lean,Mathlib/Analysis/SpecialFunctions/Bernstein.lean,Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean,Mathlib/Analysis/SpecialFunctions/Log/Basic.lean,Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean,Mathlib/Analysis/SpecialFunctions/Pow/Real.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/DerivHyp.lean,Mathlib/Combinatorics/Enumerative/DyckWord.lean,Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean,Mathlib/Combinatorics/SimpleGraph/Triangle/Removal.lean,Mathlib/Data/ENNReal/Basic.lean,Mathlib/Data/ENNReal/Real.lean,Mathlib/Data/EReal/Basic.lean,Mathlib/Data/EReal/Inv.lean,Mathlib/Data/EReal/Operations.lean,Mathlib/Data/NNReal/Defs.lean,Mathlib/Data/Nat/Factorial/DoubleFactorial.lean,Mathlib/Data/Nat/Totient.lean,Mathlib/Data/Rat/Cast/Order.lean,Mathlib/Data/Real/Sqrt.lean,Mathlib/Geometry/Euclidean/Altitude.lean,Mathlib/MeasureTheory/Covering/Besicovitch.lean,Mathlib/MeasureTheory/Integral/Bochner/Basic.lean,Mathlib/MeasureTheory/Measure/Real.lean,Mathlib/NumberTheory/ArithmeticFunction/Misc.lean,Mathlib/NumberTheory/ArithmeticFunction/Zeta.lean,Mathlib/NumberTheory/Height/Basic.lean,Mathlib/NumberTheory/Height/NumberField.lean,Mathlib/NumberTheory/Height/Projectivization.lean,Mathlib/NumberTheory/LucasLehmer.lean,Mathlib/NumberTheory/SelbergSieve.lean,Mathlib/Tactic/Positivity/Basic.lean,Mathlib/Tactic/Positivity/Core.lean,Mathlib/Tactic/Positivity/Finset.lean,Mathlib/Topology/Algebra/InfiniteSum/Order.lean,Mathlib/Topology/MetricSpace/Bounded.lean,Mathlib/Topology/MetricSpace/Pseudo/Defs.lean,MathlibTest/positivity.lean |
54 |
69 |
['HugLycan', 'JovanGerb', 'fpvandoorn', 'github-actions', 'joneugster', 'leanprover-radar', 'mathlib-merge-conflicts'] |
dwrensha assignee:dwrensha |
1-63165 1 day ago |
3-64238 3 days ago |
46-22388 46 days |
| 37190 |
cjrl author:cjrl |
feat(Combinatorics): Set-Valued Pigeonhole Principle |
This PR contributes two theorems to combinatorics:
- `exists_lt_card_cover_of_card_biUnion_lt_card` is a set-valued version of the pigeonhole principle.
- `sum_card_eq_sum_card_cover_biUnion` is a set theoretic corollary of a double counting result proved for bipartite graphs (`Finset.sum_card_bipartiteAbove_eq_sum_card_bipartiteBelow`). This was needed to prove the above pigeonhole principle.
The motivation for these results is our Latin Square PR #36698. These results were proved in less general terms in that PR, but are independent of Latin Square considerations and so we have generalized and moved them into more relevant files.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-combinatorics
|
38/0 |
Mathlib/Combinatorics/Enumerative/DoubleCounting.lean,Mathlib/Combinatorics/Pigeonhole.lean |
2 |
16 |
['IvanRenison', 'cjrl', 'ghseeli', 'github-actions', 'j-loreaux', 'vlad902'] |
b-mehta assignee:b-mehta |
1-60328 1 day ago |
27-80824 27 days ago |
43-51602 43 days |
| 38309 |
ntapiam author:ntapiam |
feat(Algebra/NonAssoc): dendriform algebras |
Define dendriform semirings and algebras
---
This PR introduces dendriform structures such as dendriform semirings
and algebras, and proves basic facts linking them to their pre-Lie
counterparts.
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
270/0 |
Mathlib.lean,Mathlib/Algebra/NonAssoc/Dendriform/Defs.lean,docs/references.bib |
3 |
5 |
['dagurtomas', 'github-actions', 'ntapiam'] |
ocfnash assignee:ocfnash |
1-60318 1 day ago |
2-26096 2 days ago |
17-31372 17 days |
| 38343 |
mortarsanjaya author:mortarsanjaya |
chore(Data/Nat/Cast/Order/Ring): move two Nat lemmas to Data/Nat/Basic |
These two lemmas have no correlation with `Nat.cast`, and the proof can be golfed to fit `Data/Nat/Basic`.
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
23/27 |
Mathlib/Data/Nat/Basic.lean,Mathlib/Data/Nat/Cast/Order/Ring.lean |
2 |
6 |
['dagurtomas', 'github-actions', 'mortarsanjaya'] |
joneugster assignee:joneugster |
1-60313 1 day ago |
18-83865 18 days ago |
18-83844 18 days |
| 38373 |
Nicola9Falciola author:Nicola9Falciola |
feat (Algebra/FreeAbelianGroup /Finsupp) : The support of non zero element in a freeabeliangroup is non empty |
Add the lemma that for a nonzero a : FreeAbelianGroup X the support of it is non empty.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
3/0 |
Mathlib/Algebra/FreeAbelianGroup/Finsupp.lean |
1 |
7 |
['Nicola9Falciola', 'SnirBroshi', 'github-actions'] |
ocfnash assignee:ocfnash |
1-60310 1 day ago |
17-16053 17 days ago |
18-4473 18 days |
| 39090 |
EngelsVon author:EngelsVon |
feat(Analysis/Calculus/DifferentialForm): Stokes theorem on boxes for differential forms |
## Summary
This PR adds the first instances of the **generalized Stokes theorem for differential forms** in Mathlib, building on the existing `extDeriv` API from `Analysis.Calculus.DifferentialForm.Basic` and the divergence theorem from `MeasureTheory.Integral.DivergenceTheorem`.
### New files
#### `Mathlib.Analysis.Calculus.DifferentialForm.BoxStokes` (310 lines, **fully proved**)
Stokes theorem on rectangular boxes `[a, b] β β^(m+1)` for differential forms.
**Key definitions:**
- `detTopForm`: the determinant as a continuous alternating top-form
- `topFormDensity` / `topFormIntegral`: density and integral of top-form fields
- `boxFaceComponent Ο i`: the signed `i`-th face component of an `m`-form (`(-1)^i Β· Ο(Γͺ_i)`)
- `boxBoundaryIntegral Ο a b`: the signed boundary integral over `β[a,b]`
**Main theorem:**
- `box_stokes_of_contDiff`: `β«_{[a,b]} dΟ = β«_{β[a,b]} Ο` for `CΒΉ` `m`-forms on `β^(m+1)`
The proof proceeds by:
1. Showing `topFormDensity (extDeriv Ο) = divergence of (boxFaceComponent Ο Β·)`
2. Applying Mathlib's `integral_divergence_of_hasFDerivAt_off_countable'`
#### `Mathlib.Analysis.Calculus.DifferentialForm.HalfSpaceStokes` (224 lines, partially proved)
Stokes theorem on the upper half-space `{x : x_m β₯ 0}` with infrastructure.
**Key definitions:**
- `HalfSpace m`: `{x : Fin (m+1) β β | x (lastCoord m) β₯ 0}`
- `boundaryIntegral m Ο`: integral of `Ο` over `ββ^{m+1}_+`
**Key lemmas (proved):**
- `norm_insertNth_ge_norm`: `βxβ β€ βFin.insertNth i v xβ` for sup norm
- `formField_vanishes_at_insertNth_norm`: vanishing of form fields at large norms
**Main theorem (statement, proof TODO):**
- `halfSpace_stokes`: `β«_{β^{m+1}_+} dΟ = β«_{ββ^{m+1}_+} Ο`
### Relationship to existing Mathlib
- `MeasureTheory.Integral.DivergenceTheorem` proves the divergence theorem for vector fields (`ββΏβΊΒΉ β EβΏβΊΒΉ`). This PR translates it into the language of differential forms (`E β E [β^Fin n]βL[π] F`).
- `Analysis.Calculus.DifferentialForm.Basic` defines `extDeriv`. This PR provides the first *integration* results for `extDeriv`.
### Why this belongs in Mathlib
1. **Fills a known gap**: Mathlib has no Stokes-type theorem for differential forms despite having `extDeriv` and the divergence theorem.
2. **Self-contained**: Box Stokes depends only on `extDeriv` API and the divergence theorem.
3. **Useful infrastructure**: `boxFaceComponent`, `topFormDensity`, and `norm_insertNth_ge_norm` are independently useful.
### Future work
- Complete `halfSpace_stokes` (requires upstream API for `extDeriv` vanishing at zeros and `Fin.isClosedEmbedding_insertNth`)
- Chart-level Stokes via coordinate changes
- Partition of unity β manifold Stokes
## Checklist
- [x] The formulation of the main theorem is mathematically correct
- [x] Proofs follow Mathlib conventions (to the best of our knowledge)
- [ ] Code compiles on Mathlib CI (not tested locally due to build time)
- [ ] `#lint` passes (not tested locally)
|
t-analysis
new-contributor
LLM-generated
|
1246/0 |
Mathlib.lean,Mathlib/Analysis/Calculus/DifferentialForm/BoxStokes.lean,Mathlib/Analysis/Calculus/DifferentialForm/FullSpaceStokes.lean,Mathlib/Analysis/Calculus/DifferentialForm/HalfSpaceStokes.lean |
4 |
4 |
['EngelsVon', 'SnirBroshi', 'github-actions'] |
nobody |
1-14879 1 day ago |
1-16492 1 day ago |
1-56191 1 day |
| 38319 |
Zetetic-Dhruv author:Zetetic-Dhruv |
feat(Combinatorics/SetFamily): Assouad's dual VC bound |
Adds the Finset-level form of Assouad's 1983 dual VC bound: if a family
`π : Finset (Finset Ξ±)` has VC dimension at most `d`, then for any
ground set `X : Finset Ξ±` the dual family
`{π.filter (Β· β x) : x β X}` has VC dimension at most `2 ^ (d + 1) - 1`.
New declarations (in `Finset` namespace):
- `dualFamily π X`: for each `x β X`, the subfamily `{A β π | x β A}`
- `mem_dualFamily` (`@[simp]`): membership characterisation
- `exists_shatters_of_dualFamily_shatters`: Assouad's bitstring-coding lemma
- `vcDim_dualFamily_le`: the headline VC bound
Proof by Assouad's classical bitstring-coding argument. Sits on top of `Finset.shatterer` / `Finset.vcDim` from
`Mathlib.Combinatorics.SetFamily.Shatter`.
References:
- P. Assouad, Densite et dimension, Ann. Inst. Fourier 33(3) (1983), Thm 2.13
- J. Matousek, Lectures on Discrete Geometry, GTM 212, Springer, 2002, Section 10.3 Lemma 10.3.3
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
199/0 |
Mathlib.lean,Mathlib/Combinatorics/SetFamily/DualVC.lean,docs/references.bib |
3 |
34 |
['Shreyas4991', 'YaelDillies', 'Zetetic-Dhruv', 'github-actions'] |
nobody |
0-73798 20 hours ago |
0-73798 20 hours ago |
17-34426 17 days |
| 38829 |
AnandGokhale author:AnandGokhale |
feat(Analysis/ODE/Gronwall): added gronwall-bellman inequality |
Added 2 lemmas and 1 theorem to Analysis.ODE.Gronwall, making progress towards a TODO.
Lemma 1: Wrapper for Fundamental Theorem of Calculus
Lemma 2: Wrapper for the continuity of an integral on a closed, ordered interval
Theorem: Gronwall bellman inequality, as stated with proof in Appendix of Hassan Khalil, Nonlinear control, 3rd edition.
|
t-analysis
new-contributor
large-import
|
125/2 |
Mathlib/Analysis/ODE/Gronwall.lean |
1 |
12 |
['AnandGokhale', 'eric-wieser', 'github-actions', 'grunweg', 'mathlib-bors'] |
j-loreaux assignee:j-loreaux |
0-73489 20 hours ago |
1-73572 1 day ago |
3-34101 3 days |
| 37625 |
slavanaprienko author:slavanaprienko |
feat(LinearAlgebra/Matrix/Charpoly): general coefficient formula as sum of principal minors |
This PR adds a general formula for the coefficients of `det(1 + X β’ M)` as sums of principal minors, generalizing the existing `coeff_det_one_add_X_smul_one` (k=1, trace) and `det_eq_sign_charpoly_coeff` (k=n, determinant). It also derives the corresponding formula for the coefficients of the characteristic polynomial via `charpolyRev`.
New results:
- `det_piecewise_one_eq_submatrix_det`: relates piecewise-with-identity to principal submatrix determinants
- `coeff_det_one_add_X_smul_eq_sum_minors`: the k-th coefficient of `det(1 + X β’ M)` equals the sum of kΓk principal minors
- `charpoly_coeff_eq_sum_minors`: coefficients of the characteristic polynomial as signed sums of principal minors
--- |
t-algebra
new-contributor
label:t-algebra$ |
105/1 |
Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean |
1 |
25 |
['eric-wieser', 'github-actions', 'slavanaprienko', 'wwylele'] |
kim-em assignee:kim-em |
0-70778 19 hours ago |
35-49072 35 days ago |
36-64539 36 days |
| 38584 |
TJHeeringa author:TJHeeringa |
feat(Analysis/InnerProductSpace/Reproducing): Add outerKernel, mem_iff |
---
Adds the `outerKernel` definition and the theorem `mem_iff`. These are needed for proving statements involving embeddings of RKHS.
I can split `mem_of_posSemidef` and `mem_iff` off into a different pull request if that is preferred.
The theorems `mem_of_posSemidef` and `posSemidef_of_mem` are the two directions of `mem_iff`. `posSemidef_of_mem` is slightly stronger than the converse direction of `mem_iff` in the sense that it also specifies the constant `c` in the statement. The specified `c` is in fact the smallest possible `c` for which the statement holds.
The statement `mem_of_posSemidef` proves `β (g : H), (g : X β V) = f`. We could instead write `f β (coeCLM π (H:=H)).range`. Making this change would require the addition of the line `simp only [LinearMap.mem_range, coe_coe, coeCLM_apply]` in the beginning of the proof. The full beginning is then
```
lemma mem_of_posSemidef (f : X β V) {c : β}
(hc : ((c : π) ^ 2 β’ kernel H - outerKernel π f).PosSemidef) : f β (coeCLM π (H:=H)).range := by
simp only [LinearMap.mem_range, coe_coe, coeCLM_apply]
let Laux : ...
```
Making a `MemRKHS` like MemLp and MemSobolev and then writing `MemRKHS H f` is also an option. Happy to change it to whatever is preferred.
The proof of `mem_of_posSemidef` is based on the idea that any function f in the RKHS satisfies `=\sum_{n} ` for `x_n\in X` and `v_n\in V` by the reproducing property. We define the operator L(\sum_n K(\cdot,x_n)v_n) = \sum_{n} . This is bounded by the condition based on the kernels, and thus extends to a bounded linear operator on the RKHS. Its Riesz' representer agrees pointwise with f.
AI:
When asking how to avoid Classical.choose in constructing the operator L, Claude suggested the approach of going through the quotient. I made the proof using Claude as supplementary Loogle. Afterwards, I asked it to help shorted the proofs. Some suggestions for `mem_of_posSemidef` were applied. The other suggestions were not helping or not correct.
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
123/1 |
Mathlib/Analysis/InnerProductSpace/Reproducing.lean |
1 |
7 |
['TJHeeringa', 'github-actions', 'themathqueen'] |
nobody |
0-61180 16 hours ago |
13-2404 13 days ago |
13-2761 13 days |
| 32692 |
WilliamCoram author:WilliamCoram |
feat: define multivariate restricted power series |
We define multivariate restricted power series over a normed ring R, and show the properties that they form a ring when R has the ultrametric property.
This work generalises my previous work in #26089 which will need to be refactored.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-number-theory
new-contributor
|
137/0 |
Mathlib.lean,Mathlib/Algebra/Order/Antidiag/Prod.lean,Mathlib/RingTheory/MvPowerSeries/Restricted.lean |
3 |
43 |
['WilliamCoram', 'erdOne', 'github-actions', 'jcommelin', 'mathlib-merge-conflicts'] |
jcommelin assignee:jcommelin |
0-59994 16 hours ago |
24-16451 24 days ago |
42-30092 42 days |
| 29744 |
espottesmith author:espottesmith |
feat(Combinatorics): define directed hypergraphs |
This PR defines directed hypergraphs:
```
@[ext]
structure DiHypergraph (Ξ± : Type*) where
/-- The vertex set -/
vertexSet : Set Ξ±
/-- The edge set -/
edgeSet : Set ((Set Ξ±) Γ (Set Ξ±))
/-- Each edge is a pair (s, d), where s β vertexSet and d β vertexSet -/
edge_src_dst_isSubset_vertexSet' : β β¦eβ¦, e β edgeSet β e.1 β vertexSet β§ e.2 β vertexSet
```
Additional definitions:
- tail/head stars and negative/positive stars
- some special cases (B-Graph, F-Graph, BF-Graph, and what I'm calling a "non-endless" dihypergraph, where neither the source/tail nor the destination/head are empty)
- Vertex and (hyper)edge adjacency
- isolated vertices
- empty and nonempty dihypergraphs
The design employed here is based off of #28613, but this PR does not depend on that one.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
398/0 |
Mathlib.lean,Mathlib/Combinatorics/DiHypergraph/Basic.lean |
2 |
2 |
['github-actions', 'mathlib4-merge-conflict-bot'] |
YaelDillies assignee:YaelDillies |
0-30463 8 hours ago |
37-30565 37 days ago |
95-14011 95 days |
| 38848 |
jcreinhold author:jcreinhold |
feat(AlgebraicTopology/SimplicialSet): exists_isPushout_of_ne_top |
Every proper subcomplex of a simplicial set extends by attaching a single cell along its boundary, exhibited as a pushout of `βΞ[n] βͺ Ξ[n]`. This is the per-cell input for cell-by-cell filtrations of monomorphisms in `SSet`.
Adapted from @joelriou 's [proof](https://github.com/joelriou/topcat-model-category/blob/813338a8c88cfe0096deed7e3ba7daf92d4a1c71/TopCatModelCategory/SSet/Boundary.lean#L187). I also added the supporting lemma `Types.isPullback_of_eq_setPreimage` (set-preimage square is a pullback in `Type u`).
AI use: Claude helped locate `subtype_val_mono` and the `backward.isDefEq.respectTransparency` option.
|
t-algebraic-topology
new-contributor
|
120/3 |
Mathlib/AlgebraicTopology/SimplicialSet/Boundary.lean,Mathlib/CategoryTheory/Limits/Types/Pullbacks.lean |
2 |
22 |
['github-actions', 'jcreinhold', 'joelriou', 'mckoen'] |
joelriou assignee:joelriou |
0-16347 4 hours ago |
0-81553 22 hours ago |
7-50309 7 days |
| 37350 |
aditya-ramabadran author:aditya-ramabadran |
feat(Analysis/Distribution): define canonical maps between Schwartz/test functions, distributions/tempered distributions |
Defines these canonical maps: (1) continuous linear map from $\mathcal D$ to $\mathcal S$, and (2) induced (linear) restriction map from $\mathcal S'$ to $\mathcal D'$, as assigned by @ADedecker.
---
Put in a separate file since Distribution.lean only imports TestFunction right now and I thought it was cleaner to do in a new bridge file with both the maps. Open to changing this though.
* Made use of #36445 (proved first map locally on fixed support spaces first by local seminorm estimates, then used limitCLM)
* Needed a real to complex bridge `TestFunction.ToComplexSchwartzMap` since distributions are defined on real-valued test functions but tempered distributions in mathlib are defined on complex-valued Schwartz functions
* Induced map $\mathcal S'(E,F) \to \mathcal D'(Ξ©,F)$ is $\mathbb C$-linear
The main important defs are `ContDiffMapSupportedIn.toSchwartzMapCLM` which is the local fixed-support part, then `TestFunction.toSchwartzMapCLM` (where the continuity uses limitCLM to glue the local continuous linear maps on each $\mathcal D_K$), and `TemperedDistribution.toDistributionLM` which is the linear map from tempered distributions to ordinary distributions.
Tested with `lake env lean Mathlib/Analysis/Distribution/TestFunctionSchwartz.lean`
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
226/0 |
Mathlib.lean,Mathlib/Analysis/Distribution/TestFunctionSchwartz.lean |
2 |
24 |
['aditya-ramabadran', 'github-actions', 'j-loreaux'] |
j-loreaux assignee:j-loreaux |
0-8638 2 hours ago |
0-9585 2 hours ago |
32-9860 32 days |
| 38962 |
sharky564 author:sharky564 |
refactor(Topology/Algebra/Module/LinearMap): rename subtypeL companion lemmas |
This PR renames the companion lemmas of `Submodule.subtypeL` for consistency with `Submodule.mkQL` (introduced in PR #38811). Specifically, `Submodule.coe_subtypeL` is renamed to `Submodule.toLinearMap_subtypeL` (to accurately reflect that it projects to the underlying LinearMap, not a function-level coercion), and `Submodule.coe_subtypeL'` is renamed to `Submodule.coe_subtypeL` (since this is the genuine function-level coercion lemma).
---
This brings the `subtypeL` API in line with the `mkQL` naming convention established in PR #38811. No behavioural changes. |
t-topology
new-contributor
maintainer-merge
|
38/32 |
Mathlib/Analysis/Calculus/Implicit.lean,Mathlib/Analysis/Normed/Operator/Banach.lean,Mathlib/Topology/Algebra/Module/LinearMap.lean,scripts/nolints_prime_decls.txt |
4 |
16 |
['ADedecker', 'github-actions', 'sharky564', 'themathqueen'] |
dagurtomas assignee:dagurtomas |
0-6093 1 hour ago |
4-16670 4 days ago |
4-29464 4 days |