The mathlib review queue

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

This dashboard was last updated on: May 29, 2026 at 23:25 UTC

Review queue

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
36219 gasparattila
author:gasparattila
chore(Order/SupClosed): use `to_dual` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 86/217 Mathlib/Order/ConditionallyCompleteLattice/Finset.lean,Mathlib/Order/SupClosed.lean 6 6 ['github-actions', 'mathlib-merge-conflicts'] bryangingechen
assignee:bryangingechen
80-42132
2 months ago
44-22453
44 days ago
48-26255
48 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 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) CI 85/72 .github/workflows/add_label_from_diff.yaml,scripts/autolabel.lean 2 4 ['github-actions', 'mathlib-merge-conflicts'] nobody
77-80712
2 months ago
61-41321
61 days ago
93-81750
93 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 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
44-12196
1 month ago
44-29853
44 days ago
44-29882
44 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 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
43-41765
1 month ago
43-41729
43 days ago
58-61883
58 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 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 89/11 Mathlib/Order/Partition/Basic.lean,Mathlib/Order/SupIndep.lean 2 1 ['github-actions'] nobody
42-8531
1 month ago
42-8603
42 days ago
42-8194
42 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 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 20/0 Mathlib/Order/ConditionallyCompleteLattice/Finset.lean 1 1 ['github-actions'] nobody
37-77789
1 month ago
37-77864
37 days ago
37-77455
37 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) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
36-84787
1 month ago
37-7217
37 days ago
38-63151
38 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. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 42/0 Mathlib/Order/RelIso/Basic.lean 1 1 ['github-actions'] nobody
34-68431
1 month ago
34-68506
34 days ago
34-68097
34 days
38344 robo7179
author:robo7179
feat(SimpleGraph/Coloring/VertexColoring): Matching is 2 colorable --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 51/0 Mathlib/Combinatorics/SimpleGraph/Coloring/VertexColoring.lean 1 5 ['SnirBroshi', 'github-actions', 'vlad902'] nobody
34-44354
1 month ago
38-11898
38 days ago
38-11875
38 days
38222 IvanRenison
author:IvanRenison
feat(Combinatorics/SimpleGraph/Girth): add lemmas about isomorphism and girth --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 19/1 Mathlib/Combinatorics/SimpleGraph/Girth.lean 1 6 ['IvanRenison', 'SnirBroshi', 'github-actions', 'vlad902'] nobody
34-27976
1 month ago
41-2889
41 days ago
41-2480
41 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 17/9 Mathlib/Combinatorics/SimpleGraph/Paths.lean 1 1 ['github-actions'] nobody
34-26880
1 month ago
34-26950
34 days ago
34-26541
34 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 = ⊤` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 12/0 Mathlib/Combinatorics/SimpleGraph/Copy.lean 1 1 ['github-actions'] nobody
33-33455
1 month ago
33-33524
33 days ago
33-33115
33 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 α`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 17/0 Mathlib/Combinatorics/SimpleGraph/Girth.lean 1 5 ['SnirBroshi', 'github-actions', 'vlad902'] nobody
33-33398
1 month ago
34-24115
34 days ago
34-23706
34 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
33-25334
1 month ago
33-25359
33 days ago
48-20084
48 days
38554 YaelDillies
author:YaelDillies
chore(Combinatorics/SimpleGraph): use the auto-param in `loopless` more --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
32-13954
1 month ago
32-46295
32 days ago
32-47955
32 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. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
31-2210
1 month ago
36-78730
36 days ago
37-53147
37 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 ``` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 43/0 Mathlib/Order/SuccPred/CompleteLinearOrder.lean 1 6 ['SnirBroshi', 'github-actions', 'vihdzp'] nobody
30-59419
1 month ago
31-56333
31 days ago
31-55924
31 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
29-63388
29 days ago
29-63411
29 days ago
29-63389
29 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. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
29-28273
29 days ago
29-28299
29 days ago
48-33007
48 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 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
28-85067
28 days ago
29-5623
29 days ago
29-59503
29 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 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
27-43865
27 days ago
27-54381
27 days ago
27-54779
27 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
27-18690
27 days ago
38-81192
38 days ago
38-81309
38 days
38358 yuanyi-350
author:yuanyi-350
doc(1000.yaml): note more formalised theorems --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) documentation maintainer-merge 9/2 docs/1000.yaml 1 12 ['YaelDillies', 'github-actions', 'grunweg', 'vihdzp', 'yuanyi-350'] nobody
26-48767
26 days ago
26-48829
26 days ago
37-50076
37 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
25-68175
25 days ago
26-38403
26 days ago
26-37994
26 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 133/0 Mathlib.lean,Mathlib/Combinatorics/SetFamily/Sperner1D.lean 2 3 ['github-actions', 'grunweg'] nobody
25-59409
25 days ago
25-69559
25 days ago
25-69150
25 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 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
24-53522
24 days ago
24-53562
24 days ago
64-48503
64 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order new-contributor 9/19 Mathlib/Order/PrimeSeparator.lean 1 2 ['github-actions'] nobody
24-52100
24 days ago
24-52187
24 days ago
24-51778
24 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`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 55/1 Mathlib/Order/Hom/Basic.lean 1 3 ['SnirBroshi', 'dagurtomas', 'github-actions'] nobody
24-2750
24 days ago
24-2750
24 days ago
30-86262
30 days
38979 ldct
author:ldct
feat(EReal): simplify nat + ⊤ Alternative version of https://github.com/leanprover-community/mathlib4/pull/38975 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
23-33032
23 days ago
23-32798
23 days ago
23-32519
23 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)` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-logic 2/2 Mathlib/ModelTheory/Semantics.lean 1 3 ['github-actions', 'plp127', 'zhuyizheng'] nobody
22-79661
22 days ago
23-29390
23 days ago
23-28981
23 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
22-66115
22 days ago
39-13189
39 days ago
39-12780
39 days
39023 TBUGTB
author:TBUGTB
feat(Algebra/Order): API lemmas on floor and abs Co-authored-by: Etienne Marion @EtienneC30 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
22-47841
22 days ago
22-51030
22 days ago
22-50621
22 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
21-79762
21 days ago
41-51307
41 days ago
41-51839
41 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
29/0 Mathlib/Algebra/Order/BigOperators/Group/LocallyFinite.lean 1 1 ['github-actions'] nobody
21-38486
21 days ago
21-38566
21 days ago
21-38157
21 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
21-9072
21 days ago
21-12496
21 days ago
34-62203
34 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
20-79867
20 days ago
47-13963
47 days ago
62-70753
62 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. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
20-79857
20 days ago
21-45635
21 days ago
36-50523
36 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
20-79849
20 days ago
36-35592
36 days ago
37-23624
37 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
20-79846
20 days ago
23-50700
23 days ago
24-64328
24 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) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
20-57996
20 days ago
20-58035
20 days ago
26-1934
26 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. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 18/11 Mathlib/Data/Matrix/Basic.lean 1 1 ['github-actions'] nobody
20-16456
20 days ago
20-16538
20 days ago
20-16129
20 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. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
19-79527
19 days ago
22-70266
22 days ago
22-70618
22 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
19-79526
19 days ago
27-44271
27 days ago
28-64488
28 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`. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 8/1 Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean 1 1 ['github-actions'] nobody
19-55037
19 days ago
26-76245
26 days ago
26-75836
26 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) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 261/3 Mathlib/MeasureTheory/Measure/MeasureSpace.lean,Mathlib/MeasureTheory/OuterMeasure/OfFunction.lean,Mathlib/Topology/Algebra/InfiniteSum/Basic.lean,Mathlib/Topology/Algebra/InfiniteSum/Order.lean 4 7 ['Jun2M', 'SnirBroshi', 'github-actions', 'wwylele'] nobody
19-5671
19 days ago
19-5748
19 days ago
34-81784
34 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`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] alreadydone
assignee:alreadydone
18-79446
18 days ago
31-32195
31 days ago
31-31786
31 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. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-differential-geometry 6/0 Mathlib/Geometry/Manifold/ChartedSpace.lean 1 1 ['github-actions'] PatrickMassot
assignee:PatrickMassot
18-79435
18 days ago
20-57963
20 days ago
20-57554
20 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 103/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
18-54667
18 days ago
21-54986
21 days ago
28-42939
28 days
39157 vihdzp
author:vihdzp
feat: `Nat.cast` commutes with addition --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 26/9 Mathlib/Data/Nat/Cast/Commute.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean 2 2 ['github-actions', 'plp127'] nobody
18-33353
18 days ago
19-8418
19 days ago
19-8009
19 days
39219 WenrongZou
author:WenrongZou
feat(FieldTheory/Finite): add variant theorems for `expand_card` Add `MvPolynomial, MvPowerSeries, PowerSeries` version of `FiniteField.expand_card`, which is only for polynomial. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra large-import
label:t-algebra$
45/4 Mathlib/FieldTheory/Finite/Basic.lean,Mathlib/LinearAlgebra/Matrix/Charpoly/FiniteField.lean,Mathlib/RingTheory/MvPolynomial/Expand.lean,Mathlib/RingTheory/MvPowerSeries/Expand.lean,Mathlib/RingTheory/PowerSeries/Expand.lean 5 1 ['github-actions'] nobody
18-8740
18 days ago
18-8781
18 days ago
18-8604
18 days
37399 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Paths): `IsPath` and `Nil` lemmas --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 10/3 Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Paths.lean 2 8 ['Rida-Hamadani', 'SnirBroshi', 'YaelDillies', 'github-actions'] YaelDillies
assignee:YaelDillies
18-6936
18 days ago
59-72985
59 days ago
59-72720
59 days
36863 artie2000
author:artie2000
refactor(Algebra/Order/Ring/Ordering): unbundle `RingPreordering` The current design for [RingPreordering](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Ring/Ordering/Defs.html#RingPreordering) ran into issues at PR #32077. This PR unbundles [RingPreordering](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Ring/Ordering/Defs.html#RingPreordering) into a class predicate on [Subsemiring](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Ring/Subsemiring/Defs.html#Subsemiring), generalising the material on supports as far as possible. Zulip thread: https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/Ring.20orderings.20-.20structure.20or.20predicate.3F/with/562594050 See #37298 for the analogous change to group and ring cones. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra large-import
label:t-algebra$
455/87 Mathlib.lean,Mathlib/Algebra/Order/Ring/Ordering/Basic.lean,Mathlib/Algebra/Order/Ring/Ordering/Defs.lean,Mathlib/Algebra/Ring/Subsemiring/Support.lean 4 14 ['artie2000', 'chrisflav', 'github-actions', 'mathlib-merge-conflicts'] eric-wieser
assignee:eric-wieser
18-5684
18 days ago
18-5684
18 days ago
60-46507
60 days
39162 anovickis
author:anovickis
feat(Topology/PartitionOfUnity): add pointwise_decomposition_finsum + companions Add three short lemmas to `Mathlib/Topology/PartitionOfUnity.lean` extending the existing `PartitionOfUnity` API: - `pointwise_decomposition_finsum` — for `f : X → ℝ` and `x ∈ s`, `f x = ∑ᶠ i, ρ i x · f x`. This is the pointwise step that lifts to integral linearity in measure-theoretic PoU integration: `∫_s f dμ = ∑ᶠ i, ∫_s (ρ i · f) dμ`. - `one_minus_sum_nonneg` — `0 ≤ 1 - ∑ᶠ i, ρ i x`. Direct rearrangement of the existing `sum_le_one` field; useful as a complement-mass remainder bound in chart-by-chart estimates. - `abs_le_one` — `|ρ i x| ≤ 1`. Combines the existing `nonneg` and `le_one`; convenience for absolute-value bounds. All three are short proofs using existing structure fields (`sum_eq_one`, `sum_le_one`, `nonneg`, `le_one`). These came up while writing chart-by-chart Stokes-on-manifold estimates where one wants to decompose `∫_M f` into chart-supported pieces using a partition of unity. The pointwise identity is the obvious first step; the other two are complementary algebraic bounds that show up in remainder estimates. --- 🤖 Generated with [Claude Code](https://claude.com/claude-code) t-topology new-contributor LLM-generated 27/0 Mathlib/Topology/PartitionOfUnity.lean 1 2 ['github-actions'] urkud
assignee:urkud
17-79822
17 days ago
18-75743
18 days ago
18-75334
18 days
39239 alainchmt
author:alainchmt
feat(FieldTheory/Finite): irreducible polynomial divides X^q^n - X iff degree divides n --- Add the theorem saying that, for an irreducible polynomial `f` over a finite field `K`, the degree of `f` divides `n` if and only if `f` divides `X ^ (Nat.card K) ^ n - X`. Include auxiliary lemmas. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra new-contributor
label:t-algebra$
34/0 Mathlib/FieldTheory/Finite/Extension.lean,Mathlib/FieldTheory/Minpoly/Field.lean 2 2 ['github-actions'] nobody
17-48995
17 days ago
17-49084
17 days ago
17-48675
17 days
39195 linesthatinterlace
author:linesthatinterlace
feat(Logic/Function/Defs): Add dcomp lemmas This PR adds API lemmas about `dcomp` that were previously missing. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-logic 13/0 Mathlib/Logic/Function/Defs.lean 1 6 ['github-actions', 'linesthatinterlace', 'plp127'] nobody
17-38254
17 days ago
18-39753
18 days ago
18-39344
18 days
39230 bryangingechen
author:bryangingechen
chore: extract API from #38807 and golf I wanted to understand why these two proofs in #38807 were long (and also play around more with the API in this corner of the library) so I walked through them with Claude Opus. prepared with Claude code t-order LLM-generated 23/37 Mathlib/Order/Bounds/Basic.lean,Mathlib/Order/DirSupClosed.lean 2 2 ['github-actions', 'vihdzp'] nobody
17-2617
17 days ago
17-77253
17 days ago
17-76844
17 days
36202 vihdzp
author:vihdzp
feat: more theorems on the Cantor normal form We also remove some redundant assumptions. Used in the CGT repo. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory 68/17 Mathlib/SetTheory/Ordinal/CantorNormalForm.lean 1 21 ['SnirBroshi', 'YaelDillies', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] YaelDillies
assignee:YaelDillies
16-50939
16 days ago
65-50488
65 days ago
84-42040
84 days
36388 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/AdjMatrix): submatrices and homomorphisms --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics maintainer-merge 73/3 Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean 1 19 ['SnirBroshi', 'YaelDillies', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts', 'themathqueen'] nobody
16-42820
16 days ago
16-79398
16 days ago
46-29544
46 days
39279 jayscambler
author:jayscambler
feat(Cryptography/Sigma): Schnorr sigma protocol and signature scheme Adds `Mathlib/Cryptography/Sigma/Schnorr.lean`. New file in a new top-level directory; mathlib currently has no `Mathlib/Cryptography/`, so I've taken `Mathlib/Cryptography/Sigma/` as the natural home for sigma-protocol formalizations. The file proves the three defining properties of Schnorr's identification scheme as a sigma protocol: - `Schnorr.correct`: completeness. Honest verifier accepts honest signer's transcript. - `Schnorr.specialSoundness`: from two accepting transcripts sharing the commitment but using different challenges `c, c'`, the witness `x = (s - s') / (c - c')` is recovered. Needs `q` prime so `c - c'` is invertible in `ZMod q`. - `Schnorr.hvzkAccepts`: the HVZK simulator `g^s · (y^c)⁻¹` always yields accepting transcripts. This is the structural-correctness half of HVZK only; the distributional indistinguishability statement is a separate result and not in this PR. On top of the sigma protocol there's `Schnorr.Signature.{keyGen, sign, verify, correct}` wrapping it as a Fiat-Shamir signature scheme; `Schnorr.Signature.correct` is a one-line corollary of `Schnorr.correct`. Two auxiliary lemmas, `Schnorr.gpow_sub` and `Schnorr.gpow_mul`, bridge `ZMod q` arithmetic and group exponentiation under `Fintype.card G = q`. They're local to this file for now because the surrounding `gpow` API is itself cryptography-specific; if a general `ZMod q`-graded group action framework lands in mathlib later, both lemmas would become instances of it. There's also a small `example` instantiating everything on `Multiplicative (ZMod q)` for `Fact q.Prime` to show the API typechecks. That instantiation is a toy (DLOG is trivial in that group), but it confirms the abstraction is usable. **AI disclosure**: this PR was a collaboration between myself, Grey Haven's autocontext and Claude Opus 4.7 (Anthropic). I read each line and built locally on current master. (strawberry has three r's) new-contributor LLM-generated 352/0 Mathlib.lean,Mathlib/Cryptography/Sigma/Schnorr.lean 2 2 ['github-actions'] nobody
16-26437
16 days ago
16-26516
16 days ago
16-26597
16 days
35255 vlad902
author:vlad902
feat(SimpleGraph): `cycleGraph.IsContained` in every graph with a cycle --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
16-23077
16 days ago
31-9549
31 days ago
31-10087
31 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 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-group-theory new-contributor large-import 31/2 Mathlib/GroupTheory/FinitelyPresentedGroup.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean 2 33 ['github-actions', 'javgomzar', 'kbuzzard', 'mathlib-merge-conflicts', 'plp127', 'tb65536', 'vihdzp'] mattrobball
assignee:mattrobball
16-18047
16 days ago
16-18083
16 days ago
39-15411
39 days
34855 staroperator
author:staroperator
feat(Order): use `to_dual` for `PFilter` This PR redefines `PFilter` to get rid of `OrderDual` and uses `to_dual` to translate theorems. The whole file of `PFilter` is now deprecated. Some changes: - To align with `Filter`, the order on `PFilter` is changed to the reversed set inclusion. Ultrafilters, the dual notion of maximal ideals, become minimal in this order. - `to_dual` does not work on `sequenceOfCofinals`. I left `Order.Cofinal` and the Rasiowa–Sikorski lemma not `to_dual`-ized, and we should move them to a separate file later. - `IsLEChain` is added to tag `to_dual`. - `IsCoatom.isProper`/`IsCoatom.isMaximal` is deprecated by `Order.Ideal.isProper_of_isCoatom`/`Order.Ideal.isMaximal_of_isProper`, since this result is special to ideals while `IsCoatom` namespace should be for orders in general. --- - [x] depends on: #34820 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 292/242 Mathlib/Order/Atoms.lean,Mathlib/Order/BooleanAlgebra/Basic.lean,Mathlib/Order/BooleanAlgebra/Defs.lean,Mathlib/Order/CompleteLattice/Defs.lean,Mathlib/Order/Ideal.lean,Mathlib/Order/PFilter.lean,Mathlib/Order/Preorder/Chain.lean,Mathlib/Order/PrimeIdeal.lean,Mathlib/Order/PrimeSeparator.lean,Mathlib/Order/ZornAtoms.lean,Mathlib/RingTheory/IdealFilter/Basic.lean,Mathlib/RingTheory/IdealFilter/Topology.lean,Mathlib/Tactic/Translate/ToDual.lean 13 4 ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] nobody
16-10858
16 days ago
16-10636
16 days ago
28-33539
28 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 maintainer-merge 87/67 Mathlib/Computability/Encoding.lean,Mathlib/ModelTheory/Encoding.lean 2 9 ['AlexeyMilovanov', 'dagurtomas', 'github-actions', 'vihdzp'] nobody
15-84308
15 days ago
22-48886
22 days ago
48-28333
48 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] mattrobball
assignee:mattrobball
15-79449
15 days ago
28-15972
28 days ago
28-15564
28 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')`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 10/0 Mathlib/Data/List/Rotate.lean 1 3 ['SnirBroshi', 'eric-wieser', 'github-actions'] joneugster
assignee:joneugster
15-79449
15 days ago
28-12635
28 days ago
28-12226
28 days
39341 drocta
author:drocta
feat(Algebra/Colimit/DirectLimit): add DirectLimit.(NonUnital)StarAlgebra.(lift/of) maps and associated lemmas add the `of` and `lift` maps for `DirectLimit.StarAlgebra` and `DirectLimit.NonUnitalStarAlgebra`, as well as the associated lemmas, `of_f`, `lift_comp_of`, `lift_of`, and `hom_ext` for each. Also make `DirectLimit.NonUnitalAlgebra` only require `[Monoid R]` rather than `[CommSemiring R]`. --- Use of AI: I again asked ChatGPT for some advice about some things about this code. I can personally vouch for all of the code I'm submitting, and that I understand all of it. This is the third part of my project towards supporting direct limits of $C^∗$ -algebras (as I described [on Zulip](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/Early.20feedback.20on.20approach.20towards.20formalizing.20UHF.20algebras.3F) ). This PR adds an import of `Mathlib.Algebra.Star.StarAlgHom` (because it needs `StarAlgHom` and `NonUnitalStarAlgHom`) replacing/encompassing the previously added imports of `Mathlib.Algebra.Star.StarRingHom` and `Mathlib.Algebra.Algebra.NonUnitalHom` (added in PR #38308 and #38672 respectively). t-algebra new-contributor
label:t-algebra$
100/3 Mathlib/Algebra/Colimit/DirectLimit.lean 1 2 ['github-actions'] nobody
15-78860
15 days ago
15-81552
15 days ago
15-81143
15 days
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) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 104/0 Mathlib.lean,Mathlib/Combinatorics/GraphLike/Basic.lean 2 78 ['IvanRenison', 'Jun2M', 'SnirBroshi', 'YaelDillies', 'github-actions', 'lauramonk', 'mathlib-merge-conflicts'] YaelDillies
assignee:YaelDillies
15-67970
15 days ago
21-25122
21 days ago
72-23129
72 days
38199 vihdzp
author:vihdzp
chore: add items to set theory overview --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) documentation t-set-theory maintainer-merge 11/2 docs/overview.yaml 1 5 ['SnirBroshi', 'github-actions', 'joneugster', 'vihdzp'] alreadydone
assignee:alreadydone
15-34899
15 days ago
41-53675
41 days ago
41-53365
41 days
39373 yuanyi-350
author:yuanyi-350
refactor(NumberTheory): golf `Mathlib/NumberTheory/ModularForms/CongruenceSubgroups` - simplifies `Gamma_mem` to a single `simp` proof via `Gamma_mem'` and `SpecialLinearGroup.ext_iff` - shortens `ModularGroup_T_pow_mem_Gamma` and the `Gamma0` closure proofs with direct `simp`/`simpa` arguments Extracted from #38144 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated 4/22 Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean 1 2 ['github-actions', 'yuanyi-350'] nobody
15-25534
15 days ago
15-27267
15 days ago
15-26858
15 days
39374 yuanyi-350
author:yuanyi-350
refactor(NumberTheory): golf `Mathlib/NumberTheory/ModularForms/Derivative` - rewrites `normalizedDerivOfComplex_sub` to reuse the additive and negation lemmas instead of reproving the subtraction formula pointwise Extracted from #38144 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated 4/10 Mathlib/NumberTheory/ModularForms/Derivative.lean 1 2 ['github-actions', 'yuanyi-350'] nobody
15-25328
15 days ago
15-27264
15 days ago
15-26855
15 days
39375 yuanyi-350
author:yuanyi-350
refactor(NumberTheory): golf `Mathlib/NumberTheory/ModularForms/SlashActions` - streamlines `prod_slash_sum_weights` by letting `simp` handle the empty case and removing the redundant singleton split in the inductive step Extracted from #38144 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated 1/5 Mathlib/NumberTheory/ModularForms/SlashActions.lean 1 2 ['github-actions', 'yuanyi-350'] nobody
15-25171
15 days ago
15-27261
15 days ago
15-26852
15 days
39376 yuanyi-350
author:yuanyi-350
refactor(NumberTheory): golf `Mathlib/NumberTheory/RamificationInertia/Basic` - shortens `quotientToQuotientRangePowQuotSucc_surjective` by switching the ideal-factor argument to `irreducible_pow_sup` and `count_normalizedFactors_eq` after isolating the span hypotheses Extracted from #38144 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated 4/10 Mathlib/NumberTheory/RamificationInertia/Basic.lean 1 2 ['github-actions', 'yuanyi-350'] nobody
15-24999
15 days ago
15-27259
15 days ago
15-26850
15 days
36541 BGuillemet
author:BGuillemet
feat(CategoryTheory): define internal equivalence relations Define internal equivalence relations in any category `C`, as a structure on parallel pairs of morphisms. Prove that equivalence relations on types are equivalence relations in the category of types. Prove that kernel pairs are equivalence relations. Define (universally) effective equivalence relations, and a associated class for categories in which every equivalence relation is effective universal. Prove that an effective equivalence relation yields a coequalizer diagram, and that the associated projection on the "quotient" of the relation is a regular epimorphism. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 320/0 Mathlib.lean,Mathlib/CategoryTheory/EquivalenceRelation.lean,Mathlib/CategoryTheory/Limits/Shapes/RegularMono.lean 3 26 ['BGuillemet', 'chrisflav', 'dagurtomas', 'github-actions', 'robin-carlier'] b-mehta
assignee:b-mehta
15-7095
15 days ago
15-38261
15 days ago
36-50516
36 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'] jcommelin
assignee:jcommelin
14-79590
14 days ago
43-70067
43 days ago
43-72188
43 days
39392 jayscambler
author:jayscambler
feat(Cryptography): one-time pad and Shannon perfect secrecy Adds `Mathlib/Cryptography/OTP.lean`. One-time pad over an arbitrary finite abelian group `G`: - `OTP.encrypt k m := m + k`, `OTP.decrypt k c := c - k`. - `OTP.correct`: `decrypt k (encrypt k m) = m`, by `abel`. - `OTP.perfect_secrecy`: for any `m₀, m₁`, the distributions of `encrypt k m₀` and `encrypt k m₁` over uniform `k` are equal; both reduce to `PMF.uniformOfFintype G`. Proof goes via `Equiv.addLeft`. Independent of the Schnorr PR (#39279); no shared definitions. Unlike everything else likely to live under `Mathlib/Cryptography/`, the security guarantee here is information-theoretic, not computational. **AI disclosure**: this PR was a collaboration between myself, Grey Haven's autocontext and Claude Opus 4.7 (Anthropic). I read each line and built locally on current master. (strawberry has three r's) new-contributor LLM-generated 76/0 Mathlib.lean,Mathlib/Cryptography/OTP.lean 2 3 ['MrBrain295', 'github-actions'] nobody
14-75389
14 days ago
15-11463
15 days ago
15-11054
15 days
37745 AntoineChambert-Loir
author:AntoineChambert-Loir
feat(RingTheory/AugmentationIdeal): base change for augmentation ideals Base change for augmentation ideals Co-authored with: @mariainesdff --- - [x] depends on: #37744 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory t-algebra large-import
label:t-algebra$
441/1 Mathlib.lean,Mathlib/Algebra/Algebra/Hom.lean,Mathlib/Algebra/Algebra/Subalgebra/Basic.lean,Mathlib/Algebra/Module/Submodule/Range.lean,Mathlib/LinearAlgebra/Projection.lean,Mathlib/LinearAlgebra/Span/Defs.lean,Mathlib/LinearAlgebra/TensorProduct/Projection.lean,Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean,Mathlib/LinearAlgebra/TensorProduct/Submodule.lean,Mathlib/Order/Disjoint.lean,Mathlib/RingTheory/Ideal/IsAugmentation.lean,Mathlib/RingTheory/TensorProduct/Basic.lean 12 18 ['AntoineChambert-Loir', 'dagurtomas', 'github-actions', 'mathlib-dependent-issues'] nobody
14-44728
14 days ago
14-44799
14 days ago
15-18366
15 days
36218 Brian-Nugent
author:Brian-Nugent
feat(CategoryTheory): Add exact sequences for Sheaf Cohomology In this PR, I add the long exact sequence for sheaf cohomology as well as prove that it is functorial. Since sheaf cohomology is defined in terms of `Ext`, this is done using the covariant sequence for `Ext`. --- - [x] depends on: #34742 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 229/1 Mathlib.lean,Mathlib/Algebra/Homology/SpectralObject/Page.lean,Mathlib/CategoryTheory/ComposableArrows/Basic.lean,Mathlib/CategoryTheory/Sites/SheafCohomology/ExactSequences.lean 4 29 ['Brian-Nugent', 'dagurtomas', 'github-actions', 'joelriou', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] robin-carlier
assignee:robin-carlier
14-21597
14 days ago
14-21597
14 days ago
16-46841
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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
56/26 Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Defs.lean 1 3 ['github-actions', 'wwylele'] themathqueen
assignee:themathqueen
13-79886
13 days ago
30-18237
30 days ago
30-18979
30 days
39438 SnirBroshi
author:SnirBroshi
chore(Order/WellFounded): use `to_dual` Creates `argmax`/`argmaxOn` duals to the existing `argmin`/`argminOn`, and `WellFoundedLT.min`/`WellFoundedGT.max` in order to properly dualize `WellFounded.min_le`. Some theorems about `WellFounded{LT/GT}` which didn't have a dual before have to be renamed to make room, e.g. `StrictMono.range_inj` is renamed to `StrictMono.range_inj_of_wellFoundedLT`. --- This is blocking dualizing things in `ConditionallyCompleteLattice/Basic.lean`. `WellFounded.min_le` has ~30 usages in ~10 files, so deprecating it should probably happen in a separate PR. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 80/34 Mathlib/Data/Finset/Sort.lean,Mathlib/Order/Hom/Set.lean,Mathlib/Order/WellFounded.lean,Mathlib/SetTheory/Ordinal/Enum.lean 4 5 ['SnirBroshi', 'github-actions', 'vihdzp'] nobody
13-77795
13 days ago
13-77867
13 days ago
13-86054
13 days
39106 SnirBroshi
author:SnirBroshi
feat(LinearAlgebra/Matrix/Reindex): `AddEquiv` and `RingEquiv` We had `Matrix.reindex` bundled as a `LinearEquiv` and an `AlgEquiv`, and this bundles it as an `AddEquiv` and a `RingEquiv`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
158/43 Mathlib/LinearAlgebra/Matrix/Basis.lean,Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean,Mathlib/LinearAlgebra/Matrix/Reindex.lean,Mathlib/LinearAlgebra/Matrix/Transvection.lean 4 10 ['SnirBroshi', 'eric-wieser', 'github-actions', 'themathqueen'] nobody
13-77354
13 days ago
16-80041
16 days ago
17-15434
17 days
37707 MavenRain
author:MavenRain
feat(Combinatorics/SimpleGraph): add IsMaximalClique/IsMaximalIndepSet, refactor IsMaximum* to MaximalFor Addresses #34962 new-contributor t-combinatorics 63/31 Mathlib/Combinatorics/SimpleGraph/Clique.lean 1 6 ['MavenRain', 'SnirBroshi', 'eric-wieser', 'github-actions'] nobody
13-59112
13 days ago
13-59184
13 days ago
13-60415
13 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`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 98/0 Mathlib/Data/Nat/Choose/Lucas.lean 1 5 ['WenrongZou', 'github-actions', 'joneugster'] joneugster
assignee:joneugster
13-52577
13 days ago
13-52377
13 days ago
39-2656
39 days
39388 marcelolynch
author:marcelolynch
chore: remove @[expose] from def-free public sections Strip `@[expose]` from `public section` headers in 100 modules where no declaration needs its body visible downstream. A new sweep in the style of #38480 Found using the linter-in-progress: #39387 Relevant Zulip thread: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Removing.20unnecessary.20.60.40.5Bexpose.5D.60/with/595180230 100/100 Mathlib/Algebra/Category/Ring/Small.lean,Mathlib/Algebra/Field/Basic.lean,Mathlib/Algebra/Field/MinimalAxioms.lean,Mathlib/Algebra/Field/Opposite.lean,Mathlib/Algebra/Field/Rat.lean,Mathlib/Algebra/Field/ULift.lean,Mathlib/Algebra/Field/ZMod.lean,Mathlib/Algebra/Group/Action/Option.lean,Mathlib/Algebra/Group/Action/Sigma.lean,Mathlib/Algebra/Group/Action/Sum.lean,Mathlib/Algebra/Group/Action/Units.lean,Mathlib/Algebra/Group/Subgroup/Actions.lean,Mathlib/Algebra/Group/Submonoid/MulAction.lean,Mathlib/Algebra/Module/Projective.lean,Mathlib/Algebra/Module/Submodule/Basic.lean,Mathlib/Algebra/NonAssoc/LieAdmissible/Defs.lean,Mathlib/Algebra/Notation/Prod.lean,Mathlib/Algebra/Order/Floor/Div.lean,Mathlib/Algebra/Order/Group/Action/End.lean,Mathlib/Algebra/Order/Group/End.lean,Mathlib/Algebra/Order/Group/PosPart.lean,Mathlib/Algebra/Order/Kleene.lean,Mathlib/Algebra/Order/Nonneg/Lattice.lean,Mathlib/Algebra/Order/Pi.lean,Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean,Mathlib/Algebra/Ring/Commute.lean,Mathlib/AlgebraicTopology/ModelCategory/Over.lean,Mathlib/Analysis/InnerProductSpace/Coalgebra.lean,Mathlib/Analysis/Normed/Algebra/TrivSqZeroExt.lean,Mathlib/Analysis/Normed/Group/Constructions.lean,Mathlib/Analysis/Normed/Module/MStructure.lean,Mathlib/Analysis/Normed/Operator/Compact/FiniteDimension.lean,Mathlib/Analysis/ODE/DiscreteGronwall.lean,Mathlib/CategoryTheory/Localization/DerivabilityStructure/OfLocalizedEquivalences.lean,Mathlib/CategoryTheory/MarkovCategory/Positive.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Normal.lean,Mathlib/CategoryTheory/Monoidal/Functor/Types.lean,Mathlib/CategoryTheory/Monoidal/Types/Coyoneda.lean,Mathlib/CategoryTheory/Sites/CoversTop/Over.lean,Mathlib/Combinatorics/Additive/FreimanHom.lean,Mathlib/Computability/AkraBazzi/AkraBazzi.lean,Mathlib/Data/ENNReal/Action.lean,Mathlib/Data/ENat/Pow.lean,Mathlib/Data/Finsupp/Pointwise.lean,Mathlib/Data/FunLike/Basic.lean,Mathlib/Data/FunLike/Embedding.lean,Mathlib/Data/FunLike/Equiv.lean,Mathlib/Data/Int/Cast/Pi.lean,Mathlib/Data/List/Monad.lean,Mathlib/Data/NNRat/Lemmas.lean,Mathlib/Data/Nat/Lattice.lean,Mathlib/Data/Prod/Lex.lean,Mathlib/Data/Rat/Cast/Defs.lean,Mathlib/Data/Rat/Cast/OfScientific.lean,Mathlib/Data/Real/Archimedean.lean,Mathlib/Data/ZMod/IntUnitsPower.lean,Mathlib/GroupTheory/GroupAction/Embedding.lean,Mathlib/GroupTheory/IsPerfect.lean,Mathlib/GroupTheory/ResiduallyFinite.lean,Mathlib/LinearAlgebra/CliffordAlgebra/Star.lean,Mathlib/LinearAlgebra/Projectivization/Action.lean,Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Semisimple.lean,Mathlib/MeasureTheory/Function/L2Space.lean,Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean,Mathlib/MeasureTheory/Measure/Sub.lean,Mathlib/MeasureTheory/Measure/Typeclasses/ZeroOne.lean,Mathlib/NumberTheory/ModularForms/EisensteinSeries/E2/Transform.lean,Mathlib/NumberTheory/NumberField/ExistsRamified.lean,Mathlib/NumberTheory/Padics/PadicVal/Defs.lean,Mathlib/Order/ConditionallyCompleteLattice/Basic.lean,Mathlib/Order/Filter/FilterProduct.lean,Mathlib/Order/Heyting/Basic.lean,Mathlib/Order/Interval/Set/OrdConnected.lean,Mathlib/Order/Quotient.lean,Mathlib/Probability/Kernel/Deterministic.lean,Mathlib/RingTheory/Coalgebra/Convolution.lean,Mathlib/RingTheory/Flat/IsBaseChange.lean,Mathlib/RingTheory/HopfAlgebra/TensorProduct.lean,Mathlib/RingTheory/Ideal/GoingDown.lean,Mathlib/RingTheory/Ideal/GoingUp.lean,Mathlib/RingTheory/Ideal/Maximal.lean,Mathlib/RingTheory/Localization/Finiteness.lean,Mathlib/RingTheory/Noetherian/Defs.lean,Mathlib/RingTheory/QuasiFinite/Basic.lean,Mathlib/RingTheory/QuasiFinite/Polynomial.lean,Mathlib/RingTheory/QuasiFinite/Weakly.lean,Mathlib/RingTheory/Regular/ProjectiveDimension.lean,Mathlib/RingTheory/SimpleModule/Basic.lean,Mathlib/RingTheory/Smooth/Fiber.lean,Mathlib/RingTheory/TensorProduct/IsBaseChangeRightExact.lean,Mathlib/RingTheory/Unramified/LocalRing.lean,Mathlib/RingTheory/Valuation/Extension.lean,Mathlib/RingTheory/Valuation/IsTrivialOn.lean,Mathlib/SetTheory/Cardinal/Regular.lean,Mathlib/Tactic/Algebra/Lemmas.lean,Mathlib/Topology/Algebra/UniformMulAction.lean,Mathlib/Topology/CWComplex/Classical/Subcomplex.lean,Mathlib/Topology/EMetricSpace/Pi.lean,Mathlib/Topology/List.lean,Mathlib/Topology/MetricSpace/Pseudo/Pi.lean 100 6 ['eric-wieser', 'github-actions', 'grunweg', 'marcelolynch', 'urkud'] nobody
13-38828
13 days ago
15-16597
15 days ago
15-16188
15 days
39368 gasparattila
author:gasparattila
feat: homogenization of an affine space --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
401/0 Mathlib.lean,Mathlib/LinearAlgebra/AffineSpace/Homogenization.lean,docs/references.bib 3 15 ['eric-wieser', 'gasparattila', 'github-actions'] nobody
13-35994
13 days ago
15-27500
15 days ago
15-28293
15 days
39472 NoahW314
author:NoahW314
feat(RingTheory/MvPolynomial/Homogeneous): add homogeneous lemmas --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory large-import 74/2 Mathlib/Data/Finsupp/Weight.lean,Mathlib/RingTheory/MvPolynomial/Homogeneous.lean,Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean 3 1 ['github-actions'] nobody
13-15043
13 days ago
13-15113
13 days ago
13-14898
13 days
39449 Paul-Lez
author:Paul-Lez
doc: add library note about scoping simp lemmas with weak keys In PR #39262 I noticed that some `simp` lemmas were scoped for a reason that is not immediately obvious, so I figured that adding a library note would be nice in case anyone else runs into this in the future (this pattern is quite common in Mathlib!) In case it's helpful for review, here are links to a few of the PRs that added this scoping initially: - #14233 - #15620 - #15631 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 71/4 Mathlib.lean,Mathlib/Algebra/AddConstMap/Basic.lean,Mathlib/Algebra/CharP/Two.lean,Mathlib/Algebra/GradedMonoid.lean,Mathlib/Algebra/Ring/BooleanRing.lean,Mathlib/Algebra/Ring/CharZero.lean,Mathlib/Tactic.lean,Mathlib/Tactic/SimpLibraryNote.lean 8 1 ['github-actions'] nobody
12-86346
12 days ago
13-14
12 days ago
13-177
13 days
38227 vihdzp
author:vihdzp
chore(Algebra/Order/Monoid/Unbundled/Basic): golfing + formatting We make use of `variable`, fix some weird spacing, and golf many proofs. The only breaking change is that `mul_lt_iff_lt_one_left'`/`add_lt_iff_neg_left` now takes an explicit argument, matching the theorems surrounding it. --- Not too fond of the `calc` tactic. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra t-order
label:t-algebra$
233/501 Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean,Mathlib/Data/Real/Archimedean.lean 2 2 ['github-actions', 'mathlib-merge-conflicts'] nobody
12-79965
12 days ago
12-80025
12 days ago
13-7661
13 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor t-set-theory 19/0 Mathlib/Data/Finset/Card.lean,Mathlib/Data/Fintype/Card.lean 2 10 ['IvanRenison', 'cjrl', 'dagurtomas', 'ghseeli', 'github-actions'] nobody
12-76092
12 days ago
12-76092
12 days ago
50-46539
50 days
35197 j-loreaux
author:j-loreaux
feat: Hölder framework for `lp` spaces --- - [ ] depends on: #35152 - [ ] depends on: #35198 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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 13 ['github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mcdoll', 'mike1729', 'themathqueen'] themathqueen
assignee:themathqueen
12-74380
12 days ago
36-23355
36 days ago
55-25725
55 days
39443 justus-springer
author:justus-springer
feat(Data/Set/Image): `nonempty_preimage_iff` Basically a converse to `nonempty_of_nonempty_preimage`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 4/0 Mathlib/Data/Set/Image.lean 1 4 ['Paul-Lez', 'github-actions', 'justus-springer', 'urkud'] nobody
12-58193
12 days ago
14-2970
14 days ago
14-2561
14 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 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
551/0 Mathlib.lean,Mathlib/LinearAlgebra/Center.lean,Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean,Mathlib/LinearAlgebra/Transvection/Generation.lean 4 16 ['AntoineChambert-Loir', 'dagurtomas', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] joelriou
assignee:joelriou
12-54723
12 days ago
12-54791
12 days ago
60-6830
60 days
39231 mbkybky
author:mbkybky
chore(RingTheory/PicardGroup): drop `StrongRankCondition` assumptions in two lemmas --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 3/6 Mathlib/RingTheory/PicardGroup.lean 1 1 ['github-actions'] nobody
12-43771
12 days ago
17-63137
17 days ago
17-72118
17 days
39504 WenrongZou
author:WenrongZou
feat(MvPowerSeries/Ideal): kernel of map equals map `C` of kernel In this PR, we prove that given a ring homomorphism f, suppose that kernel of f is finitely generated, then kernel of map equals map `C` of kernel. (See `ker_map_of_FG`). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 87/0 Mathlib.lean,Mathlib/RingTheory/MvPowerSeries/Ideal.lean 2 4 ['CoolRmal', 'WenrongZou', 'github-actions'] nobody
12-34574
12 days ago
12-44891
12 days ago
12-44782
12 days
37848 rwst
author:rwst
feat(RingTheory/PowerSeries/Log): log and exp as inverses This adds the lemmas `exp_subst_log` and `log_subst_exp_sub_one`, together with two helpers needed for the proofs. Note: I'm using Claude + Opus for supervised formalization tasks. Claude has no permission to use git on my machine. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory LLM-generated 88/0 Mathlib/RingTheory/PowerSeries/Log.lean,Mathlib/RingTheory/PowerSeries/Substitution.lean 2 10 ['chrisflav', 'github-actions', 'rwst'] chrisflav
assignee:chrisflav
12-20973
12 days ago
18-31102
18 days ago
49-13169
49 days
39514 SnirBroshi
author:SnirBroshi
chore(RingTheory/Polynomial/Basic): golf `degreeLTEquiv` Also extracts the `monomial i a ∈ degreeLT R n` proof to a lemma. --- The semicolons might be a bit excessive, let me know if so. Also the `right_inv` proof is slower than the previous version, so maybe it should be reverted, but the rest is fine. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 11/32 Mathlib/RingTheory/Polynomial/Basic.lean 1 1 ['github-actions'] nobody
12-14372
12 days ago
12-14658
12 days ago
12-14657
12 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`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 117/0 Mathlib.lean,Mathlib/Topology/Bases.lean,Mathlib/Topology/ClosedBases.lean 3 19 ['github-actions', 'scholzhannah'] urkud
assignee:urkud
12-13938
12 days ago
36-40693
36 days ago
65-42610
65 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 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated 3/2 Mathlib/CategoryTheory/CatCommSq.lean 1 2 ['github-actions', 'loefflerd'] nobody
12-13126
12 days ago
25-44650
25 days ago
25-44241
25 days
26479 thefundamentaltheor3m
author:thefundamentaltheor3m
feat(Analysis/Complex/CauchyIntegral): Cauchy–Goursat for Unbounded Rectangles In this PR, we prove versions of the Cauchy-Goursat theorem where the contours in question are rectangular and unbounded (ie, where the contours look like the $\bigsqcup$ symbol). I am not sure if I have formalised these in the best way, or if `Analysis.Complex.CauchyIntegral` is the best place for them (it might be prudent to reorganise the file into multiple files at some point), but I believe this is a useful result. Suggestions welcome. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-analysis sphere-packing 219/0 Mathlib/Analysis/Complex/CauchyIntegral.lean 1 7 ['github-actions', 'j-loreaux', 'loefflerd', 'mathlib4-merge-conflict-bot', 'thefundamentaltheor3m', 'wwylele'] urkud
assignee:urkud
11-66927
11 days ago
11-66927
11 days ago
45-77740
45 days
39183 yuanyi-350
author:yuanyi-350
refactor(Analysis): golf `Mathlib/Analysis/Complex/Exponential` - shortens the reindexing step in `norm_exp_sub_sum_le_norm_mul_exp` by switching from `sum_bij` to `sum_Ico_eq_sum_range` with `simp` Extracted from #37968 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex t-analysis LLM-generated maintainer-merge 8/23 Mathlib/Analysis/Complex/Exponential.lean 1 4 ['Komyyy', 'github-actions', 'yuanyi-350'] urkud
assignee:urkud
11-64420
11 days ago
11-64608
11 days ago
18-45807
18 days
35122 Marygold-Dusk
author:Marygold-Dusk
feat: define C^n submersions This PR defines submersions between C^n manifolds. In the infinite-dimensional setting, submersions are defined via local normal forms rather than surjectivity of the mfderiv. A map f is a submersion at x if, in suitable charts around x and f x, it has the form (u, v) ↦ u after identifying the model space with a product. We prove a few basic properties: - being a submersion is a local property, - products of submersions are submersions, - the set of submersed points is open Future PRs will prove that submersions are C^n and deduce equivalence with the standard definition in finite dimensions. From the path towards the regular value theorem. This file was developed under the supervision of Michael Rothgang. Co-authored-by: Michael Rothgang --- Most of the design is analogues to immersions. t-differential-geometry new-contributor 642/0 Mathlib.lean,Mathlib/Geometry/Manifold/Submersion.lean,docs/references.bib 3 54 ['Marygold-Dusk', 'chrisflav', 'github-actions', 'grunweg'] PatrickMassot and grunweg
assignee:grunweg assignee:PatrickMassot
11-55115
11 days ago
11-55115
11 days ago
55-75240
55 days
37624 IvanRenison
author:IvanRenison
feat(Combinatorics/SimpleGraph/Maps): add theorems about composition --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics maintainer-merge 32/5 Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean 2 11 ['IvanRenison', 'YaelDillies', 'github-actions'] nobody
11-47751
11 days ago
13-15940
13 days ago
54-52325
54 days
39370 fpvandoorn
author:fpvandoorn
feat: add specialized grind sets This adds two grind attributes for specialized tactics. See module doc for more information and motivation. This PR does not tag any lemmas yet. [Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/small.20specialized.20grind.20sets/with/595132109) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 113/0 Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Common.lean,Mathlib/Tactic/GrindAttrs.lean 4 5 ['chenson2018', 'fpvandoorn', 'github-actions'] dwrensha
assignee:dwrensha
11-29411
11 days ago
15-28087
15 days ago
15-27678
15 days
39269 godofecht
author:godofecht
feat(Algebra/Spectrum): add the second resolvent identity Adds `spectrum.resolvent_sub_resolvent`: For `a b : A` in an `R`-algebra and `r` in the resolvent set of both, `resolvent a r - resolvent b r = resolvent a r * (a - b) * resolvent b r`. Companion to `spectrum.resolvent_eq`. t-algebra new-contributor
label:t-algebra$
15/0 Mathlib/Algebra/Algebra/Spectrum/Basic.lean 1 3 ['github-actions', 'wwylele'] nobody
11-24909
11 days ago
17-13074
17 days ago
17-12665
17 days
39366 akiezun
author:akiezun
feat(Data/Nat): add prime divisibility for ascFactorial and choose Adds two prime-divisibility lemmas for natural-number factorial/binomial APIs. The first characterizes when a prime divides an ascending factorial: `Nat.Prime.dvd_ascFactorial_iff`. The second applies this to binomial coefficients: `Nat.Prime.dvd_choose_add_sub_one_iff`, using `Nat.ascFactorial_eq_factorial_mul_choose'` and cancellation of the `n!` factor when `n < p`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor large-import 46/0 Mathlib.lean,Mathlib/Data/Nat/Choose/Consecutive.lean,Mathlib/Data/Nat/Factorial/BigOperators.lean 3 9 ['SnirBroshi', 'akiezun', 'github-actions', 'wwylele'] nobody
11-17456
11 days ago
11-19497
11 days ago
15-29467
15 days
39549 Hagb
author:Hagb
feat(Order/RelIso/Basic): `swap`s and `compl`s are `Equiv`s --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 13/8 Mathlib/Order/RelIso/Basic.lean 1 3 ['Hagb', 'github-actions', 'leanprover-radar'] nobody
11-9792
11 days ago
11-12233
11 days ago
11-11824
11 days
39555 b-mehta
author:b-mehta
feat(Data/Finset/Image): relate images with nontriviality --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 20/0 Mathlib/Data/Finset/Image.lean 1 1 ['github-actions'] nobody
11-3332
11 days ago
11-3410
11 days ago
11-3001
11 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 2/2 Mathlib/Data/Vector/Basic.lean,Mathlib/Data/Vector/Defs.lean 2 4 ['BoltonBailey', 'github-actions', 'leanprover-radar'] nobody
10-82854
10 days ago
10-82928
10 days ago
20-9749
20 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 398/0 Mathlib.lean,Mathlib/Combinatorics/DiHypergraph/Basic.lean 2 4 ['b-mehta', 'espottesmith', 'github-actions', 'mathlib4-merge-conflict-bot'] nobody
10-80719
10 days ago
56-50104
56 days ago
114-33162
114 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] nobody
10-80718
10 days ago
136-11426
136 days ago
136-11017
136 days
37443 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Walk/Operations): permutations of support --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics maintainer-merge 17/0 Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Operations.lean 2 6 ['YaelDillies', 'github-actions', 'mathlib-merge-conflicts'] b-mehta
assignee:b-mehta
10-79253
10 days ago
18-52111
18 days ago
58-36978
58 days
39027 fpvandoorn
author:fpvandoorn
feat: delaborators for inequalities in big operators `∏ i < n, f i` was already accepted as valid syntax, but this PR now also prints appropriate sums/products using this notation. --- [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/missing.20delaborator.20for.20finsum) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra t-meta
label:t-algebra$
132/49 Mathlib/Algebra/BigOperators/Group/Finset/Defs.lean,MathlibTest/BigOps.lean 2 2 ['fpvandoorn', 'github-actions'] kim-em
assignee:kim-em
10-79248
10 days ago
11-29645
11 days ago
11-39839
11 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) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order maintainer-merge 465/408 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/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 80 8 ['SnirBroshi', 'dagurtomas', 'github-actions', 'leanprover-radar', 'mathlib-merge-conflicts'] nobody
10-69131
10 days ago
10-69170
10 days ago
42-54890
42 days
39558 b-mehta
author:b-mehta
feat(Data/Finset/Prod): count the number of ordered pairs in a set These proofs were written a while ago, so they may be golfable --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 21/0 Mathlib/Data/Finset/Prod.lean 1 2 ['github-actions', 'plp127'] nobody
10-59850
10 days ago
11-805
11 days ago
11-396
11 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory large-import 123/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 2 ['github-actions', 'mathlib-merge-conflicts'] mariainesdff
assignee:mariainesdff
10-38168
10 days ago
10-38245
10 days ago
34-82146
34 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order carleson 21/5 Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean 1 19 ['JovanGerb', 'SnirBroshi', 'github-actions', 'grunweg', 'lua-vr', 'mathlib-merge-conflicts'] nobody
10-32376
10 days ago
10-32441
10 days ago
20-5945
20 days
39567 AlexBrodbelt
author:AlexBrodbelt
feat(Mathlib/Data/Finite/Option): option type is finite iff type is finite Option type is finite if and only if the type is finite. This is an intermediate result to proving that if the `GroupWithZero` is (in)finite then the `Units` are (in)finite. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor 25/0 Mathlib.lean,Mathlib/Data/Finite/Option.lean 2 11 ['AlexBrodbelt', 'github-actions', 'plp127', 'themathqueen'] nobody
10-31991
10 days ago
10-48042
10 days ago
10-48247
10 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` [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis new-contributor 225/0 Mathlib.lean,Mathlib/Analysis/Distribution/TestFunctionSchwartz.lean 2 24 ['aditya-ramabadran', 'github-actions', 'j-loreaux'] ADedecker and mcdoll
assignee:mcdoll assignee:ADedecker
10-23950
10 days ago
19-29124
19 days ago
51-29011
51 days
39585 chrisflav
author:chrisflav
chore(RingTheory): add `rfl` lemmas for `Ideal.quotientInfRingEquivPiQuotient` From Pi1. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 11/0 Mathlib/RingTheory/Ideal/Quotient/Operations.lean 1 1 ['github-actions'] nobody
10-23014
10 days ago
10-23097
10 days ago
10-22688
10 days
39494 Hagb
author:Hagb
chore(Data/Finsupp/MonomialOrder): rename fields of `MonomialOrder` to match naming conventions Moves: - MonomialOrder.acm -> MonomialOrder.addCommMonoid_syn - MonomialOrder.lo -> MonomialOrder.linearOrder_syn - MonomialOrder.iocam -> MonomialOrder.isOrderedCancelAddMonoid_syn - MonomialOrder.wf -> MonomialOrder.wellFoundedLT_syn --- See https://github.com/leanprover-community/mathlib4/pull/32829#discussion_r2716534558. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 15/6 Mathlib/Data/Finsupp/MonomialOrder.lean,Mathlib/RingTheory/MvPolynomial/Groebner.lean 2 1 ['github-actions'] nobody
10-20086
10 days ago
12-71776
12 days ago
12-71894
12 days
39591 plp127
author:plp127
feat: `Equiv.symm_trans` Add theorem `Equiv.symm_trans`, which says `(f.trans g).symm = g.symm.trans f.symm`. See [Zulip](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/.60Equiv.2Esymm_trans.60/near/596266434). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) easy t-logic 2/0 Mathlib/Logic/Equiv/Defs.lean 1 1 ['github-actions'] nobody
10-12338
10 days ago
10-12433
10 days ago
10-12024
10 days
34361 grunweg
author:grunweg
chore: rename comp' to fun_comp a few more times; use to_fun to autog… …enerate -------- - [x] depends on: #34257 (then this PR can be done the proper way) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 19/42 Mathlib/Analysis/Analytic/Composition.lean,Mathlib/Analysis/Calculus/DifferentialForm/Basic.lean,Mathlib/Analysis/Calculus/FDeriv/Comp.lean,Mathlib/Analysis/Calculus/VectorField.lean,Mathlib/Analysis/Meromorphic/Basic.lean 5 10 ['JovanGerb', 'github-actions', 'grunweg', 'mathlib-dependent-issues'] j-loreaux
assignee:j-loreaux
9-79185
9 days ago
10-7063
10 days ago
10-52120
10 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 17 ['EtienneC30', 'dennj', 'dupuisf', 'github-actions', 'grunweg', 'j-loreaux', 'mathlib-merge-conflicts', 'riccardobrasca'] kex-y
assignee:kex-y
9-79184
9 days ago
33-1238
33 days ago
43-33842
43 days
35619 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Clique): intersection and union of cliques Plus a couple of lemmas. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] b-mehta
assignee:b-mehta
9-79183
9 days ago
36-22073
36 days ago
57-84089
57 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 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability new-contributor 181/0 Mathlib.lean,Mathlib/InformationTheory/Coding/LinearCode.lean 2 37 ['cduenasnavarro', 'github-actions', 'linesthatinterlace', 'rkirov', 'vihdzp', 'wwylele'] kex-y
assignee:kex-y
9-79180
9 days ago
46-12261
46 days ago
46-12615
46 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology t-analysis 408/0 Mathlib.lean,Mathlib/Topology/EMetricSpace/RVariation.lean 2 2 ['felixpernegger', 'github-actions'] urkud
assignee:urkud
9-79179
9 days ago
43-51298
43 days ago
43-51283
43 days
38716 YaelDillies
author:YaelDillies
feat(Algebra/Order): `NNRat.cast_sub` From AddCombi --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] themathqueen
assignee:themathqueen
9-79178
9 days ago
28-59033
28 days ago
28-63007
28 days
38974 Brian-Nugent
author:Brian-Nugent
chore: fix documentation of `LocallyQuasiFinite` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-geometry easy 6/5 Mathlib/AlgebraicGeometry/Morphisms/QuasiFinite.lean 1 1 ['github-actions'] alreadydone
assignee:alreadydone
9-79177
9 days ago
24-5450
24 days ago
24-5041
24 days
39172 yuanyi-350
author:yuanyi-350
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic` - refactors `Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic` by simplifying `stronglyMeasurable_in_set` and `stronglyMeasurable_of_measurableSpace_le_on` Extracted from #38104 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated t-measure-probability 16/42 Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean 1 2 ['github-actions', 'yuanyi-350'] kex-y
assignee:kex-y
9-79175
9 days ago
18-54605
18 days ago
18-54196
18 days
39384 EngelsVon
author:EngelsVon
feat(Analysis/Calculus/DifferentialForm): Stokes' theorem on rectangular boxes ## Summary This PR proves the generalized Stokes theorem for differential forms on rectangular boxes $[a, b] \subset \mathbb{R}^{m+1}$. The proof strategy is: 1. Extract the `i`-th signed face component `boxFaceComponent ω i` from an `m`-form `ω` — a scalar function whose divergence equals the top-form density of the exterior derivative `dω`. 2. Apply Mathlib's existing divergence theorem for boxes (`integral_divergence_of_hasFDerivAt_off_countable'`). This gives a genuine proved Stokes formula in the Euclidean setting, complementing the existing infrastructure for differential forms. ## Main definitions - `DifferentialForm.topFormDensity`: density function of a top-form field - `DifferentialForm.boxFaceComponent`: the `i`-th signed face component of an `m`-form on `ℝ^(m+1)` - `DifferentialForm.boxBoundaryIntegral`: the signed boundary integral over `∂[a,b]` ## Main results - `box_stokes_of_hasFDerivAt`: Stokes' theorem on boxes with pointwise differentiability hypotheses - `box_stokes_of_contDiff`: a convenient `C¹` formulation t-analysis new-contributor 314/0 Mathlib.lean,Mathlib/Analysis/Calculus/DifferentialForm/BoxStokes.lean 2 2 ['github-actions'] j-loreaux
assignee:j-loreaux
9-79171
9 days ago
15-19836
15 days ago
15-19427
15 days
39389 i-love-lean
author:i-love-lean
feat(Analysis/SpecialFunctions): homeomorphism for spherical coordinates A few months ago, I noticed that mathlib was missing change of variables to spherical coordinates, which is taught in undergraduate calculus and useful for many 3D integrals. So far, I used `PolarCoord.lean` as reference and implemented a similar homeomorphism for spherical coordinates. There's still a lot of work left to prove an analog of `integral_comp_polarCoord_symm` but for spherical coordinates, so I'm splitting up the work into several PRs. I also fixed a typo in `PolarCoord.lean`. t-analysis new-contributor 133/2 Mathlib.lean,Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean,Mathlib/Analysis/SpecialFunctions/PolarCoord.lean,Mathlib/Analysis/SpecialFunctions/SphericalCoord.lean 4 4 ['github-actions', 'i-love-lean', 'wwylele'] j-loreaux
assignee:j-loreaux
9-79170
9 days ago
15-10971
15 days ago
15-11382
15 days
39406 roos-j
author:roos-j
feat(Analysis): van der Corput's lemma Adds van der Corput's lemma on one-dimensional oscillatory integrals, a standard tool in harmonic analysis. Co-authored-by: Manasa Praveen --- From https://github.com/roos-j/lean-oscillatory, see there for future plans Zulip discussion [#mathlib4 > Oscillatory integrals in Lean](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Oscillatory.20integrals.20in.20Lean/with/584786060) AI disclosure: The code in this PR was predominantly human-written. gpt-5.5 has helped in the later stages with shortening proofs, golfing and general advice. t-analysis new-contributor 551/0 Mathlib.lean,Mathlib/Analysis/OscillatoryIntegrals/VanDerCorput.lean 2 2 ['github-actions'] j-loreaux
assignee:j-loreaux
9-79168
9 days ago
14-56830
14 days ago
14-57485
14 days
39441 Paul-Lez
author:Paul-Lez
feat: small lemma about multilinear power series I'm currently working on a PR that connects the `PowerSeries` API to the `FormalMultilinearSeries` API, and in particular constructs a map from `PowerSeries A` to `FormalMultilinearSeries R A A` for any `R`-algebra `A`. This lemma was useful for proving that this map respects composition. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 7/0 Mathlib/Analysis/Analytic/Composition.lean 1 3 ['Paul-Lez', 'github-actions', 'grunweg'] j-loreaux
assignee:j-loreaux
9-79167
9 days ago
14-3895
14 days ago
14-3486
14 days
39454 SnirBroshi
author:SnirBroshi
feat(Analysis/Convex/Jensen): more forms of Jensen's strict inequality Adds iff theorems for Jensen's strict inequality for `<`/`=`, positive/nonnegative weights, and canonical form versions. --- Note that as established by existing theorems in the file, "canonical" here refers to comparing terms to the center of mass instead of to each other. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 95/13 Mathlib/Analysis/Convex/Jensen.lean 1 1 ['github-actions'] j-loreaux
assignee:j-loreaux
9-79165
9 days ago
13-78916
13 days ago
13-78507
13 days
39489 Paul-Lez
author:Paul-Lez
fix: defeq abuse in HasFTaylorSeriesUpToOn.comp Removes a `set_option backward.isDefEq.respectTransparency false`. The fix isn't as nice as I would have hoped (I tried to make it smaller but to no avail). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 5/2 Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean 1 1 ['github-actions'] j-loreaux
assignee:j-loreaux
9-79163
9 days ago
12-74913
12 days ago
12-74504
12 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. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
385/286 Mathlib/Algebra/AddTorsor/Basic.lean,Mathlib/Algebra/AddTorsor/Defs.lean,Mathlib/Algebra/Group/Pointwise/Set/Scalar.lean,Mathlib/Algebra/Notation/Defs.lean,Mathlib/Analysis/Convex/Segment.lean,Mathlib/Tactic/Translate/ToAdditive.lean 6 2 ['github-actions', 'grunweg'] nobody
9-74161
9 days ago
9-74235
9 days ago
15-77513
15 days
39547 Hagb
author:Hagb
chore(Order/Preorder/Finite): use `@[to_dual]` on lemmas about `{Min,Max}imal{For,}` Proofs of other theorems (e.g. in #39427) with dual theorems dependent on these lemmas would benefit from their duality. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 11/25 Mathlib/Order/Preorder/Finite.lean 1 4 ['Hagb', 'github-actions', 'vihdzp'] nobody
9-72396
9 days ago
11-12654
11 days ago
11-12245
11 days
39506 b-mehta
author:b-mehta
feat(Data/Complex/Basic): add simproc to reduce powers of I This is enabled by default to make eg i^5 simplify automatically. We intentionally require the exponent to be a numeral, as this is intended to be a reduction statement, and for symbolic `n`, the lemma `I_pow_eq_pow_mod` should be used instead. Note that we can't have `I_pow_eq_pow_mod` as a simp lemma due to looping. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 65/5 Mathlib/Algebra/Group/Defs.lean,Mathlib/Analysis/Meromorphic/FactorizedRational.lean,Mathlib/Analysis/SpecialFunctions/Elliptic/Weierstrass.lean,Mathlib/Data/Complex/Basic.lean,MathlibTest/Simproc/IPow.lean 5 14 ['Paul-Lez', 'b-mehta', 'eric-wieser', 'github-actions'] nobody
9-52616
9 days ago
11-1389
11 days ago
12-24682
12 days
39611 mbkybky
author:mbkybky
feat(RingTheory): let `B` be a faithfully flat `A`-algebra, then `A` is a local ring if `B` is Let `B` be a faithfully flat `A`-algebra, then `A` is a local ring if `B` is. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 13/0 Mathlib/RingTheory/Flat/FaithfullyFlat/Algebra.lean 1 1 ['github-actions'] nobody
9-43825
9 days ago
9-43908
9 days ago
9-43499
9 days
39605 Qinghev
author:Qinghev
Add docstrings for reversed range telescoping lemmas This PR adds docstrings for two existing Finset telescoping lemmas and their additive versions generated by `to_additive`: * `Finset.prod_range_div'` / `Finset.sum_range_sub'` * `Finset.eq_prod_range_div` / `Finset.eq_sum_range_sub` The goal is a small documentation-only contribution that makes the reversed range telescoping API easier to discover from search and hover docs. Local checks: * `git diff --check -- Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean` * Attempted `lake env lean Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean`, but local validation is currently blocked by downloading the `leanprover/lean4:v4.30.0-rc2` toolchain from GitHub timing out/connection-resetting on this machine. Opened as draft until the toolchain/network check can be completed or CI confirms the documentation-only change. t-algebra new-contributor
label:t-algebra$
8/2 Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean 1 2 ['github-actions'] nobody
9-42273
9 days ago
9-42273
9 days ago
9-41864
9 days
39332 Michaillus
author:Michaillus
chore(Topology/Spectral): Added two small lemmas chore(Topology/Spectral): Added two lemmas `IsCompact.isClosed_constructibleTopology_of_isOpen` `IsCompact.isClosed_constructibleTopology_of_isClosed` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology new-contributor 12/0 Mathlib/Topology/Spectral/ConstructibleTopology.lean 1 7 ['Michaillus', 'github-actions', 'plp127', 'qawbecrdtey'] PatrickMassot
assignee:PatrickMassot
9-38767
9 days ago
16-6843
16 days ago
16-6434
16 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 354/12 Mathlib.lean,Mathlib/Algebra/Order/WithTop/Untop0.lean,Mathlib/Analysis/Complex/CanonicalDecomposition.lean,Mathlib/Analysis/Meromorphic/Divisor.lean,Mathlib/Analysis/Meromorphic/Order.lean,Mathlib/Analysis/Meromorphic/RCLike.lean,Mathlib/Topology/LocallyFinsupp.lean,Mathlib/Topology/MetricSpace/Pseudo/Defs.lean 8 25 ['github-actions', 'j-loreaux', 'kebekus'] j-loreaux
assignee:j-loreaux
9-38368
9 days ago
9-38368
9 days ago
57-63530
57 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 10/3 Mathlib/RingTheory/Finiteness/Ideal.lean 1 1 ['github-actions'] mattrobball
assignee:mattrobball
9-35611
9 days ago
18-35203
18 days ago
44-69849
44 days
39225 junodeveloper
author:junodeveloper
feat(SimpleGraph): add no-bridge theorem for even degree graphs This PR proves that a finite graph in which every vertex has even degree has no bridge. It adds: * `SimpleGraph.not_isBridge_of_even_degree` The proof argues by contradiction: if an edge is a bridge, delete it and look at the connected component containing one endpoint. In that component, the endpoint has odd degree, while any other odd-degree vertex would contradict the bridge assumption and the even-degree hypothesis. This contradicts the handshaking lemma via the existing odd-degree API. Local checks: ```bash lake build Mathlib.Combinatorics.SimpleGraph.Connectivity.EdgeConnectivity lake exe lint-style Mathlib.Combinatorics.SimpleGraph.Connectivity.EdgeConnectivity lake exe runLinter Mathlib.Combinatorics.SimpleGraph.Connectivity.EdgeConnectivity ``` ## AI usage disclosure I used OpenClaw/Codex while developing this PR. Much of the Lean proof of `not_isBridge_of_even_degree` was drafted with AI assistance, including API search and proof refactoring. I reviewed the generated code, made edits, ran the local checks above, and understand and take responsibility for the final statement and proof. t-combinatorics new-contributor large-import LLM-generated 122/0 Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean 1 12 ['Rida-Hamadani', 'SnirBroshi', 'github-actions', 'junodeveloper', 'linesthatinterlace'] nobody
9-33538
9 days ago
18-3113
18 days ago
18-2704
18 days
39607 TentativeConvert
author:TentativeConvert
feat(Algebra/DirectSum): equivalence between direct sum indexed by ι₁ and double sum indexed by ι₂ and fibres of f : ι₁ → ι₂ 1. Add variant `equivCongrLeft'` of `equivCongrLeft`, and corresponding `…_apply` lemma. 2. Add `…_of lemmas` for both `equivCongrLeft` and `equivCongrLeft'`. 3. Add `…of lemma` for `sigmaCurry`, i.e. `sigmaCurry_of`. 4. Add `sigmaFiberAddEquiv`: the equivalence between a direct sum indexed by a type `ι₁` and the double sum indexed by a type `ι₂` and the fibres of a map `f : ι₁ → ι₂`. Add two `…_apply` lemmas and an `…_of` lemma. --- This is supposed to be a first step towards merging the draft PR #39356. re 1: Mathematically, I don't see why one version should be preferred over the other, but I found the existing `equivCongrLeft` more difficult to work with when the equivalence `h : ι ≃ κ` is naturally given in the opposite direction. (I could not avoid explicit type casts through the equality `h.symm.symm = h` when defining `sigmaFiberAddEquiv` in terms of `equivCongrLeft`.) Very unsure about the name of `equivCongrLeft'`. (I see that the name `equivCongrLeft` was chosen in analogy with `Equiv.piCongrLeft`. `Equiv.piCongrRight` looks very different, so presumably `equivCongrLeft'` should *not* be called `equivCongrRight`.) re 4: Very unsure about the naming of the two different `…_apply` lemmas; called them `…_apply` and `…_apply'` for now. The second (`…_apply'`) cannot be a `simp` lemma as it would prevent the first (`…_apply`) from firing. I've used Claude Opus for understanding error messages and git interaction, but everything is hand coded. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra new-contributor
label:t-algebra$
66/1 Mathlib/Algebra/DirectSum/Basic.lean 1 3 ['github-actions'] nobody
9-32808
9 days ago
9-45361
9 days ago
9-46582
9 days
39624 justus-springer
author:justus-springer
feat(Algebra/MvPolynomial/PDeriv): a coefficient formula for `pderiv` This formula is useful for defining partial derivatives of multivariate power series, see PR #39626. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
15/0 Mathlib/Algebra/MvPolynomial/PDeriv.lean 1 1 ['github-actions'] nobody
9-22985
9 days ago
9-23579
9 days ago
9-23170
9 days
39625 justus-springer
author:justus-springer
feat(RingTheory/MvPowerSeries/Trunc): generalize truncation lemmas Generalize `coeff_trunc_mul_trunc_eq_coeff_mul` (and its analogs for `truncFinset` and `trunc'`) to allow for different truncation levels for the two arguments. This matches the API for univariate power series, where we already have `PowerSeries.coeff_mul_eq_coeff_trunc_mul_trunc₂`. This is useful for defining partial derivatives of multivariate power series, see PR #39626. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 39/7 Mathlib/RingTheory/MvPowerSeries/Trunc.lean 1 1 ['github-actions'] nobody
9-22967
9 days ago
9-23362
9 days ago
9-22953
9 days
39487 ADedecker
author:ADedecker
chore: switch `EqLocus` from `LinearMapClass` to `LinearMap` --- Note: this PR was opened at 35000 feet :slightly_smiling_face: [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
18/14 Mathlib/Algebra/Algebra/Subalgebra/Basic.lean,Mathlib/Algebra/Module/Submodule/EqLocus.lean,Mathlib/Analysis/InnerProductSpace/MeanErgodic.lean,Mathlib/Topology/Algebra/Module/ContinuousLinearMap/Basic.lean 4 10 ['ADedecker', 'b-mehta', 'github-actions', 'j-loreaux', 'themathqueen'] nobody
9-6338
9 days ago
9-47878
9 days ago
12-19324
12 days
33714 idontgetoutmuch
author:idontgetoutmuch
feat(Mathlib/Geometry/Manifold): Riemannian metrics exist II Supersedes https://github.com/leanprover-community/mathlib4/pull/33519 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] nobody
8-80717
8 days ago
40-33868
40 days ago
85-40442
85 days
39635 SnirBroshi
author:SnirBroshi
feat(LinearAlgebra/Eigenspace/Matrix): a scalar is in the spectrum iff it's an eigenvalue --- [#Is there code for X? > Matrix eigenvalues: spectrum and mulVec](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Matrix.20eigenvalues.3A.20spectrum.20and.20mulVec/with/596538140) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
18/0 Mathlib/LinearAlgebra/Eigenspace/Matrix.lean 1 1 ['github-actions'] nobody
8-79171
8 days ago
8-79252
8 days ago
8-78843
8 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'] JovanGerb
assignee:JovanGerb
8-79137
8 days ago
31-45157
31 days ago
48-42959
48 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 7 ['SnirBroshi', 'github-actions', 'jcommelin', 'joneugster', 'kim-em'] bryangingechen
assignee:bryangingechen
8-79133
8 days ago
38-85469
38 days ago
38-85678
38 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 211/0 Mathlib.lean,Mathlib/Analysis/Complex/ValueDistribution/Proximity/IntegralPresentation.lean 2 11 ['github-actions', 'kebekus', 'wwylele'] j-loreaux
assignee:j-loreaux
8-79132
8 days ago
33-64190
33 days ago
34-58484
34 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
30/23 Mathlib/LinearAlgebra/TensorProduct/Basic.lean,Mathlib/LinearAlgebra/TensorProduct/Defs.lean 2 6 ['dagurtomas', 'github-actions', 'kbuzzard', 'leanprover-radar'] themathqueen
assignee:themathqueen
8-79131
8 days ago
28-7128
28 days ago
28-6719
28 days
39474 emlis42
author:emlis42
feat(Topology/Separation/Hausdorff): add `Filter.limUnder_congr` This PR adds `Filter.limUnder_congr` and some lemmas about `limUnder`. `Filter.limUnder_congr` allows rewriting `limUnder` expressions using equivalences of convergence behavior, without proving the filters actually converge, allowing convergence proofs to be carried out on more convenient expressions latter. t-topology new-contributor large-import 24/1 Mathlib/Order/Filter/AtTopBot/Archimedean.lean,Mathlib/Topology/Separation/Hausdorff.lean 2 2 ['github-actions'] PatrickMassot
assignee:PatrickMassot
8-79129
8 days ago
13-14159
13 days ago
13-13750
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'] ocfnash
assignee:ocfnash
8-78093
8 days ago
24-60320
24 days ago
34-32942
34 days
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 78 ['SnirBroshi', 'YaelDillies', 'github-actions', 'jessealama', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] nobody
8-75683
8 days ago
10-60512
10 days ago
54-79842
54 days
35136 joelriou
author:joelriou
feat(AlgebraicGeometry): points of the small étale site The main definition in this PR is `Scheme.pointSmallEtale`. Given a morphism `Spec (.of Ω) ⟶ S` where `Ω` is a separably closed field, we define the corresponding point of the small étale site of `S`. We show that these points form a conservative family. (This PR also removes the definition `Scheme.geometricFiber` which was not correct.) Co-authored-by: Christian Merten --- - [x] depends on: #35141 - [x] depends on: #35175 - [x] depends on: #35240 - [x] depends on: #34976 - [x] depends on: #33958 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-geometry large-import 301/6 Mathlib.lean,Mathlib/AlgebraicGeometry/Fiber.lean,Mathlib/AlgebraicGeometry/Morphisms/Etale.lean,Mathlib/AlgebraicGeometry/Sites/Etale.lean,Mathlib/AlgebraicGeometry/Sites/EtalePoint.lean,Mathlib/CategoryTheory/Elements.lean,Mathlib/CategoryTheory/EssentialImage.lean,Mathlib/CategoryTheory/Limits/FinallySmall.lean,Mathlib/CategoryTheory/Limits/MorphismProperty.lean,Mathlib/CategoryTheory/MorphismProperty/Comma.lean,Mathlib/CategoryTheory/ObjectProperty/Small.lean 11 4 ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] nobody
8-53239
8 days ago
8-53279
8 days ago
9-7837
9 days
38934 YaelDillies
author:YaelDillies
feat(Geometry): convex hull in a `ConvexSpace` --- - [x] depends on: #38905 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-convex-geometry 119/0 Mathlib.lean,Mathlib/Geometry/Convex/Hull.lean 2 11 ['YaelDillies', 'github-actions', 'martinwintermath', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] nobody
8-45096
8 days ago
8-45527
8 days ago
8-45831
8 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. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 47/30 Mathlib/Combinatorics/SimpleGraph/Paths.lean 1 1 ['github-actions'] nobody
8-39004
8 days ago
34-9618
34 days ago
34-9209
34 days
39627 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/LapMatrix): 0 is always an eigenvalue and the determinant is always zero, plus a few other small lemmas. --- - [x] depends on: #39642 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 71/15 Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean 1 2 ['github-actions', 'mathlib-dependent-issues'] nobody
8-37119
8 days ago
8-41589
8 days ago
9-2490
9 days
39657 mcdoll
author:mcdoll
feat(Algebra): add abstract `prod_apply` and `FunLike.coe_prod` Follow-up of #37779, where abstract `IsApply` classes were introduced. Now, we can prove a generic `sum_apply` lemma and in following PRs this will replace specific ones in function spaces. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
25/5 Mathlib/Algebra/BigOperators/Pi.lean,Mathlib/Analysis/Calculus/FDeriv/Add.lean,Mathlib/Data/Matrix/PEquiv.lean,Mathlib/LinearAlgebra/Matrix/Polynomial.lean,Mathlib/LinearAlgebra/QuadraticForm/Dual.lean 5 2 ['github-actions', 'mcdoll'] nobody
8-29339
8 days ago
8-29943
8 days ago
8-29534
8 days
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 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 199/0 Mathlib.lean,Mathlib/Combinatorics/SetFamily/DualVC.lean,docs/references.bib 3 37 ['Shreyas4991', 'YaelDillies', 'Zetetic-Dhruv', 'github-actions'] nobody
8-24704
8 days ago
20-6937
20 days ago
36-53577
36 days
37189 Brian-Nugent
author:Brian-Nugent
feat(AlgebraicGeometry): The pushforward of a quasi-coherent sheaf between affines is quasi-coherent To be more precise, we show that if `AlgebraicGeometry.Scheme.Modules.fromTildeΓ` is an isomorphism then the same holds for the pushforward. This will show that being quasicoherent is stable under pushforward for affine morphisms once it is shown that `AlgebraicGeometry.Scheme.Modules.fromTildeΓ` being an isomorphism is equivalent to being quasicoherent. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-geometry maintainer-merge 215/6 Mathlib/Algebra/Category/ModuleCat/Localization.lean,Mathlib/Algebra/Category/ModuleCat/Sheaf.lean,Mathlib/Algebra/Category/ModuleCat/Sheaf/PushforwardContinuous.lean,Mathlib/Algebra/Module/LocalizedModule/Basic.lean,Mathlib/AlgebraicGeometry/Modules/Sheaf.lean,Mathlib/AlgebraicGeometry/Modules/Tilde.lean,Mathlib/Topology/Sheaves/SheafCondition/Sites.lean 7 49 ['Brian-Nugent', 'chrisflav', 'github-actions', 'joelriou'] adamtopaz and chrisflav
assignee:adamtopaz assignee:chrisflav
8-23176
8 days ago
9-5861
9 days ago
43-24730
43 days
39665 justus-springer
author:justus-springer
feat(AlgebraicGeometry/AffineSpace): affine space over an integral base is integral Prove that `AffineSpace` inherits the properties `IrreducibleSpace`, `IsReduced` and `IsIntegral` from its base. Also clean up a few variables, that were used very scarcely. These were causing weird issues in these new instances, where they would be automatically included. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-geometry 33/12 Mathlib/AlgebraicGeometry/AffineSpace.lean 1 1 ['github-actions'] nobody
8-19257
8 days ago
8-19338
8 days ago
8-18929
8 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 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) brownian t-measure-probability large-import 236/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 5 ['EtienneC30', 'github-actions', 'mathlib-dependent-issues', 'sgouezel'] sgouezel
assignee:sgouezel
8-12403
8 days ago
8-12370
8 days ago
74-25712
74 days
39223 BryceT233
author:BryceT233
feat(RingTheory/Extension): surjectivity and kernel of `Cotangent.map` This PR adds `Cotangent.map_surjective_of_comap_eq` and `Cotangent.map_ker_of_surjective`, which are adaptations of the existing lemmas `Ideal.mapCotangent_surjective_of_comap_eq` and `Ideal.mapCotangent_ker_of_surjective` to the cotangent space of extensions. Because `Algebra.Extension.Cotangent` uses a type synonym to define the cotangent space of an extension, the results for `Ideal.mapCotangent` could not be used directly and needed to be restated in terms of `Algebra.Extension.Cotangent.map`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 32/0 Mathlib/RingTheory/Extension/Basic.lean 1 1 ['github-actions'] nobody
8-3888
8 days ago
18-5310
18 days ago
18-4901
18 days
36667 NoneMore
author:NoneMore
feat(ModelTheory): add `exClosure` definition for first-order formulas Prepare for moving realizations between elementarily equivalent structures. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-logic 37/0 Mathlib/ModelTheory/Semantics.lean,Mathlib/ModelTheory/Syntax.lean 2 2 ['github-actions'] nobody
7-80716
7 days ago
75-64937
75 days ago
75-64528
75 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: ![](https://ncatlab.org/nlab/files/frobenius_laws.jpg) 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 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] mariainesdff
assignee:mariainesdff
7-79235
7 days ago
30-6061
30 days ago
76-70442
76 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 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 41/7 Mathlib/Order/Partition/Basic.lean 1 1 ['github-actions'] bryangingechen
assignee:bryangingechen
7-79227
7 days ago
42-77612
42 days ago
42-77203
42 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) ``` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 32/0 Mathlib/Data/EReal/Operations.lean,MathlibTest/EReal.lean 2 2 ['github-actions', 'vihdzp'] TwoFX
assignee:TwoFX
7-79223
7 days ago
24-1505
24 days ago
24-1096
24 days
39174 yuanyi-350
author:yuanyi-350
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Integral/Asymptotics` - refactors `Mathlib/MeasureTheory/Integral/Asymptotics` by simplifying `IsBigO.set_integral_isBigO` Extracted from #38104 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated t-measure-probability 6/12 Mathlib/MeasureTheory/Integral/Asymptotics.lean 1 2 ['github-actions', 'yuanyi-350'] kex-y
assignee:kex-y
7-79222
7 days ago
18-54601
18 days ago
18-54192
18 days
39175 yuanyi-350
author:yuanyi-350
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Integral/CircleTransform` - refactors `Mathlib/MeasureTheory/Integral/CircleTransform` by shortening `circleTransformDeriv_periodic` Extracted from #38104 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated t-measure-probability 1/6 Mathlib/MeasureTheory/Integral/CircleTransform.lean 1 2 ['github-actions', 'yuanyi-350'] RemyDegenne
assignee:RemyDegenne
7-79221
7 days ago
18-54598
18 days ago
18-54189
18 days
39437 ooovi
author:ooovi
feat(Geometry/Convex/ConvexSpace): show that an `AffineMap` `IsAffineMap` Show that `Convexity.IsAffineMap` generalises `AffineMap`s between affine spaces. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-convex-geometry 34/3 Mathlib/Geometry/Convex/ConvexSpace/AffineSpace.lean,Mathlib/Geometry/Convex/ConvexSpace/Defs.lean 2 3 ['github-actions', 'mathlib-merge-conflicts', 'ooovi'] nobody
7-58984
7 days ago
7-59057
7 days ago
12-68139
12 days
39575 YaelDillies
author:YaelDillies
chore(Data/Finsupp): make `mapDomain_congr` congr This makes simp stronger. It particular, it breaks some proofs that relied on simp being weak. From MeanFourier --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-convex-geometry 29/36 Mathlib/Algebra/MvPolynomial/Nilpotent.lean,Mathlib/Data/Finsupp/Basic.lean,Mathlib/Geometry/Convex/ConvexSpace/Defs.lean,Mathlib/LinearAlgebra/Basis/Defs.lean,Mathlib/LinearAlgebra/Finsupp/Pi.lean,Mathlib/LinearAlgebra/Matrix/Basis.lean,Mathlib/NumberTheory/NumberField/EquivReindex.lean,Mathlib/NumberTheory/NumberField/House.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/Functoriality.lean,Mathlib/RepresentationTheory/Intertwining.lean 10 1 ['github-actions'] nobody
7-53601
7 days ago
7-53678
7 days ago
7-62921
7 days
39687 TentativeConvert
author:TentativeConvert
feat(Algebra/Group/Submonoid): type class to indicate that supremum in a SubmonoidClass agrees with supremum of submonoids Add a type class `SubmonoidClass.IsConcreteSSup` to indicate that the canonical map `.ofClass` from a class `S` of submonoids of `M` to `Submonoid M` preserves suprema. --- This PR implements the minimal type class assumption needed to make „pushfoward of gradings along maps of indexing sets“ – see draft PR #39356 – work in some `SetLike` generality. Given `{S M : Type*} [SetLike S M] [Monoid M] [SubmonoidClass S M]`, we have canonical maps ``` S → Submonoid M → Set M ``` The first is `Submonoid.ofClass`, the second and the composition are `coe` maps coming from the `SetLike` structures. Depending on `S`, these maps may or may not satisfy various properties with respect the lattice structures on `Submonoid M` and `Set M`. Mathlib so far includes the type class `[IsConcreteLE S M]`, which asserts that the composition `S → Set M` is order-preserving and order-reflecting. The type class defined here asserts that the first map, `S → Submonoid M`, preserves suprema. In examples such as `S = Subgroup M`, `S = Submodule R M`, much more is true – in these cases, `S` is a complete sublattice of `Submonoid M`. But there are also examples where only the weaker property defined here holds, e.g. `S = OpenSubgroup M` for a topological group `M`. Note on `outParam`: I did *not* write `(M : outParam Type*)` in the assumptions of `SubmonoidClass.IsConcreteSSup` in accordance with the [DocString of `Setlike`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/SetLike/Basic.html#SetLike). However, we do have `(B : outParam Type*)` in the definition of `IsConcreteLE`, so perhaps I'm misinterpreting the DocString. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-algebra
label:t-algebra$
56/0 Mathlib.lean,Mathlib/Algebra/Group/Submonoid/SSup.lean 2 2 ['github-actions'] nobody
7-49110
7 days ago
7-49179
7 days ago
7-49370
7 days
39646 YaelDillies
author:YaelDillies
feat(Algebra/Order): maximally varying version of `prod_le_prod_of_subset_of_one_le` We need this for `gcongr`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
49/26 Mathlib/Algebra/Module/ZLattice/Summable.lean,Mathlib/Algebra/Order/BigOperators/Group/Finset.lean,Mathlib/Algebra/Order/BigOperators/GroupWithZero/Finset.lean,Mathlib/Analysis/Complex/Exponential.lean 4 7 ['YaelDillies', 'b-mehta', 'github-actions'] nobody
7-47420
7 days ago
8-48188
8 days ago
8-51235
8 days
36275 smmercuri
author:smmercuri
feat: norm for the finite adele ring of a number field --- - [x] depends on: #35820 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 137/1 Mathlib.lean,Mathlib/NumberTheory/NumberField/Completion/FinitePlace.lean,Mathlib/NumberTheory/NumberField/FiniteAdeleRing.lean,Mathlib/Topology/Algebra/Valued/NormedValued.lean 4 4 ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] nobody
7-45406
7 days ago
7-45479
7 days ago
7-46330
7 days
39621 chrisflav
author:chrisflav
refactor(Topology): use `WithTopology` to define `WithConstructibleTopology` We replace the type synonym `WithConstructibleTopology` by `WithTopology _ (constructibleTopology X)`. This breaks the def-eq `X = WithConstructibleTopology X`, which was luckily not abused much yet. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 38/5 Mathlib/Topology/Compactness/Compact.lean,Mathlib/Topology/Spectral/ConstructibleTopology.lean,Mathlib/Topology/WithTopology.lean 3 2 ['github-actions', 'plp127'] nobody
7-22959
7 days ago
9-25150
9 days ago
9-24741
9 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order maintainer-merge 40/33 Mathlib/Order/SuccPred/InitialSeg.lean,Mathlib/Order/SuccPred/Limit.lean 2 6 ['YaelDillies', 'github-actions', 'plp127'] nobody
7-11412
7 days ago
20-55871
20 days ago
36-43749
36 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. The design is modelled closely after [`Init.Data.Order.PackageFactories`](https://leanprover-community.github.io/mathlib4_docs/Init/Data/Order/PackageFactories.html) (`Std.PreorderPackage` is equivalent-ish to Mathlib’s `Preorder`, and same for partial and linear orders). The `OfStdArgs` types allow conveniently bundling a whole bunch of default arguments together in a way that allows one default argument set to `extends` another. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order new-contributor maintainer-merge 391/0 Mathlib.lean,Mathlib/Order/Std.lean,MathlibTest/OrderOfStd.lean 3 9 ['SabrinaJewson', 'YaelDillies', 'github-actions'] YaelDillies
assignee:YaelDillies
7-9427
7 days ago
8-1223
8 days ago
52-81556
52 days
39697 sorrachai
author:sorrachai
feat(Data/Tree/Basic): add Membership instance, new notation, rename Tree Summary: 1. [Rename]([#CSLib > Splay tree PR: BinaryTree vs Tree @ 💬](https://leanprover.zulipchat.com/#narrow/channel/513188-CSLib/topic/Splay.20tree.20PR.3A.20BinaryTree.20vs.20Tree/near/596482765)) from Tree to BinaryTree, which propagates the changes to other files that use it. 2. Add membership instance, prove decidability of membership. 3. Add toListInOrder, toListPreOrder, toListPostOrder Suggestion based on the discussion in the cslib [thread](https://leanprover.zulipchat.com/#narrow/channel/513188-CSLib/topic/Splay.20tree.20PR/near/596568391)[#CSLib > Splay tree PR @ 💬](https://leanprover.zulipchat.com/#narrow/channel/513188-CSLib/topic/Splay.20tree.20PR/near/596568391). --- * depends on: #39707 new-contributor 187/75 Mathlib/Combinatorics/Enumerative/Catalan/Tree.lean,Mathlib/Combinatorics/Enumerative/DyckWord.lean,Mathlib/Data/Tree/Basic.lean,Mathlib/Data/Tree/Get.lean,Mathlib/Data/Tree/Traversable.lean,Mathlib/Tactic/CancelDenoms/Core.lean,docs/overview.yaml 7 4 ['eric-wieser', 'github-actions', 'sorrachai'] nobody
7-2442
7 days ago
7-34002
7 days ago
7-35648
7 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'] nobody
6-80719
6 days ago
93-20174
93 days ago
95-54051
95 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 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] sgouezel
assignee:sgouezel
6-79545
6 days ago
30-33668
30 days ago
96-32072
96 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] fpvandoorn
assignee:fpvandoorn
6-79539
6 days ago
36-72539
36 days ago
36-73682
36 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"). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 58/0 Mathlib.lean,Mathlib/Analysis/DirichletEigenvalue.lean 2 1 ['github-actions'] sgouezel
assignee:sgouezel
6-79537
6 days ago
22-36643
22 days ago
22-36236
22 days
39738 NoahW314
author:NoahW314
feat(Algebra/Algebra/Bilinear): generalize to `NonUnitalNonAssocCommSemiring` Complete a TODO which can now be done since #28604 is merged. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
2/4 Mathlib/Algebra/Algebra/Bilinear.lean 1 1 ['github-actions'] nobody
6-71879
6 days ago
6-71954
6 days ago
6-71545
6 days
39518 abeldonate
author:abeldonate
feat(RingTheory/LocalProperties/Projective): Projective Module theorem Theorem: R Noetherian, M finitely generated R-Mod. Then: M projective iff M_m free for all m maximal t-ring-theory new-contributor large-import 21/0 Mathlib/RingTheory/LocalProperties/Projective.lean 1 9 ['abeldonate', 'github-actions', 'mbkybky', 'vlad902'] nobody
6-55234
6 days ago
10-32853
10 days ago
10-74699
10 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 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology large-import 144/211 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'] PatrickMassot
assignee:PatrickMassot
6-51821
6 days ago
23-22329
23 days ago
23-21998
23 days
39530 RaggedR
author:RaggedR
feat(Combinatorics/SimpleGraph): group actions on simple graphs This adds the first connection between Mathlib's MulAction and SimpleGraph libraries. The GraphAction class asserts that a group action on the vertex type preserves the adjacency relation, and builds on it to define vertex-transitivity and arc-transitivity for graphs. The GraphAction typeclass gives adj_smul_iff (the biconditional for group actions) and toIso (each group element induces a graph automorphism). The IsVertexTransitive class combines GraphAction with IsPretransitive, and IsArcTransitive requires transitivity on ordered adjacent pairs (arcs). The main theorem is the standard characterization: a graph is arc-transitive if and only if it is vertex-transitive and locally transitive (the stabilizer of each vertex acts transitively on its neighbors). The forward direction is proved directly by composing a vertex-transporting element with a neighbor-transporting stabilizer element. The reverse direction shows that an arc-transitive graph with no isolated vertices is vertex-transitive. These definitions are the algebraic graph theory prerequisites for formalizing coset graphs (Sabidussi's construction) and the characterization of symmetric graphs via double cosets and involutions (Lorimer's theorem). --- LLM tools were used to assist with Lean formalization. The mathematical content is the author's own work. t-combinatorics new-contributor LLM-generated 130/0 Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Action.lean 2 7 ['RaggedR', 'b-mehta', 'github-actions', 'mathlib-bors'] nobody
6-44602
6 days ago
6-44602
6 days ago
11-12643
11 days
38194 ryanncode
author:ryanncode
feat(LinearAlgebra/BilinearForm): add indefinite metrics Add the `IndefiniteMetric` structure to support vector spaces equipped with a non-degenerate, symmetric, indefinite bilinear form. Provide the algebraic foundation for indefinite inner product spaces by formalizing the metric via `LinearMap.BilinForm` and extracting its associated quadratic form without enforcing the `IsPosSemidef` typeclass. Previously, mathlib required strictly positive-definite metrics to instantiate inner product spaces (`InnerProductSpace`), which prevented the formalization of indefinite geometries without causing typeclass inference failures. Bridge this gap by isolating the symmetric bilinear form from topological and positivity constraints, allowing the library to handle generalized indefinite metric spaces safely. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra new-contributor
label:t-algebra$
47/0 Mathlib.lean,Mathlib/LinearAlgebra/BilinearForm/IndefiniteMetric.lean 2 5 ['dagurtomas', 'github-actions', 'mathlib-merge-conflicts', 'ryanncode'] nobody
6-36802
6 days ago
6-38547
6 days ago
22-7907
22 days
39412 mbkybky
author:mbkybky
feat(RingTheory/Flat): a finite flat `R`-module `M` is locally free if `rankAtStalk M` is constant Let `M` be a finite flat `R`-module, `p` be a prime ideal of `R`. We show that if `rankAtStalk M` is constant, then there exists `a ∉ p` such that the `M` is free after localization away from `a`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 136/2 Mathlib.lean,Mathlib/Algebra/Module/FinitePresentation.lean,Mathlib/Algebra/Module/LocalizedModule/Submodule.lean,Mathlib/LinearAlgebra/FiniteDimensional/Basic.lean,Mathlib/RingTheory/Flat/LocallyFree.lean,Mathlib/RingTheory/Localization/BaseChange.lean,Mathlib/RingTheory/Spectrum/Prime/FreeLocus.lean,Mathlib/RingTheory/Support.lean 8 4 ['github-actions', 'robin-carlier'] nobody
6-34575
6 days ago
11-24967
11 days ago
14-29542
14 days
39753 mathlib-splicebot
author:mathlib-splicebot
feat: the sigma-algebra generated by the constant indicator of a set is smaller than the one generated by the set This PR was automatically created from PR #37259 by @EtienneC30 via a [review comment](https://github.com/leanprover-community/mathlib4/pull/37259#discussion_r3292960152) by @EtienneC30. t-measure-probability 6/0 Mathlib/MeasureTheory/MeasurableSpace/MeasurablyGenerated.lean 1 2 ['EtienneC30', 'github-actions'] nobody
6-30505
6 days ago
6-30490
6 days ago
6-30532
6 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`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 95/0 Mathlib.lean,Mathlib/RingTheory/Nakayama.lean,Mathlib/RingTheory/Regular/Free.lean 3 12 ['Thmoas-Guan', 'chrisflav', 'github-actions'] chrisflav
assignee:chrisflav
6-29479
6 days ago
8-59935
8 days ago
30-35641
30 days
39212 emlis42
author:emlis42
feat(Algebra/ContinuedFractions): add `partNums!` and `partDens!` This PR adds `partNums!` and `partDens!`, which provide infinite stream representations for the sequences of partial numerators and denominators of a generalized continued fraction. t-algebra new-contributor
label:t-algebra$
8/0 Mathlib/Algebra/ContinuedFractions/Basic.lean 1 4 ['emlis42', 'github-actions', 'grunweg'] nobody
6-21342
6 days ago
18-23102
18 days ago
18-22693
18 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) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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 17 ['ADedecker', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts', 'themathqueen'] mcdoll
assignee:mcdoll
6-20066
6 days ago
6-20102
6 days ago
23-67252
23 days
39696 jsm28
author:jsm28
refactor(LinearAlgebra/Orientation,LinearAlgebra/AffineSpace/FiniteDimensional): instances for arbitrary orientations Based on suggestions by @kim-em on Zulip https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/PRs.20towards.20IMO.20geometry.202024.20P4/near/596946072 add convenience scoped instances for choosing an arbitrary orientation of a module, and for the `finrank` of the span of the vertices of a simplex. Note: I don't understand why the latter scoped instance is only found automatically in one of the two places using it; in `Sphere/Power.lean` it's necessary to use `Affine.Simplex.fact_finrank_direction_affineSpan_eq` rather than relying on typeclass inference, but in `Angle/Sphere.lean` typeclass inference suffices. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra t-euclidean-geometry
label:t-algebra$
26/23 Archive/Imo/Imo2019Q2.lean,Mathlib/Geometry/Euclidean/Angle/Sphere.lean,Mathlib/Geometry/Euclidean/Sphere/Power.lean,Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean,Mathlib/LinearAlgebra/Orientation.lean 5 2 ['github-actions', 'mathlib-merge-conflicts'] nobody
6-14994
6 days ago
6-15027
6 days ago
7-33975
7 days
39576 plp127
author:plp127
chore(Topology): generalize `Topology.IsEmbedding.perfectlyNormalSpace` Generalize theorem `Topology.IsEmbedding.perfectlyNormalSpace` to inducing maps. Generalize some other theorem along the way. Rename `isGδ_induced` to `IsGδ.preimage`, to match `IsOpen.preimage` and `IsClosed.preimage`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 29/27 Mathlib/Topology/Baire/LocallyCompactRegular.lean,Mathlib/Topology/GDelta/Basic.lean,Mathlib/Topology/Separation/GDelta.lean,Mathlib/Topology/Separation/PerfectlyNormal.lean,Mathlib/Topology/Separation/Regular.lean 5 2 ['github-actions', 'mathlib-merge-conflicts'] nobody
6-12269
6 days ago
6-12304
6 days ago
10-30266
10 days
39582 plp127
author:plp127
chore: unsimp `Set.coe_setOf` See [#mathlib4 > `Set.coe_setOf` @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.60Set.2Ecoe_setOf.60/near/579579409) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 52/55 Archive/Imo/Imo1987Q1.lean,Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean,Mathlib/CategoryTheory/GradedObject/Monoidal.lean,Mathlib/CategoryTheory/Sites/Coherent/RegularSheaves.lean,Mathlib/CategoryTheory/Sites/IsSheafFor.lean,Mathlib/CategoryTheory/Sites/Sieves.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Finite.lean,Mathlib/Data/Set/Basic.lean,Mathlib/Data/Set/Finite/Lattice.lean,Mathlib/FieldTheory/SeparablyGenerated.lean,Mathlib/GroupTheory/Perm/Finite.lean,Mathlib/LinearAlgebra/RootSystem/OfBilinear.lean,Mathlib/NumberTheory/KummerDedekind.lean,Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean 15 1 ['github-actions'] nobody
6-6141
6 days ago
6-6141
6 days ago
6-5734
6 days
39755 wwylele
author:wwylele
chore(GroupTheory): remove a defeq abuse --- I am not sure if this is the right change to make, so I'd like to start a discussion from this. The issue here seems to be that the simp lemma [MulAction.orbitRel.Quotient.orbit_mk](https://leanprover-community.github.io/mathlib4_docs/Mathlib/GroupTheory/GroupAction/Defs.html#MulAction.orbitRel.Quotient.orbit_mk) fired and changed the underlying type of variables in the expression, which is not defeq at instance transparency, and fails defeq check for `MulAction` ([MulAction.instElemOrbit](https://leanprover-community.github.io/mathlib4_docs/Mathlib/GroupTheory/GroupAction/Defs.html#MulAction.instElemOrbit) vs [MulAction.instElemOrbit_1](https://leanprover-community.github.io/mathlib4_docs/Mathlib/GroupTheory/GroupAction/Defs.html#MulAction.instElemOrbit_1)). The easy change here is to disable the offending simp, but it feels like a common language pitfall. Should we do either of the following instead? - remove `MulAction.orbitRel.Quotient.orbit_mk` from default simp set - Make the the orbit definition more transparent [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) tech debt t-group-theory 1/2 Mathlib/GroupTheory/GroupAction/Basic.lean 1 1 ['github-actions'] nobody
6-4080
6 days ago
6-16422
6 days ago
6-16013
6 days
37716 slavanaprienko
author:slavanaprienko
feat(LinearAlgebra/Matrix/Determinant): Desnanot-Jacobi identity This PR adds the Desnanot-Jacobi identity (also known as the Lewis Carroll identity or Dodgson condensation): for any (n+2)×(n+2) matrix M over a commutative ring, $$\det(M) \cdot \det(M_{1,n}^{1,n}) = \det(M_1^1) \cdot \det(M_n^n) - \det(M_1^n) \cdot \det(M_n^1)$$ The proof follows Bressoud's *Proofs and Confirmations* (Cambridge University Press, 1999): multiply M by an auxiliary matrix built from columns of the adjugate, then compare determinants. This yields the identity premultiplied by det(M). To cancel, we pass to a universal polynomial ring (an integral domain with nonzero determinant), then specialize back to arbitrary commutative rings. It seems there's some interest in adding this: https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Determinantal.20identity.20and.20the.20Cauchy.20matrix.20determinant/with/582946873 --- t-algebra new-contributor
label:t-algebra$
217/0 Mathlib.lean,Mathlib/LinearAlgebra/Matrix/Determinant/DesnanotJacobi.lean 2 13 ['SnirBroshi', 'github-actions', 'grunweg', 'kim-em', 'slavanaprienko'] nobody
6-1851
6 days ago
18-11808
18 days ago
19-49629
19 days
39372 yuanyi-350
author:yuanyi-350
refactor(NumberTheory): golf `Mathlib/NumberTheory/ModularForms/EisensteinSeries/MDifferentiable` - rewrites `eisensteinSeriesSIF_mdifferentiable` to use `UpperHalfPlane.mdifferentiable_iff` directly and conclude from local uniform convergence of the Eisenstein series Extracted from #38144 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated 1/6 Mathlib/NumberTheory/ModularForms/EisensteinSeries/MDifferentiable.lean 1 4 ['github-actions', 'mathlib-merge-conflicts', 'yuanyi-350'] nobody
5-82075
5 days ago
5-82113
5 days ago
15-3509
15 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 59 ['Vilin97', 'YanYablonovskiy', 'adomani', 'botbaki-review', 'copilot-pull-request-reviewer', 'dagurtomas', 'eric-wieser', 'github-actions', 'grunweg', 'j-loreaux', 'mathlib-dependent-issues', 'wwylele'] ADedecker
assignee:ADedecker
5-79212
5 days ago
28-5039
28 days ago
60-53710
60 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 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] Komyyy
assignee:Komyyy
5-79210
5 days ago
50-2344
50 days ago
51-85444
51 days
39763 NoahW314
author:NoahW314
feat(Algebra/GroupWithZero/Divisibility): add `mul_dvd_left_iff_isUnit` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
9/0 Mathlib/Algebra/GroupWithZero/Divisibility.lean 1 1 ['github-actions'] nobody
5-70418
5 days ago
5-70498
5 days ago
5-70089
5 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) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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 4 ['felixpernegger', 'github-actions', 'leanprover-radar', 'mathlib-merge-conflicts'] nobody
5-62646
5 days ago
5-62681
5 days ago
22-984
22 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
295/220 Mathlib/FieldTheory/Galois/Infinite.lean,Mathlib/FieldTheory/Galois/Profinite.lean,Mathlib/FieldTheory/KrullTopology.lean,Mathlib/NumberTheory/Cyclotomic/CyclotomicCharacter.lean 4 23 ['acmepjz', 'dagurtomas', 'github-actions', 'mathlib-merge-conflicts', 'plp127', 'vihdzp'] mattrobball
assignee:mattrobball
5-59956
5 days ago
6-10480
6 days ago
61-47766
61 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 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
5-56357
5 days ago
5-56424
5 days ago
21-38915
21 days
39765 vlad902
author:vlad902
doc(RingTheory): fix local ring doc comment The predicate for local rings was updated to the current definition on non-commutative semirings back in mathlib3, but the outdated comment stating that local rings are commutative rings with a unique maximal ideal has not been updated since. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 4/4 Mathlib/RingTheory/LocalRing/Defs.lean 1 1 ['github-actions'] nobody
5-53609
5 days ago
5-53691
5 days ago
5-53282
5 days
37642 SnirBroshi
author:SnirBroshi
chore(Combinatorics/SimpleGraph): tidy various files --- Concept inspired by @Ruben-VandeVelde :) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics maintainer-merge 73/62 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/Decomp.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Operations.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Subwalks.lean 9 9 ['SnirBroshi', 'YaelDillies', 'github-actions', 'mathlib-merge-conflicts'] nobody
5-36127
5 days ago
5-36162
5 days ago
53-36412
53 days
39773 kbuzzard
author:kbuzzard
perf: add some fast_instance% This PR adds some `fast_instance%`s, which tidies up some terms. See [#mathlib4 > fast_instance% plans](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/fast_instance.25.20plans/with/597402311) for explicit descriptions of what every change in this PR actually does to the terms in question. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
6/4 Mathlib/Algebra/Group/Pi/Basic.lean,Mathlib/Algebra/Group/TypeTags/Basic.lean 2 3 ['github-actions', 'kbuzzard', 'leanprover-radar'] nobody
5-33842
5 days ago
5-35382
5 days ago
5-34973
5 days
39783 SnirBroshi
author:SnirBroshi
feat(Order/Interval/Finset): `Set.ncard` lemmas for `LocallyFiniteOrder` Followup to #39414 which untagged `Fintype.card_I??` as `@[simp]`. Adds `Cardinal.mk`/`Set.encard`/`Set.ncard` lemmas for the 8 interval sets `Set.I??` (= 24 lemmas), that convert them to `Finset.card` over the corresponding `Finset.I??` from a `LocallyFiniteOrder` instance. --- `simp`? I think it's a bit strange since the `LocallyFiniteOrder` instance could have crazy definitions for the finset intervals which aren't "simpler", though the instances we currently have are simple. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 115/0 Mathlib.lean,Mathlib/Order/Interval/Finset/Card.lean 2 1 ['github-actions'] nobody
5-25148
5 days ago
5-25216
5 days ago
5-25106
5 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. ) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
504/20 Mathlib.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 10 133 ['AntoineChambert-Loir', 'chrisflav', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts', 'robin-carlier'] eric-wieser and robin-carlier
assignee:eric-wieser assignee:robin-carlier
5-21781
5 days ago
5-21858
5 days ago
53-12464
53 days
39545 Hagb
author:Hagb
feat(Order/OrderIsoNat): some lemmas about `((· < ·) : ℕ → ℕ → Prop) ↪r r` This PR contains several lemmas about relation embedding from `<` in `Nat`, well order, and (in)finiteness. - `RelEmbedding.infinite_iff_nonempty_relEmbedding_of_isWellOrder`: a type with a well order relation is infinite iff there is such a relation embedding. - `RelEmbedding.finite_iff_empty_relEmbedding_of_isWellOrder`: a finite variant of `infinite_iff_nonempty_relEmbedding_of_isWellOrder` - `IsWellOrder.finite_of_isWellOrder_of_isWellOrder_swap`: a type with a linear order relation well founded on both directions is finite. - `instFiniteOfWellFoundedLTOfWellFoundedGT`: an instance variant of `IsWellOrder.finite_of_isWellOrder_of_isWellOrder_swap` on `WellFounded{LT,GT}`. - `RelEmbedding.infinite_iff_nonempty_relEmbedding_lt_or_nonempty_relEmbedding_gt`: a type with a linear order relation is infinite iff there are both relation embedding between `<` in `Nat` and this relation, and between `>` in `Nat` and this relation. - `RelEmbedding.finite_iff_isEmpty_relEmbedding_lt_and_isEmpty_relEmbedding_gt`: a finite variant of `infinite_iff_nonempty_relEmbedding_lt_or_nonempty_relEmbedding_gt`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/)
Edit: remove the description on the original motivation since `WellQuasiOrdered` instead of theorems in this PR can be used for that goal. `RelEmbedding.finite_iff_empty_relEmbedding_of_isWellOrder` might be used for proof of ```lean example {α β γ} [LinearOrder α] [LinearOrder β] [WellFoundedLT α] [WellFoundedLT β] [LinearOrder γ] {f : α × β ≃ γ} (mono : Monotone f) : WellFoundedLT γ := sorry ``` The latter will be used for ```lean example {α β γ} [Finite α] [LinearOrder β] [WellFoundedLT β] [LinearOrder γ] {f : (α → β) ≃ γ} (mono : Monotone f) : WellFoundedLT γ := sorry ``` And the finial goal is the well-foundedness of monomial order when the index type `σ` is finite (under the definition in #39214).
t-order 58/0 Mathlib/Order/OrderIsoNat.lean 1 15 ['Hagb', 'SnirBroshi', 'github-actions', 'leanprover-radar', 'vihdzp'] nobody
5-20063
5 days ago
10-20096
10 days ago
10-55127
10 days
32983 JovanGerb
author:JovanGerb
feat: use `LE.le` for subset relation in `Set`, `Finset`, `PSet`, `ZFSet` This PR uses `@[use_set_notation_for_order]` in `Set`, `Finset`, `PSet`, `ZFSet` and `Class`. So, for these types, we will write `⊆`, while the underlying constant is `LE.le`. Some notes: - The idea is to later extend this feature to other set notation constants, such as union/intersection. - Dot notation on the `HasSubset.Subset` namespace now doesn't work anymore, and the names need to be put in the `LE.le` namespace instead. - Various `simp` and `gcongr` tags needed to be removed/updated as a result of this change. See also https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/Any.20infimum.20based.20version.20of.20.60OmegaCompletePartialOrder.60.3F/near/579333629 --- - [x] depends on: #36633 - [x] depends on: #36734 - [x] depends on: #36782 - [x] depends on: #37012 - [x] depends on: #37347 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data t-meta large-import 318/366 Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean,Mathlib/Algebra/Group/Indicator.lean,Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean,Mathlib/Algebra/Group/Pointwise/Set/Basic.lean,Mathlib/Algebra/GroupWithZero/Action/Pointwise/Finset.lean,Mathlib/Algebra/GroupWithZero/Action/Pointwise/Set.lean,Mathlib/Algebra/MvPolynomial/Monad.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Pow.lean,Mathlib/AlgebraicTopology/SimplicialSet/Horn.lean,Mathlib/Analysis/LocallyConvex/WeakSpace.lean,Mathlib/Analysis/Normed/Group/FunctionSeries.lean,Mathlib/Analysis/SpecialFunctions/Log/Summable.lean,Mathlib/CategoryTheory/CofilteredSystem.lean,Mathlib/CategoryTheory/Topos/Sheaf.lean,Mathlib/Combinatorics/Enumerative/Partition/GenFun.lean,Mathlib/Combinatorics/Hall/Basic.lean,Mathlib/Combinatorics/Matroid/Basic.lean,Mathlib/Combinatorics/Matroid/Constructions.lean,Mathlib/Combinatorics/Matroid/Dual.lean,Mathlib/Combinatorics/Matroid/Rank/Cardinal.lean,Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean,Mathlib/Combinatorics/SetFamily/KruskalKatona.lean,Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean,Mathlib/Data/Finset/BooleanAlgebra.lean,Mathlib/Data/Finset/Defs.lean,Mathlib/Data/Finset/Filter.lean,Mathlib/Data/Finset/Image.lean,Mathlib/Data/Finset/Lattice/Basic.lean,Mathlib/Data/Finset/Option.lean,Mathlib/Data/Finset/Powerset.lean,Mathlib/Data/Finset/SDiff.lean,Mathlib/Data/Finset/Sups.lean,Mathlib/Data/Fintype/Card.lean,Mathlib/Data/Multiset/ZeroCons.lean,Mathlib/Data/Set/Basic.lean,Mathlib/Data/Set/Card.lean,Mathlib/Data/Set/Defs.lean,Mathlib/Data/Set/Disjoint.lean,Mathlib/Data/Set/Finite/Basic.lean,Mathlib/Data/Set/FiniteExhaustion.lean,Mathlib/Data/Set/Notation.lean,Mathlib/Data/Set/Semiring.lean,Mathlib/Data/Set/Sups.lean,Mathlib/Data/SetLike/Basic.lean,Mathlib/Dynamics/Ergodic/Ergodic.lean,Mathlib/Dynamics/FixedPoints/Prufer.lean,Mathlib/Geometry/Manifold/VectorBundle/FiberwiseLinear.lean,Mathlib/GroupTheory/CosetCover.lean,Mathlib/GroupTheory/GroupAction/Blocks.lean,Mathlib/Lean/Expr/ExtraRecognizers.lean,Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean,Mathlib/Logic/Equiv/PartialEquiv.lean,Mathlib/MeasureTheory/Covering/LiminfLimsup.lean,Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean,Mathlib/MeasureTheory/Integral/DominatedConvergence.lean,Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean,Mathlib/MeasureTheory/Measure/AEDisjoint.lean,Mathlib/MeasureTheory/Measure/Decomposition/RadonNikodym.lean,Mathlib/MeasureTheory/Measure/MeasureSpace.lean,Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean,Mathlib/MeasureTheory/Measure/Prokhorov.lean,Mathlib/MeasureTheory/Measure/Regular.lean,Mathlib/MeasureTheory/Measure/Stieltjes.lean,Mathlib/MeasureTheory/Measure/Typeclasses/Finite.lean,Mathlib/MeasureTheory/Measure/Typeclasses/SFinite.lean,Mathlib/MeasureTheory/SetSemiring.lean,Mathlib/NumberTheory/WellApproximable.lean,Mathlib/Order/Birkhoff.lean,Mathlib/Order/BooleanAlgebra/Set.lean,Mathlib/Order/Bounds/Basic.lean,Mathlib/Order/Filter/AtTopBot/Finset.lean,Mathlib/Order/Filter/Basic.lean,Mathlib/Order/Filter/CountableInter.lean,Mathlib/Order/Filter/Ker.lean,Mathlib/Order/Heyting/Basic.lean,Mathlib/Order/Interval/Finset/Defs.lean,Mathlib/Order/LiminfLimsup.lean,Mathlib/Order/PrimeSeparator.lean,Mathlib/Order/RelClasses.lean,Mathlib/Probability/Process/HittingTime.lean,Mathlib/RingTheory/AlgebraicIndependent/TranscendenceBasis.lean,Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean,Mathlib/RingTheory/Spectrum/Prime/Module.lean,Mathlib/SetTheory/ZFC/Basic.lean,Mathlib/SetTheory/ZFC/Class.lean,Mathlib/SetTheory/ZFC/Ordinal.lean,Mathlib/SetTheory/ZFC/PSet.lean,Mathlib/Tactic/SetNotationForOrder.lean,Mathlib/Topology/Algebra/InfiniteSum/Constructions.lean,Mathlib/Topology/Algebra/InfiniteSum/SummationFilter.lean,Mathlib/Topology/Algebra/Nonarchimedean/TotallyDisconnected.lean,Mathlib/Topology/Category/TopCat/Limits/Konig.lean,Mathlib/Topology/Compactness/SigmaCompact.lean,Mathlib/Topology/ExtremallyDisconnected.lean,Mathlib/Topology/Instances/CantorSet.lean,Mathlib/Topology/MetricSpace/Ultra/Basic.lean,Mathlib/Topology/Order/HullKernel.lean,Mathlib/Topology/Semicontinuity/Hemicontinuity.lean,Mathlib/Topology/Separation/Profinite.lean 104 51 ['JovanGerb', 'Vierkantor', 'b-mehta', 'eric-wieser', 'github-actions', 'j-loreaux', 'joneugster', 'leanprover-radar', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'plp127', 'thorimur'] nobody
5-19985
5 days ago
5-19761
5 days ago
17-35202
17 days
37752 JovanGerb
author:JovanGerb
chore(Order/CompleteLattice/Lemmas): use `to_dual` Use `to_dual` for lemmas about `CompleteLattice`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order maintainer-merge 33/56 Mathlib/Order/CompleteLattice/Lemmas.lean,Mathlib/Tactic/Translate/ToDual.lean 2 6 ['JovanGerb', 'YaelDillies', 'github-actions', 'vihdzp'] nobody
5-19856
5 days ago
5-19923
5 days ago
52-16131
52 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. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] nobody
4-80720
4 days ago
25-80857
25 days ago
86-2790
86 days
39436 dtumad
author:dtumad
chore: Add `seqLeft` and `seqRight` unfolding to monad_norm simp set This PR adds `seqLeft_eq_bind` and `seqRight_eq_bind` to `monad_norm`, so that `<*` and `*>` get unfolded in the same way as `<*>` already does when using the `simp` set. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta new-contributor 1/1 Mathlib/Tactic/Attr/Core.lean 1 2 ['github-actions'] dwrensha
assignee:dwrensha
4-80261
4 days ago
14-7064
14 days ago
14-6655
14 days
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`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 304/1 Mathlib/Topology/CWComplex/Classical/Subcomplex.lean 1 26 ['ADedecker', 'github-actions', 'j-loreaux', 'scholzhannah'] alreadydone
assignee:alreadydone
4-79107
4 days ago
35-39085
35 days ago
42-21368
42 days
33640 JovanGerb
author:JovanGerb
feat: tool for finding duplicate declarations This PR defines a tool for finding duplicate declarations automatically. This can be used to help fix this technical debt. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 201/0 Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/DuplicateDecls.lean,MathlibTest/Tactic/DuplicateDecls.lean,MathlibTest/Tactic/DuplicateDeclsAux.lean 5 1 ['github-actions'] dwrensha
assignee:dwrensha
4-79106
4 days ago
5-40156
5 days ago
5-39830
5 days
35610 IvanRenison
author:IvanRenison
feat(Data/Fin): add several lemmas about subtraction of `Fin.{castLT, castAdd, castSucc, castPred}` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] Vierkantor
assignee:Vierkantor
4-79105
4 days ago
28-4350
28 days ago
93-37449
93 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`?~~ [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] bryangingechen
assignee:bryangingechen
4-79101
4 days ago
27-74327
27 days ago
42-72324
42 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'] alreadydone
assignee:alreadydone
4-79100
4 days ago
36-20835
36 days ago
36-24178
36 days
39256 Sfgangloff
author:Sfgangloff
feat(SymbolicDynamics): add monotonicity lemma for LanguageOn In Symbolic dynamics. Proof that the language of a set of configurations is monotone with respect to inclusion of configuration sets: X ⊆ Y → LanguageOn X U ⊆ LanguageOn Y U The proof is a direct unfolding of definitions: a pattern in the language of X comes from restricting some configuration x ∈ X, and inclusion X ⊆ Y allows the same witness to be used for Y. Related to issue #39252 t-dynamics new-contributor 9/1 Mathlib/Dynamics/SymbolicDynamics/Basic.lean 1 3 ['github-actions'] ADedecker
assignee:ADedecker
4-79099
4 days ago
17-31949
17 days ago
17-31540
17 days
39799 NoahW314
author:NoahW314
chore(RingTheory/Ideal/Operations): deprecate duplicate theorem `Ideal.span_mul_span'` `Ideal.span_mul_span'` is identical to `Ideal.span_mul_span`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) At one point, `Ideal.span_mul_span` and `Ideal.span_mul_span'` were distinct, but `Ideal.span_mul_span` was changed in #22151 to be identical to `Ideal.span_mul_span'`. t-ring-theory 6/7 Mathlib/RingTheory/GradedAlgebra/Homogeneous/Ideal.lean,Mathlib/RingTheory/Ideal/Norm/RelNorm.lean,Mathlib/RingTheory/Ideal/Operations.lean,scripts/nolints_prime_decls.txt 4 1 ['github-actions'] nobody
4-78222
4 days ago
4-78491
4 days ago
4-78082
4 days
39634 SnirBroshi
author:SnirBroshi
feat(LinearAlgebra/Matrix/Nondegenerate): more API and generalize to non-domains - Syntactically generalize the bilinear form identities to non-square matrices - Prove iff and transpose theorems for `SeparatingLeft`/`SeparatingRight`/`Nondegenerate` - Prove `M *ᵥ v = 0 → v = 0` and `v ᵥ* M = 0 → v = 0` given `Nondegenerate` (extracted from the existing `eq_zero_of_*_eq_zero`) - Generalize `M.det ≠ 0 → M.Nondegenerate` to `M.det ∈ R⁰ → M.Nondegenerate` (over any `CommRing`) - Add `M *ᵥ v = 0 → v = 0` and `v ᵥ* M = 0 → v = 0` theorems given `M.det ∈ R⁰` - Allow `NonUnitalNonAssocSemiring`s in the `def`s --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
130/44 Mathlib/Data/Matrix/Mul.lean,Mathlib/LinearAlgebra/Matrix/Nondegenerate.lean,Mathlib/LinearAlgebra/Matrix/ToLinearEquiv.lean 3 9 ['SnirBroshi', 'github-actions', 'themathqueen'] nobody
4-73454
4 days ago
4-73305
4 days ago
8-85113
8 days
39774 Hagb
author:Hagb
feat(Order/WellFounded): `WellFounded` on subtype iff the relation restricted on the subtype is `WellFounded` Equivalence between `WellFounded` on a subtype and `WellFounded` on the underlying type with the relation restricted on the subtype. --- (It was a lemma for #39781, which has been closed since there would be a better proof.) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 13/0 Mathlib/Order/WellFounded.lean 1 3 ['Hagb', 'SnirBroshi', 'github-actions'] nobody
4-64713
4 days ago
5-19985
5 days ago
5-19576
5 days
39214 Hagb
author:Hagb
refactor(Data/Finsupp/MonomialOrder): remove `.wf` (well foundedness) field from `MonomialOrder` Many properties still hold without the well-foundedness. Although Gröbner basis theory requires the monomial order to be well founded for the termination of the division algorithm (formalized in `MonomialOrder.div`), many properties that don't relay on the division or remainder still hold without the well-foundedness. Even the division algorithm can terminate in some cases where the monomial order isn't well founded. For example, if the divisors set is finite, then the algorithm can terminate w.r.t. `MonomialOrder.lex (σ := Nat)` even though it isn't well founded. Such cases cannot be directly stated if the formalization of monomial order requires well-foundedness. Deletions: - MonomialOrder.wf --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 21/13 Mathlib/Data/Finsupp/MonomialOrder.lean,Mathlib/Data/Finsupp/MonomialOrder/DegLex.lean,Mathlib/RingTheory/MvPolynomial/Groebner.lean,Mathlib/RingTheory/MvPolynomial/MonomialOrder/DegLex.lean 4 5 ['Hagb', 'github-actions', 'vihdzp'] nobody
4-63300
4 days ago
18-21433
18 days ago
18-21024
18 days
39808 chenson2018
author:chenson2018
chore(Data): refactor proofs where `grind?` fails These are sources of technical debt as now reported in the [weekly linting report](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Weekly.20linting.20log/with/544658968). The idea is that a successful `grind` proof can fail to report the theorems it used via `grind?`, which means that if these proofs break across toolchains that it becomes significantly harder to repair. Most of these are fixed by squeezing the call to `grind` and unsetting `linter.tacticAnalysis.verifyGrindOnly` so they no longer appear in the weekly report. Unfortunately, this can't be on by default for performance reasons, but I highly encourage using this linter when adding any `grind` proofs. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data tech debt 69/41 Mathlib/Data/Bool/Basic.lean,Mathlib/Data/Bool/Set.lean,Mathlib/Data/EReal/Operations.lean,Mathlib/Data/Fin/Tuple/NatAntidiagonal.lean,Mathlib/Data/Finset/Image.lean,Mathlib/Data/Finset/Powerset.lean,Mathlib/Data/Finset/Range.lean,Mathlib/Data/Finset/SMulAntidiagonal.lean,Mathlib/Data/List/Basic.lean,Mathlib/Data/List/Chain.lean,Mathlib/Data/List/Count.lean,Mathlib/Data/List/Cycle.lean,Mathlib/Data/List/Induction.lean,Mathlib/Data/List/ReduceOption.lean,Mathlib/Data/List/Sigma.lean,Mathlib/Data/List/Sort.lean,Mathlib/Data/List/TakeDrop.lean,Mathlib/Data/List/Triplewise.lean,Mathlib/Data/Option/Basic.lean,Mathlib/Data/Set/Card.lean,Mathlib/Data/Set/Disjoint.lean,Mathlib/Data/Set/Function.lean,Mathlib/Data/Set/Insert.lean,Mathlib/Data/Sum/Order.lean 24 1 ['github-actions'] nobody
4-52641
4 days ago
4-66061
4 days ago
4-65652
4 days
39623 justus-springer
author:justus-springer
feat(Algebra/MvPolynomial/Basic): `coeff_C_of_ne_zero` and `coeff_add_single_C` These lemmas are multivariate analogs to `Polynomial.coeff_C_of_ne_zero`, `Polynomial.coeff_C_succ` and `PowerSeries.coeff_C_of_ne_zero` and `PowerSeries.coeff_succ_C`. They are useful for defining partial derivatives for multivariate power series, see PR #39626. - [x] depends on: #39632 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 16/0 Mathlib/Algebra/MvPolynomial/Basic.lean,Mathlib/RingTheory/MvPowerSeries/Basic.lean 2 7 ['Hagb', 'github-actions', 'justus-springer', 'mathlib-dependent-issues', 'wwylele'] nobody
4-52113
4 days ago
4-53777
4 days ago
9-17267
9 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-topology new-contributor infinity-cosmos 362/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 124 ['arnoudvanderleer', 'dagurtomas', 'github-actions', 'joelriou', 'mathlib-merge-conflicts', 'robin-carlier'] robin-carlier
assignee:robin-carlier
4-48478
4 days ago
4-48478
4 days ago
35-49001
35 days
39769 chenson2018
author:chenson2018
chore(Topology): refactor proofs where `grind?` fails These are sources of technical debt as now reported in the [weekly linting report](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Weekly.20linting.20log/with/544658968). The idea is that a successful `grind` proof can fail to report the theorems it used via `grind?`, which means that if these proofs break across toolchains that it becomes significantly harder to repair. Most of these are fixed by squeezing the call to `grind` and unsetting `linter.tacticAnalysis.verifyGrindOnly` so they no longer appear in the weekly report. Unfortunately, this can't be on by default for performance reasons, but I highly encourage using this linter when adding any `grind` proofs. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology tech debt 35/17 Mathlib/Topology/Compactness/CountablyCompact.lean,Mathlib/Topology/EMetricSpace/BoundedVariation.lean,Mathlib/Topology/MetricSpace/Pseudo/Defs.lean,Mathlib/Topology/Order/Basic.lean,Mathlib/Topology/Order/IsLUB.lean,Mathlib/Topology/Order/WithTop.lean,Mathlib/Topology/Path.lean,Mathlib/Topology/Sets/VietorisTopology.lean,Mathlib/Topology/Sheaves/Flasque.lean 9 1 ['github-actions'] nobody
4-42568
4 days ago
5-41319
5 days ago
5-40910
5 days
39819 mathlib-splicebot
author:mathlib-splicebot
feat: variants of lemmas in CondJensen with a.e. inequalities for the trimmed measure This PR was automatically created from PR #35349 by @RemyDegenne via a [review comment](https://github.com/leanprover-community/mathlib4/pull/35349#discussion_r3298163528) by @RemyDegenne. t-measure-probability 34/0 Mathlib/MeasureTheory/Function/ConditionalExpectation/CondJensen.lean 1 1 ['github-actions'] nobody
4-38834
4 days ago
4-38962
4 days ago
4-38553
4 days
38669 dannyply
author:dannyply
feat(Topology/Algebra/PontryaginDual): prove compact monoids have discrete duals Proves that the Pontryagin dual of a compact monoid is discrete. As a consequence, it also adds the corresponding finite-type instances for compact discrete monoids. This upstreams a result first added downstream in [`YaelDillies/APAP`](https://github.com/YaelDillies/APAP), where this fact was needed to close a `sorry`. The proof separates the trivial character from all the others using the right half of the circle and adds a few reusable `Circle` helper lemmas near the existing related API. The original APAP proof was AI-assisted and then reviewed/rewritten during downstream review. For this PR, I used Codex to help adapt the APAP proof to mathlib and to refactor the supporting lemmas. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology new-contributor 130/16 Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean,Mathlib/Topology/Algebra/PontryaginDual.lean,Mathlib/Topology/MetricSpace/Pseudo/Defs.lean 3 30 ['dannyply', 'github-actions', 'j-loreaux', 'tb65536'] j-loreaux
assignee:j-loreaux
4-38833
4 days ago
4-38833
4 days ago
5-27103
5 days
39820 samuelchassot
author:samuelchassot
Add proof of the existence of an Eulerian walk if all vertices have even degree or if exactly vertices have odd degree As per the TODO open in `Trails.lean`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 671/3 Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Eulerian.lean,Mathlib/Combinatorics/SimpleGraph/Trails.lean 3 8 ['SnirBroshi', 'copilot-pull-request-reviewer', 'github-actions'] nobody
4-37675
4 days ago
4-38906
4 days ago
4-38497
4 days
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 95/93 Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean,Mathlib/Combinatorics/SimpleGraph/DeleteEdges.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean 5 48 ['MJ141592', 'Rida-Hamadani', 'SnirBroshi', 'YaelDillies', 'b-mehta', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] nobody
4-35374
4 days ago
4-35407
4 days ago
53-77576
53 days
39818 Ljon4ik4
author:Ljon4ik4
feat: Transferring Lie Algebra structures along Equivalences This pr adds the functionality to transfer Lie brackets along equivalences (additive, linear and plain ones). I followed the scheme of the existing `TransferInstance.lean` file. For one of the proofs, I also needed `linearEquiv_apply `, which seemed missing so I added it. AI use disclaimer: I used claude to search for lemmas/ understand error messages / proofreading and feedback, but wrote the whole code myself. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
124/0 Mathlib.lean,Mathlib/Algebra/Lie/TransferInstance.lean,Mathlib/Algebra/Module/TransferInstance.lean 3 2 ['github-actions'] nobody
4-34828
4 days ago
4-34903
4 days ago
4-36739
4 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 306/0 Mathlib.lean,Mathlib/NumberTheory/Padics/Measure/Basic.lean,Mathlib/NumberTheory/Padics/Measure/Topology.lean 3 11 ['github-actions', 'j-loreaux', 'loefflerd', 'mathlib-dependent-issues'] PatrickMassot
assignee:PatrickMassot
4-33961
4 days ago
4-33961
4 days ago
19-34371
19 days
39736 NoahW314
author:NoahW314
feat(RingTheory/MvPolynomial/MonomialOrder): add `leadingTerm` lemmas Add lemmas for `leadingTerm` to match those for `leadingCoeff`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 87/0 Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean 1 5 ['Hagb', 'NoahW314', 'github-actions'] nobody
4-32860
4 days ago
6-73434
6 days ago
6-73025
6 days
39692 YaelDillies
author:YaelDillies
chore(Algebra/Order/BigOperators): follow the `₀` naming convention We have long agreed that `MonoidWithZero` lemmas corresponding to `Monoid` lemmas should be suffixed with `₀`, while currently it is the `Monoid` lemmas that are primed. Also deprecate two primed lemmas that only differed from the unprimed versions in a minor way. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra t-order
label:t-algebra$
283/219 Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Algebra/Group/Submonoid/Pointwise.lean,Mathlib/Algebra/Order/BigOperators/Group/Finset.lean,Mathlib/Algebra/Order/BigOperators/Group/List.lean,Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean,Mathlib/Algebra/Order/BigOperators/GroupWithZero/Finset.lean,Mathlib/Analysis/Analytic/Composition.lean,Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean,Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean,Mathlib/Analysis/Complex/Exponential.lean,Mathlib/Analysis/Complex/JensenFormula.lean,Mathlib/Analysis/InnerProductSpace/Orientation.lean,Mathlib/Analysis/InnerProductSpace/Subspace.lean,Mathlib/Analysis/Normed/Ring/Basic.lean,Mathlib/Analysis/Normed/Ring/InfiniteProd.lean,Mathlib/Analysis/ODE/DiscreteGronwall.lean,Mathlib/Analysis/Polynomial/MahlerMeasure.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/Extremal.lean,Mathlib/Analysis/SpecificLimits/Basic.lean,Mathlib/MeasureTheory/Constructions/Pi.lean,Mathlib/MeasureTheory/Measure/HasOuterApproxClosedProd.lean,Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean,Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean,Mathlib/NumberTheory/Bertrand.lean,Mathlib/NumberTheory/Height/Basic.lean,Mathlib/NumberTheory/Height/MvPolynomial.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.lean,Mathlib/NumberTheory/Primorial.lean,Mathlib/NumberTheory/SelbergSieve.lean,Mathlib/NumberTheory/SiegelsLemma.lean,Mathlib/NumberTheory/SmoothNumbers.lean,Mathlib/Probability/ProductMeasure.lean,Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean,Mathlib/Topology/Algebra/InfiniteSum/ENNReal.lean,Mathlib/Topology/Algebra/InfiniteSum/Order.lean 35 4 ['github-actions', 'mathlib-merge-conflicts', 'vihdzp'] nobody
4-32401
4 days ago
4-32436
4 days ago
5-61117
5 days
39829 or4nge19
author:or4nge19
feat(LinearAlgebra): basis flag lemmas and genEigenspace map Part 1/3 of #39139. Introduces basis flag lemmas and intertwining `genEigenspace` map, using directly available constructors, ie introducing none (so improving on #39139) Co-authored-by: [kuotsanhsu](https://github.com/kuotsanhsu) [learningstud@gmail.com](mailto:learningstud@gmail.com) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra large-import
label:t-algebra$
76/2 Mathlib/LinearAlgebra/Basis/Flag.lean,Mathlib/LinearAlgebra/Eigenspace/Basic.lean 2 1 ['github-actions'] nobody
4-30667
4 days ago
4-30725
4 days ago
4-30343
4 days
39815 sharky564
author:sharky564
feat(Analysis/Normed/Module/Complemented): add `IsCompl.isTopCompl_of_isClosed` and `isTopCompl_iff_isCompl_isClosed_isClosed` Adds two theorems: - `IsCompl.isTopCompl_of_isClosed`: In a Banach space, two closed submodules that are algebraic complements are topological - `isTopCompl_iff_isCompl_isClosed_isClosed`: `p` and `q` are topological complements if and only if `p` and `q` are algebraic complements and `p` and `q` are both closed. --- This PR addresses the final point of #38416, and finally close it. However, this is no longer much of a refactor as it is more just adding these theorems in. t-analysis 14/1 Mathlib/Analysis/Normed/Module/Complemented.lean 1 3 ['github-actions', 'themathqueen'] nobody
4-30301
4 days ago
4-43203
4 days ago
4-42794
4 days
39745 joneugster
author:joneugster
feat: install gh inside the devcontainer * Install `gh` automatically in the dev container, try to login on startup. * Mount local `.gitconfig` in the container. This allows access to the globally configured git user name and such. The motivation behind this PR is to provide a simple way of sandboxing PRs during review. In particular, keeping the .olean files, which originate from an untrusted fork, contained. During review, `gh pr checkout` is defacto a required tool. Other tools like [bubble](https://github.com/kim-em/bubble#bubble) aim to address the same use case. However, vscode devcontainer are more mature and the setup is done with few lines of code, easy to understand. --- ### LLM usage The line ```text source=${localEnv:HOME}/.gitconfig,target=/home/vscode/.gitconfig,type=bind,consistency=cached ``` has been suggested by querying an LLM. It looks like this is what literature online seems to be using: * https://github.com/microsoft/vscode/issues/265651 * https://marcandreuf.com/blog/2024-07-12-gitdevcont/ [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) CI 14/1 .devcontainer/devcontainer.json,.gitignore 2 1 ['github-actions'] bryangingechen
assignee:bryangingechen
4-25191
4 days ago
4-25428
4 days ago
6-40869
6 days
34909 SnirBroshi
author:SnirBroshi
feat(Data/Sym/Sym2): `fromRel` equivalence with `Sigma` over a `Quotient` Add a non-dependent recursor on members of a `fromRel` set, and the following `Equiv`s: - The `fromRel` set of a symmetric relation `r` is equivalent to summing that set restricted to fibers of `f`. - For a relation homomorphism `r →r r'` where `r` is symmetric, the `fromRel` set of `r` is equivalent to summing that set restricted to equivalence classes of `r'` using a `Subtype`. --- I find this recursor pretty useful when dealing with `fromRel`, the idea came from a suggestion by @kmill [on Zulip](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Eq.2Erec.20with.20a.20constant.20does.20nothing.3A.20h.20.E2.96.B8.20c.20.3D.20c/near/565176948) for another `Sym2` conundrum. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data maintainer-merge 55/3 Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Data/Sym/Sym2.lean 2 19 ['SnirBroshi', 'bryangingechen', 'chrisflav', 'eric-wieser', 'github-actions', 'mathlib-bors', 'mathlib-merge-conflicts'] eric-wieser
assignee:eric-wieser
4-23720
4 days ago
4-23720
4 days ago
86-58314
86 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 35/0 Mathlib/Data/Finset/Card.lean,Mathlib/Data/Finset/Image.lean 2 17 ['SnirBroshi', 'b-mehta', 'github-actions'] joneugster
assignee:joneugster
4-22807
4 days ago
4-22891
4 days ago
34-84275
34 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order brownian 381/66 Mathlib.lean,Mathlib/Order/CountableSupClosed.lean,Mathlib/Order/SupClosed.lean 3 16 ['RemyDegenne', 'b-mehta', 'github-actions', 'vihdzp'] nobody
4-15043
4 days ago
4-31616
4 days ago
40-43648
40 days
37179 IvanRenison
author:IvanRenison
feat(Combinatorics/SimpleGraph): add lemmas about left and right elements of `SimpleGraph.sum` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 19/0 Mathlib/Combinatorics/SimpleGraph/Sum.lean 1 5 ['WilliamCoram', 'b-mehta', 'github-actions', 'mathlib-merge-conflicts'] b-mehta
assignee:b-mehta
4-14801
4 days ago
4-14836
4 days ago
64-10641
64 days
39757 gasparattila
author:gasparattila
chore(Algebra/Star): clean up `simp` lemmas about bundled `star` equivalences This PR adds `.symm` lemmas for these equivalences, allowing `simp` to reduce applications of their inverses to applications of `star`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 67/21 Mathlib/Algebra/Star/Basic.lean,Mathlib/Algebra/Star/Module.lean,Mathlib/Analysis/CStarAlgebra/Basic.lean,Mathlib/Topology/Algebra/Module/Star.lean 4 2 ['github-actions', 'themathqueen'] nobody
4-12953
4 days ago
6-13046
6 days ago
6-12637
6 days
36605 martinwintermath
author:martinwintermath
feat(Geometry/Convex/Cone): Add lemmas about interaction of hull, span and negation Prove lemmas about the interaction of hull, span and negation. Main additions: * `PointedCone.toSubmodule` that produces a submodule with the same support given that `-C = C`. Also the corresponding `CanLift` * `PointedCone.hull_neg_pair_eq_span_singleton` proving `hull R {-x, x} = R ∙ x` (simp lemma) * `PointedCone.span_eq_hull_neg_sup_hull` proving `span R s = hull R (-s) ⊔ hull R s` * `PointedCone.mem_span` proving `x ∈ span R C ↔ ∃ p, n ∈ C, x = p - n` Considerations: there are several ways to express that a convex cone is a submodule: * `-C = C` * `-C ≤ C` or `C ≤ -C` * `C = span R C` * `C = C.lineal` The consensus was that the the first option is the most direct way to express this property, which then allows to lift to a submodule. Co-authored by: Olivia Röhrig, Kilian Rueß, Artie Khovanov --- - [x] depends on: #37464 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-convex-geometry 68/0 Mathlib/Geometry/Convex/Cone/Pointed.lean 1 53 ['artie2000', 'github-actions', 'martinwintermath', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] nobody
4-11219
4 days ago
4-11222
4 days ago
21-11215
21 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`. 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 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-convex-geometry 227/128 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 4 ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] nobody
4-9443
4 days ago
18-5260
18 days ago
31-10979
31 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 211/4 Mathlib.lean,Mathlib/Data/Prod/Lex.lean,Mathlib/Order/Completion.lean,Mathlib/Topology/Order/Completion.lean,Mathlib/Topology/Sion.lean 5 69 ['ADedecker', 'AntoineChambert-Loir', 'YaelDillies', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] vihdzp
assignee:vihdzp
4-6925
4 days ago
4-29751
4 days ago
39-40179
39 days
39747 vihdzp
author:vihdzp
feat: intervals `Ici`/`Ioi` are cofinal/closed under directed suprema --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 67/11 Mathlib/Order/Cofinal.lean,Mathlib/Order/DirSupClosed.lean,Mathlib/Order/Interval/Set/Basic.lean,Mathlib/Order/UpperLower/Basic.lean,Mathlib/Topology/Order/ScottTopology.lean 5 16 ['YaelDillies', 'b-mehta', 'github-actions', 'vihdzp'] nobody
4-6492
4 days ago
5-29318
5 days ago
6-6879
6 days
39513 grunweg
author:grunweg
feat: add `mvfderivWithin` with (d)elaborators and basic API Add `mvfderivWithin` (a version of `mvfderiv` within a set) and add analogues of all `mvfderiv` lemmas. We also add analogous custom elaborators and delaborators. To prove our set-up works, we re-phrase two lemmas in `VectorField/LieBracket.lean` to use this definition, instead of open-coding it. Part of https://github.com/leanprover-community/mathlib4/pull/36036, i.e. from the path towards the Levi-Civita connection and Riemanian curvature. Related to fixing defeq abuses related to tangent space and scalar multiplication in mathlib. --- - [x] depends on: #39485 - [x] depends on: #34257 - [x] depends on: #39554 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-differential-geometry 203/12 Mathlib/Analysis/Complex/UpperHalfPlane/Manifold.lean,Mathlib/Geometry/Manifold/Instances/Sphere.lean,Mathlib/Geometry/Manifold/MFDeriv/NormedSpace.lean,Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean,Mathlib/Geometry/Manifold/VectorField/LieBracket.lean 5 6 ['github-actions', 'grunweg', 'hrmacbeth', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] PatrickMassot
assignee:PatrickMassot
4-6381
4 days ago
9-36073
9 days ago
9-83017
9 days
39850 Ljon4ik4
author:Ljon4ik4
feat: Lie-Rinehart subalgebras introduced This PR introduces subalgebras of Lie-Rinehart algebras. It defines the corresponding structures, introduces some basic api and shows that a Lie-Rinehart subalgebra is again a Lie-Rinehart algebra. Most of the code was copied and adapted from `Mathlib/Algebra/Lie/Subalgebra.lean`, however I am not aware of a way to reuse the results from there without copy/pasting them. I also noticed a problem with the namespace of a few simp lemmas in `LieRinehartAlgebra/Defs.lean` and corrected it. There are a few design decisions that I am not sure about: * There is one structure, which only needs `[Module A L]` and `[LieRing L]` to be defined. Then additional properties are added along the file whenever needed. It is a little strange to have a `LieRinehartSubalgebra` of something which is not a `LieRinehartalgebra`, but I don't know what a better solution would be * The structure only uses `A, L` and not `R`, so `R` has to be explicitly passed to the functions later in the file. AI use disclaimer: I used claude to search for lemmas/ understand error messages / proofreading and feedback, but did not use it for generating the code. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
267/2 Mathlib.lean,Mathlib/Algebra/LieRinehartAlgebra/Defs.lean,Mathlib/Algebra/LieRinehartAlgebra/Subalgebra.lean 3 1 ['github-actions'] nobody
4-5934
4 days ago
4-6001
4 days ago
4-6489
4 days
39798 vihdzp
author:vihdzp
chore: use `notation3` for `Ordinal.typeLT` This creates a delaborator, which avoids goals from looking like `(type fun x1 x2 ↦ x1 < x2) < (type fun x1 x2 ↦ x1 < x2)`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory easy maintainer-merge 5/1 Mathlib/SetTheory/Ordinal/Basic.lean 1 4 ['YaelDillies', 'github-actions', 'vihdzp'] YaelDillies
assignee:YaelDillies
4-4642
4 days ago
4-5251
4 days ago
4-22641
4 days
39856 b-mehta
author:b-mehta
feat(Data/Set/Restrict): extend is injective on the range These lemmas are placed here since that puts them close to the other `extend` lemmas, but they can't be in Logic/Function/Basic since InjOn and Set.range aren't defined there yet --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 15/0 Mathlib/Data/Set/Restrict.lean 1 1 ['github-actions'] nobody
3-83690
3 days ago
3-83765
3 days ago
3-83356
3 days
39561 SnirBroshi
author:SnirBroshi
feat(Combinatorics/SimpleGraph/Operations): a graph is the supremum of edge graphs - `G = ⨆ e ∈ G.edgeSet, fromEdgeSet {e}` - `G = sSup { edge u v | (u : V) (v : V) (_ : G.Adj u v) }` and `edgeSet` & `fromEdgeSet` preserve sup & inf. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 51/0 Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Operations.lean 2 2 ['b-mehta', 'github-actions'] nobody
3-83308
3 days ago
10-66096
10 days ago
10-65687
10 days
39505 dannyhe652
author:dannyhe652
feat(SimpleGraph): add Vizing's theorem for edge coloring Hi! I'm a high school student interested in formulization of mathematics in Lean. Recently, I have worked on a project to formulize Vizing Theorem with Daniel Raggi from Cambridge University with AI assistance. In particular, we first drafted an outline for the proof, and built the proof using Claude Opus 4.5 and 4.6. The proof is optimized using Aristotle and finally reviewed by ourselves. We rewrote some parts of the code and some comments. The code now builds cleanly and we wish this code to be reviewed by Lean Community. I am aware that there are previous attempts, some being successful, on formulizing Vizing Theorem, including this one by Arohee https://github.com/aroheebhoja/vizing. However, I believe that no PR have been made. Our proof is not based on his proof, but it could be helpful for the community to review that project as well. I sincerely thank everyone who has time to verify and review our code. A summary of the project is as follows. Please contact me if there are any questions or problems. ## Summary This PR completes the proof of **Vizing's theorem** for edge coloring in simple graphs, proving that the chromatic index of any graph is either Δ (the maximum degree) or Δ + 1. ## Changes ### New files - **`Mathlib/Combinatorics/SimpleGraph/Coloring/EdgeColoring.lean`** — Core definitions - `edgeColoring`: Type for line graph colorings - `edgeColorable`: Graph is edge-colorable with n colors - `chromaticIndex`: Chromatic index as ℕ - **`Mathlib/Combinatorics/SimpleGraph/Coloring/KempeChain.lean`** — Kempe Chain - Coloring observables: `incidentEdges`, `incidentColors`, `missingColors` - Kempe subgraph structure with bounded degree - `swapKempe`: Recolor edges in a connected component via color-swapping - **`Mathlib/Combinatorics/SimpleGraph/Coloring/VizingFan.lean`** — Vizing Fan Rotation - `IsFan`: Vizing fan structure with special color properties - Fan maximality and dichotomy on terminal vertices - `rotate_termA`: Extend coloring when a free color exists at both endpoints - `vizingAdjacencyLemma`: Main adjacency lemma for both cases - **`Mathlib/Combinatorics/SimpleGraph/Coloring/VizingTheorem.lean`** — Main theorems - `edge_eq_of_color_eq`: Proper edge colorings assign different colors to distinct edges sharing a vertex - `maxDegree_le_chromaticIndex`: χ'(G) ≥ Δ(G) - `chromaticIndex_bot`: Empty graph has chromatic index 0 - `vizingUpperBound_aux`: Inductive proof of upper bound on number of edge - `vizingTheorem`: χ'(G) ∈ {Δ(G), Δ(G) + 1} ### Modified files - `Mathlib.lean` — Added imports for the four new coloring modules ## Technical Approach **Lower bound** (χ'(G) ≥ Δ): - Edges incident to a max-degree vertex form a clique in the line graph - Clique number lower-bounds chromatic number **Upper bound** (χ'(G) ≤ Δ + 1): - Induction on the number of edges - Base case: empty graph colored with 0 colors - Inductive step: - If a free color exists at both endpoints of an edge, then extend directly - Otherwise: - Build a maximal fan from one endpoint - Apply dichotomy: either extend via Term-A (free color at both endpoints) or Term-B (Kempe swap) - Term-B uses a three-vertex connectivity argument to derive a contradiction, forcing the fan to extend ## Key Lemmas - `incidentEdges`, `incidentColors`, `missingColors`: Coloring observables at vertices - `kempeSubgraph`: Restricted subgraph of edges with two specific colors - `swapKempe`: Recolor via Kempe chain swapping - `IsFan.singleton`: Trivial fan always valid - `IsFan.length_le_card`: Fan length is bounded by vertex count - `IsFan.dichotomy`: Maximal fan satisfies Term-A or Term-B - `IsFan.rotate_termA`: Term-A case extends the coloring inductively - `vizingAdjacencyLemma`: Handles both cases for extending one edge - `vizingUpperBound_aux`: Framework for full inductive proof - `edge_eq_of_color_eq`: Distinctness of edges with same color ## Testing All four modules compile with no `sorry` nor errors or warnings. ## References * V. G. Vizing, *On an estimate of the chromatic class of a p-graph*, Diskret. Analiz. 3 (1964), 25–30. ## Co-authors Co-authored-by: Daniel Raggi Co-authored-by: Aristotle (Harmonic) Co-authored-by: Claude Opus 4.5 & 4.6 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor LLM-generated 1915/0 Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Coloring/EdgeColoring.lean,Mathlib/Combinatorics/SimpleGraph/Coloring/KempeChain.lean,Mathlib/Combinatorics/SimpleGraph/Coloring/VizingFan.lean,Mathlib/Combinatorics/SimpleGraph/Coloring/VizingTheorem.lean 5 3 ['github-actions'] nobody
3-83220
3 days ago
11-84981
11 days ago
11-85951
11 days
39792 vihdzp
author:vihdzp
chore: deprecate `Ordinal.IsAcc` and `Ordinal.IsClosedBelow` These predicates were introduced in #16710 as preliminaries for a development of club sets. Those have [since been defined](https://leanprover-community.github.io/mathlib4_docs/Mathlib/SetTheory/Cardinal/Cofinality/Club.html#IsClub) without them, so we deprecate them, and generalize the results on them to the setting of successor orders. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory 64/37 Mathlib/SetTheory/Ordinal/Topology.lean,Mathlib/Topology/Order/SuccPred.lean 2 2 ['github-actions', 'mathlib-bors'] nobody
3-80948
3 days ago
4-74465
4 days ago
5-7815
5 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 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 300/0 Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Coloring/Edge.lean 2 28 ['SnirBroshi', 'YaelDillies', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'ooovi'] b-mehta
assignee:b-mehta
3-79391
3 days ago
29-23243
29 days ago
66-64168
66 days
39178 yuanyi-350
author:yuanyi-350
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Measure/PreVariation` - refactors `Mathlib/MeasureTheory/Measure/PreVariation` by simplifying `sum_le'` and `sum_le_preVariationFun_of_subset` Extracted from #38104 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated t-measure-probability 6/20 Mathlib/MeasureTheory/Measure/PreVariation.lean 1 2 ['github-actions', 'yuanyi-350'] sgouezel
assignee:sgouezel
3-79389
3 days ago
18-54591
18 days ago
18-54182
18 days
39282 Sfgangloff
author:Sfgangloff
feat(SymbolicDynamics): add union morphism lemma for LanguageOn In symbolic dynamics. This PR proves that taking the language over a finite shape commutes with unions of configuration sets: $LanguageOn (X \cup Y) U = LanguageOn X U \cup LanguageOn Y U$ The proof is a direct unfolding of definitions: a pattern in the language of $X \cup Y$ comes from restricting a configuration $x ∈ X \cup Y$, and splitting on whether $x \in X$ or $x \in Y$ yields the corresponding inclusion in either $LanguageOn X U$ or $LanguageOn Y U$. The converse direction rebuilds a witness in $X \cup Y$ from either side of the union. Related to issue #39252 t-dynamics new-contributor 15/1 Mathlib/Dynamics/SymbolicDynamics/Basic.lean 1 2 ['github-actions'] sgouezel
assignee:sgouezel
3-79388
3 days ago
16-57004
16 days ago
16-56595
16 days
39782 robin-carlier
author:robin-carlier
feat(Tactic): `nonempty` attribute This PR adds a `nonempty` attribute. When tagging a definition of type `α` with `[nonempty]`, an instance of type `Nonempty α` is automatically generated and registered using the definition. Such an attribute is useful in the following scenario: certain structures are not classes (e.g., to avoid data-carrying classes potentially creating diamonds), but mere existence of terms of such structures allows to derive instances about the parameters of the structure. Using `[nonempty]` lets one auto-generate the instances derived instance (provided they correctly follow from `[Nonempty _]`). Such is the case for the `CategoryTheory.Functor.FullyFaithful` structure, which allows to derive the `Prop`-classes `CategoryTheory.Functor.Full` and `CategoryTheory.Functor.Faithful`. Currently in mathlib, most definitions of type `CategoryTheory.Functor.FullyFaithful` are immediately followed by the corresponding `Full` and `Faithful` instances, adding "boilerplate" and increasing the surface for potential mistakes (like forgetting one or both of the instances.) The attribute uses a variation of `addRelatedDecl` called `addRelatedInstance`, which handles automatic name generation and registration of instances from a given declaration and a "constructor" of type `Expr → List Name → MetaM (Expr × List Name)`. --- I believe abstracting `addRelatedInst` might have other possible usages: for instance, given an adjunction `adj: L ⊣ R`, it would be nice to have an attribute that one can tag on such adjunctions that automatically registers `L.IsLeftAdjoint` and `R.IsRightAdjoint`. The `nonempty` attribute here can’t really do this because `R` can’t be inferred from a goal of type `L.IsLeftAdjoint`, but the situation is quite similar, and `addRelatedInst` could also help writing this kind of attribute. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 320/0 Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/NonemptyAttr.lean,Mathlib/Util/AddRelatedDecl.lean,MathlibTest/NonemptyAttr.lean 5 1 ['github-actions'] dwrensha
assignee:dwrensha
3-79384
3 days ago
4-10828
4 days ago
4-10419
4 days
39809 zcyemi
author:zcyemi
feat(LinearAlgebra/AffineSpace/Menelaus): add Menelaus' theorem Add Menelaus' theorem for both `AffineSpace` and `NormedAddTorsor`. The `AffineSpace` version includes both the forward and converse directions, while the `NormedAddTorsor` version currently includes the forward direction. For the converse direction in the `NormedAddTorsor` setting, I am still considering the most convenient formalization for future use. One possible approach is to use `sbtw` / `¬ sbtw` to distinguish the different positional cases for points on the edges of a triangle, but this seems too complicated under permutations of the triangle vertices. t-euclidean-geometry 218/0 Mathlib.lean,Mathlib/Analysis/Normed/Affine/Menelaus.lean,Mathlib/LinearAlgebra/AffineSpace/Menelaus.lean,docs/1000.yaml 4 1 ['github-actions'] jsm28
assignee:jsm28
3-79382
3 days ago
4-57586
4 days ago
4-57854
4 days
38957 wwylele
author:wwylele
chore(GroupTheory/DivisibleHull): remove `backward.privateInPublic` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) tech debt t-group-theory 5/12 Mathlib/GroupTheory/DivisibleHull.lean 1 13 ['Komyyy', 'github-actions', 'grunweg', 'jcommelin', 'wwylele'] jcommelin
assignee:jcommelin
3-77084
3 days ago
3-79561
3 days ago
17-71102
17 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 137/30 Mathlib/Analysis/LocallyConvex/AbsConvex.lean,Mathlib/Topology/Algebra/Group/Pointwise.lean,Mathlib/Topology/Algebra/Module/LocallyConvex.lean 3 10 ['github-actions', 'j-loreaux', 'khwilson'] j-loreaux
assignee:j-loreaux
3-74793
3 days ago
3-74862
3 days ago
15-40805
15 days
39722 kg583
author:kg583
feat(Combinatorics): Link `Nat.Partition` to `YoungDiagram` --- AI disclosure: Claude was used to source some proof sketches. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor large-import 120/4 Mathlib.lean,Mathlib/Combinatorics/Enumerative/Partition/Basic.lean,Mathlib/Combinatorics/Enumerative/Partition/Conjugate.lean,Mathlib/Combinatorics/Young/YoungDiagram.lean 4 36 ['NoahW314', 'github-actions', 'kg583', 'wwylele'] nobody
3-72701
3 days ago
6-13510
6 days ago
7-10676
7 days
26212 Thmoas-Guan
author:Thmoas-Guan
feat(Algebra): the Rees theorem for depth In this PR we proved the Rees theorem for depth. Co-authored-by: Hu Yongle --- - [x] depends on: #37355 - [x] depends on: #38613 - [x] depends on: #38466 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 218/26 Mathlib.lean,Mathlib/RingTheory/Depth/Rees.lean,Mathlib/RingTheory/Regular/LinearMap.lean,docs/references.bib 4 61 ['Thmoas-Guan', 'alreadydone', 'chrisflav', 'dagurtomas', 'erdOne', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] chrisflav
assignee:chrisflav
3-67410
3 days ago
4-42718
4 days ago
99-36525
99 days
39789 vihdzp
author:vihdzp
feat: a cofinal set has a cofinal subset of order type `(cof α).ord` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory maintainer-merge 38/20 Mathlib/SetTheory/Cardinal/Aleph.lean,Mathlib/SetTheory/Cardinal/Cofinality/Basic.lean,Mathlib/SetTheory/Cardinal/Cofinality/Ordinal.lean,Mathlib/SetTheory/Ordinal/Basic.lean 4 7 ['YaelDillies', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] nobody
3-62474
3 days ago
3-64234
3 days ago
4-80897
4 days
38275 TTony2019
author:TTony2019
feat: Add `AffineEquiv.image_intrinsicInterior` ## Summary This PR generalizes the existing lemma `AffineIsometry.image_intrinsicInterior` to the setting of affine equivalences, yielding the corresponding result `AffineEquiv.image_intrinsicInterior`. Since affine equivalences are more general than affine isometries, the proof requires an additional finite-dimensionality assumption. The key extra input is that in finite-dimensional spaces, an affine equivalence induces a homeomorphism via `AffineEquiv.toHomeomorphOfFiniteDimensional`, so the assumptions are adjusted accordingly. Apart from these extra assumptions, the argument is essentially the same as for `AffineIsometry.image_intrinsicInterior`. ## Collaboration This PR was developed together with @imathwy. t-analysis new-contributor 283/41 Mathlib/Analysis/Convex/Intrinsic.lean,Mathlib/Analysis/Normed/Module/FiniteDimension.lean,Mathlib/LinearAlgebra/AffineSpace/Restrict.lean,Mathlib/Topology/Algebra/AffineSubspace.lean,Mathlib/Topology/Homeomorph/Defs.lean 5 29 ['TTony2019', 'github-actions', 'imathwy', 'j-loreaux', 'themathqueen'] j-loreaux
assignee:j-loreaux
3-54127
3 days ago
3-54127
3 days ago
20-44401
20 days
39491 Yu-Misaka
author:Yu-Misaka
feat(Mathlib/LinearAlgebra/RootSystem/CartanMatrix): a Cartan matrix of a reduced crystallographic root system cannot have eigenvalue 4 This proves the TODO that a Cartan matrix of a reduced crystallographic root system cannot have eigenvalue 4. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-algebra codex LLM-generated
label:t-algebra$
125/8 Mathlib/Data/Matrix/Mul.lean,Mathlib/LinearAlgebra/RootSystem/CartanMatrix.lean,Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Basis.lean,Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Semisimple.lean 4 6 ['Yu-Misaka', 'copilot-pull-request-reviewer', 'github-actions', 'mathlib-bors', 'ocfnash'] ocfnash
assignee:ocfnash
3-51211
3 days ago
3-51300
3 days ago
3-50901
3 days
37697 IvanRenison
author:IvanRenison
feat(Combinatorics/SimpleGraph/Clique): add theorems about cliques and induced graphs --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics maintainer-merge 22/0 Mathlib/Combinatorics/SimpleGraph/Clique.lean 1 11 ['Rida-Hamadani', 'SnirBroshi', 'YaelDillies', 'github-actions'] nobody
3-50629
3 days ago
4-14825
4 days ago
48-15773
48 days
39693 yuanyi-350
author:yuanyi-350
feat(Combinatorics/Enumerative/Bell): sum over partition shapes Kill TODO in `Mathlib/Combinatorics/Enumerative/Bell.lean` which proves `Nat.bell` as a sum of `Multiset.bell` over partition shapes --- Migrated from #37690 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics maintainer-merge 128/35 Mathlib/Combinatorics/Enumerative/Bell.lean 1 6 ['YaelDillies', 'github-actions'] nobody
3-49142
3 days ago
7-44853
7 days ago
7-44444
7 days
39740 Thmoas-Guan
author:Thmoas-Guan
feat(FieldTheory): the field of adjoining all `p`th roots In this PR, we define the field extension of adjoining all `p`th roots to a field of characteristic `p`. The definition is via defining it as the field itself with algebra map equal to frobenious. Thanks to @erdOne for this idea. Co-authored by:@dleijnse --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
65/0 Mathlib.lean,Mathlib/FieldTheory/PurelyInseparable/AdjoinPthRoots.lean 2 47 ['Thmoas-Guan', 'chrisflav', 'erdOne', 'plp127', 'vihdzp'] chrisflav
assignee:chrisflav
3-45680
3 days ago
4-24727
4 days ago
6-49985
6 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 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
102/0 Mathlib.lean,Mathlib/FieldTheory/TranscendentalSeparable.lean 2 14 ['Thmoas-Guan', 'robin-carlier'] robin-carlier
assignee:robin-carlier
3-45509
3 days ago
19-31735
19 days ago
27-49503
27 days
28683 Thmoas-Guan
author:Thmoas-Guan
feat(RingTheory): regular local ring is domain In this PR, we proved for a regular local ring `R`, 1 : for a finite set `S` in the maximal Ideal of `R`, it can be extended to a regular system of parameters iff they are linear independent in the cotangent space iff `R/span S` is regular local ring of dimesion `dim R - |S|` 2 : is domain 3 : regular system of parameter form regular sequence. --- - [x] depends on: #28682 - [x] depends on: #37627 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 323/0 Mathlib.lean,Mathlib/Algebra/Module/SpanRank.lean,Mathlib/RingTheory/Ideal/Height.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/RegularLocalRing/Basic.lean 5 58 ['Raph-DG', 'Thmoas-Guan', 'WenrongZou', 'erdOne', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'mbkybky'] nobody
3-43616
3 days ago
6-51568
6 days ago
8-26864
8 days
39600 plp127
author:plp127
chore(Topology/Compactness/CountablyCompact): generalize theorem Generalize theorem `Topology.IsEmbedding.isSeqCompact_iff` to `Topology.IsInducing.isSeqCompact_iff` by replacing `IsEmbedding` by `IsInducing`. Also fix capitalization error. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 10/4 Mathlib/Topology/Compactness/CountablyCompact.lean 1 5 ['grunweg', 'plp127', 'themathqueen'] nobody
3-42902
3 days ago
6-4988
6 days ago
8-67538
8 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 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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 6 ['github-actions', 'j-loreaux', 'mathlib-merge-conflicts'] nobody
3-35200
3 days ago
3-35241
3 days ago
19-28589
19 days
26304 Raph-DG
author:Raph-DG
feat(AlgebraicGeometry): Pushforward of algebraic cycles In this PR we define a notion of the "pushfoward of functions with locally finite support". We give this PR the suggestive title "pushforward of algebraic cycles" because we will go on to model algebraic cycles on a scheme X as functions from X to the integers with locally finite support. - [x] depends on: #26225 - [x] depends on: #26259 - [x] depends on: #35807 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-geometry maintainer-merge 91/0 Mathlib.lean,Mathlib/Topology/LocallyFinsupp.lean,Mathlib/Topology/LocallyFinsupp/Pushforward.lean 3 63 ['Raph-DG', 'chrisflav', 'github-actions', 'joelriou', 'leanprover-community-bot-assistant', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] joelriou
assignee:joelriou
3-34523
3 days ago
3-34669
3 days ago
45-79656
45 days
39870 YaelDillies
author:YaelDillies
feat(Data): interleaving lists Define interleaving of lists, both as an operation and as a relation. This will be used to define interleaving polynomials, which in turn are a central concept in the line of work that earned June Huh his 2022 Fields medal. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 119/0 Mathlib.lean,Mathlib/Data/List/Interleave.lean 2 1 ['github-actions'] nobody
3-31064
3 days ago
3-31130
3 days ago
3-31155
3 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 41/32 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 7 9 ['SnirBroshi', 'YaelDillies', 'b-mehta', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts'] nobody
3-29817
3 days ago
3-29894
3 days ago
65-67600
65 days
39864 8e7
author:8e7
feat(Combinatorics/SimpleGraph/Acyclic): helly property on subtrees This PR adds several lemmas regarding connected subsets of vertices in trees (subtrees). The main result is the Helly property for subtrees: For a finite set of subtrees, if any pair of subtrees intersect, then there is a common vertex in all subtrees. This lemma is part of an effort to formalize tree decompositions (see #38334), and will be used in a future PR to prove `G.cliqueNum - 1 <= G.treeWidth`. AI Usage: The proofs were developed with the help of Claude Code. I vouch for all the code written and understand the content fully. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor LLM-generated 114/0 Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean 2 2 ['github-actions'] nobody
3-29195
3 days ago
3-50708
3 days ago
3-50413
3 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 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics maintainer-merge 110/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 62 ['Rida-Hamadani', 'SnirBroshi', 'YaelDillies', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'vlad902'] nobody
3-28739
3 days ago
3-28812
3 days ago
34-64242
34 days
34805 DavidLedvinka
author:DavidLedvinka
feat(Tactic): generalize ofScientific NormNum extension to `DivisionSemiring` Co-authored-by: @hrmacbeth t-meta maintainer-merge 70/16 Mathlib/Algebra/Field/Rat.lean,Mathlib/Tactic/NormNum/Inv.lean,Mathlib/Tactic/NormNum/OfScientific.lean,MathlibTest/Tactic/NormNum/Basic.lean 4 31 ['DavidLedvinka', 'JovanGerb', 'b-mehta', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts', 'thorimur'] eric-wieser
assignee:eric-wieser
3-22826
3 days ago
3-78365
3 days ago
89-51858
89 days
39709 justus-springer
author:justus-springer
feat(RingTheory/): `MvPolynomial` is standard smooth Add the trivial submersive presentation for `MvPolynomial` and show that `MvPolynomial` is standard smooth over its base ring. This will be used to show that affine space is smooth in #39710. - [x] depends on: #39708 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 47/0 Mathlib/RingTheory/Extension/Presentation/Basic.lean,Mathlib/RingTheory/Extension/Presentation/Submersive.lean,Mathlib/RingTheory/Smooth/StandardSmooth.lean 3 3 ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] nobody
3-16679
3 days ago
3-16687
3 days ago
3-19167
3 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`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 35/20 Mathlib/Data/Set/Basic.lean,Mathlib/Data/Set/Defs.lean,Mathlib/Data/Set/Insert.lean,Mathlib/Data/Set/Prod.lean,Mathlib/Order/BooleanAlgebra/Set.lean 5 24 ['SnirBroshi', 'Vierkantor', 'github-actions', 'leanprover-radar', 'mathlib-bors', 'themathqueen', 'urkud', 'vihdzp'] urkud
assignee:urkud
3-15108
3 days ago
13-49351
13 days ago
19-50342
19 days
39867 JovanGerb
author:JovanGerb
feat: `to_dual` for `Adjunction` This PR uses the new capability of `to_dual` to deal with universe reorderings to tag `Adjunction`. `Adjunction.ext_counit` is added as the dual of `Adjunction.ext`. This PR introduces 4 uses of `erw` to deal with defeq abuse. See https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.5Bto_app.5D.20and.20associators.2Funitors/near/597924260 Note: there is a bug in the implementation that I'll have to fix which stops me from being able to tag `Adjunction.comp`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 45/47 Mathlib/CategoryTheory/Adjunction/Basic.lean,Mathlib/CategoryTheory/Adjunction/FullyFaithful.lean,Mathlib/CategoryTheory/Sites/Sheafification.lean 3 1 ['github-actions'] nobody
3-9182
3 days ago
3-11358
3 days ago
3-31757
3 days
39863 thomaskwaring
author:thomaskwaring
feat(Topology/Sets/Opens): Heyting-algebra operations on open sets Add expressions for the Heyting-algebra operations on the frame of opens subsets of a topological space. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology new-contributor 22/0 Mathlib/Topology/Sets/Opens.lean 1 9 ['eric-wieser', 'github-actions', 'thomaskwaring'] nobody
3-1250
3 days ago
3-46867
3 days ago
3-54009
3 days
39855 b-mehta
author:b-mehta
feat(InfiniteSum): zero function has product zero Prove that in a comm monoid with zero, the product of the zero function is zero. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 13/0 Mathlib/Topology/Algebra/InfiniteSum/Basic.lean 1 3 ['b-mehta', 'github-actions', 'plp127'] nobody
3-1028
3 days ago
3-1074
3 days ago
3-53905
3 days
38600 khwilson
author:khwilson
feat(Topology/Semicontinuity): additional definitions for correspondences On the way to proving Michael's selection theorem, several extra notions related to hemicontinuity are introduced. Specifically, the notion of a correspondence having lower sections and it having an open graph. The first construction is what is used in the proof of Michael's theorem to generate approximations to the target selection. The second is used in the iterative step to generate new lower hemicontinuous maps. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 139/0 Mathlib/Topology/Semicontinuity/Defs.lean 1 8 ['eric-wieser', 'github-actions', 'j-loreaux', 'khwilson'] j-loreaux
assignee:j-loreaux
2-81914
2 days ago
3-75124
3 days ago
10-49600
10 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
2-80716
2 days ago
23-22380
23 days ago
23-21971
23 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 130/0 Mathlib.lean,Mathlib/Data/LawfulXor.lean 2 6 ['eric-wieser', 'github-actions', 'linesthatinterlace'] nobody
2-80715
2 days ago
23-80349
23 days ago
30-72532
30 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
2-80543
2 days ago
46-29221
46 days ago
47-4706
47 days
39895 yuanyi-350
author:yuanyi-350
refactor(Analysis): golf `Mathlib/Analysis/Normed/Module/MStructure` - refactors `Normed/Module/MStructure` by replacing a norm-zero argument with `nlinarith` and shortening the proof of `QP_eq_QPQ` Extracted from #37968 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex t-analysis LLM-generated 6/10 Mathlib/Analysis/Normed/Module/MStructure.lean 1 2 ['github-actions', 'yuanyi-350'] nobody
2-80393
2 days ago
2-81646
2 days ago
2-81237
2 days
39897 yuanyi-350
author:yuanyi-350
refactor(Analysis): golf `Mathlib/Analysis/Normed/Ring/Basic` - refactors `Normed/Ring/Basic` by removing redundant nonempty-case splits from `Real.iSup_fun_mul_eq_iSup_mul_iSup_of_nonneg` Extracted from #37968 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex t-analysis LLM-generated 0/4 Mathlib/Analysis/Normed/Ring/Basic.lean 1 2 ['github-actions', 'yuanyi-350'] nobody
2-80391
2 days ago
2-81642
2 days ago
2-81233
2 days
39894 yuanyi-350
author:yuanyi-350
refactor(Analysis): golf `Mathlib/Analysis/Normed/Lp/WithLp` - refactors `Normed/Lp/WithLp` by deriving scalar tower and scalar commutation instances from `WithLp.equiv` Extracted from #37968 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex t-analysis LLM-generated 4/8 Mathlib/Analysis/Normed/Lp/WithLp.lean 1 2 ['github-actions', 'yuanyi-350'] nobody
2-80141
2 days ago
2-81648
2 days ago
2-81239
2 days
39896 yuanyi-350
author:yuanyi-350
refactor(Analysis): golf `Mathlib/Analysis/Normed/Operator/ContinuousLinearMap` - refactors `Normed/Operator/ContinuousLinearMap` by reusing `mkContinuous` in bounded linear continuity proofs and shortening `homothety_inverse` Extracted from #37968 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex t-analysis LLM-generated 5/16 Mathlib/Analysis/Normed/Operator/ContinuousLinearMap.lean 1 2 ['github-actions', 'yuanyi-350'] nobody
2-80066
2 days ago
2-81644
2 days ago
2-81235
2 days
39898 yuanyi-350
author:yuanyi-350
refactor(Analysis): golf `Mathlib/Analysis/Normed/Unbundled/AlgebraNorm` - refactors `Normed/Unbundled/AlgebraNorm` by using structure inheritance in `MulRingNorm.toRingNorm` Extracted from #37968 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex t-analysis LLM-generated 1/5 Mathlib/Analysis/Normed/Unbundled/AlgebraNorm.lean 1 2 ['github-actions', 'yuanyi-350'] nobody
2-79827
2 days ago
2-81640
2 days ago
2-81231
2 days
39899 yuanyi-350
author:yuanyi-350
refactor(Analysis): golf `Mathlib/Analysis/Normed/Unbundled/FiniteExtension` - refactors `Normed/Unbundled/FiniteExtension` by proving `Basis.norm_smul` via `Finset.mul₀_sup'` Extracted from #37968 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex t-analysis LLM-generated 4/15 Mathlib/Analysis/Normed/Unbundled/FiniteExtension.lean 1 2 ['github-actions', 'yuanyi-350'] nobody
2-79687
2 days ago
2-81638
2 days ago
2-81229
2 days
39900 yuanyi-350
author:yuanyi-350
refactor(Analysis): golf `Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral` - refactors `Gaussian/GaussianIntegral` by proving `integral_gaussian_complex_Ioi` using `integral_comp_neg_Ioi` Extracted from #37968 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex t-analysis LLM-generated 13/20 Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean 1 2 ['github-actions', 'yuanyi-350'] nobody
2-79584
2 days ago
2-81636
2 days ago
2-81227
2 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$
270/0 Mathlib.lean,Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/Group/Commute/Defs.lean,Mathlib/Algebra/Star/Unitary.lean,Mathlib/LinearAlgebra/Matrix/HadamardMatrix.lean,docs/references.bib 6 56 ['JJYYY-JJY', 'dennj', 'eric-wieser', 'github-actions', 'themathqueen', 'wwylele'] themathqueen
assignee:themathqueen
2-79091
2 days ago
17-4743
17 days ago
32-23374
32 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 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] RemyDegenne
assignee:RemyDegenne
2-79088
2 days ago
26-34533
26 days ago
26-34124
26 days
39391 emlis42
author:emlis42
feat(MeasureTheory/Integral): add integral_congr_uIoo This PR adds some congruence lemmas for interval integrals under `NoAtoms μ` and golfs some lemmas. | Lemma | Heartbeats | Proof Elaboration Time | ---- | ---- | ---- `LocallyIntegrable.ae_hasDerivAt_integral` | 7684 → 5235 (−2449, 31%) | 603ms → 445ms (−157ms, 26%) `MonotoneOn.exists_tendsto_deriv_liminf_lintegral_enorm_le` | 31019 → 8388 (−22631, 73%) | 2475ms → 631ms (−1843ms, 74%) `MonotoneOn.intervalIntegral_deriv_mem_uIcc` | 22680 → 5983 (−16697, 73%) | 1713ms → 537ms (−1175ms, 68%) `AbsolutelyContinuousOnInterval.integral_deriv_mul_eq_sub` | 1475 → 845 (−630, 42%) | 92ms → 41ms (−50ms, 55%) `fourierCoeff_liftIco_eq` | 1040 → 703 (−337, 32%) | 55ms → 41ms (−13ms, 24%) `taylor_integral_remainder_aux` | 26585 → 18827 (−7758, 29%) | 2095ms → 1575ms (−520ms, 24%) Profiled on top of commit `9e407aa1ef1be515a1bd0e1c1fc081d5b855f25e` using `set_option trace.profiler true in` and ``` set_option Elab.async false in #count_heartbeats in ``` t-measure-probability new-contributor 52/35 Mathlib/Analysis/Calculus/Taylor.lean,Mathlib/Analysis/Fourier/AddCircle.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/AbsolutelyContinuousFun.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/Basic.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/DerivIntegrable.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/LebesgueDifferentiationThm.lean 6 3 ['github-actions', 'mathlib-merge-conflicts'] kex-y
assignee:kex-y
2-79087
2 days ago
4-28323
4 days ago
13-20337
13 days
39910 justus-springer
author:justus-springer
feat(AlgebraicGeometry/Morphisms/UniversallyInjective): equivalent criteria for universally injective morphisms We prove [stacks 01S4](https://stacks.math.columbia.edu/tag/01S4), which gives two new equivalent criteria for being universally injective. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-geometry large-import 99/6 Mathlib/AlgebraicGeometry/Morphisms/UniversallyInjective.lean,Mathlib/AlgebraicGeometry/ResidueField.lean 2 2 ['github-actions', 'justus-springer'] nobody
2-53430
2 days ago
2-53508
2 days ago
2-53099
2 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 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] kim-em
assignee:kim-em
2-48585
2 days ago
29-2878
29 days ago
29-2735
29 days
39185 ooovi
author:ooovi
feat(Geometry/Convex/Cone/Pointed): faces of pointed cones - Define PointedCone.IsFaceOf, for a pointed cone being a face of another pointed cone. - Prove some basic properties, that faces are extreme sets of their cone, and how they behave under intersection, map and product operations. Co-authored-by: Martin Winter --- split off of #33664 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-convex-geometry 289/0 Mathlib.lean,Mathlib/Geometry/Convex/Cone/Face/Basic.lean 2 4 ['YaelDillies', 'github-actions', 'martinwintermath', 'mathlib-bors'] YaelDillies
assignee:YaelDillies
2-45726
2 days ago
2-45726
2 days ago
2-47976
2 days
39886 grunweg
author:grunweg
chore(Geometry/Manifold): remove some `@[expose] public` section Go through a few files and audit the exposed definitions there. Best reviewed commit by commit. --- I'm happy to give more details on any file where desired. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-differential-geometry tech debt 17/20 Mathlib/Geometry/Manifold/Bordism.lean,Mathlib/Geometry/Manifold/VectorField/LieBracket.lean,Mathlib/Geometry/Manifold/WhitneyEmbedding.lean 3 1 ['github-actions'] JovanGerb
assignee:JovanGerb
2-45315
2 days ago
3-10908
3 days ago
3-10499
3 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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-45029
2 days ago
18-27005
18 days ago
21-49589
21 days
39770 mathlib-splicebot
author:mathlib-splicebot
feat: atoms of a countably generated measurable space This PR adds a definition for the atoms in a countably generated measurable space, expressed with `natGeneratingSequence`. We also show that the atoms are measurable sets. --- This PR was automatically created from PR #39739 by @RemyDegenne via a [review comment](https://github.com/leanprover-community/mathlib4/pull/39739#discussion_r3294476245) by @RemyDegenne. t-measure-probability 121/0 Mathlib/MeasureTheory/MeasurableSpace/CountablyGenerated.lean 1 4 ['RemyDegenne', 'gaetanserre', 'github-actions'] nobody
2-43000
2 days ago
5-39494
5 days ago
5-39085
5 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 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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-37729
2 days ago
21-33722
21 days ago
56-21384
56 days
39369 pd4st8hb95-hub
author:pd4st8hb95-hub
feat: add basic fuzzy set definitions This PR adds a minimal `FuzzySet` API in `Mathlib/Order/FuzzySet`. A fuzzy set is represented as an abbreviation: `FuzzySet α L := α → L` The file provides basic definitions and lemmas: - `degree` - `support` - `core` - `weakCut` - `strongCut` - membership simp lemmas - extensionality - basic monotonicity lemmas for weak and strong cuts This PR intentionally does not add complement, union/intersection-specific API, normal or convex fuzzy sets, fuzzy relations, or advanced fuzzy set theory. Validation: - `lake build Mathlib.Order.FuzzySet` - `#lint only docBlame docBlameThm` Feedback on whether `Mathlib/Order/FuzzySet.lean` is the right location for this minimal API would be appreciated. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order new-contributor 169/0 Mathlib.lean,Mathlib/Order/FuzzySet.lean 2 6 ['github-actions', 'grunweg', 'pd4st8hb95-hub', 'wwylele'] nobody
2-36848
2 days ago
13-34449
13 days ago
13-34400
13 days
39307 FordUniver
author:FordUniver
feat(Combinatorics/SimpleGraph/Copy): introduce `UnlabeledCopy` carrier subtype Adds `abbrev UnlabeledCopy A B := {B' : B.Subgraph // Nonempty (A ≃g B'.coe)}` and uses it to replace the previous inline filter-set body of `copyCount G H`. Drops the now unused legacy Finset-image bridge `copyCount_eq_card_image_copyToSubgraph`. Adds `uniqueUnlabeledCopyBot` instance so `copyCount_bot` is a one-liner via `Fintype.card_unique`. Co-authored-by: Malte Jackisch <45597826+MaltyBlanket@users.noreply.github.com> --- **Step 1/5 of the `Copy` / `InducedCopy` refactor-feat stack.** This PR isolates the `UnlabeledCopy` type introduction and the count's type-form redefinition from the larger rename/convention work in the rest of the stack. Note that resolving the current clash in naming (`Copy` and `UnlabeledCopy` vs `labelledCopyCount` and `copyCount`) is part of #38745. t-combinatorics maintainer-merge 32/30 Mathlib/Combinatorics/SimpleGraph/Copy.lean 1 8 ['FordUniver', 'YaelDillies', 'github-actions', 'mathlib-bors', 'mathlib-merge-conflicts', 'mitchell-horner'] nobody
2-32479
2 days ago
4-58843
4 days ago
14-67573
14 days
39288 FordUniver
author:FordUniver
feat(Combinatorics/SimpleGraph/Subgraph): add `Embedding.ofIsInduced` and `IsInduced.map` Three additions to the `SimpleGraph.Subgraph` API for induced subgraphs. `Embedding.ofIsInduced` is the canonical embedding of an induced subgraph into its ambient graph, paired with `toHom_ofIsInduced` and `ofIsInduced_apply` lemmas. This is the embedding counterpart of `Subgraph.hom`, which only produces a homomorphism because non-induced subgraphs do not reflect adjacency. `Subgraph.IsInduced.map` then records that the image of an induced subgraph under a graph embedding is induced, strengthened to `IsInduced.map_iff` for the iso case. Co-authored-by: Malte Jackisch <45597826+MaltyBlanket@users.noreply.github.com> --- **Orthogonal pre-requisite of the `Copy` / `InducedCopy` refactor-feat stack.** Extracted as a prerequisite from #38631 that is otherwise independent of the wider `Copy` / `InducedCopy` refactor-feat stack. t-combinatorics 27/4 Mathlib/Combinatorics/SimpleGraph/Copy.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean 2 16 ['FordUniver', 'SnirBroshi', 'github-actions', 'mathlib-bors', 'mathlib-merge-conflicts'] nobody
2-31943
2 days ago
4-58459
4 days ago
16-7566
16 days
39691 Raph-DG
author:Raph-DG
feat(Topology): An open cover of a preconnected set has no isolated components In this PR we show that a family of open sets whose union is preconnected has the property that for any two (nonempty) sets U and V in the cover there is a sequence of sets in the cover U = U_0, U_1,..., U_n = V such that U_i \cap U_{i+1} is nonempty for all i. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 20/0 Mathlib/Topology/Connected/Basic.lean 1 5 ['Raph-DG', 'github-actions', 'plp127'] nobody
2-31342
2 days ago
6-41619
6 days ago
7-47821
7 days
39690 b-mehta
author:b-mehta
feat(Analysis/Complex/Exponential): add new bounds on exponential We add new upper bounds on Real.exp in terms of 2x/(2+x), and use these to move some bounds on log higher in mathlib. We also add a lemma for the common bound (1+1/n)^n <= e, though this is a special-case of `one_sub_div_pow_le_exp_neg` (immediately before), but is added for convenience and discoverability, as this is a "well-known" bound. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 36/11 Mathlib/Analysis/Complex/Exponential.lean,Mathlib/Analysis/Complex/ExponentialBounds.lean,Mathlib/Analysis/SpecialFunctions/Log/Basic.lean,Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean 4 3 ['github-actions', 'mathlib-merge-conflicts'] nobody
2-30244
2 days ago
2-30283
2 days ago
5-86180
5 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 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 61/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 14 ['8e7', 'Rida-Hamadani', 'SnirBroshi', 'github-actions', 'vlad902'] nobody
2-29458
2 days ago
32-11131
32 days ago
32-10722
32 days
39935 FordUniver
author:FordUniver
feat(Combinatorics/SimpleGraph/Finite): LocallyFiniteOrder Adds an order-theoretic `LocallyFiniteOrder (SimpleGraph V)` instance (closed intervals are finite), distinct from the existing graph-theoretic `LocallyFinite` (vertex degrees) already in this file. The instance takes `DecidableLE` as an explicit hypothesis rather than routing through `Classical`, because per-graph `DecidableRel G.Adj` is value-dependent and cannot be a free global instance. Co-authored-by: Malte Jackisch <45597826+MaltyBlanket@users.noreply.github.com> --- Came up while writing a Möbius inversion between copy counts and induced copy counts ([WIP](https://github.com/FordUniver/mathlib4/pull/36/changes)) that sums over the closed interval `Finset.Icc G ⊤` of supergraphs. Decidability of the order plus local-finiteness of the lattice felt like a clean standalone piece to land first, before the rest of the Möbius file. Less sure about what the conventions for declaring type class instances are in mathlib, let me know if this is not of the expected shape or should not be included at all. t-combinatorics 20/0 Mathlib/Combinatorics/SimpleGraph/Finite.lean 1 1 ['github-actions'] nobody
2-27359
2 days ago
2-28704
2 days ago
2-28295
2 days
39907 Hagb
author:Hagb
feat(Order/InititalSeg): `PrincipalSeg` is trichotomous for well orders For any two well orders, one is a principal segment of the other, or they are isomorphic. Suggested by @vihdzp in the review of #39545 https://github.com/leanprover-community/mathlib4/pull/39545#discussion_r3262466782. It may slightly simplify the proof of `infinite_iff_nonempty_relEmbedding_of_isWellOrder`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 7/0 Mathlib/Order/InitialSeg.lean 1 1 ['github-actions', 'vihdzp'] nobody
2-25371
2 days ago
2-67681
2 days ago
2-67272
2 days
39905 plp127
author:plp127
chore(Order/CompleteBooleanAlgebra): dualize `symmDiff` theorems Dualize some `symmDiff` theorems, and also generalize them from `CompleteBooleanAlgebra` to `Order.Coframe`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 76/39 Mathlib/Order/CompleteBooleanAlgebra.lean 1 3 ['github-actions', 'plp127', 'vihdzp'] nobody
2-24318
2 days ago
2-79682
2 days ago
2-79273
2 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 8 ['JovanGerb', 'github-actions', 'kim-em', 'leanprover-radar', 'mathlib-merge-conflicts'] nobody
2-16679
2 days ago
2-16716
2 days ago
32-6045
32 days
37071 ericluap
author:ericluap
feat: Dedekind completion of rationals is isomorphic to EReal t-order new-contributor 128/4 Mathlib.lean,Mathlib/Data/EReal/Basic.lean,Mathlib/Data/EReal/DedekindCut.lean,Mathlib/Order/Completion.lean 4 59 ['ericluap', 'github-actions', 'plp127', 'vihdzp', 'wwylele'] vihdzp
assignee:vihdzp
2-14991
2 days ago
18-26149
18 days ago
41-20928
41 days
39724 vihdzp
author:vihdzp
feat: finite sets are closed under directed suprema As are chains of length ≤ ω. --- We don't prove `Set.Finite.dirSupClosed` via `DirectedOn.finite_le`, in order to save a few imports. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) file-removed t-order 239/31 Mathlib.lean,Mathlib/Data/Fintype/Order.lean,Mathlib/Order/Cofinal.lean,Mathlib/Order/DirSupClosed/Basic.lean,Mathlib/Order/DirSupClosed/Finite.lean,Mathlib/Order/IsNormal.lean,Mathlib/SetTheory/Cardinal/Cofinality/Club.lean,Mathlib/SetTheory/Cardinal/Cofinality/Ordinal.lean,Mathlib/Topology/Order/ScottTopology.lean 9 2 ['github-actions', 'mathlib-merge-conflicts'] nobody
2-13929
2 days ago
2-13966
2 days ago
5-33542
5 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 98/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 17 ['eric-wieser', 'github-actions', 'kim-em', 'mathlib-merge-conflicts', 'themathqueen'] thorimur
assignee:thorimur
2-13721
2 days ago
2-13633
2 days ago
23-6455
23 days
36236 kim-em
author:kim-em
chore: add module keyword to Archive and Counterexamples files This PR converts 105 Archive and Counterexamples files to module format, adding `module`, `public import`, and `@[expose] public section`. Eight files are left unconverted for now: - Seven files containing `private` declarations that need further work (`Imo1962Q1`, `MiuLanguage/Basic`, `MiuLanguage/DecisionSuf`, `AscendingDescendingSequences`, `BallotProblem`, `AharoniKorman`, `TopologistsSineCurve`) - `Counterexamples/InvertibleModuleNotIdeal` which needs an import path update For `Archive/Examples/PropEncodable`, the `private` declarations were removed as part of this conversion. 🤖 Prepared with Claude Code IMO LLM-generated 738/310 Archive/Arithcc.lean,Archive/Examples/Eisenstein.lean,Archive/Examples/Kuratowski.lean,Archive/Examples/PropEncodable.lean,Archive/Hairer.lean,Archive/Imo/Imo1959Q1.lean,Archive/Imo/Imo1959Q2.lean,Archive/Imo/Imo1960Q1.lean,Archive/Imo/Imo1960Q2.lean,Archive/Imo/Imo1961Q3.lean,Archive/Imo/Imo1962Q4.lean,Archive/Imo/Imo1963Q5.lean,Archive/Imo/Imo1964Q1.lean,Archive/Imo/Imo1969Q1.lean,Archive/Imo/Imo1972Q5.lean,Archive/Imo/Imo1975Q1.lean,Archive/Imo/Imo1977Q6.lean,Archive/Imo/Imo1981Q3.lean,Archive/Imo/Imo1982Q1.lean,Archive/Imo/Imo1985Q2.lean,Archive/Imo/Imo1986Q5.lean,Archive/Imo/Imo1987Q1.lean,Archive/Imo/Imo1988Q6.lean,Archive/Imo/Imo1994Q1.lean,Archive/Imo/Imo1997Q3.lean,Archive/Imo/Imo1998Q2.lean,Archive/Imo/Imo2001Q2.lean,Archive/Imo/Imo2001Q3.lean,Archive/Imo/Imo2001Q4.lean,Archive/Imo/Imo2001Q5.lean,Archive/Imo/Imo2001Q6.lean,Archive/Imo/Imo2002Q3.lean,Archive/Imo/Imo2005Q3.lean,Archive/Imo/Imo2005Q4.lean,Archive/Imo/Imo2006Q3.lean,Archive/Imo/Imo2006Q5.lean,Archive/Imo/Imo2008Q2.lean,Archive/Imo/Imo2008Q3.lean,Archive/Imo/Imo2008Q4.lean,Archive/Imo/Imo2010Q5.lean,Archive/Imo/Imo2011Q3.lean,Archive/Imo/Imo2011Q5.lean,Archive/Imo/Imo2013Q1.lean,Archive/Imo/Imo2013Q5.lean,Archive/Imo/Imo2015Q6.lean,Archive/Imo/Imo2019Q1.lean,Archive/Imo/Imo2019Q2.lean,Archive/Imo/Imo2019Q4.lean,Archive/Imo/Imo2020Q2.lean,Archive/Imo/Imo2021Q1.lean,Archive/Imo/Imo2024Q2.lean,Archive/Imo/Imo2024Q3.lean,Archive/Imo/Imo2024Q6.lean,Archive/Imo/Imo2025Q3.lean,Archive/Kuratowski.lean,Archive/MinimalSheffer.lean,Archive/OxfordInvariants/Summer2021/Week3P1.lean,Archive/Sensitivity.lean,Archive/Wiedijk100Theorems/AbelRuffini.lean,Archive/Wiedijk100Theorems/AreaOfACircle.lean,Archive/Wiedijk100Theorems/BirthdayProblem.lean,Archive/Wiedijk100Theorems/BuffonsNeedle.lean,Archive/Wiedijk100Theorems/CubingACube.lean,Archive/Wiedijk100Theorems/FriendshipGraphs.lean,Archive/Wiedijk100Theorems/HeronsFormula.lean,Archive/Wiedijk100Theorems/InverseTriangleSum.lean,Archive/Wiedijk100Theorems/Konigsberg.lean,Archive/Wiedijk100Theorems/PerfectNumbers.lean,Archive/Wiedijk100Theorems/SolutionOfCubicQuartic.lean,Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean,Archive/ZagierTwoSquares.lean,Counterexamples/CanonicallyOrderedCommSemiringTwoMul.lean,Counterexamples/CharPZeroNeCharZero.lean,Counterexamples/CliffordAlgebraNotInjective.lean,Counterexamples/Cyclotomic105.lean,Counterexamples/DimensionPolynomial.lean,Counterexamples/DirectSumIsInternal.lean,Counterexamples/DiscreteTopologyNonDiscreteUniformity.lean,Counterexamples/EulerSumOfPowers.lean,Counterexamples/Girard.lean,Counterexamples/HeawoodUnitDistance.lean,Counterexamples/HomogeneousPrimeNotPrime.lean,Counterexamples/IrrationalPowerOfIrrational.lean,Counterexamples/MapFloor.lean,Counterexamples/MonicNonRegular.lean,Counterexamples/Motzkin.lean,Counterexamples/NowhereDifferentiable.lean,Counterexamples/OrderedCancelAddCommMonoidWithBounds.lean,Counterexamples/PeanoCurve.lean,Counterexamples/Phillips.lean,Counterexamples/PolynomialIsDomain.lean,Counterexamples/Pseudoelement.lean,Counterexamples/QuadraticForm.lean,Counterexamples/SeminormLatticeNotDistrib.lean,Counterexamples/SeparableNotSecondCountable.lean,Counterexamples/SorgenfreyLine.lean,Counterexamples/ZeroDivisorsInAddMonoidAlgebras.lean 97 10 ['JovanGerb', 'github-actions', 'grunweg', 'kim-em', 'mathlib-merge-conflicts'] dwrensha
assignee:dwrensha
2-13614
2 days ago
2-14868
2 days ago
13-59214
13 days
39533 b-mehta
author:b-mehta
feat(Data/Finset/Image): add image_comp and image_comp_image The statement `image_comp` is worth adding because it matches the Set version, and also is more useful for rewriting in the forward direction. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 13/0 Mathlib/Data/Finset/Image.lean,Mathlib/Data/Set/Image.lean 2 5 ['b-mehta', 'github-actions', 'j-loreaux', 'themathqueen'] nobody
2-11423
2 days ago
4-19691
4 days ago
5-25419
5 days
39759 plp127
author:plp127
chore(FieldTheory/KrullTopology): move lemmas to earlier file We move some lemmas unrelated to the Krull topology out of the `KrullTopology` file. They are placed in the earlier file `FieldTheory/IsGalois/Basic` instead. --- In #23693 it is said that > The proof of it uses some results in this file, so it can't be put into earlier files. This is no longer true, so we want move it out of the `KrullTopology` file because the theorems have nothing to do with the Krull topology. I found that they can go in `FieldTheory/IsGalois/Basic` without modifying the proofs. They cannot go any earlier because the statement of the theorems contains `IsGalois`, which is defined in this file. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
59/68 Mathlib/FieldTheory/Galois/Basic.lean,Mathlib/FieldTheory/KrullTopology.lean 2 5 ['acmepjz', 'github-actions', 'grunweg', 'plp127', 'vihdzp'] nobody
2-11363
2 days ago
6-8212
6 days ago
6-7803
6 days
39865 eliasjudin
author:eliasjudin
feat(Algebra): add eval API parity lemmas Adds two eval API parity lemmas from #23044: `MvPolynomial.hom_eval₂`, parallel to `Polynomial.hom_eval₂`, and `Polynomial.eval₂RingHom_comp_C`, parallel to `MvPolynomial.eval₂Hom_comp_C`. This addresses the eval portion of #23044; the degree-name discussion there is left for separate work. t-algebra new-contributor
label:t-algebra$
10/0 Mathlib/Algebra/MvPolynomial/Eval.lean,Mathlib/Algebra/Polynomial/Eval/Defs.lean 2 2 ['github-actions'] nobody
2-10061
2 days ago
3-53768
3 days ago
3-53359
3 days
37870 Jun2M
author:Jun2M
feat(Combinatorics/Graph): `Simple` typeclass for `Graph` This PR introduces two type classes on `Graph`: `Loopless` and `Simple`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 92/0 Mathlib.lean,Mathlib/Combinatorics/Graph/Simple.lean 2 8 ['Jun2M', 'YaelDillies', 'github-actions', 'mathlib-merge-conflicts'] YaelDillies
assignee:YaelDillies
2-9800
2 days ago
28-77630
28 days ago
48-25254
48 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-differential-geometry t-meta 161/106 Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean,Mathlib/Geometry/Manifold/GroupLieAlgebra.lean,Mathlib/Geometry/Manifold/IntegralCurve/Basic.lean,Mathlib/Geometry/Manifold/MFDeriv/NormedSpace.lean,Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean,Mathlib/Geometry/Manifold/MFDeriv/Tangent.lean,Mathlib/Geometry/Manifold/Notation.lean,Mathlib/Geometry/Manifold/Riemannian/Basic.lean,Mathlib/Geometry/Manifold/Riemannian/PathELength.lean,Mathlib/Topology/FiberBundle/Constructions.lean,MathlibTest/DifferentialGeometry/Notation/Basic.lean 11 9 ['JovanGerb', 'github-actions', 'grunweg', 'mathlib-merge-conflicts', 'ocfnash'] JovanGerb
assignee:JovanGerb
2-8500
2 days ago
2-8497
2 days ago
71-26065
71 days
39811 TheGoedeDoel
author:TheGoedeDoel
feat(CategoryTheory): functors of submonoids We add a definition of a functor of submonoids: For a functor `M : C ⥤ MonCat`, a submonoid functor consists of a submonoid of `M.obj U` for every `U`, compatible with the restriction maps `M.map i`. We provide the complete lattice structure on `SubmonoidFunctor M` and a map and comap operation. In a follow-up PR, we will use this to define the localisation of a presheaf of modules along a submonoid functor of the sheaf of rings. See also https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Subfunctors.20with.20algebraic.20structure/with/587726088 for a discussion of alternative designs. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory new-contributor maintainer-merge 183/2 Mathlib.lean,Mathlib/Algebra/Group/Submonoid/Operations.lean,Mathlib/CategoryTheory/Subfunctor/SubmonoidFunctor.lean 3 110 ['TheGoedeDoel', 'chrisflav', 'github-actions', 'joelriou', 'quantumsnow'] chrisflav
assignee:chrisflav
2-7790
2 days ago
3-18465
3 days ago
3-35036
3 days
39802 vihdzp
author:vihdzp
feat: more theorems on `toBoolRing` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
23/0 Mathlib/Algebra/Ring/BooleanRing.lean 1 3 ['github-actions', 'plp127'] nobody
2-6665
2 days ago
2-6800
2 days ago
3-47341
3 days
39727 vihdzp
author:vihdzp
feat: stationary sets We define stationary sets as sets intersecting all club sets, and prove basic theorems about them. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory maintainer-merge 154/22 Mathlib/Order/Cofinal.lean,Mathlib/SetTheory/Cardinal/Cofinality/Club.lean 2 7 ['YaelDillies', 'github-actions', 'vihdzp'] nobody
2-5705
2 days ago
5-29651
5 days ago
7-198
7 days
39613 sharky564
author:sharky564
feat(LinearAlgebra/Projection): add quotientEquivOfIsCompl_comp_mkQ and quotientEquivOfIsTopCompl_comp_mkQ Adds the lemmas `Submodule.quotientEquivOfIsCompl_comp_mkQ` and `quotientEquivOfIsTopCompl_comp_mkQ` - the composition of `quotientEquivOfIsCompl`/`quotientEquivOfIsTopCompl` with `mkQ` agrees with the linear projection onto `q` along `p`. Additionally the proof of `IsCompl.isTopCompl_iff_continuous_quotientEquivOfIsCompl` is simplified. --- This lemma was flagged as missing in the API in the review of #39260 by @themathqueen. Upon review of the lemma, I found it could be further simplified. t-algebra t-topology
label:t-algebra$
11/4 Mathlib/LinearAlgebra/Projection.lean,Mathlib/Topology/Algebra/Module/Complement.lean 2 9 ['ADedecker', 'github-actions', 'sharky564', 'themathqueen'] nobody
1-83101
1 day ago
5-74714
5 days ago
8-80052
8 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-logic 88/56 Mathlib/ModelTheory/Definability.lean,Mathlib/ModelTheory/ElementarySubstructures.lean 2 1 ['github-actions'] nobody
1-80720
1 day ago
40-65404
40 days ago
40-64995
40 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 154/7 Mathlib/RingTheory/MvPowerSeries/Substitution.lean,Mathlib/RingTheory/MvPowerSeries/Trunc.lean 2 3 ['BryceT233', 'github-actions'] nobody
1-80719
1 day ago
17-44003
17 days ago
37-27708
37 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'] nobody
1-80716
1 day ago
28-19819
28 days ago
28-19464
28 days
39495 hawkrobe
author:hawkrobe
feat(Data/Multiset/Antidiagonal): two structural lemmas Adds `map_swap_antidiagonal` and `antidiagonal_add`. --- Fills out the API parallel to `Multiset.Nat.map_swap_antidiagonal` and `Finset.map_swap_antidiagonal`. (And adds `@[congr]` to `bind_congr`.) Used downstream for shuffle-coproduct constructions. (#7486, I found this old [Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/antidiagonals.20having.20multiplicity.20.237595/near/238573473)) I used Claude Code to audit and polish. t-data new-contributor 20/0 Mathlib/Data/Multiset/Antidiagonal.lean,Mathlib/Data/Multiset/Bind.lean 2 6 ['github-actions', 'hawkrobe', 'j-loreaux'] nobody
1-80266
1 day ago
9-38303
9 days ago
12-18886
12 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 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] eric-wieser
assignee:eric-wieser
1-79578
1 day ago
63-18272
63 days ago
63-18599
63 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 54/0 Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean 1 5 ['Raph-DG', 'chrisflav', 'github-actions'] alreadydone
assignee:alreadydone
1-79576
1 day ago
28-53294
28 days ago
34-30351
34 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] riccardobrasca
assignee:riccardobrasca
1-79570
1 day ago
28-40090
28 days ago
52-39171
52 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory new-contributor 144/1 Mathlib/RingTheory/MvPowerSeries/GaussNorm.lean 1 4 ['WilliamCoram', 'github-actions'] riccardobrasca
assignee:riccardobrasca
1-79568
1 day ago
45-22959
45 days ago
45-22550
45 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). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-logic 119/28 Mathlib/Logic/Relation.lean,Mathlib/Order/GaloisConnection/Basic.lean 2 3 ['SnirBroshi', 'github-actions', 'plp127'] fpvandoorn
assignee:fpvandoorn
1-79566
1 day ago
34-66831
34 days ago
36-1444
36 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 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated t-measure-probability 3/8 Mathlib/MeasureTheory/Covering/Besicovitch.lean 1 2 ['github-actions', 'yuanyi-350'] kex-y
assignee:kex-y
1-79565
1 day ago
26-36925
26 days ago
26-36516
26 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 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated t-measure-probability 2/6 Mathlib/MeasureTheory/Function/AEMeasurableSequence.lean 1 2 ['github-actions', 'yuanyi-350'] RemyDegenne
assignee:RemyDegenne
1-79563
1 day ago
26-34095
26 days ago
26-33686
26 days
39294 Sfgangloff
author:Sfgangloff
feat(SymbolicDynamics): prove LanguageOn monotonicity under intersection In symbolic dynamics. This PR proves that taking the language over a finite shape is monotone with respect to intersections of configuration sets: ```math \mathrm{LanguageOn}(X \cap Y)\, U \subseteq \mathrm{LanguageOn}\, X\, U \cap \mathrm{LanguageOn}\, Y\, U ``` The proof is a direct unfolding of definitions: a pattern in the language of `X ∩ Y` comes from restricting a configuration `x ∈ X ∩ Y`. Since such an `x` belongs simultaneously to `X` and `Y`, the same restriction witness gives membership both in `LanguageOn X U` and in `LanguageOn Y U`, yielding membership in their intersection. Related to issue #39252 t-dynamics new-contributor 9/1 Mathlib/Dynamics/SymbolicDynamics/Basic.lean 1 2 ['github-actions'] ADedecker
assignee:ADedecker
1-79562
1 day ago
16-48208
16 days ago
16-47799
16 days
39411 JovanGerb
author:JovanGerb
feat(Push): allow pushing `∀` through `∃` This PR adds `Classical.skolem` to the `push` set. This allows pusing a forall through an exists, which can sometimes be convenient. This PR also removes `forall_self_imp` from the `push` set. I'm not sure why I added it in the first place - I think it is out of scope. This PR also fixes a subtle bug in `push` which causes `push` to not be idempotent. Namely that the default value of `post` returns `.done` instead of `.continue`, causing the tactic to stop earlier than it should/ --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 9/3 Mathlib/Tactic/Push.lean,MathlibTest/Tactic/Push/Basic.lean 2 3 ['github-actions', 'mathlib-merge-conflicts'] dwrensha
assignee:dwrensha
1-79561
1 day ago
7-41291
7 days ago
0-6372
1 hour
39473 faenuccio
author:faenuccio
feat(Topology.Homeomorph.Lemmas): add lemmas about `coe` and `IsHomeomorph` Add lemmas `IsHomeomorph.coe_equiv` and `IsHomeomorph.coe_inv` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 7/1 Mathlib/Topology/Homeomorph/Lemmas.lean 1 2 ['ADedecker', 'github-actions'] alreadydone
assignee:alreadydone
1-79559
1 day ago
13-14602
13 days ago
13-14193
13 days
39903 akiezun
author:akiezun
feat(NumberTheory): add almost prime numbers Adds Nat.IsAlmostPrime k n for natural numbers with exactly k prime factors counted with multiplicity, plus Nat.IsAtMostAlmostPrime and Nat.IsSemiprime. The definitions reuse the existing arithmetic function Ω, and the initial API proves the basic zero/one cases, prime examples, and closure under multiplication. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-number-theory 87/0 Mathlib.lean,Mathlib/NumberTheory/AlmostPrime.lean 2 5 ['SnirBroshi', 'akiezun', 'github-actions', 'vihdzp'] loefflerd
assignee:loefflerd
1-79555
1 day ago
2-81627
2 days ago
2-81218
2 days
39950 SnirBroshi
author:SnirBroshi
feat(GroupTheory/Nilpotent): a nontrivial nilpotent group has a nontrivial center and a few `upperCentralSeries`/`lowerCentralSeries` API lemmas. --- I kinda thought this would have a more elementary proof, but that's what I found. This is the proof without `grind`: ```lean theorem Group.IsNilpotent.center_ne_bot [Nontrivial G] [IsNilpotent G] : center G ≠ ⊥ := by rw [← upperCentralSeries_zero, ← upperCentralSeries_one] intro h rw [upperCentralSeries.eq_top one_ne_zero h, upperCentralSeries_zero] at h exact top_ne_bot h ``` [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-group-theory 39/2 Mathlib/GroupTheory/Nilpotent.lean 1 6 ['SnirBroshi', 'github-actions', 'tb65536'] tb65536
assignee:tb65536
1-78861
1 day ago
2-9400
2 days ago
2-8991
2 days
39953 plp127
author:plp127
feat(RingTheory/Valuation): embedding of valuation groups We show that if `vR` and `vA` are valuations satisfying `vR.HasExtension vA`, then there is an induced embedding of the valuation groups compatible with the valuations and with the extension. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 39/1 Mathlib/Algebra/Group/WithOne/Defs.lean,Mathlib/RingTheory/Valuation/Extension.lean 2 2 ['github-actions', 'plp127'] nobody
1-77934
1 day ago
1-78180
1 day ago
1-77817
1 day
39892 SnirBroshi
author:SnirBroshi
feat(GroupTheory/Commutator/Basic): more commutator identities From [Wikipedia](https://en.wikipedia.org/wiki/Commutator#Identities_(group_theory)) --- The last two aren't on Wikipedia but they're similar to Hall-Witt. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-group-theory 44/0 Mathlib/GroupTheory/Commutator/Basic.lean 1 5 ['SnirBroshi', 'github-actions', 'tb65536'] tb65536
assignee:tb65536
1-77796
1 day ago
2-82540
2 days ago
2-82131
2 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`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) - [x] depends on: #35329 - [x] depends on: #36506 t-ring-theory 596/4 Mathlib/RingTheory/MvPowerSeries/Basic.lean,Mathlib/RingTheory/MvPowerSeries/Equiv.lean 2 27 ['AntoineChambert-Loir', 'BryceT233', 'Thmoas-Guan', 'WenrongZou', 'YaelDillies', 'eric-wieser', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] mattrobball
assignee:mattrobball
1-69218
1 day ago
1-69273
1 day ago
52-21939
52 days
38200 Parcly-Taxel
author:Parcly-Taxel
feat: Turán numbers and their strict monotonicity `strictMonoOn_turanNumber` was initially proved by @Aristotle-Harmonic, then hand-polished. Co-authored-by: Aristotle (Harmonic) t-combinatorics 45/21 Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean 1 5 ['Parcly-Taxel', 'github-actions', 'mathlib-merge-conflicts', 'tb65536'] nobody
1-67641
1 day ago
1-67680
1 day ago
40-9965
40 days
39637 mcdoll
author:mcdoll
feat(Topology/Algebra): use `Is*Apply` for `ContinuousLinearMap` This is the first in many PRs that use the new `Is*Apply` classes instead of structure specific `foo_apply` lemmas. The main bulk of the PR is in Mathlib/Topology/Algebra/Module/ContinuousLinearMap/Basic.lean, everything else is just fixing errors. For each `foo` in `zero`, `one`, `add`, `sub`, `neg`, smul` we do the following: - add an instance `IsFooApply` - rename `coe_foo` to `toLinearMap_foo` - depreprecate `coe_foo`, `coe_foo'`, and `foo_apply` We are rather conservative when it comes to the instances, in future PRs this will be used more. --- Note to maintainers: please don't put multiple PRs regarding `Is*Apply` on the queue, they will most likely create merge conflicts. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 279/282 Archive/Sensitivity.lean,Mathlib/Algebra/Category/ModuleCat/Topology/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Topology/Homology.lean,Mathlib/Analysis/Analytic/Binomial.lean,Mathlib/Analysis/Analytic/IteratedFDeriv.lean,Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean,Mathlib/Analysis/CStarAlgebra/Multiplier.lean,Mathlib/Analysis/CStarAlgebra/Unitization.lean,Mathlib/Analysis/Calculus/AbsolutelyMonotone.lean,Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean,Mathlib/Analysis/Calculus/ContDiff/Operations.lean,Mathlib/Analysis/Calculus/Darboux.lean,Mathlib/Analysis/Calculus/Deriv/Add.lean,Mathlib/Analysis/Calculus/Deriv/Basic.lean,Mathlib/Analysis/Calculus/Deriv/CompMul.lean,Mathlib/Analysis/Calculus/Deriv/Mul.lean,Mathlib/Analysis/Calculus/FDeriv/Add.lean,Mathlib/Analysis/Calculus/FDeriv/Analytic.lean,Mathlib/Analysis/Calculus/FDeriv/Norm.lean,Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean,Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean,Mathlib/Analysis/Calculus/Implicit.lean,Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean,Mathlib/Analysis/Calculus/VectorField.lean,Mathlib/Analysis/Complex/CauchyIntegral.lean,Mathlib/Analysis/Complex/Harmonic/Analytic.lean,Mathlib/Analysis/Convex/Birkhoff.lean,Mathlib/Analysis/Convex/DoublyStochasticMatrix.lean,Mathlib/Analysis/Convex/Exposed.lean,Mathlib/Analysis/Convolution.lean,Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Analysis/Fourier/FourierTransform.lean,Mathlib/Analysis/Fourier/FourierTransformDeriv.lean,Mathlib/Analysis/InnerProductSpace/Adjoint.lean,Mathlib/Analysis/InnerProductSpace/ConformalLinearMap.lean,Mathlib/Analysis/InnerProductSpace/Dual.lean,Mathlib/Analysis/InnerProductSpace/LinearMap.lean,Mathlib/Analysis/InnerProductSpace/Projection/Basic.lean,Mathlib/Analysis/InnerProductSpace/Projection/FiniteDimensional.lean,Mathlib/Analysis/InnerProductSpace/Rayleigh.lean,Mathlib/Analysis/InnerProductSpace/Reproducing.lean,Mathlib/Analysis/InnerProductSpace/StarOrder.lean,Mathlib/Analysis/LocallyConvex/Separation.lean,Mathlib/Analysis/Normed/Group/SeparationQuotient.lean,Mathlib/Analysis/Normed/Module/Bases.lean,Mathlib/Analysis/Normed/Module/Multilinear/Basic.lean,Mathlib/Analysis/Normed/Operator/Bilinear.lean,Mathlib/Analysis/Normed/Operator/Compact/Basic.lean,Mathlib/Analysis/Normed/Operator/ContinuousAlgEquiv.lean,Mathlib/Analysis/SpecialFunctions/Exponential.lean,Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean,Mathlib/Geometry/Euclidean/Volume/Measure.lean,Mathlib/Geometry/Manifold/IntegralCurve/Basic.lean,Mathlib/Geometry/Manifold/IntegralCurve/Transform.lean,Mathlib/Geometry/Manifold/VectorField/LieBracket.lean,Mathlib/LinearAlgebra/Eigenspace/ContinuousLinearMap.lean,Mathlib/MeasureTheory/Function/Jacobian.lean,Mathlib/MeasureTheory/Function/JacobianOneDim.lean,Mathlib/MeasureTheory/Group/Prod.lean,Mathlib/MeasureTheory/Integral/Bochner/L1.lean,Mathlib/MeasureTheory/Integral/FinMeasAdditive.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/Basic.lean,Mathlib/MeasureTheory/Integral/Lebesgue/Basic.lean,Mathlib/MeasureTheory/Measure/Haar/DistribChar.lean,Mathlib/MeasureTheory/Measure/Haar/MulEquivHaarChar.lean,Mathlib/MeasureTheory/Measure/Typeclasses/Finite.lean,Mathlib/MeasureTheory/VectorMeasure/Decomposition/Hahn.lean,Mathlib/MeasureTheory/VectorMeasure/Decomposition/Jordan.lean,Mathlib/NumberTheory/Modular.lean,Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean,Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean,Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean,Mathlib/NumberTheory/NumberField/CanonicalEmbedding/NormLeOne.lean,Mathlib/NumberTheory/Padics/PadicNumbers.lean,Mathlib/NumberTheory/SiegelsLemma.lean,Mathlib/Probability/Distributions/Gaussian/Basic.lean,Mathlib/Probability/Distributions/Gaussian/Fernique.lean,Mathlib/Probability/Distributions/Uniform.lean,Mathlib/Topology/Algebra/Module/ContinuousLinearMap/Basic.lean,Mathlib/Topology/ContinuousMap/StoneWeierstrass.lean 80 7 ['github-actions', 'leanprover-radar', 'mathlib-merge-conflicts', 'mcdoll'] nobody
1-67377
1 day ago
1-67445
1 day ago
5-40132
5 days
38086 dagurtomas
author:dagurtomas
feat(CategoryTheory): composition of profunctors --- - [x] depends on: #38085 - [x] depends on: #38382 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 365/0 Mathlib.lean,Mathlib/CategoryTheory/Profunctor/Comp.lean,Mathlib/Logic/Relation.lean 3 16 ['adamtopaz', 'dagurtomas', 'github-actions', 'mathlib-dependent-issues', 'robin-carlier'] robin-carlier
assignee:robin-carlier
1-62919
1 day ago
1-62663
1 day ago
15-2590
15 days
37700 IvanRenison
author:IvanRenison
feat(Combinatorics/SimpleGraph/Maps): induce an iso Similar to `induceHom` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics 31/0 Mathlib/Combinatorics/SimpleGraph/Maps.lean 1 12 ['YaelDillies', 'github-actions', 'vlad902'] YaelDillies
assignee:YaelDillies
1-62490
1 day ago
4-6440
4 days ago
53-25933
53 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
1-62136
1 day ago
19-68133
19 days ago
19-67724
19 days
37374 NoneMore
author:NoneMore
feat(Topology/DerivedSet): add relative derived set lemmas Add `relDerivedSet`, `relDerivedSet_subset`, and `IsClosed.relDerivedSet_eq`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology new-contributor 17/0 Mathlib/Topology/DerivedSet.lean 1 7 ['NoneMore', 'github-actions', 'plp127', 'vihdzp'] fpvandoorn
assignee:fpvandoorn
1-60276
1 day ago
1-60344
1 day ago
59-24640
59 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 maintainer-merge
label:t-algebra$
60/0 Mathlib.lean,Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/MvPolynomial.lean,Mathlib/LinearAlgebra/Matrix/MvPolynomial.lean 3 10 ['SnirBroshi', 'dagurtomas', 'github-actions', 'kim-em', 'wwylele'] dagurtomas
assignee:dagurtomas
1-60136
1 day ago
2-11199
2 days ago
17-82252
17 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
1-59761
1 day ago
24-83736
24 days ago
25-71630
25 days
38596 JJYYY-JJY
author:JJYYY-JJY
Add basic row-equivalence and echelon-form API for matrices This PR adds the first foundational slice of `Mathlib.LinearAlgebra.Matrix.Echelon`, a theorem-oriented API for elementary row operations, row-equivalence, and echelon-form predicates for matrices. The main additions are: * elementary row-scaling matrices and their `GL` versions; * `Matrix.RowEquivalent` for the left action of `GL m R` on rectangular matrices; * row-zero, pivot, echelon, and reduced-echelon predicates; * semantic representative predicates `Matrix.IsEchelonFormOf` and `Matrix.IsReducedEchelonFormOf`. This intentionally stops before row-space characterizations, existence and uniqueness of reduced echelon representatives, and the noncomputable canonical representative `Matrix.rref`; those are planned for later PRs. Co-authored-by: Joseph Qian Co-authored-by: Veer Shukla Co-authored-by: Dhruv Bhatia Co-authored-by: Zheng Wu <1036819072@qq.com> --- This update trims the original full row-reduction API in response to reviewer feedback that the PR was too large. It keeps only the foundation needed by later row-reduction and `rref` PRs. t-algebra new-contributor
label:t-algebra$
312/6 Mathlib.lean,Mathlib/LinearAlgebra/Matrix/Echelon.lean,Mathlib/LinearAlgebra/Matrix/Transvection.lean 3 10 ['JJYYY-JJY', 'SnirBroshi', 'copilot-pull-request-reviewer', 'dagurtomas', 'github-actions', 'wwylele'] nobody
1-59739
1 day ago
15-85665
15 days ago
23-60679
23 days
39841 hawkrobe
author:hawkrobe
feat(RingTheory/HopfAlgebra): Construction on primitive elements Adds `HopfAlgebra.ofPrimitives` which builds a Hopf algebra structure on a bialgebra generated by primitive elements, given a candidate anti-algebra hom that sends each generator to its negation. --- The commutative case with `.ofAlgHom` gets this for free via `ext` but the non-commutative case needs extra work. * [ ] depends on: #39785 t-ring-theory new-contributor 314/20 Mathlib.lean,Mathlib/RingTheory/Bialgebra/Primitive.lean,Mathlib/RingTheory/HopfAlgebra/Basic.lean,Mathlib/RingTheory/HopfAlgebra/Generators.lean,Mathlib/RingTheory/HopfAlgebra/Primitive.lean,Mathlib/RingTheory/HopfAlgebra/TensorProduct.lean 6 2 ['github-actions'] nobody
1-56874
1 day ago
2-18832
2 days ago
4-15839
4 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. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 87/0 Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Star.lean 2 41 ['8e7', 'IvanRenison', 'JovanGerb', 'SnirBroshi', 'b-mehta', 'github-actions', 'vihdzp', 'vlad902'] nobody
1-53890
1 day ago
43-72293
43 days ago
45-70149
45 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`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 253/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 19 ['WenrongZou', 'eric-wieser', 'github-actions', 'mariainesdff', 'mathlib-merge-conflicts'] mattrobball
assignee:mattrobball
1-52352
1 day ago
1-52393
1 day ago
44-63001
44 days
39729 grunweg
author:grunweg
chore(Geometry/Manifold): make some doc-strings follow the style guide such as, by them beginning with the object they are defining as a subject. This will yield much better doc-strings for the differential geometry elaborators in #39677. It also increases conformance with the [documentation style guide](https://github.com/leanprover/lean4/blob/master/doc/style.md). Inspired by the MI retreat in Lisbon. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-differential-geometry 30/20 Mathlib/Geometry/Manifold/ContMDiff/Defs.lean,Mathlib/Geometry/Manifold/MFDeriv/Defs.lean,Mathlib/Geometry/Manifold/MFDeriv/NormedSpace.lean 3 2 ['github-actions', 'grunweg'] nobody
1-49995
1 day ago
6-84841
6 days ago
6-84432
6 days
39949 thorimur
author:thorimur
chore: respect naming conventions for defs in more meta code This PR removes underscores from various metaprogramming `defs` which were misnamed. Sometimes meta-level tactic API is named to reflect the tactic syntax, and sometimes expressions representing proofs are named with underscores; but both of these are ordinary parts of the API which should respect ordinary naming conventions for defs. Note that this PR also renames a couple of definitions in `Mathlib.Tactic.Linarith.NNRealPreprocesser` and `Mathlib.Tactic.Linarith.Preprocessing` to more closely reflect their type (e.g. using `?` for `Option`, `get` instead of `is` for computing data; also `Proof` instead of `Prf` to avoid the unnecessary abbreviation). These are exempted by the `defsWithUnderscore` linter due to living in `Mathlib.Tactic`. (A change to this is explored in #39890, which removes this heuristic.) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta maintainer-merge 63/36 Mathlib/Tactic/CategoryTheory/BicategoryCoherence.lean,Mathlib/Tactic/CategoryTheory/Coherence.lean,Mathlib/Tactic/Choose.lean,Mathlib/Tactic/ComputeDegree.lean,Mathlib/Tactic/Linarith/NNRealPreprocessor.lean,Mathlib/Tactic/Linarith/Preprocessing.lean,Mathlib/Tactic/Ring/Compare.lean 7 5 ['b-mehta', 'github-actions', 'grunweg', 'thorimur'] dwrensha
assignee:dwrensha
1-49545
1 day ago
2-5400
2 days ago
2-7012
2 days
38228 kim-em
author:kim-em
ci: block merging PRs that increase technical debt unless reviewed This PR adds a merge gate for technical debt increases. When the existing technical debt metrics script reports an increase, the `build` job adds an `increases-technical-debt` label. A `check-technical-debt` job then adds `blocked-by-increases-technical-debt`, which blocks bors. A reviewer can add `allow-increases-technical-debt` to unblock after confirming the increase is acceptable. ### Fail-closed detection The detection greps for the *safe* patterns (`Decrease in tech debt:` / `No changes to technical debt.`) rather than for `Increase`. If `mathlib-ci` changes the script's output wording, the label is added (fail closed) rather than silently skipped (fail open). ### Labels (three-label pattern, same as #38225) | Label | Managed by | Purpose | |---|---|---| | `increases-technical-debt` | `build` job (tech debt script) | Factual: this PR increases debt | | `blocked-by-increases-technical-debt` | `check-technical-debt` job | Operational: blocks bors | | `allow-increases-technical-debt` | Reviewer | Override: reviewer approves the increase | Bors's `block_labels` has no conditional logic, so we need the derived `blocked-by-increases-technical-debt` label to express the conjunction "increases-technical-debt AND NOT allow-increases-technical-debt". False positives can be reported on the [mathlib4 Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/increases-technical-debt.20label). 🤖 Prepared with Claude Code ----------- - [x] depends on: leanprover-community/mathlib-ci#28 CI 83/2 .github/workflows/PR_summary.yml,bors.toml 2 9 ['github-actions', 'grunweg', 'jcommelin', 'joneugster', 'kim-em', 'mathlib-dependent-issues'] Vierkantor and jcommelin
assignee:Vierkantor assignee:jcommelin
1-48269
1 day ago
1-48269
1 day ago
14-37166
14 days
38127 riccardobrasca
author:riccardobrasca
feat: add ClassGroup.extendedHom --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) file-removed t-algebra t-ring-theory
label:t-algebra$
198/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 30 ['faenuccio', 'github-actions', 'mathlib-merge-conflicts', 'riccardobrasca'] mattrobball
assignee:mattrobball
1-46061
1 day ago
1-46135
1 day ago
39-61800
39 days
38594 ScottCarnahan
author:ScottCarnahan
feat(Algebra/Lie): grading on loop algebras In this PR we introduce a decomposition of a tensor product of modules induced by a decomposition of the module on the left side. This is used to produce the canonical "energy" grading on a loop Lie algebra. This will (eventually) give us the "energy" grading on smooth representations of affine algebras. --- Should I make the tensor decomposition more ring-polymorphic? [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
144/9 Mathlib/Algebra/Lie/Loop.lean,Mathlib/LinearAlgebra/DirectSum/TensorProduct.lean,Mathlib/LinearAlgebra/TensorProduct/Decomposition.lean,Mathlib/LinearAlgebra/TensorProduct/Map.lean 4 1 ['github-actions'] ocfnash
assignee:ocfnash
1-45851
1 day ago
1-81334
1 day ago
1-80946
1 day
39966 chrisflav
author:chrisflav
chore(Algebra/Exact): relate surjectivity / injectivity and exactness This came up while reviewing #39520, but ended up unnecessary. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
8/0 Mathlib/Algebra/Exact.lean 1 1 ['github-actions'] nobody
1-43875
1 day ago
1-43948
1 day ago
1-43539
1 day
39203 FordUniver
author:FordUniver
refactor(Analysis/Calculus/Gradient): ungate `inner_gradient` lemmas Removes superfluous differentiability hypotheses (plus `UniqueDiffWithinAt` for the `Within` versions) from the four `inner_gradient[Within]_[left|right]` lemmas: `gradient` is defined as `(toDual 𝕜 F).symm (fderiv 𝕜 f x)`, so `⟪∇ f x, y⟫ = fderiv 𝕜 f x y` holds unconditionally since both sides are zero when `f` is not differentiable at `x`. Co-authored-by: Sebastian Pokutta <23001135+pokutta@users.noreply.github.com> --- Genuinely unsure about this one because the only call I currently have in my code itself has the differentiability hypothesis. But including unused (or unnecessary) assumptions seems not intentional? My best guess is that the hypotheses were included by analogy with `HasGradientAt.fderiv_apply`, which genuinely needs them. This PR drops the hypotheses and rewrites the proofs through the isomorphism directly; no existing mathlib callers pass the now-redundant arguments. t-analysis maintainer-merge 17/10 Mathlib/Analysis/Calculus/Gradient/Basic.lean 1 6 ['FordUniver', 'Komyyy', 'github-actions'] urkud
assignee:urkud
1-43591
1 day ago
18-32390
18 days ago
18-31981
18 days
39202 FordUniver
author:FordUniver
feat(Analysis/Calculus/Gradient): add `toDual_gradient` and companions Add `toDual_gradient`, `toDual_gradientWithin`, and the composed variants `toDual_comp_gradient`, `toDual_comp_gradientWithin` — the natural inverse direction of the gradient's defining equation `∇ f x := (toDual 𝕜 F).symm (fderiv 𝕜 f x)`. These identify `(toDual 𝕜 F) (∇ f x)` with `fderiv 𝕜 f x` (and the `gradientWithin` and composed forms with the corresponding fderiv versions), making the Riesz isomorphism between the two derivative views explicit. The proofs of `DifferentiableAt.hasGradientAt` and `DifferentiableWithinAt.hasGradientWithinAt` in the same file are simplified to use them. Co-authored-by: Sebastian Pokutta <23001135+pokutta@users.noreply.github.com> --- Came up while formalizing the descent lemma for Lipschitz-smooth functions, where being able to switch between `LipschitzWith K (fderiv ℝ f)` and `LipschitzWith K (∇ f)` is helpful, which with this PR becomes `toDual_comp_gradient ▸ (toDual ℝ F).isometry.lipschitzWith_iff K`. Also slightly simplifies two call sites in mathlib. maintainer-merge 20/5 Mathlib/Analysis/Calculus/Gradient/Basic.lean 1 5 ['FordUniver', 'Komyyy', 'github-actions'] nobody
1-43583
1 day ago
18-31864
18 days ago
18-31619
18 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. --- - [x] depends on: #31891 - [x] depends on: #32296 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-euclidean-geometry 159/0 Mathlib.lean,Mathlib/Geometry/Euclidean/Sphere/PolePolar.lean 2 8 ['Parcly-Taxel', 'github-actions', 'jsm28', 'kim-em', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] nobody
1-40129
1 day ago
63-18261
63 days ago
63-18612
63 days
39707 sorrachai
author:sorrachai
chore(Data/Tree/Basic): Rename Tree to BinaryTree Rename `Tree` to `BinaryTree`. This frees up the name `Tree` to cover n-ary trees in future. We only deprecate the `def`s, and move the theorems without deprecation. new-contributor t-data 157/62 Mathlib/Combinatorics/Enumerative/Catalan/Tree.lean,Mathlib/Combinatorics/Enumerative/DyckWord.lean,Mathlib/Data/Tree/Basic.lean,Mathlib/Data/Tree/Get.lean,Mathlib/Data/Tree/Traversable.lean,Mathlib/Tactic/CancelDenoms/Core.lean,docs/overview.yaml 7 36 ['b-mehta', 'eric-wieser', 'github-actions', 'sorrachai'] nobody
1-39411
1 day ago
5-30643
5 days ago
5-44292
5 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: #37627 - [x] depends on: #38933 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 208/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/Localization/Away/Lemmas.lean,Mathlib/RingTheory/UniqueFactorizationDomain/Localization.lean 7 28 ['chrisflav', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mbkybky', 'tb65536'] chrisflav
assignee:chrisflav
1-39263
1 day ago
3-61700
3 days ago
67-38257
67 days
39970 chrisflav
author:chrisflav
perf(AlgebraicGeometry): specialize index type in `AffineSpace` to `Type u` The `AffineSpace` file is notoriously slow and making the index type be in the same universe as the base scheme cuts instructions in half. In case it is necessary, we can still `ULift` to obtain the old functionality. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-geometry 27/28 Mathlib/AlgebraicGeometry/AffineSpace.lean 1 3 ['chrisflav', 'github-actions', 'leanprover-radar'] nobody
1-38297
1 day ago
1-39593
1 day ago
1-39189
1 day
37381 martinwintermath
author:martinwintermath
chore(LinearAlgebra/SesquilinearForm): deprecate `IsOrtho` and associated lemmas Next steps in cleaning up bilinearity and orthogonality: - deprecate `IsOrtho` and accompanying trivial lemmas (this also allows to shorten the proofs in `orthogonalBilin`). - deprecate `ortho_smul_right` and `ortho_smul_left` since now provable from simp. - remove uses of deprecated definitions. - replace `IsOrtho` in undergrad.yaml by `iIsOrtho`. See discussion at [#mathlib4 > Reorganizing bilinearity and orthogonality?](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Reorganizing.20bilinearity.20and.20orthogonality.3F/with/582426197) Due to too agressive simplification I had to remove simp from - `QuadraticMap.associated_apply` - `QuadraticMap.isOrtho_polarBilin` --- - [x] depends on: #37389 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
112/97 Mathlib/Algebra/Lie/InvariantForm.lean,Mathlib/Algebra/Lie/TraceForm.lean,Mathlib/Algebra/Lie/Weights/Killing.lean,Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean,Mathlib/LinearAlgebra/QuadraticForm/Basic.lean,Mathlib/LinearAlgebra/QuadraticForm/IsometryEquiv.lean,Mathlib/LinearAlgebra/QuadraticForm/Radical.lean,Mathlib/LinearAlgebra/QuadraticForm/TensorProduct.lean,Mathlib/LinearAlgebra/QuadraticForm/TensorProduct/Isometries.lean,Mathlib/LinearAlgebra/RootSystem/Finite/Nondegenerate.lean,Mathlib/LinearAlgebra/SesquilinearForm/Basic.lean,docs/undergrad.yaml 12 11 ['github-actions', 'martinwintermath', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mcdoll', 'vihdzp'] nobody
1-35072
1 day ago
1-38205
1 day ago
10-63440
10 days
39785 hawkrobe
author:hawkrobe
refactor(RingTheory/HopfAlgebra): `ofConvInverse` constructor The antipode of a Hopf algebra is [generally](https://arxiv.org/pdf/1409.8356) the two-sided inverse of the identity in the convolution algebra `End(A)`. When `A` is commutative, algebra homs are closed under convolution and this lifts to AlgHom equality. See [this comment](https://github.com/leanprover-community/mathlib4/pull/31898#issuecomment-3566663278) on #31898. --- Sadly the AlgHom-equality formulation is unavailable in the noncommutative case. t-ring-theory new-contributor maintainer-merge 41/20 Mathlib/RingTheory/HopfAlgebra/Basic.lean,Mathlib/RingTheory/HopfAlgebra/TensorProduct.lean 2 27 ['YaelDillies', 'eric-wieser', 'faenuccio', 'github-actions', 'hawkrobe', 'themathqueen'] nobody
1-34124
1 day ago
1-71080
1 day ago
4-63570
4 days
39975 gasparattila
author:gasparattila
chore: tag `(Continuous)LinearEquiv.prodCongr_symm` with `@[simp]` This is consistent with the other `prodCongr`s. Note that this also changes the type of `PiLp.sumPiLpEquivProdLpPiLp_symm_apply_ofLp`, which is now fully simplified. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 5/5 Mathlib/LinearAlgebra/Prod.lean,Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean,Mathlib/Topology/Algebra/Module/Equiv.lean 3 1 ['github-actions'] nobody
1-33363
1 day ago
1-33932
1 day ago
1-33523
1 day
39973 tb65536
author:tb65536
chore(Topology/Algebra/Category/ProfiniteGrp/*): to_additivize some declarations This PR to_additivizes some declarations relating to profinite groups. There were a few trickier declarations that I left out of this PR for now. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra t-group-theory t-topology
label:t-algebra$
28/3 Mathlib/Topology/Algebra/Category/ProfiniteGrp/Basic.lean,Mathlib/Topology/Algebra/Category/ProfiniteGrp/Completion.lean,Mathlib/Topology/Algebra/Category/ProfiniteGrp/Limits.lean 3 2 ['github-actions'] nobody
1-33043
1 day ago
1-33043
1 day ago
1-32719
1 day
39977 tb65536
author:tb65536
feat(RingTheory/RamificationInertia/Ramification): positivity of ramification index This PR proves positivity of the new definition ramification inertia. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory t-algebra
label:t-algebra$
27/1 Mathlib/RingTheory/RamificationInertia/Ramification.lean 1 1 ['github-actions'] nobody
1-30729
1 day ago
1-30729
1 day ago
1-30322
1 day
39206 FordUniver
author:FordUniver
feat(Analysis/Calculus/AddTorsor/AffineMap): smoothness of `AffineMap.lineMap` Add `AffineMap.lineMap_contDiff_uncurry` (joint smoothness in all three arguments), `AffineMap.lineMap_contDiff` (smoothness in the parameter with fixed endpoints), and the composition family `ContDiff.lineMap`, `ContDiffOn.lineMap`, `ContDiffAt.lineMap`, `ContDiffWithinAt.lineMap`, mirroring the corresponding `Continuous` family in `Mathlib.Topology.Algebra.Affine`. The uncurried and `ContDiffWithinAt` forms are tagged `@[fun_prop]` so the rest are automatically derivable. Closes the TODO at `Mathlib.MeasureTheory.Integral.CurveIntegral.Poincare:333` where the proof now reduces to `fun_prop`. Co-authored-by: Sebastian Pokutta <23001135+pokutta@users.noreply.github.com> --- Came up while formalizing the descent lemma for Lipschitz-smooth functions, where `Path.segment a b` being smooth on the unit interval is needed to apply FTC along the segment (#39524); `AffineMap.lineMap_contDiff` is the lemma directly used there. Two things I was genuinely not quite sure about: 1. Should the **three convenience variants** `ContDiffAt.lineMap`, `ContDiffOn.lineMap`, and `ContDiff.lineMap` be included? They are not strictly necessary but they exist for users wanting to write `h₁.lineMap h₂ hg` in dot notation by hand, and they mirror the convention of the `Continuous.lineMap` family. 2. Is `Mathlib.Analysis.Calculus.AddTorsor.AffineMap` the **right home**, and is adding `public import Mathlib.Analysis.Calculus.AddTorsor.AffineMap` to `Poincare.lean` to close the TODO reasonable? The placement mirrors the `Continuous.lineMap` family in `Mathlib.Topology.Algebra.Affine`, but hiding a `@[fun_prop]` in a file at the bottom of the hierarchy and needing to import it feels a bit off. t-analysis maintainer-merge 57/6 Mathlib/Analysis/Calculus/AddTorsor/AffineMap.lean,Mathlib/MeasureTheory/Integral/CurveIntegral/Poincare.lean 2 8 ['EtienneC30', 'FordUniver', 'github-actions'] EtienneC30
assignee:EtienneC30
1-27517
1 day ago
4-57565
4 days ago
17-39781
17 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]`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) LLM-generated t-meta t-category-theory 301/0 Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/CategoryTheory/Map.lean,MathlibTest/CategoryTheory/Map.lean,MathlibTest/CategoryTheory/MapSimp.lean 5 13 ['adamtopaz', 'dagurtomas', 'github-actions', 'joelriou'] kim-em
assignee:kim-em
1-26660
1 day ago
1-62348
1 day ago
64-25918
64 days
39122 justus-springer
author:justus-springer
feat(AlgebraicGeometry/Birational): Birationality and rationality of schemes This is a first step (of hopefully many) towards some basic birational geometry. This PR 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 (#39445), and once that's done, there should be a theorem connecting the two definitions. - [x] depends on: #39316 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-geometry 302/0 Mathlib.lean,Mathlib/AlgebraicGeometry/Birational/Birational.lean,Mathlib/AlgebraicGeometry/Restrict.lean 3 12 ['chrisflav', 'erdOne', 'github-actions', 'justus-springer', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] joelriou
assignee:joelriou
1-24784
1 day ago
1-42788
1 day ago
18-70074
18 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 26 ['github-actions', 'jcreinhold', 'joelriou', 'mckoen'] joelriou
assignee:joelriou
1-24737
1 day ago
20-14692
20 days ago
26-69460
26 days
39771 kim-em
author:kim-em
feat(GroupTheory/PCore): define the `p`-core of a subgroup This PR adds `Subgroup.pCore p H`, the largest normal `p`-subgroup of a subgroup `H : Subgroup G` (classically `O_p(H)`), defined as the supremum of all normal `p`-subgroups. Even without finiteness or primality hypotheses, this is itself a normal `p`-group (the family of normal `p`-subgroups is directed under `≤`, so every element of the supremum lies in some specific summand). For the classical `O_p(G)`, take `pCore p (⊤ : Subgroup G)`. API covers the universal-property characterisations (`le_pCore`, `normal_le_pCore`, `mem_pCore_iff`, `pCore_eq_bot_iff`, `pCore_eq_top_iff`, `pCore_zero`, `pCore_one`), the Sylow alignment `pCore p H = ⨅ P : Sylow p H, (P : Subgroup H)`, and behaviour under group homomorphisms via `MonoidHom.subgroupMap` and `MonoidHom.subgroupComap` (`map_pCore_le_pCore`, `comap_pCore_eq_pCore` and friends, `MulEquiv.map_pCore`). Also adds `Subgroup.normal_iSup_normal` in `Mathlib/Algebra/Group/Subgroup/Pointwise.lean` (the supremum of a family of normal subgroups is normal) as the sibling of the existing `normal_iInf_normal`, and `ker_subgroupComap` in `Mathlib/Algebra/Group/Subgroup/Ker.lean` alongside the existing `ker_subgroupMap`. Both marked `@[to_additive]`. Used downstream in [leanprover/lean-eval#311](https://github.com/leanprover/lean-eval/pull/311) to state the Baer-Suzuki theorem as a [lean-eval](https://lean-lang.org/eval) problem. 🤖 Prepared with Claude Code t-group-theory 272/0 Mathlib.lean,Mathlib/Algebra/Group/Subgroup/Ker.lean,Mathlib/Algebra/Group/Subgroup/Pointwise.lean,Mathlib/GroupTheory/PCore.lean 4 11 ['Whysoserioushah', 'adomani', 'github-actions', 'kim-em', 'tb65536'] tb65536
assignee:tb65536
1-24529
1 day ago
4-44066
4 days ago
4-46424
4 days
37344 vihdzp
author:vihdzp
feat: monotone function `Cardinal → α` is eventually constant --- - [x] depends on: #39797 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory t-order 89/1 Mathlib.lean,Mathlib/Data/Set/Monotone.lean,Mathlib/Logic/Small/Basic.lean,Mathlib/SetTheory/Cardinal/EventuallyConst.lean 4 5 ['YaelDillies', 'github-actions', 'mathlib-dependent-issues', 'vihdzp', 'wwylele'] nobody
1-21861
1 day ago
1-23298
1 day ago
11-73459
11 days
39790 hawkrobe
author:hawkrobe
feat(RingTheory): quotients of coalgebra/bialgebra/Hopf algebras --- Adds the quotient constructions suggested [here](https://github.com/leanprover-community/mathlib4/pull/39579#issuecomment-4529401418). t-ring-theory new-contributor 234/0 Mathlib.lean,Mathlib/RingTheory/Bialgebra/Quotient.lean,Mathlib/RingTheory/Coalgebra/Quotient.lean,Mathlib/RingTheory/HopfAlgebra/Quotient.lean 4 9 ['YaelDillies', 'github-actions', 'hawkrobe'] nobody
1-20685
1 day ago
1-71112
1 day ago
3-75843
3 days
39982 riccardobrasca
author:riccardobrasca
feat: add Ideal.IsPrincipal.of_isPrincipal_pow_of_coprime --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 31/0 Mathlib/RingTheory/ClassGroup.lean 1 1 ['github-actions'] nobody
1-18473
1 day ago
1-18369
1 day ago
1-18814
1 day
39127 MichaelStollBayreuth
author:MichaelStollBayreuth
feat(NumberTheory/Height/NumberField): add lemma on "finite part" of mulHeight This PR adds ```lean lemma absNorm_mul_finprod_finitePlace_eq_one {K ι : Type*} [Field K] [NumberField K] [Finite ι] {x : ι → 𝓞 K} (hx : x ≠ 0) : (Ideal.span <| Set.range x).absNorm * ∏ᶠ v : FinitePlace K, ⨆ i, v (x i) = 1 ``` Because we need it in the proof, we also add a new file Mathlib.Algebra.Order.Hom.Lattice that contains an API lemma that allows reducing the type over which an `iSup` is taken to a subtype. --- - [x] depends on: #39008 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-number-theory 70/0 Mathlib.lean,Mathlib/Algebra/Order/Hom/Lattice.lean,Mathlib/NumberTheory/Height/NumberField.lean 3 12 ['MichaelStollBayreuth', 'github-actions', 'mathlib-dependent-issues', 'tb65536'] tb65536
assignee:tb65536
1-15735
1 day ago
6-52426
6 days ago
6-53016
6 days
33355 0xTerencePrime
author:0xTerencePrime
feat(Combinatorics/SimpleGraph/Connectivity): define vertex connectivity **AI Disclosure**: Developed with LLM assistance (Claude). All mathematical design decisions were made by the author. --- 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`: two vertices are `k`-vertex-reachable if they remain reachable after removing any set of strictly fewer than `k` vertices, using `G.induce sᶜ`. - `SimpleGraph.IsVertexPreconnected`: a graph is `k`-vertex-preconnected if any two vertices are `k`-vertex-reachable. - `SimpleGraph.IsVertexConnected`: a graph is `k`-vertex-connected if it is `k`-vertex-preconnected and has more than `k` vertices (`k + 1 ≤ ENat.card V`). ### Key lemmas - `k = 0`: 0-connected ↔ nonempty; 0-preconnected always holds - `k = 1`: 1-connected ↔ `Nontrivial V ∧ G.Preconnected` - `anti` / `mono`: antitonic in `k`, monotonic in the graph new-contributor t-combinatorics LLM-generated 169/0 Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/VertexConnectivity.lean 2 165 ['0xTerencePrime', 'SnirBroshi', 'SproutSeeds', 'YaelDillies', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] b-mehta
assignee:b-mehta
1-14094
1 day ago
3-66162
3 days ago
62-8625
62 days
39991 Brian-Nugent
author:Brian-Nugent
chore(Topology): refactor TopologicalSpace.Opens.map to use OrderHom.toFunctor --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 27/16 Mathlib/Geometry/RingedSpace/OpenImmersion.lean,Mathlib/Geometry/RingedSpace/PresheafedSpace/Gluing.lean,Mathlib/Topology/Category/TopCat/Opens.lean,Mathlib/Topology/Sheaves/Presheaf.lean 4 1 ['github-actions'] nobody
1-10785
1 day ago
1-10815
1 day ago
1-10406
1 day
39807 vihdzp
author:vihdzp
feat: universe-heterogeneous cardinal equality We introduce a predicate `LiftEq a b`, with notation `a =ₗ b`, which states that two cardinals (in different universes) are equal. This serves as a single canonical spelling for `lift.{v} a = lift.{u} b` and similar incantations. Future PRs will introduce the analogous predicates for `<` and `≤`, and a notation typeclass so the notation can be reused for `Ordinal` and `OrderType`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory 319/152 Mathlib/Algebra/FreeAlgebra/Cardinality.lean,Mathlib/CategoryTheory/Abelian/GrothendieckCategory/EnoughInjectives.lean,Mathlib/FieldTheory/IsAlgClosed/Classification.lean,Mathlib/LinearAlgebra/Dimension/Basic.lean,Mathlib/LinearAlgebra/Dimension/Constructions.lean,Mathlib/LinearAlgebra/Dimension/Free.lean,Mathlib/LinearAlgebra/Dimension/FreeAndStrongRankCondition.lean,Mathlib/LinearAlgebra/Dimension/LinearMap.lean,Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean,Mathlib/ModelTheory/Basic.lean,Mathlib/ModelTheory/Satisfiability.lean,Mathlib/RingTheory/AlgebraicIndependent/Basic.lean,Mathlib/RingTheory/AlgebraicIndependent/RankAndCardinality.lean,Mathlib/RingTheory/AlgebraicIndependent/TranscendenceBasis.lean,Mathlib/RingTheory/LinearDisjoint.lean,Mathlib/RingTheory/Localization/Cardinality.lean,Mathlib/SetTheory/Cardinal/Aleph.lean,Mathlib/SetTheory/Cardinal/Arithmetic.lean,Mathlib/SetTheory/Cardinal/Basic.lean,Mathlib/SetTheory/Cardinal/Defs.lean,Mathlib/SetTheory/Cardinal/ENat.lean,Mathlib/SetTheory/Cardinal/Order.lean,Mathlib/SetTheory/Cardinal/ToNat.lean,Mathlib/SetTheory/Ordinal/Univ.lean,Mathlib/SetTheory/ZFC/Cardinal.lean 25 2 ['acmepjz', 'github-actions'] nobody
1-9484
1 day ago
4-18114
4 days ago
4-17947
4 days
39399 Brian-Nugent
author:Brian-Nugent
feat(Algebra/CategoryTheory/ModuleCat): Locally Free Sheaves This PR gives a definition of locally free sheaves in terms of first defining a predicate IsLocallyFree for [SheafOfModules.LocalGeneratorsData](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Category/ModuleCat/Sheaf/Generators.html#SheafOfModules.LocalGeneratorsData). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra t-category-theory
label:t-algebra$
212/5 Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Sheaf/Generators.lean,Mathlib/Algebra/Category/ModuleCat/Sheaf/LocallyFree.lean,Mathlib/Algebra/Category/ModuleCat/Sheaf/Quasicoherent.lean 4 12 ['Brian-Nugent', 'dagurtomas', 'github-actions', 'mathlib-merge-conflicts', 'robin-carlier'] dagurtomas
assignee:dagurtomas
1-2483
1 day ago
1-2483
1 day ago
6-63426
6 days
28613 espottesmith
author:espottesmith
feat(Combinatorics): define undirected hypergraphs This PR defines undirected hypergraphs: ``` @[ext] structure Hypergraph (α : Type*) where /-- The vertex set -/ vertexSet : Set α /-- The hyperedge set -/ hyperedgeSet : Set (Set α) /-- All hyperedges must be subsets of the vertex set -/ hyperedge_isSubset_vertexSet : ∀ ⦃e⦄, e ∈ hyperedgeSet → e ⊆ vertexSet ``` In addition to the main definition, some additional definitions and related lemmas are provided: - vertex adjacency - hyperedge adjacency - vertex "stars" - special cases (loops, empty hypergraphs, trivial hypergraphs, complete hypergraphs, simple hypergraphs, k-uniform hypergraphs, and d-regular hypergraphs) - (some) hypergraph cardinality - subhypergraphs, induced subhypergraphs, and partial hypergraphs This implementation is certainly bare-bones. I'm submitting this PR at this point, rather than when my developments are more fleshed out, because there has been some interest in others contributing to hypergraph formalization in mathlib. In the near future, goals include: - defining incidence matrices (i.e., conversion from `Hypergraph α` to `Matrix α (Set α) β` - coersion/generalization of graph as 2-uniform hypergraph - conversion of a hypergraph into its associated clique graph/two-section graph - constructing the dual of a hypergraph (note: on first blush, this appears somewhat challenging, given that we define hyperedges as `Set α` rather than some other type `β`) - rank and co-rank - walks, paths, cycles, etc. on hypergraphs --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 286/0 Mathlib.lean,Mathlib/Combinatorics/Hypergraph/Basic.lean 2 152 ['SnirBroshi', 'b-mehta', 'espottesmith', 'github-actions', 'jt496', 'lauramonk', 'mathlib4-merge-conflict-bot', 'tb65536'] b-mehta
assignee:b-mehta
1-2131
1 day ago
2-13731
2 days ago
104-1971
104 days
39629 hawkrobe
author:hawkrobe
feat(RingTheory/Coalgebra/Convolution): Algebra on convolution semiring This PR completes the algebraic structure on the convolution object. --- I followed the pattern in [`Matrix/WithConv.lean`](https://github.com/leanprover-community/mathlib4/blob/5e932f97dd25535344f80f9dd8da3aab83df0fe6/Mathlib/LinearAlgebra/Matrix/WithConv.lean#L98) which splits out `IsScalarTower` and `SMulCommClass`. Used in pre-Lie / Oudom–Guin constructions. t-ring-theory new-contributor 24/1 Mathlib/RingTheory/Coalgebra/Convolution.lean 1 2 ['github-actions'] nobody
1-1971
1 day ago
9-13913
9 days ago
9-13504
9 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 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-euclidean-geometry 214/0 Mathlib/Geometry/Euclidean/Angle/Incenter.lean 1 5 ['github-actions', 'jsm28', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'peakpoint'] nobody
1-1519
1 day ago
1-1588
1 day ago
63-18500
63 days
39997 Whysoserioushah
author:Whysoserioushah
feat(LinearAlgebra/Projectivization/Action): More about PSL actions on projective space --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
79/0 Mathlib/LinearAlgebra/Projectivization/Action.lean 1 1 ['github-actions'] nobody
0-82992
23 hours ago
0-83071
22 hours ago
0-82662
22 hours
39433 JovanGerb
author:JovanGerb
feat(Tactic): `#click_suggestions` This is an initial PR for a point&click suggestion tool that can suggest theorems and tactics. This PR only implements theorem suggestions. This PR adds the `#click_suggestions` command that activates the tool. It could potentially in the future be active by default. The code is ported from this repository: https://github.com/JovanGerb/infoview_search TODO: import this feature in Tactic.Common (during development it's easier to not do this to avoid import tangles) This PR deletes `unfold?` in favour of the `#click_suggestions`. For backwards compatability, I have left `rw??` in place, but I plan to deprecate it in the future. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) file-removed t-meta 2293/124 Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/ClickSuggestions.lean,Mathlib/Tactic/ClickSuggestions/Apply.lean,Mathlib/Tactic/ClickSuggestions/ApplyAt.lean,Mathlib/Tactic/ClickSuggestions/FindPremises.lean,Mathlib/Tactic/ClickSuggestions/GRewrite.lean,Mathlib/Tactic/ClickSuggestions/Rewrite.lean,Mathlib/Tactic/ClickSuggestions/SectionState.lean,Mathlib/Tactic/ClickSuggestions/TryPremises.lean,Mathlib/Tactic/ClickSuggestions/Unfold.lean,Mathlib/Tactic/ClickSuggestions/Util.lean,Mathlib/Tactic/Widget/LibraryRewrite.lean,MathlibTest/ClickSuggestions/Benchmark.lean,MathlibTest/ClickSuggestions/Test.lean,MathlibTest/ClickSuggestions/TestImpl.lean,MathlibTest/ClickSuggestions/Unfold.lean 17 19 ['JovanGerb', 'fpvandoorn', 'github-actions'] fpvandoorn
assignee:fpvandoorn
0-82928
23 hours ago
0-82825
22 hours ago
1-8180
1 day
36963 seewoo5
author:seewoo5
feat(ModularForms): SL2 action and Serre derivative --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) Equivariance of Serre derivative under SL2 action. More precisely, $$\partial_k (F|_k \gamma) = (\partial_{k} F)|_{k+2} \gamma$$. From [Sphere Packing Project](https://github.com/thefundamentaltheor3m/Sphere-Packing-Lean). t-number-theory large-import 124/24 Mathlib/Analysis/Complex/UpperHalfPlane/Manifold.lean,Mathlib/Analysis/Complex/UpperHalfPlane/MoebiusAction.lean,Mathlib/NumberTheory/ModularForms/Derivative.lean 3 12 ['github-actions', 'loefflerd', 'mathlib-merge-conflicts', 'seewoo5', 'tb65536', 'wwylele'] tb65536
assignee:tb65536
0-82039
22 hours ago
0-86064
23 hours ago
26-79131
26 days
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. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 171/1 Mathlib.lean,Mathlib/Topology/ContinuousGerm.lean,Mathlib/Topology/ContinuousOn.lean,Mathlib/Topology/Germ.lean 4 6 ['chrisflav', 'github-actions', 'j-loreaux', 'mathlib-merge-conflicts', 'peabrainiac'] nobody
0-80714
22 hours ago
10-82349
10 days ago
23-30306
23 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'] nobody
0-80711
22 hours ago
22-10177
22 days ago
29-82077
29 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 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated t-measure-probability 1/4 Mathlib/MeasureTheory/Function/LpOrder.lean 1 2 ['github-actions', 'yuanyi-350'] nobody
0-80710
22 hours ago
26-33662
26 days ago
26-33253
26 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 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) codex LLM-generated t-measure-probability 9/21 Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean 1 2 ['github-actions', 'yuanyi-350'] nobody
0-80709
22 hours ago
26-33454
26 days ago
26-33045
26 days
38983 kebekus
author:kebekus
feat: Invariance of `meromorphic in normal form` under composition. Establish invariance of `meromorphic in normal form` under composition with analytic functions of non-vanishing derivative. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis maintainer-merge 42/0 Mathlib/Analysis/Meromorphic/NormalForm.lean 1 12 ['github-actions', 'kebekus', 'themathqueen'] nobody
0-80708
22 hours ago
15-28851
15 days ago
22-49441
22 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) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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 21 ['Hagb', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] dagurtomas
assignee:dagurtomas
0-79140
21 hours ago
3-67376
3 days ago
26-34688
26 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`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra maintainer-merge
label:t-algebra$
95/2 Mathlib.lean,Mathlib/Algebra/Star/Basic.lean,Mathlib/Algebra/Star/Pointwise.lean,Mathlib/Algebra/Star/TransferInstance.lean 4 15 ['SnirBroshi', 'github-actions', 'themathqueen'] dagurtomas
assignee:dagurtomas
0-79139
21 hours ago
36-20405
36 days ago
36-21905
36 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'] alreadydone
assignee:alreadydone
0-79138
21 hours ago
45-41078
45 days ago
45-40822
45 days
38098 astrainfinita
author:astrainfinita
chore: make `SMul.comp.smul` `implicit_reducible` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] kim-em
assignee:kim-em
0-79137
21 hours ago
43-70472
43 days ago
43-70063
43 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`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] mattrobball
assignee:mattrobball
0-79136
21 hours ago
28-31817
28 days ago
42-19567
42 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`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] alreadydone
assignee:alreadydone
0-79134
21 hours ago
35-83100
35 days ago
38-65397
38 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]`. This PR was prepared with the assistance of Claude Opus. t-data LLM-generated 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'] TwoFX
assignee:TwoFX
0-79133
21 hours ago
37-10831
37 days ago
37-10422
37 days
38741 eric-wieser
author:eric-wieser
feat: Nat.card lemmas for Sym and Sym2 These are just translations of the `Fintype` counterparts. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data maintainer-merge 109/7 Mathlib.lean,Mathlib/Data/Sym/Card.lean,Mathlib/Data/Sym/NatCard.lean,Mathlib/Data/Sym/Sym2.lean 4 26 ['SnirBroshi', 'YaelDillies', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts'] joneugster
assignee:joneugster
0-79132
21 hours ago
3-51318
3 days ago
25-44111
25 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`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 29/0 Mathlib/Data/Finset/Card.lean,Mathlib/Data/List/Nodup.lean 2 7 ['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts'] joneugster
assignee:joneugster
0-79131
21 hours ago
8-12426
8 days ago
23-83228
23 days
39347 Sfgangloff
author:Sfgangloff
feat(SymbolicDynamics): refactor of Pattern and shift-invariance of shape languages for subshifts ## Summary This PR refactors Pattern.mulShift in Mathlib/Dynamics/SymbolicDynamics/Basic.lean and uses the cleaner definition to prove shift-invariance of the language of a subshift on a finite shape. ## Changes Pattern.mulShift now returns a Pattern instead of a configuration (more natural). - Old type: Pattern.mulShift : Pattern A G → G → (G → A) - New type: Pattern.mulShift : Pattern A G → G → Pattern A G - The result carries its support (p.support.image (v * ·)) and the default-outside-support proof, so callers don't have to re-derive them. The [IsLeftCancelMul G] hypothesis is moved to the lemmas that actually use it. - The definition Pattern.mulShift itself no longer needs left-cancellation (it only chooses a preimage noncomputably). - The hypothesis is now stated on mulShift_config_apply_mul_left_of_mem and mulOccursInAt_eq_cylinder directly, instead of being a section-level variable. Renames following the type change. - mulShift_apply_mul_left_of_mem → mulShift_config_apply_mul_left_of_mem (because we now write (p.mulShift v).config instead of p.mulShift v). New @[simp] and @[ext] lemmas for Pattern. - Pattern.ext: two patterns are equal iff their supports agree and their configurations agree on the support. - Pattern.mulShift_support: the support of p.mulShift v is p.support.image (v * ·). - Pattern.fromConfig_support: the support of fromConfig x U is U. - Pattern.fromConfig_config_of_mem: on its support, fromConfig x U agrees with x. New lemma Pattern.fromConfig_mulShift. For a left inverse g' * g = 1, shifting the pattern fromConfig x U by g equals fromConfig (mulShift g' x) (U.image (g * ·)). New theorem MulSubshift.languageOn_image_mulShift. For a subshift Y and elements g, g' with g * g' = 1 and g' * g = 1: (fun p => p.mulShift g) '' Y.languageOn U = Y.languageOn (U.image (g * ·)) i.e. the language on the translated shape is exactly the image of the language on U under the pattern-shift map. This gives a bijection between Y.languageOn U and Y.languageOn (U.image (g * ·)), with inverse p ↦ p.mulShift g'. Stated for left-cancellative monoids with an invertible element. Updated docstrings for Pattern.mulShift and the renamed lemma to reflect the bundled-Pattern return type and clarify which results need [IsLeftCancelMul G]. t-dynamics new-contributor 142/48 Mathlib/Dynamics/SymbolicDynamics/Basic.lean 1 3 ['github-actions'] sgouezel
assignee:sgouezel
0-79129
21 hours ago
15-74421
15 days ago
15-74012
15 days
39588 jvanwinden
author:jvanwinden
feat(MeasureTheory/Measure/ProbabilityMeasure): add toProbabilityMeasure and basic API Introduces `Measure.toProbabilityMeasure`, which converts a `Measure` into a `ProbabilityMeasure` in the presence of the typeclass assumption `[IsProbabilityMeasure]`. Some basic API is added for the interaction between `toProbabilityMeasure` and the coercion from `ProbabilityMeasure` to `Measure`. The main convenience is that the new method allows for dot notation on `Measure`. This PR arose from the following situation: I needed to prove equality of two `Measure` objects, and I wanted to do this by using uniqueness of limits. But the topology of weak convergence is only defined on `ProbabilityMeasure` and not on `Measure`. With the new lemma `toProbabilityMeasure_inj`, an equality of measures can easily be rewritten into an equality of the corresponding probability measures, after which `tendsto_nhds_unique` can be applied. Aside from this, `toProbabilityMeasure` has the potential to simplify theorem statements about `Measure` objects which use the topology of weak convergence either in the assumptions or the conclusion. For example, now one can simply write `Tendsto μ.toProbabilityMeasure f (nhds μ_lim.toProbabilityMeasure)` when appropriate `[IsProbabilityMeasure]` assumptions are present. This PR is intended as a starting point for a discussion. I only added some basic API, but perhaps more lemmas should be added (which ones?). Also, a similar definition could be made for `FiniteMeasure`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability 19/2 Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean 1 1 ['github-actions'] kex-y
assignee:kex-y
0-79128
21 hours ago
10-15299
10 days ago
10-14890
10 days
39882 chrisflav
author:chrisflav
chore(CategoryTheory): `StructuredArrow.map₂` along equivalences induces an equivalence Before that we only had an instance `IsEquivalence`, this provides the full equivalence with good def-eqs for the inverse. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory maintainer-merge 126/2 Mathlib/CategoryTheory/Comma/StructuredArrow/Basic.lean 1 7 ['chrisflav', 'github-actions', 'robin-carlier'] robin-carlier
assignee:robin-carlier
0-79124
21 hours ago
2-10366
2 days ago
3-22205
3 days
39951 chrisflav
author:chrisflav
refactor(CategoryTheory/Sites): replace `Functor.inducedTopology` The current `Functor.inducedTopology` is only defined for a locally fully faithful and locally cover dense functor and in the general situation it does not make the functor continuous. We change the situation in two ways: - Replace `Functor.inducedTopology` by the induced topology in the sense of SGA, III, 3.1: The finest topology on the domain making a functor continuous. - Add `Functor.restrictedTopology`: This is the coarsest topology on the domain containing all sieves whose image generates a covering sieve in the codomain. In general, a functor does not preserve covers for this topology and in particular is not necessarily continuous. The old `Functor.inducedTopology` is equal (but not def-eq) to the new `Functor.restrictedTopology` whenever the old definition applies. In the situation where `Functor.restrictedTopology` makes the functor continuous, for example when `F` is flat, locally fully faithful and locally cover dense, the two topologies agree. Related Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Induced.20topology.20on.20a.20category/with/593098526 From Proetale. --- - [ ] depends on: #39961 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 294/122 Mathlib.lean,Mathlib/AlgebraicGeometry/Sites/Affine.lean,Mathlib/AlgebraicGeometry/Sites/AffineEtale.lean,Mathlib/AlgebraicGeometry/Sites/Proetale.lean,Mathlib/AlgebraicGeometry/Sites/Small.lean,Mathlib/AlgebraicGeometry/Sites/SmallAffineZariski.lean,Mathlib/CategoryTheory/MorphismProperty/CommaSites.lean,Mathlib/CategoryTheory/Sites/Coherent/Equivalence.lean,Mathlib/CategoryTheory/Sites/Coherent/SheafComparison.lean,Mathlib/CategoryTheory/Sites/DenseSubsite/InducedTopology.lean,Mathlib/CategoryTheory/Sites/Equivalence.lean,Mathlib/CategoryTheory/Sites/InducedTopology.lean 12 3 ['dagurtomas', 'github-actions', 'mathlib-dependent-issues'] robin-carlier
assignee:robin-carlier
0-79121
21 hours ago
1-2696
1 day ago
1-6601
1 day
39959 chrisflav
author:chrisflav
chore(CategoryTheory/Sites): make auxiliary declarations for `OneHypercoverDenseData.isSheaf_iff` private --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory maintainer-merge 7/7 Mathlib/CategoryTheory/Sites/DenseSubsite/OneHypercoverDense.lean 1 2 ['github-actions', 'grunweg'] robin-carlier
assignee:robin-carlier
0-79119
21 hours ago
1-54466
1 day ago
1-54057
1 day
39987 vihdzp
author:vihdzp
chore: golf `Ordinal.cof_univ` --- (I think this is my second time golfing this one theorem, sorry!) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory easy 1/4 Mathlib/SetTheory/Cardinal/Cofinality/Ordinal.lean 1 1 ['github-actions', 'plp127'] nobody
0-76129
21 hours ago
1-14895
1 day ago
1-14486
1 day
39958 BryceT233
author:BryceT233
feat(RingTheory/Kaehler/JacobiZariski): exactness at the left of Jacobi-Zariski sequence under flatness assumption Given algebras `R → S → T` and `T` flat over `S`, this PR adds the exactness of `T ⊗[S] H₁(L_{S/R}) → H₁(L_{T/R}) → H₁(L_{T/S})` at the left of Jacobi-Zariski sequence. Note that the flatness assumption here is stronger than the Tor-vanishing conditions required in the full statement of [Stacks Project, 00S2](https://stacks.math.columbia.edu/tag/00S2), this should be refactored and generalized once more results on Tor modules are available. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 70/0 Mathlib/RingTheory/Kaehler/JacobiZariski.lean 1 1 ['github-actions'] nobody
0-74182
20 hours ago
1-58752
1 day ago
1-58343
1 day
36643 Thmoas-Guan
author:Thmoas-Guan
feat(Homology): interaction of projective and injective dimension and SES In this PR, we directly implemented the relation of `projectiveDimension` and `injectiveDimension` in SES. --- - [x] depends on: #36817 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 182/0 Mathlib/Algebra/Homology/ShortComplex/Exact.lean,Mathlib/CategoryTheory/Abelian/Injective/Dimension.lean,Mathlib/CategoryTheory/Abelian/Projective/Dimension.lean 3 6 ['dagurtomas', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] adamtopaz
assignee:adamtopaz
0-71548
19 hours ago
0-72495
20 hours ago
45-45028
45 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 - [x] depends on: #39305 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra t-category-theory
label:t-algebra$
160/0 Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Ext/Baer.lean 2 79 ['Thmoas-Guan', 'dagurtomas', 'github-actions', 'joelriou', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib-splicebot', 'mathlib4-merge-conflict-bot'] joelriou
assignee:joelriou
0-70888
19 hours ago
0-72601
20 hours ago
66-24591
66 days
39994 Brian-Nugent
author:Brian-Nugent
feat(CategoryTheory): Functors that preserve the terminal object are Final --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 21/1 Mathlib/CategoryTheory/Limits/Final.lean,Mathlib/CategoryTheory/Sites/CoproductSheafCondition.lean 2 1 ['github-actions'] nobody
0-68879
19 hours ago
0-68956
19 hours ago
0-70617
19 hours
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 α ```
[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/)
t-order maintainer-merge 89/69 Mathlib/Order/ConditionallyCompleteLattice/Basic.lean 1 5 ['SnirBroshi', 'YaelDillies', 'github-actions'] YaelDillies
assignee:YaelDillies
0-67103
18 hours ago
0-67113
18 hours ago
24-4166
24 days
39992 Brian-Nugent
author:Brian-Nugent
feat(CategoryTheory/Order): Lattice Homs preserve limits and colimits Provides instances for when [OrderHom.toFunctor](https://leanprover-community.github.io/mathlib4_docs/Mathlib/CategoryTheory/Category/Preorder.html#OrderHom.toFunctor) preserves limits and colimits. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory t-order 105/0 Mathlib.lean,Mathlib/CategoryTheory/Limits/Preserves/Lattice.lean 2 2 ['dagurtomas', 'github-actions'] nobody
0-66853
18 hours ago
0-66844
18 hours ago
0-69429
19 hours
40002 mcdoll
author:mcdoll
chore(Analysis/TemperedDistribution): generalize to TVS codomains Obviously the codomain of a tempered distribution should be allowed to be an arbitrary topological vector space --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 60/21 Mathlib/Analysis/Distribution/TemperedDistribution.lean 1 1 ['github-actions'] nobody
0-61056
16 hours ago
0-61141
16 hours ago
0-60732
16 hours
39720 vihdzp
author:vihdzp
feat: cofinality within order We introduce `Order.cofWithin x = Order.cof (Iio x)` for the cofinality of an element within a preorder. This generalizes `Ordinal.cof`, with the caveat that `cof o : Cardinal.{u}` for `o : Ordinal.{u}`, whereas `cofWithin o : Cardinal.{u + 1}`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory maintainer-merge 104/14 Mathlib/SetTheory/Cardinal/Basic.lean,Mathlib/SetTheory/Cardinal/Cofinality/Basic.lean,Mathlib/SetTheory/Cardinal/Cofinality/Ordinal.lean 3 11 ['SnirBroshi', 'YaelDillies', 'b-mehta', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] nobody
0-58966
16 hours ago
3-65908
3 days ago
7-4968
7 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 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] nobody
0-57961
16 hours ago
22-83235
22 days ago
26-7535
26 days
40004 jcommelin
author:jcommelin
doc: add wikidata attributes This PR adds a batch of wikidata attributes to concepts from overview.yaml. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 45/21 Mathlib/Algebra/ContinuedFractions/Basic.lean,Mathlib/Algebra/EuclideanDomain/Defs.lean,Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/Group/Defs.lean,Mathlib/Algebra/Group/Hom/Defs.lean,Mathlib/Algebra/Group/Irreducible/Defs.lean,Mathlib/Algebra/Group/Subgroup/Defs.lean,Mathlib/Algebra/Ring/Defs.lean,Mathlib/Algebra/Ring/Hom/Defs.lean,Mathlib/Algebra/Ring/Subring/Defs.lean,Mathlib/CategoryTheory/Abelian/Basic.lean,Mathlib/CategoryTheory/Category/Basic.lean,Mathlib/CategoryTheory/Comma/Basic.lean,Mathlib/CategoryTheory/Functor/Basic.lean,Mathlib/CategoryTheory/Iso.lean,Mathlib/CategoryTheory/Monoidal/Category.lean,Mathlib/CategoryTheory/NatTrans.lean,Mathlib/CategoryTheory/Sites/Grothendieck.lean,Mathlib/Data/Complex/Basic.lean,Mathlib/Data/EReal/Basic.lean,Mathlib/Data/Real/Basic.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean,Mathlib/GroupTheory/GroupAction/Quotient.lean,Mathlib/GroupTheory/Index.lean,Mathlib/GroupTheory/Nilpotent.lean,Mathlib/GroupTheory/Perm/Subgroup.lean,Mathlib/GroupTheory/Schreier.lean,Mathlib/GroupTheory/SpecificGroups/Alternating.lean,Mathlib/GroupTheory/Subgroup/Simple.lean,Mathlib/LinearAlgebra/Span/Defs.lean,Mathlib/NumberTheory/LucasLehmer.lean,Mathlib/RingTheory/FractionalIdeal/Basic.lean,Mathlib/RingTheory/Ideal/Maximal.lean,Mathlib/RingTheory/Ideal/Prime.lean,Mathlib/RingTheory/Ideal/Quotient/Defs.lean,Mathlib/RingTheory/LocalRing/Defs.lean,Mathlib/RingTheory/Noetherian/Defs.lean,Mathlib/RingTheory/UniqueFactorizationDomain/Defs.lean 38 50 ['github-actions', 'jcommelin'] nobody
0-56397
15 hours ago
0-56397
15 hours ago
0-55988
15 hours
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 t-analysis 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 24 ['TTony2019', 'github-actions', 'wwylele'] nobody
0-54294
15 hours ago
30-75078
30 days ago
33-18542
33 days
39928 Vierkantor
author:Vierkantor
feat(Tactic): `convert` discharges side goals reducibly This PR implements the main behaviour change from #39039: `convert` now discharges side goals at reducible transparency. `convert!`, which we previously switched all calls inside Mathlib to, keeps the old behaviour of working at default transparency. (Everything discussed in this PR holds analogously for the other tactics in the family: `convert_to` and `ac_change`). The main trick in this PR is in allowing `convert!` to have different configuration options than `convert`, but still allow the user to override those options too. So `convert! (postTransparency := .instances)` will have transparency set to `.instances`, not `.default`. We achieve this by having two new structures that copy `Congr!.Config` but set different default values, and choosing between the corresponding elaborators for those configs based on the presence of an `!`. I got this trick from Jovan's #38071 which also changes settings in `Convert.Config`. This PR should be mostly compatible with #38071 and I'd like to get both this one and #38071 in before wrapping up #39039 by replacing unnecessary calls to `convert!` with `convert`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 165/47 Mathlib/Algebra/Lie/Weights/Chain.lean,Mathlib/Algebra/Lie/Weights/Killing.lean,Mathlib/AlgebraicGeometry/Morphisms/UniversallyOpen.lean,Mathlib/AlgebraicGeometry/Normalization.lean,Mathlib/AlgebraicGeometry/OpenImmersion.lean,Mathlib/AlgebraicGeometry/PointsPi.lean,Mathlib/AlgebraicGeometry/StructureSheaf.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/PUnit.lean,Mathlib/AlgebraicTopology/SimplicialSet/Nerve.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unique.lean,Mathlib/Analysis/Calculus/Deriv/Inverse.lean,Mathlib/Analysis/Fourier/FourierTransformDeriv.lean,Mathlib/Analysis/Normed/Module/FiniteDimension.lean,Mathlib/CategoryTheory/Galois/Decomposition.lean,Mathlib/Combinatorics/SimpleGraph/Trails.lean,Mathlib/FieldTheory/IntermediateField/ExtendRight.lean,Mathlib/NumberTheory/DiophantineApproximation/Basic.lean,Mathlib/NumberTheory/Padics/PadicNumbers.lean,Mathlib/Order/Filter/AtTopBot/Finite.lean,Mathlib/RepresentationTheory/Action.lean,Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean,Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean,Mathlib/RingTheory/Localization/Algebra.lean,Mathlib/RingTheory/Polynomial/GaussNorm.lean,Mathlib/RingTheory/PowerSeries/PiTopology.lean,Mathlib/RingTheory/Valuation/ExtendToLocalization.lean,Mathlib/RingTheory/Valuation/ValuationSubring.lean,Mathlib/Tactic/CongrExclamation.lean,Mathlib/Tactic/Convert.lean,Mathlib/Topology/Category/TopCat/Limits/Products.lean,MathlibTest/Tactic/Convert/Basic.lean,MathlibTest/Tactic/Convert/Bugfix7945.lean,MathlibTest/ValuedCSP.lean 33 1 ['github-actions'] dwrensha
assignee:dwrensha
0-54270
15 hours ago
1-29104
1 day ago
1-28697
1 day
40005 tautschnig
author:tautschnig
feat(Data/ZMod/Basic): isUnit characterisation in prime power moduli Add two lemmas characterising units in ZMod (p^n) via divisibility of the canonical lift: isUnit_iff_not_prime_dvd_val: for prime p and n > 0, IsUnit x ↔ ¬ p ∣ x.val. not_isUnit_iff_prime_dvd_val: for prime p and n > 0, ¬ IsUnit x ↔ p ∣ x.val. These specialise the existing isUnit_iff_coprime to prime power moduli, where the coprimality condition reduces to a simple divisibility check on the unique prime factor. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor 15/0 Mathlib/Data/ZMod/Basic.lean 1 3 ['copilot-pull-request-reviewer', 'github-actions'] nobody
0-53266
14 hours ago
0-55584
15 hours ago
0-55175
15 hours
40006 tautschnig
author:tautschnig
feat(Data/ZMod/Basic): idempotents in ZMod (p^d) are exactly {0, 1} Add sq_eq_self_iff_eq_zero_or_one: in ZMod (p^d) for prime p and d > 0, x^2 = x iff x = 0 or x = 1. This generalises eq_zero_or_one_of_sq_eq_self (which requires CancelMonoidWithZero, i.e., no zero divisors) to the prime-power case. ZMod (p^d) has zero divisors for d >= 2, so the mul_left_injective₀ argument used by the existing lemma does not apply. The proof works by lifting to ℕ, using that if gcd(a, b) = 1 and p^d | a*b then p^d divides one of a or b (by Euclid's lemma), then noting that a = x.val and b = x.val - 1 are consecutive naturals and hence coprime. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor 56/0 Mathlib/Data/ZMod/Basic.lean 1 2 ['github-actions'] nobody
0-50663
14 hours ago
0-50733
13 hours ago
0-51019
14 hours
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 LLM-generated 128/2 Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean,Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean,docs/references.bib 3 7 ['dennj', 'github-actions', 'grunweg', 'ocfnash', 'riccardobrasca'] riccardobrasca
assignee:riccardobrasca
0-50466
14 hours ago
24-11918
24 days ago
42-25619
42 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 167/0 Mathlib.lean,Mathlib/RingTheory/LocalRing/Pullback.lean 2 6 ['BryceT233', 'github-actions', 'riccardobrasca', 'wwylele'] riccardobrasca
assignee:riccardobrasca
0-49931
13 hours ago
33-2439
33 days ago
67-56783
67 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) large-import t-topology 113/0 Mathlib/Order/Hom/Basic.lean,Mathlib/Order/KrullDimension.lean,Mathlib/Order/Minimal.lean,Mathlib/Topology/Inseparable.lean,Mathlib/Topology/Sober.lean 5 7 ['ADedecker', 'Raph-DG', 'dagurtomas', 'github-actions', 'mathlib-merge-conflicts'] dagurtomas
assignee:dagurtomas
0-49785
13 hours ago
0-49785
13 hours ago
41-21849
41 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory large-import 173/5 Mathlib/RingTheory/AdicCompletion/LocalRing.lean 1 21 ['BryceT233', 'Thmoas-Guan', 'github-actions', 'riccardobrasca'] riccardobrasca
assignee:riccardobrasca
0-49234
13 hours ago
46-47899
46 days ago
46-59284
46 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)> --- - [x] depends on: #37497 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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 6 ['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'riccardobrasca'] riccardobrasca
assignee:riccardobrasca
0-48868
13 hours ago
41-56943
41 days ago
49-48391
49 days
39428 harahu
author:harahu
chore: add an empty line after module headers This makes the docs easier to read. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 120/4 Archive/Imo/Imo1998Q2.lean,Archive/Imo/Imo2001Q6.lean,Archive/Imo/Imo2005Q3.lean,Archive/Imo/Imo2008Q2.lean,Archive/Imo/Imo2008Q3.lean,Archive/Imo/Imo2008Q4.lean,Counterexamples/DiscreteTopologyNonDiscreteUniformity.lean,Counterexamples/PeanoCurve.lean,Counterexamples/Pseudoelement.lean,Mathlib/Algebra/Algebra/Spectrum/Basic.lean,Mathlib/Algebra/Category/Grp/EpiMono.lean,Mathlib/Algebra/Category/ModuleCat/Stalk.lean,Mathlib/Algebra/EuclideanDomain/Field.lean,Mathlib/Algebra/EuclideanDomain/Int.lean,Mathlib/Algebra/Homology/Opposite.lean,Mathlib/Algebra/Lie/Cochain.lean,Mathlib/Algebra/Lie/Extension.lean,Mathlib/Algebra/Lie/Loop.lean,Mathlib/Algebra/MonoidAlgebra/PointwiseSMul.lean,Mathlib/Algebra/Order/AddTorsor.lean,Mathlib/Algebra/Order/Archimedean/IndicatorCard.lean,Mathlib/Algebra/Squarefree/Basic.lean,Mathlib/Algebra/Vertex/HVertexOperator.lean,Mathlib/Algebra/Vertex/VertexOperator.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/Product.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/SimplyConnected.lean,Mathlib/Analysis/Analytic/RadiusLiminf.lean,Mathlib/Analysis/Normed/Affine/Convex.lean,Mathlib/Analysis/Normed/Lp/PiLp.lean,Mathlib/Analysis/Normed/Lp/ProdLp.lean,Mathlib/Analysis/Normed/Unbundled/SeminormFromBounded.lean,Mathlib/Analysis/Normed/Unbundled/SmoothingSeminorm.lean,Mathlib/CategoryTheory/DinatTrans.lean,Mathlib/CategoryTheory/Limits/Preserves/Filtered.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/HasPullback.lean,Mathlib/CategoryTheory/PathCategory/Basic.lean,Mathlib/CategoryTheory/Preadditive/Schur.lean,Mathlib/CategoryTheory/Sites/Abelian.lean,Mathlib/CategoryTheory/Sites/LeftExact.lean,Mathlib/CategoryTheory/Thin.lean,Mathlib/Combinatorics/Configuration.lean,Mathlib/Data/Bracket.lean,Mathlib/Data/Bundle.lean,Mathlib/Data/Finsupp/BigOperators.lean,Mathlib/Data/Nat/Squarefree.lean,Mathlib/Data/PSigma/Order.lean,Mathlib/Data/SProd.lean,Mathlib/Data/Set/Enumerate.lean,Mathlib/Data/Set/UnionLift.lean,Mathlib/Dynamics/TopologicalEntropy/CoverEntropy.lean,Mathlib/Dynamics/TopologicalEntropy/NetEntropy.lean,Mathlib/Dynamics/TopologicalEntropy/Semiconj.lean,Mathlib/FieldTheory/RatFunc/AsPolynomial.lean,Mathlib/Geometry/Manifold/Algebra/Monoid.lean,Mathlib/Geometry/Manifold/Diffeomorph.lean,Mathlib/Geometry/Manifold/IsManifold/InteriorBoundary.lean,Mathlib/GroupTheory/CommutingProbability.lean,Mathlib/LinearAlgebra/Multilinear/Curry.lean,Mathlib/LinearAlgebra/RootSystem/Finite/CanonicalBilinear.lean,Mathlib/LinearAlgebra/RootSystem/Hom.lean,Mathlib/LinearAlgebra/RootSystem/OfBilinear.lean,Mathlib/LinearAlgebra/RootSystem/RootPairingCat.lean,Mathlib/LinearAlgebra/RootSystem/WeylGroup.lean,Mathlib/Logic/Lemmas.lean,Mathlib/MeasureTheory/Function/EssSup.lean,Mathlib/MeasureTheory/Group/Prod.lean,Mathlib/ModelTheory/PartialEquiv.lean,Mathlib/NumberTheory/ClassNumber/AdmissibleAbs.lean,Mathlib/NumberTheory/ClassNumber/AdmissibleAbsoluteValue.lean,Mathlib/NumberTheory/ClassNumber/Finite.lean,Mathlib/NumberTheory/Cyclotomic/Discriminant.lean,Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean,Mathlib/NumberTheory/FLT/Four.lean,Mathlib/NumberTheory/FLT/Three.lean,Mathlib/NumberTheory/NumberField/Basic.lean,Mathlib/NumberTheory/NumberField/Completion/FinitePlace.lean,Mathlib/NumberTheory/NumberField/Cyclotomic/Basic.lean,Mathlib/NumberTheory/NumberField/Cyclotomic/Embeddings.lean,Mathlib/NumberTheory/NumberField/Cyclotomic/PID.lean,Mathlib/NumberTheory/NumberField/Cyclotomic/Three.lean,Mathlib/NumberTheory/NumberField/Discriminant/Basic.lean,Mathlib/NumberTheory/NumberField/Discriminant/Defs.lean,Mathlib/NumberTheory/NumberField/EquivReindex.lean,Mathlib/NumberTheory/NumberField/ExistsRamified.lean,Mathlib/NumberTheory/NumberField/House.lean,Mathlib/NumberTheory/NumberField/Norm.lean,Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean,Mathlib/Order/Bounded.lean,Mathlib/Probability/Distributions/Uniform.lean,Mathlib/RepresentationTheory/Rep/Res.lean,Mathlib/RingTheory/AdicCompletion/RingHom.lean,Mathlib/RingTheory/Conductor.lean,Mathlib/RingTheory/Coprime/Lemmas.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean,Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean,Mathlib/RingTheory/DedekindDomain/Instances.lean,Mathlib/RingTheory/HahnSeries/Addition.lean,Mathlib/RingTheory/HahnSeries/Binomial.lean,Mathlib/RingTheory/HahnSeries/Multiplication.lean,Mathlib/RingTheory/HahnSeries/PowerSeries.lean 120 3 ['github-actions', 'grunweg', 'mathlib-merge-conflicts'] nobody
0-46596
12 hours ago
1-56596
1 day ago
8-23935
8 days
39857 plp127
author:plp127
chore(Order/CompleteLattice/Basic): `Sort*` polymorphism Generalize some theorems from `Type*` to `Sort*`. Also make type-variables explicitly either `Type*` or `Sort*`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 15/31 Mathlib/Order/CompleteLattice/Basic.lean 1 3 ['SnirBroshi', 'b-mehta', 'github-actions'] nobody
0-44731
12 hours ago
3-76289
3 days ago
3-75880
3 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 maintainer-merge 6/0 Mathlib/Data/Part.lean 1 7 ['github-actions', 'jessealama', 'joneugster', 'vihdzp'] joneugster
assignee:joneugster
0-43927
12 hours ago
11-75180
11 days ago
54-31604
54 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. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 29/8 Mathlib/Data/List/Chain.lean 1 6 ['SnirBroshi', 'Vierkantor', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] eric-wieser
assignee:eric-wieser
0-43778
12 hours ago
0-43778
12 hours ago
69-69524
69 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data maintainer-merge 22/0 Mathlib/Data/Set/Card.lean 1 4 ['EtienneC30', 'github-actions', 'joneugster'] joneugster
assignee:joneugster
0-43498
12 hours ago
14-34299
14 days ago
56-37040
56 days
39868 JuanCoRo
author:JuanCoRo
feat(Algebra/Polynomial): linearity of `divByMonic` and adjacent results --- This PR adds the `R`-linearity of the monic polynomial division map `_ /ₘ q`. It also adds adjacent results that stem from this work. #### Refactors: - Reuses the proofs from `add_modByMonic` and `smul_modByMonic` to generalize these results to `add_div_modByMonic` and `smul_div_modByMonic` respectively. - Replaces the proofs of `add_modByMonic` and `smul_modByMonic` as specializations of the more general theorems `add_div_modByMonic` and `smul_div_modByMonic` respectively. #### Additions: - Adds the necessary results for `_ /ₘ q` linearity: - `add_divByMonic : (p₁ + p₂) /ₘ q = p₁ /ₘ q + p₂ /ₘ q` - `smul_divByMonic : c • p /ₘ q = c • (p /ₘ q)` - Adds `_ /ₘ q` as an `R`-linear map: - `divByMonicHom`: definition of `_ /ₘ q` as a linear map - `mem_ker_divByMonic`: kernel characterization for `_ /ₘ q`. - In `Div.lean` adds dual results for `/ₘ` that were already present for `%ₘ` - `neg_divByMonic : (-p) /ₘ q = -(p /ₘ q)` - `sub_divByMonic : (p₁ - p₂) /ₘ q = p₁ /ₘ q - p₂ /ₘ q` - `mul_divByMonic_assoc (hd : q ∣ p₂) : (p₁ * p₂) /ₘ q = p₁ * (p₂ /ₘ q)` While `mul_divByMonic_assoc` is not exactly the dual of `mul_modByMonic`, I thought it wouldn't hurt to add it. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-algebra
label:t-algebra$
54/17 Mathlib/Algebra/Polynomial/Div.lean,Mathlib/Algebra/Polynomial/RingDivision.lean 2 2 ['github-actions'] nobody
0-40666
11 hours ago
0-43979
12 hours ago
0-43649
12 hours
39869 grunweg
author:grunweg
doc: clarify the scope of `field_simp` The term semi-field is sufficiently non-standard that it has led to confusion whether e.g. `NNReal` is supported by field_simp: it is (as it is a semifield). Let's clarify the doc-string. Inspired by discussions at the ICERM workshop "Techniques and Tools for the Formalization of Analysis". --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) documentation easy t-meta maintainer-merge 4/4 Mathlib/Tactic/FieldSimp.lean 1 2 ['github-actions', 'joneugster'] thorimur
assignee:thorimur
0-40586
11 hours ago
3-37559
3 days ago
3-37150
3 days
39888 adomani
author:adomani
ci(decls-diff): post-build workflow that emits a Lean-aware diff into the step summary Stage 2 of the Lean-aware declarations-diff feature. Stage 1 (#39880) made the producer side write `decls.txt` + `imports.json` into the `import-graph` artifact; this PR adds the consumer. ## What this PR adds A new `.github/workflows/decls-diff.yml` workflow that fires on `workflow_run` completion of the `ci` workflow (PR builds only), and: 1. Resolves the new commit's SHA and the merge-base against master. 2. Downloads the `import-graph` artifact from both sides — the triggering PR run, and the most recent master `ci` run at the merge-base. 3. Sparse-checks-out mathlib's local actions from `${{ github.workflow_sha }}` (the trusted base-branch ref), invokes `get-mathlib-ci`, and then calls leanprover-community/mathlib-ci's [`decls-diff` composite action](https://github.com/leanprover-community/mathlib-ci/pull/43) to compute the diff and render a Markdown body. 4. Writes the rendered diff to that run's `$GITHUB_STEP_SUMMARY`. If the master-side artifact isn't found for the merge-base (a bors-batch-intermediate cache miss), the step summary gets an explanatory message instead and no further work runs. ## Stage-2 scope: step summary only There's no `### PR summary` comment patching here. That behaviour ships in stage 3 along with the patcher script. Stage 2 lets reviewers evaluate the rendering quality without us touching PR comments under the bot's identity. ## Security notes * `Checkout local actions` sparse-checks-out `.github/actions/` from `${{ github.workflow_sha }}` into `workflow-actions/`, so `Get mathlib-ci` resolves against the trusted base-branch copy of the action rather than the PR-branch copy. Same pattern as `build_template.yml`'s `build` job and the `post_steps` `Get mathlib-ci` step added to #39880. * Cross-repo `decls-diff` action is SHA-pinned to the mathlib-ci PR's branch HEAD (`5802cc4c1d`); `update_dependencies.yml` will roll it forward to the merged-master SHA once leanprover-community/mathlib-ci#43 lands. * `permissions:` is read-only (`contents: read` for the checkout, `actions: read` for cross-workflow artifact downloads); no write tokens flow to consumers. * Artifact contents are treated as data — fed to `comm`/`sort`/`sed`/`printf` and emitted verbatim into the step summary. Never executed, never path-interpreted. ## Dependencies * leanprover-community/mathlib-ci#43 (companion PR; adds the action this workflow invokes). 🤖 Generated with [Claude Code](https://claude.com/claude-code) CI LLM-generated 122/0 .github/workflows/decls-diff.yml 1 1 ['github-actions'] nobody
0-39758
11 hours ago
3-5899
3 days ago
3-5490
3 days
39876 kim-em
author:kim-em
feat(scripts): dump cross-reference tags to TSV for downstream review This PR adds `scripts/dump_crossref_tags.lean`, which walks `Mathlib.CrossRef.tagExt` in the elaborated Mathlib environment and writes one TSV record per tagged declaration. The TSV is consumed by a privileged `workflow_run` job that posts the cross-reference review PR comment; the rest of that machinery lives in https://github.com/leanprover-community/external-tags and https://github.com/leanprover-community/mathlib-ci. Fields are sanitised so tabs/newlines in user-controlled comments can't break the TSV framing, and the output is capped at 2 MB. Uses `importModules (loadExts := true)` rather than `withImportModules`, because the wrapper passes `loadExts := false` and would leave `tagExt` empty for imported modules. 🤖 Prepared with [Claude Code](https://claude.com/claude-code) CI LLM-generated 96/0 scripts/README.md,scripts/dump_crossref_tags.lean 2 3 ['github-actions', 'jcommelin', 'kim-em'] nobody
0-39704
11 hours ago
2-53819
2 days ago
2-53516
2 days
39954 jihuang2024
author:jihuang2024
feat(Analysis/Polynomial): define Hurwitz stability and prove small-degree characterizations Proofs were developed with assistance from Claude Code. I have reviewed and understand all the code and can justify the design decisions. This PR introduces the predicate Polynomial.IsHurwitzStable for real polynomials and proves the Routh–Hurwitz stability criterion for degrees 1 and 2. A polynomial p : ℝ[X] is Hurwitz stable if every root of its complexification has strictly negative real part. This notion arises in control theory and the study of linear ODEs, where it characterises asymptotic stability of a system. New definitions Polynomial.IsHurwitzStable: ∀ z : ℂ, (p.map (algebraMap ℝ ℂ)).IsRoot z → z.re < 0 New theorems Polynomial.not_isHurwitzStable_zero: the zero polynomial is not Hurwitz stable Polynomial.IsHurwitzStable.ne_zero: Hurwitz stable polynomials are nonzero Polynomial.isHurwitzStable_X_add_C: X + C a is Hurwitz stable ↔ 0 < a Polynomial.isHurwitzStable_quadratic: X ^ 2 + C b * X + C c is Hurwitz stable ↔ 0 < b ∧ 0 < c Proof strategy for the quadratic The quadratic case splits on whether a root z is real (z.im = 0) or complex (z.im ≠ 0, which forces 2 * z.re + b = 0). Existence of a root uses Complex.exists_root (Fundamental Theorem of Algebra). The necessary condition in the real-root case uses the Vieta complementary root -b - z.re. Future work The general Routh–Hurwitz theorem (for degree n, stated in terms of the Hurwitz matrix and its leading principal minors) requires infrastructure not yet in Mathlib — in particular a theory of the Cauchy index or the Bezoutian of two polynomials. This PR lays the definitional foundation for that work. This corresponds to [1000.yaml](https://github.com/leanprover-community/mathlib4/blob/master/docs/1000.yaml#L2697) Q4455015 - Routh–Hurwitz theorem t-analysis new-contributor LLM-generated 131/0 Mathlib.lean,Mathlib/Analysis/Polynomial/RouthHurwitz.lean 2 10 ['SnirBroshi', 'github-actions', 'jihuang2024', 'wwylele'] nobody
0-35880
9 hours ago
0-37713
10 hours ago
1-42331
1 day
39655 joelriou
author:joelriou
feat(CategoryTheory): the κ-accessible category of κ-directed posets Given a regular cardinal `κ : Cardinal.{u}`, we show that the category `CardinalFilteredPoset κ` of `κ`-directed partially ordered types (with order embeddings as morphisms) is a `κ`-accessible category. --- - [x] depends on: #39669 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory 188/2 Mathlib/CategoryTheory/Presentable/CardinalDirectedPoset.lean 1 2 ['github-actions', 'mathlib-dependent-issues'] nobody
0-35771
9 hours ago
0-35836
9 hours ago
0-48368
13 hours
39353 Raph-DG
author:Raph-DG
feat(Topology): Show existence of a neighbourhood around p which avoids all points in the support of a locally finsupp function except those which specialize to p In this PR we show a simple lemma proving the existence of a neighbourhood around any point p which avoids every point in the support of a locally finsupp function except those which specialize to p. AI disclosure: The statements and a sketch with sorries were provided by me, but I had claude fill in the sorries. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 29/0 Mathlib/Topology/LocallyFinsupp.lean 1 1 ['github-actions'] nobody
0-34315
9 hours ago
0-34315
9 hours ago
0-65241
18 hours
40013 WilliamCoram
author:WilliamCoram
feat: define bounded sets and power bounded elements We define bounded sets, so that we can define power bounded elements in a topological ring. Using this we generalise some notions of topoligcally nilpotent elements and define a residue field. AI usage: some proofs were initially generated with Claude code before being cleaned and/or rewritten by hand. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology LLM-generated large-import 431/5 Mathlib.lean,Mathlib/Topology/Algebra/Bounded.lean,Mathlib/Topology/Algebra/PowerBounded.lean,Mathlib/Topology/Algebra/TopologicallyNilpotent.lean 4 1 ['github-actions'] nobody
0-34304
9 hours ago
0-34377
9 hours ago
0-34480
9 hours
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 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-geometry 99/0 Mathlib.lean,Mathlib/AlgebraicGeometry/FunctionField.lean,Mathlib/AlgebraicGeometry/OrderOfVanishing.lean,Mathlib/AlgebraicGeometry/Properties.lean 4 10 ['Raph-DG', 'dagurtomas', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] dagurtomas
assignee:dagurtomas
0-34288
9 hours ago
0-34288
9 hours ago
30-65269
30 days
40012 SnirBroshi
author:SnirBroshi
feat(GroupTheory/PGroup): iSup of normal p-subgroups is a p-subgroup Also shows that the `iSup` of subgroups equals the set-union of all finite `iSup`s. Co-authored-by: Albert Smith <10266947+ChiCubed@users.noreply.github.com> --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-group-theory 34/0 Mathlib/Algebra/Group/Subgroup/Pointwise.lean,Mathlib/GroupTheory/PGroup.lean 2 1 ['github-actions'] nobody
0-33835
9 hours ago
0-33667
9 hours ago
0-37411
10 hours
39891 SnirBroshi
author:SnirBroshi
feat: the center of a product/pi is the product/pi of the centers (for subobjects) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra maintainer-merge
label:t-algebra$
77/3 Mathlib.lean,Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean,Mathlib/Algebra/Algebra/Subalgebra/Pi.lean,Mathlib/Algebra/Algebra/Subalgebra/Prod.lean,Mathlib/Algebra/Group/Center.lean,Mathlib/Algebra/Ring/Subring/Basic.lean,Mathlib/Algebra/Ring/Subsemiring/Basic.lean,Mathlib/Algebra/Star/NonUnitalSubalgebra.lean,Mathlib/GroupTheory/Subgroup/Center.lean,Mathlib/GroupTheory/Submonoid/Center.lean,Mathlib/GroupTheory/Subsemigroup/Lemmas.lean,Mathlib/RingTheory/NonUnitalSubring/Basic.lean,Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean 13 27 ['SnirBroshi', 'github-actions', 'plp127', 'tb65536', 'themathqueen'] tb65536
assignee:tb65536
0-33485
9 hours ago
1-57628
1 day ago
1-72992
1 day
39816 WenrongZou
author:WenrongZou
chore(MvPolynomial): rename a lemma using prime This PR renames a lemma by adding a prime. Many other lemmas in (mv)polynomial theory also use a prime in their names for the same reason — their primed versions should be rewritten in the `xxx_eq_ite` form. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory easy 13/10 Mathlib/Algebra/MvPolynomial/Basic.lean,Mathlib/RingTheory/MvPolynomial/IrreducibleQuadratic.lean,Mathlib/RingTheory/Smooth/IntegralClosure.lean,Mathlib/RingTheory/Spectrum/Prime/Polynomial.lean,Mathlib/RingTheory/TensorProduct/MvPolynomial.lean,scripts/nolints_prime_decls.txt 6 11 ['NoahW314', 'WenrongZou', 'github-actions', 'ocfnash'] nobody
0-33281
9 hours ago
0-33332
9 hours ago
3-33010
3 days
39941 mkaratarakis
author:mkaratarakis
feat(Data/List): add count lemmas for duplicate detection ## Summary Add general list count lemmas used in the Perron–Frobenius quiver-path development: - `List.mem_tail_of_count_ge_two` - `List.exists_pos_get_of_dropLast_count_ge_two` Relocated from the PF-specific file per review feedback. Proofs use upstream `List.Duplicate` API and `grind` where appropriate (per @chenson2018). Part of the Perron–Frobenius formalization (with @or4nge19). ## Test plan - [x] `lake build Mathlib.Data.List.Count` - [x] `lake build Mathlib.Combinatorics.Quiver.Path.PerronFrobenius` (on integration branch) cc @or4nge19 for review t-data 24/0 Mathlib/Data/List/Count.lean 1 3 ['chenson2018', 'github-actions', 'mkaratarakis'] nobody
0-33208
9 hours ago
2-14918
2 days ago
2-15109
2 days
39913 mkaratarakis
author:mkaratarakis
feat(Combinatorics/Quiver): periodicity and aperiodicity Add `Mathlib/Combinatorics/Quiver/Cyclic.lean`: cycle lengths, index of imprimitivity, and cyclic partitions for strongly connected quivers. Imports only upstream mathlib (`Matrix.Irreducible.Defs`, etc.). Part of the Perron–Frobenius formalization (with @or4nge19). --- --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) cc @or4nge19 for review t-combinatorics 194/0 Mathlib.lean,Mathlib/Combinatorics/Quiver/Cyclic.lean 2 2 ['github-actions', 'or4nge19'] nobody
0-33202
9 hours ago
1-45058
1 day ago
2-46045
2 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 ∅`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order 31/47 Mathlib/Algebra/Order/Archimedean/Real/Basic.lean,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/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 2 ['github-actions', 'mathlib-merge-conflicts'] nobody
0-32765
9 hours ago
5-37968
5 days ago
25-71016
25 days
38856 SnirBroshi
author:SnirBroshi
feat(Order/ConditionallyCompleteLattice/Indexed): `iSup_iSup_eq_{left/right}` for `ConditionallyCompleteLinearOrderBot` and `≤` versions for `ConditionallyCompleteLattice`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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-32682
9 hours ago
26-69164
26 days ago
26-68755
26 days
40014 vasnesterov
author:vasnesterov
feat(Tactic/ComputeAsymptotics/Multiseries): basic constructions Introduce basic constructions for multiseries: `const`, `monomial`, `monomialRpow`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 356/9 Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Basic.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Basis.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Defs.lean 5 1 ['github-actions'] nobody
0-32677
9 hours ago
0-32747
8 hours ago
0-32490
9 hours
39952 vihdzp
author:vihdzp
feat: `IsBotOneClass (WithTop α)` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra t-order easy
label:t-algebra$
4/0 Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean 1 1 ['github-actions', 'plp127'] nobody
0-32234
8 hours ago
1-82585
1 day ago
1-82176
1 day
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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory t-number-theory new-contributor 159/0 Mathlib.lean,Mathlib/Algebra/Order/Antidiag/Prod.lean,Mathlib/Algebra/Order/Antidiag/Tendsto.lean,Mathlib/RingTheory/MvPowerSeries/Restricted.lean 4 51 ['WilliamCoram', 'erdOne', 'github-actions', 'jcommelin', 'mathlib-merge-conflicts', 'mbkybky'] jcommelin
assignee:jcommelin
0-30753
8 hours ago
10-28829
10 days ago
53-4042
53 days
36018 wwylele
author:wwylele
feat(LinearAlgebra/AffineSpace): parallel cross-section of a simplex This is preparing to calculate the volume of a simplex by integrating the cross-section created by shifting the base plane. Part of #37910. --- - [ ] depends on: #38220 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra large-import
label:t-algebra$
176/1 Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Shift.lean,Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean 2 12 ['alreadydone', 'copilot-pull-request-reviewer', 'github-actions', 'mathlib-bors', 'mathlib-dependent-issues', 'wwylele'] dagurtomas
assignee:dagurtomas
0-30025
8 hours ago
1-81588
1 day ago
39-78713
39 days
40017 vasnesterov
author:vasnesterov
feat(Tactic/ComputeAsymptotics/Multiseries): define `Trimmed` Define `Trimmed` predicate and prove basic lemmas about it. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 170/5 Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Basis.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Defs.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Trimming.lean 5 1 ['github-actions'] nobody
0-29782
8 hours ago
0-29874
8 hours ago
0-29465
8 hours
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. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics maintainer-merge 182/113 Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean,Mathlib/Combinatorics/SimpleGraph/Metric.lean,Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Decomp.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Operations.lean 7 7 ['SnirBroshi', 'YaelDillies', 'b-mehta', 'github-actions'] b-mehta
assignee:b-mehta
0-29509
8 hours ago
17-33471
17 days ago
56-65439
56 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`. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
0-29487
8 hours ago
32-81348
32 days ago
32-83770
32 days
39158 SnirBroshi
author:SnirBroshi
feat(LinearAlgebra/Matrix/Rank): generalize `Matrix.rank`/`LinearMap.rank` to semirings - Generalize `Matrix.rank` from `CommRing` to `CommSemiring` - Generalize `LinearMap.rank` from `AddCommGroup`s over `Ring`s to `AddCommMonoid`s over `Semiring`s (which are the minimum requirements for `Module`) - Many `Matrix.rank` theorems now require `StrongRankCondition` explicitly (which `CommRing` used to provide) - `Matrix.cRank` theorems don't need commutativity --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
58/64 Mathlib/LinearAlgebra/Dimension/LinearMap.lean,Mathlib/LinearAlgebra/Matrix/Rank.lean 2 1 ['github-actions'] nobody
0-29414
8 hours ago
19-4012
19 days ago
19-3603
19 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 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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 3 ['github-actions', 'mathlib-merge-conflicts'] nobody
0-29368
8 hours ago
5-37110
5 days ago
37-10243
37 days
40019 grunweg
author:grunweg
chore: golf using fun_prop Partially enabled through #35683. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 14/30 Mathlib/Analysis/Convex/Contractible.lean,Mathlib/Condensed/Discrete/LocallyConstant.lean,Mathlib/Condensed/Light/Sequence.lean,Mathlib/MeasureTheory/Constructions/Polish/Basic.lean,Mathlib/MeasureTheory/Function/SpecialFunctions/Basic.lean 5 1 ['github-actions'] nobody
0-27240
7 hours ago
0-27309
7 hours ago
0-26900
7 hours
26394 winstonyin
author:winstonyin
feat: existence of local flows on manifolds This PR continues the work from #21777. Original PR: https://github.com/leanprover-community/mathlib4/pull/21777 Transfer the existence theorem of local flows on vector spaces to manifolds. The precise statement is: > If a vector field `v` on a manifold `M` is continuously differentiable at an interior point `x₀`, then for a given `t₀` there exists a neighbourhood `u` of `x₀`, a positive `ε`, and `γ : M → ℝ → M` such that `γ x` is an integral curve of `v` on `(t₀ - ε, t₀ + ε)` for all `x ∈ u`. This is powerful because all curves `γ x` (each with initial condition `x ∈ u`) share the same existence time interval `(t₀ - ε, t₀ + ε)`, rather than each curve having its own `ε`. This will allow us to show that $C^1$ vector fields on compact manifolds always have global integral curves / global flows. Any suggestions to shorten the proof or split out useful lemmas are welcome! - [x] depends on: #26392 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-differential-geometry 138/61 Mathlib/Analysis/ODE/PicardLindelof.lean,Mathlib/Geometry/Manifold/IntegralCurve/ExistUnique.lean,Mathlib/Order/Filter/Prod.lean 3 11 ['github-actions', 'grunweg', 'leanprover-community-bot-assistant', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'ocfnash', 'winstonyin'] ocfnash
assignee:ocfnash
0-26706
7 hours ago
0-26790
7 hours ago
22-7142
22 days
39714 tb65536
author:tb65536
feat(RingTheory/Localization/AtPrime/Basic): add variants of `localAlgHom` and `localAlgEquiv` This PR adds variants of `localAlgHom` and `localAlgEquiv` where the base ring is also localized. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory t-algebra
label:t-algebra$
39/7 Mathlib/RingTheory/Localization/AtPrime/Basic.lean,Mathlib/RingTheory/Localization/Basic.lean 2 2 ['github-actions', 'tb65536'] nobody
0-25716
7 hours ago
7-25262
7 days ago
7-24855
7 days
40022 chenson2018
author:chenson2018
chore(Algebra): refactor proofs where `grind?` fails These are sources of technical debt as now reported in the [weekly linting report](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Weekly.20linting.20log/with/544658968). The idea is that a successful grind proof can fail to report the theorems it used via grind?, which means that if these proofs break across toolchains that it becomes significantly harder to repair. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
16/6 Mathlib/Algebra/Group/Defs.lean,Mathlib/Algebra/Notation/Support.lean,Mathlib/Algebra/Order/BigOperators/Group/Finset.lean,Mathlib/Algebra/Order/Field/Basic.lean,Mathlib/Algebra/Order/Ring/StandardPart.lean,Mathlib/Algebra/Polynomial/Degree/Lemmas.lean 6 1 ['github-actions'] nobody
0-25431
7 hours ago
0-25517
6 hours ago
0-25108
6 hours
40023 chenson2018
author:chenson2018
chore(AlgebraicTopology): refactor proofs where `grind?` fails These are sources of technical debt as now reported in the [weekly linting report](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Weekly.20linting.20log/with/544658968). The idea is that a successful grind proof can fail to report the theorems it used via grind?, which means that if these proofs break across toolchains that it becomes significantly harder to repair. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-topology 11/5 Mathlib/AlgebraicTopology/SimplexCategory/DeltaZeroIter.lean,Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/NormalForms.lean,Mathlib/AlgebraicTopology/SimplicialSet/NonDegenerateSimplices.lean,Mathlib/AlgebraicTopology/SimplicialSet/NonDegenerateSimplicesSubcomplex.lean 4 1 ['github-actions'] nobody
0-24980
6 hours ago
0-25077
6 hours ago
0-24668
6 hours
40020 kbuzzard
author:kbuzzard
wip --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
38/27 Mathlib/Algebra/Group/Pi/Basic.lean 1 4 ['github-actions', 'kbuzzard', 'leanprover-radar'] nobody
0-24831
6 hours ago
0-25675
7 hours ago
0-25266
7 hours
40024 ADedecker
author:ADedecker
chore: rename Pi.monoidHom to MonoidHom.pi Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Pi.2EfooHom.20or.20FooHom.2Epi/near/598538630 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
45/21 Mathlib/Algebra/Category/Grp/Yoneda.lean,Mathlib/Algebra/Category/MonCat/Yoneda.lean,Mathlib/Algebra/Group/Pi/Lemmas.lean,Mathlib/Algebra/Ring/Pi.lean,Mathlib/LinearAlgebra/Pi.lean 5 1 ['github-actions'] nobody
0-24518
6 hours ago
0-24606
6 hours ago
0-24197
6 hours
39787 Hagb
author:Hagb
feat(Order/WellQuasiOrder): `WellQuasiOrdered` if onto homomorphous from a `WellQuasiOrdered` relation It is used in #39788 for proof of well foundedness of `MonomialOrder` when the index type is finite. The hypotheses can be further weaken once #38557 is merged. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order easy 16/0 Mathlib/Order/WellQuasiOrder.lean 1 3 ['Hagb', 'github-actions', 'plp127'] nobody
0-24010
6 hours ago
5-10086
5 days ago
5-9677
5 days
39873 mkaratarakis
author:mkaratarakis
feat(RingTheory/IntegralClosure): add IsIntegral helpers for casts Add `IsIntegral.Cast` and `IsIntegral.Nat`, stating that integer and natural literals are integral over `ℤ` in a field. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory 7/0 Mathlib/RingTheory/IntegralClosure/Algebra/Basic.lean 1 8 ['github-actions', 'mkaratarakis', 'tb65536'] nobody
0-23538
6 hours ago
2-54148
2 days ago
2-60255
2 days
40016 xhalo32
author:xhalo32
feat(InfiniteSum): add hasProd_ite_eq' and tprod_ite_eq' Adds `eq'` variants that mirror those in `Mathlib/Algebra/BigOperators/Group/Finset/Piecewise.lean` and `Mathlib/Algebra/BigOperators/Finsupp/Basic.lean`. For proof of their usefulness, these summability lemmas about indicator functions are now straight-forward: ```lean theorem hasSum_indicator_singleton_const [CommMonoid α] [TopologicalSpace α] [TopologicalSpace β] [AddCommMonoid β] {x : α} {f : α → β} (L := unconditional α) [L.LeAtTop] : HasSum (fun y => Set.indicator {y} f x) (f x) L := by classical exact hasSum_ite_eq' x (f x) L theorem summable_indicator_singleton_const [CommMonoid α] [TopologicalSpace α] [TopologicalSpace β] [AddCommMonoid β] {x : α} {f : α → β} (L := unconditional α) [L.LeAtTop] : Summable (fun y => Set.indicator {y} f x) L := ⟨_, hasSum_indicator_singleton_const _⟩ ``` We are also depending on these proofs in [Polya-lean](https://github.com/alma-n/polya-lean). Update: changed `convert` to `convert!`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology new-contributor 14/0 Mathlib/Topology/Algebra/InfiniteSum/Basic.lean 1 3 ['github-actions', 'xhalo32'] nobody
0-22879
6 hours ago
0-26163
7 hours ago
0-30184
8 hours
40015 SnirBroshi
author:SnirBroshi
chore: replace some `omega`s None of these had any noticable slowdown. --- Is it time to add `omega` to the technical debt counters? There are ~250 left. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) tech debt 7/7 Mathlib/Combinatorics/SimpleGraph/Walk/Subwalks.lean,Mathlib/Data/Finset/Powerset.lean,Mathlib/Data/Int/Interval.lean,Mathlib/Data/List/Defs.lean,Mathlib/Data/List/Infix.lean 5 6 ['SnirBroshi', 'chenson2018', 'github-actions', 'grunweg'] nobody
0-21860
6 hours ago
0-21862
5 hours ago
0-25835
7 hours
39189 tb65536
author:tb65536
feat(RingTheory/RamificationInertia/Basic): ramification-inertia formula for finite flat extensions This PR proves the ramification-inertia formula for finite flat extensions. --- - [x] depends on: #38825 - [x] depends on: #39094 - [x] depends on: #39196 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory t-algebra
label:t-algebra$
114/3 Mathlib.lean,Mathlib/FieldTheory/Galois/IsGaloisGroup.lean,Mathlib/RingTheory/LocalRing/ResidueField/Fiber.lean,Mathlib/RingTheory/RamificationInertia/Basic.lean 4 2 ['github-actions', 'mathlib-dependent-issues'] nobody
0-21812
6 hours ago
0-21812
5 hours ago
1-19355
1 day
40025 artie2000
author:artie2000
chore(Data/SetLike/Basic): generalise instance * Generalise the standard `IsConcreteLE` instance from `PartialOrder.ofSetLike` to `LE.ofSetLike` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data 8/4 Mathlib/Data/SetLike/Basic.lean 1 2 ['github-actions'] nobody
0-21285
5 hours ago
0-21510
5 hours ago
0-21101
5 hours
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 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] mattrobball
assignee:mattrobball
0-20895
5 hours ago
27-82143
27 days ago
138-7191
138 days
34908 CoolRmal
author:CoolRmal
feat(GroupTheory): a characteristic subgroup of a characteristic subgroup is characteristic The main theorem proved in this PR is `characteristic_of_characteristic_of_characteristic`. If says that if `K` is a characteristic subgroup of a characteristic subgroup `H` of `G`, then `K` is a characteristic subgroup of `G`. Created with the help of Codex. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra t-group-theory LLM-generated
label:t-algebra$
25/0 Mathlib/Algebra/Group/Subgroup/Basic.lean 1 22 ['CoolRmal', 'github-actions', 'robin-carlier', 'tb65536'] mattrobball
assignee:mattrobball
0-19826
5 hours ago
0-19826
5 hours ago
10-68300
10 days
39904 wwylele
author:wwylele
refactor(Analysis/Meromorphic): generalize 𝕜 → 𝕜 to 𝕜 → 𝕜' for order lemma when possible I don't have a real use for this, but this is the style that Meromorphic/Basic.lean follows, so let's unify them. --- I unfortunately had to duplicate the proof for `meromorphicOrderAt_mul` from `meromorphicOrderAt_smul`. They are almost the same, but I don't find a good way to unify them. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 38/22 Mathlib/Analysis/Meromorphic/Order.lean 1 1 ['github-actions'] nobody
0-19669
5 hours ago
2-80811
2 days ago
2-80402
2 days
39831 wwylele
author:wwylele
feat(Topology): a preconnected set is discrete iff is subsingleton --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology 9/0 Mathlib/Topology/Connected/TotallyDisconnected.lean 1 1 ['github-actions'] nobody
0-19657
5 hours ago
4-30579
4 days ago
4-30170
4 days
39680 grunweg
author:grunweg
feat(CI): validate PR titles more strictly - lint extraneous spaces (and any tabs) - check that PR scopes are well-formed - also extract the PR subject, and check that it does not end in a period, and starts in lower-case - linter about strange Unicode characters (anything not allowed by the Unicode linter) Continuation of #34518: this covers the remaining checks of #16303. (This does not check that the subject is in imperative, present tense.) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-linter maintainer-merge 196/37 Mathlib/Tactic/Linter/ValidatePRTitle.lean,MathlibTest/ValidatePRTitle.lean 2 18 ['SnirBroshi', 'github-actions', 'grunweg', 'joneugster'] JovanGerb
assignee:JovanGerb
0-18538
5 hours ago
0-19734
5 hours ago
7-68355
7 days
39136 vihdzp
author:vihdzp
feat: more results on `Order.enum` Most importantly, we prove that the enumerator function of a (cofinal) set is normal iff the set is closed (under non-empty suprema). --- - [x] depends on: #38362 - [x] depends on: #39137 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory t-order maintainer-merge 90/7 Mathlib/Order/Cofinal.lean,Mathlib/SetTheory/Cardinal/Cofinality/Club.lean,Mathlib/SetTheory/Cardinal/Cofinality/Enum.lean,Mathlib/SetTheory/Ordinal/Topology.lean 4 7 ['YaelDillies', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp'] nobody
0-17005
4 hours ago
1-11936
1 day ago
1-61841
1 day
39833 wwylele
author:wwylele
feat(Analysis/Meromorphic): const_smul lemma This allows more general scalar type than the existing `smul` ones --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 14/0 Mathlib/Analysis/Meromorphic/Basic.lean 1 1 ['github-actions'] nobody
0-15877
4 hours ago
0-15955
4 hours ago
4-27200
4 days
37415 vasnesterov
author:vasnesterov
feat(Tactic/ComputeAsymptotics/Multiseries): compute limits of `Monomial`s Prove * `UnitMonomial.logToFun_isEquivalent_of_nonzero_head`: `log m.toFun` is asymptotically equivalent to its first summand - `m[0] • log basis[0]` if `m[0] ≠ 0`. Using this theorem we can prove that the asymptotic behavior of a monomial is determined by its first non-zero exponent. * `toFun_tendsto_top_of_FirstNonzeroIsPos` and its variants: used to infer the limit of `t.toFun` from `FirstNonzeroIsPos`/`FirstNonzeroIsNeg`/`AllZero`. * `IsLittleO_of_lt_exps` and its variants: used to asymptotically compare two monomials. --- - [x] depends on: #37411 This is a part of the `compute_asymptotics` tactic (#28291). [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta maintainer-merge 378/1 Mathlib/Tactic/ComputeAsymptotics/Multiseries/Basis.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Monomial/Basic.lean 2 16 ['github-actions', 'joneugster', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] joneugster
assignee:joneugster
0-14526
4 hours ago
0-43646
12 hours ago
14-29194
14 days
39703 YaelDillies
author:YaelDillies
chore: create a `Basic` top folder Move a select few folders from `Logic` to a new `Basic` folder. The goal is to finally move the material misplaced in the `Data` and `Logic` folder and to clarify the various expectations of each folder. Ultimately: * the `Basic` folder will be about basic predicates on types and basic mathematical types not fitting in any other folder; * the `Data` folder will be about data structures, instead of the current mix of data structures and basic mathematical types not fitting in any other folder; * the `Logic` folder will be about advanced logic results not fitting in either `ModelTheory` or `SetTheory`, instead of the current mix of basic predicates on types and advanced logic results. Many more files (~1000) could be moved, so I will do it in several PRs. Not all files should move to `Basic`. Some files should go to `Algebra.Order` instead (eg `Data.Nat.Lattice`) and some should be straight out deprecated (eg `Data.Analysis`). [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/345428-mathlib-reviewers/topic/Basic.20folder/with/597151406) --- This PR stems from discussions at the MI retreat 2026. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) file-removed t-data maintainer-merge 148/96 Counterexamples/Girard.lean,Mathlib.lean,Mathlib/Algebra/CharZero/Defs.lean,Mathlib/Algebra/Group/Irreducible/Defs.lean,Mathlib/Algebra/Group/Nat/Units.lean,Mathlib/Algebra/Group/Pi/Basic.lean,Mathlib/Algebra/Group/Units/Basic.lean,Mathlib/Algebra/Group/WithOne/Defs.lean,Mathlib/Algebra/GroupWithZero/Basic.lean,Mathlib/Algebra/GroupWithZero/Defs.lean,Mathlib/Algebra/Module/Presentation/Free.lean,Mathlib/Algebra/Module/Projective.lean,Mathlib/Algebra/NeZero.lean,Mathlib/Basic/Denumerable.lean,Mathlib/Basic/ExistsUnique.lean,Mathlib/Basic/IsEmpty.lean,Mathlib/Basic/IsEmpty/Basic.lean,Mathlib/Basic/IsEmpty/Defs.lean,Mathlib/Basic/Logic/Basic.lean,Mathlib/Basic/Logic/Lemmas.lean,Mathlib/Basic/Nonempty.lean,Mathlib/Basic/Nontrivial/Basic.lean,Mathlib/Basic/Nontrivial/Defs.lean,Mathlib/Basic/README.md,Mathlib/Basic/Unique.lean,Mathlib/Basic/UnivLE.lean,Mathlib/CategoryTheory/EssentiallySmall.lean,Mathlib/CategoryTheory/Limits/Types/Colimits.lean,Mathlib/CategoryTheory/Limits/Types/Limits.lean,Mathlib/CategoryTheory/UnivLE.lean,Mathlib/Combinatorics/Quiver/Path.lean,Mathlib/Computability/Primrec/Basic.lean,Mathlib/Data/Bool/Basic.lean,Mathlib/Data/FunLike/Basic.lean,Mathlib/Data/List/Basic.lean,Mathlib/Data/List/GetD.lean,Mathlib/Data/Nat/Basic.lean,Mathlib/Data/Nat/MaxPowDiv.lean,Mathlib/Data/Option/Basic.lean,Mathlib/Data/Quot.lean,Mathlib/Data/README.md,Mathlib/Data/Rat/Denumerable.lean,Mathlib/Data/TwoPointing.lean,Mathlib/Lean/Meta/CongrTheorems.lean,Mathlib/LinearAlgebra/Matrix/Defs.lean,Mathlib/Logic/Equiv/Defs.lean,Mathlib/Logic/Equiv/List.lean,Mathlib/Logic/Function/Basic.lean,Mathlib/Logic/README.md,Mathlib/Order/OrderIsoNat.lean,Mathlib/Order/RelClasses.lean,Mathlib/Order/WithBot.lean,Mathlib/RingTheory/Coprime/Basic.lean,Mathlib/SetTheory/Cardinal/Basic.lean,Mathlib/SetTheory/Cardinal/UnivLE.lean,Mathlib/SetTheory/ZFC/Rank.lean,Mathlib/Tactic/CancelDenoms/Core.lean,Mathlib/Tactic/CongrExclamation.lean,Mathlib/Tactic/ITauto.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean,Mathlib/Tactic/Nontriviality/Core.lean,Mathlib/Tactic/Push.lean,Mathlib/Tactic/Subsingleton.lean,Mathlib/Tactic/Tauto.lean,Mathlib/Testing/Plausible/Testable.lean,Mathlib/Topology/Order/UpperLowerSetTopology.lean,MathlibTest/Linter/PrivateModule/ImportOnly.lean,scripts/autolabel.lean,scripts/noshake.json 69 25 ['SnirBroshi', 'YaelDillies', 'github-actions', 'grunweg', 'joneugster', 'mathlib-merge-conflicts', 'themathqueen'] joneugster
assignee:joneugster
0-14145
3 hours ago
0-15979
4 hours ago
3-39772
3 days
39988 grunweg
author:grunweg
refactor(Tactic/Translate): document name translation a bit more I found the code a bit hard to read: the following commits each improve the code slightly. Also add a test exercising the "name matches the auto-generated name" code path. #39962 will tweak the naming algorithm slightly. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta 35/20 Mathlib/Tactic/Translate/Core.lean,Mathlib/Tactic/Translate/TagUnfoldBoundary.lean,MathlibTest/Attribute/ToAdditive/Basic.lean 3 8 ['github-actions', 'grunweg', 'joneugster', 'thorimur'] joneugster
assignee:joneugster
0-14139
3 hours ago
0-14139
3 hours ago
1-2481
1 day
39990 grunweg
author:grunweg
chore: move Data/Nat/Lattice to Order This file uses only order theory: that is a much better location --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) tech debt file-removed 19/19 Mathlib.lean,Mathlib/Algebra/Polynomial/Div.lean,Mathlib/Combinatorics/SimpleGraph/Clique.lean,Mathlib/Combinatorics/SimpleGraph/Coloring/VertexColoring.lean,Mathlib/Data/ENat/Lattice.lean,Mathlib/Data/List/PeriodicityLemma.lean,Mathlib/Data/Multiset/Interval.lean,Mathlib/Data/NNReal/Basic.lean,Mathlib/Data/Set/Accumulate.lean,Mathlib/Dynamics/PeriodicPts/Lemmas.lean,Mathlib/Dynamics/TopologicalEntropy/DynamicalEntourage.lean,Mathlib/MeasureTheory/SetSemiring.lean,Mathlib/Order/Interval/Set/OrdConnectedLinear.lean,Mathlib/Order/Lattice/Nat.lean,Mathlib/Order/OrderIsoNat.lean,Mathlib/RingTheory/Nilpotent/Basic.lean,Mathlib/RingTheory/Nilpotent/Defs.lean,Mathlib/Topology/Instances/Nat.lean,Mathlib/Topology/Metrizable/Uniformity.lean 19 6 ['SnirBroshi', 'github-actions', 'grunweg'] nobody
0-14128
3 hours ago
1-10882
1 day ago
1-10475
1 day
37342 vasnesterov
author:vasnesterov
feat(Tactic/ComputeAsymptotics/Multiseries): non-primitive corecursion for Seq: more `FriendlyOperation` API This is a continuation of #35072. This PR adds more API about friendly operations: * `FriendlyOperation.coind`: a coinductive principle for proving that operation is friendly * `FriendlyOperationClass.eq_of_bisim`: a generalisation of `Seq.eq_of_bisim'` for proving two sequences are equal. --- - [x] depends on: #35072 This is a part of the `compute_asymptotics` tactic (#28291). [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data t-meta maintainer-merge 160/0 Mathlib/Tactic/ComputeAsymptotics/Multiseries/Corecursion.lean 1 7 ['github-actions', 'joneugster', 'mathlib-dependent-issues'] joneugster
assignee:joneugster
0-14012
3 hours ago
0-44751
12 hours ago
29-32185
29 days
40028 marcelolynch
author:marcelolynch
chore(ci): tweaks to Lake cache shadow workflow This PR tweaks the Lake cache shadow workflow (#39402) with some improvements - Bump actions (removes some warnings) - Report new content uploaded per run. This is surfaced as a new Zulip line, e.g. `📦 new content uploaded: 47MiB across 312 new artifact(s) vs rev a1b2c3d4e5f6 (distance: 84 commits)`. - Route the Zulip summary to `nightly-testing-mathlib` instead of `nightly-testing`. CI 42/4 .github/workflows/lake_cache_shadow.yml 1 1 ['github-actions'] nobody
0-13384
3 hours ago
0-13521
3 hours ago
0-13112
3 hours
39875 mkaratarakis
author:mkaratarakis
refactor(NumberField/House): expose Siegel lemma infrastructure Expose Siegel's lemma infrastructure in `NumberField.House`: rename the private basis-matrix bound to `basisMatrixInvSupNorm`, make `house` reducible, and adjust `exists_ne_zero_int_vec_house_le`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) 59/48 Mathlib/NumberTheory/NumberField/House.lean 1 4 ['github-actions', 'mkaratarakis', 'tb65536'] nobody
0-13043
3 hours ago
3-16718
3 days ago
3-20036
3 days
39872 mkaratarakis
author:mkaratarakis
feat(RingTheory/Algebraic): add natDenominator API Add `AlgebraicDenominator.denominator` and `AlgebraicDenominator.natDenominator`, characterizing denominators of algebraic elements as generators of a colon ideal and, over `ℤ`, their absolute value as a natural-number denominator. Part of the Gelfond–Schneider formalization; see #39873, #39875, and #39874. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) cc @tb65536 t-ring-theory 68/0 Mathlib.lean,Mathlib/RingTheory/Algebraic/NatDenominator.lean 2 1 ['github-actions'] nobody
0-13001
3 hours ago
3-33988
3 days ago
3-33579
3 days
39984 grunweg
author:grunweg
chore(Data): move some files to better locations Move a number of files in `Data` to clearly better locations. See individual commit messages for details. --- - [x] depends on: #39976 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) file-removed tech debt 30/30 Counterexamples/HomogeneousPrimeNotPrime.lean,Mathlib.lean,Mathlib/Algebra/Group/ConjFinite.lean,Mathlib/Algebra/Group/Subgroup/Finite.lean,Mathlib/Algebra/GroupWithZero/Units/Fintype.lean,Mathlib/Algebra/Lie/SerreConstruction.lean,Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean,Mathlib/Analysis/Real/Cardinality.lean,Mathlib/CategoryTheory/Galois/Basic.lean,Mathlib/Combinatorics/SimpleGraph/VertexCover.lean,Mathlib/Data/Set/PowersetCard.lean,Mathlib/Data/ZMod/Basic.lean,Mathlib/GroupTheory/Index.lean,Mathlib/GroupTheory/SpecificGroups/Alternating.lean,Mathlib/LinearAlgebra/Matrix/Action.lean,Mathlib/LinearAlgebra/Matrix/Bilinear.lean,Mathlib/LinearAlgebra/Matrix/Cartan.lean,Mathlib/LinearAlgebra/Matrix/DualNumber.lean,Mathlib/LinearAlgebra/Matrix/Invertible.lean,Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean,Mathlib/LinearAlgebra/Matrix/SchurComplement.lean,Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean,Mathlib/LinearAlgebra/Projectivization/Cardinality.lean,Mathlib/NumberTheory/MulChar/Basic.lean,Mathlib/RingTheory/SimpleModule/Basic.lean,Mathlib/SetTheory/Cardinal/Embedding.lean,Mathlib/SetTheory/Cardinal/NatCard.lean,Mathlib/SetTheory/Cardinal/Rat.lean,Mathlib/Topology/Compactification/OnePoint/ProjectiveLine.lean,scripts/noshake.json 30 3 ['github-actions', 'mathlib-dependent-issues'] nobody
0-12429
3 hours ago
0-14405
3 hours ago
0-14052
3 hours
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 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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 19 ['copilot-pull-request-reviewer', 'github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'themathqueen', 'wwylele'] faenuccio and themathqueen
assignee:themathqueen assignee:faenuccio
0-12140
3 hours ago
25-16196
25 days ago
59-3949
59 days
39996 RuthP628
author:RuthP628
feat(ModelTheory/Semantics): add simp theorems similar to Sentence.realize_not Add simp theorems Sentence.realize_bot, Sentence.realize_top, Sentence.realize_inf, Sentence.realize_sup, Sentence.realize_imp and Sentence.realize_iff in the style of Sentence.realize_not as consequences of the corresponding theorems for formulas. t-logic new-contributor 31/1 Mathlib/ModelTheory/Semantics.lean 1 10 ['RuthP628', 'b-mehta', 'github-actions', 'plp127'] nobody
0-9334
2 hours ago
0-36340
9 hours ago
0-43170
11 hours
40029 vasnesterov
author:vasnesterov
feat(Analysis/Analytic): alternating geometric series * Define `geometricAlternatingSeries`: `1 - x + x ^ 2 - ...` as a `FormalMultilinearSeries`. * Prove the same lemmas as for existing `formalMultilinearSeries_geometric`. * Move the "Composition with a linear map" section above as it's needed to directly translate the results about `formalMultilinearSeries_geometric` to results about `geometricAlternatingSeries`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis 132/65 Mathlib/Analysis/Analytic/Constructions.lean 1 1 ['github-actions'] nobody
0-8286
2 hours ago
0-8373
2 hours ago
0-7964
2 hours
39956 SnirBroshi
author:SnirBroshi
feat(GroupTheory/IsPerfect): Grün's lemma Grün's lemma: In a perfect group (`commutator G = ⊤`), `center (G ⧸ center G) = ⊥`. Also the `derivedSeries` and the `lowerCentralSeries` are a constant `⊤`, and the `upperCentralSeries` starts with `⊥` and afterwards is a constant `center G`. --- [Wikipedia](https://en.wikipedia.org/wiki/Perfect_group#Gr.C3.BCn.27s_lemma) [MathWorld](https://mathworld.wolfram.com/GruensLemma.html) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-group-theory 70/0 Mathlib/Algebra/Group/Subgroup/Ker.lean,Mathlib/GroupTheory/Commutator/Basic.lean,Mathlib/GroupTheory/IsPerfect.lean,Mathlib/GroupTheory/Nilpotent.lean 4 9 ['github-actions', 'tb65536'] tb65536
assignee:tb65536
0-7326
2 hours ago
1-70288
1 day ago
1-69879
1 day
40026 thefundamentaltheor3m
author:thefundamentaltheor3m
feat(ArithmeticFunction/Defs): A power of a multiplicative arithmetic function is multiplicative --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-number-theory new-contributor 9/0 Mathlib/NumberTheory/ArithmeticFunction/Defs.lean 1 2 ['github-actions'] nobody
0-6392
1 hour ago
0-19424
5 hours ago
0-19015
5 hours
38534 AlexeyMilovanov
author:AlexeyMilovanov
refactor(Computability): bundle PFun into a structure with FunLike instance This PR refactors `PFun` from `def PFun α β := α → Part β` to a structure with a `FunLike` instance. [Discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Fix.20for.20fun_prop.20on.20PFun.20.28context.3A.20Computability.20Theory.29) ### Main changes * `PFun` is now a structure with a single field `toFun : α → Part β`. * Added the `FunLike (α →. β) α (Part β)` instance and `initialize_simps_projections`. * Added the basic projection/application simp lemmas needed for the structure wrapper. * Definitions which used to return raw lambdas as partial functions now explicitly use `PFun.mk` or `PFun.lift`. * Equality proofs for partial functions now use `PFun.ext` / `DFunLike.ext` where `funext` no longer applies directly. ### Downstream impact The refactor mainly impacts Computability Theory and Category Theory (`Category/PartialFun.lean`). Since `PFun` is no longer definitionally equal to `α → Part β`, tactics such as `rfl`, `simp`, and `funext` can no longer always see through the old raw-function representation. As a result, several proofs (e.g. `fix_aux`, `ppred`, `mem_eval`, and `unitIso`) grew in size, requiring explicit `ext` + `simp` breakdowns. I tried to keep these proof changes minimal; further golfing suggestions are very welcome. It seems that fully recovering the old brevity in some places may require additional `PFun`-specific API/congruence support, which I avoided adding in this PR to keep the diff minimal. ### Affected files * **Core:** `Mathlib/Data/PFun.lean` * **Computability:** `Partrec`, `PartrecBasis`, `PartrecCode`, `RE`, `RecursiveIn`, `Ackermann`, `Halting`, `StateTransition`, `TuringDegree`, `TuringMachine/Config` * **Category Theory:** `Category/PartialFun.lean` * **Other:** `Data/Finset/PImage.lean`, `NumberTheory/Dioph.lean` This also removes the previous `set_option linter.flexible false` workaround in `TuringMachine/Config.lean` and the local transparency workarounds in `Category/PartialFun.lean`. ### Note on LLM usage The core `PFun` change caused numerous downstream errors. I initially used an LLM to help draft fixes for these files. Afterwards, I spent a significant amount of time manually correcting and modifying all of the generated changes. new-contributor t-computability 897/634 Mathlib/CategoryTheory/Category/PartialFun.lean,Mathlib/Computability/Ackermann.lean,Mathlib/Computability/Halting.lean,Mathlib/Computability/Partrec.lean,Mathlib/Computability/PartrecBasis.lean,Mathlib/Computability/PartrecCode.lean,Mathlib/Computability/RE.lean,Mathlib/Computability/RecursiveIn.lean,Mathlib/Computability/StateTransition.lean,Mathlib/Computability/TuringDegree.lean,Mathlib/Computability/TuringMachine/Config.lean,Mathlib/Data/Finset/PImage.lean,Mathlib/Data/PFun.lean,Mathlib/NumberTheory/Dioph.lean 14 9 ['AlexeyMilovanov', 'dagurtomas', 'github-actions', 'j-loreaux', 'mathlib-bors', 'mathlib-merge-conflicts'] nobody
0-3900
1 hour ago
4-6983
4 days ago
12-34317
12 days
39972 tb65536
author:tb65536
feat(GroupTheory/Torsion): the free rank of an abelian group This PR defines the rank of the free part of an abelian group. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra t-group-theory
label:t-algebra$
29/0 Mathlib/GroupTheory/Torsion.lean 1 7 ['github-actions', 'plp127', 'riccardobrasca', 'tb65536'] riccardobrasca
assignee:riccardobrasca
0-3398
56 minutes ago
1-36018
1 day ago
1-35611
1 day
40031 EtienneC30
author:EtienneC30
chore: fix deprecations for PMF.bernoulli Some statements about `PMF.bernoulli` were not deprecated while `PMF.bernoulli` was deprecated, see https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Deprecation.20policy/near/598588742. The two lemmas about the support of `PMF.bernoulli` are deprecated in favor of [ProbabilityTheory.bernoulliMeasure_apply_of_notMem_of_notMem](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Probability/Distributions/Bernoulli.html#ProbabilityTheory.bernoulliMeasure_apply_of_notMem_of_notMem). [PMF.binomial_one_eq_bernoulli](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Probability/ProbabilityMassFunction/Binomial.html#PMF.binomial_one_eq_bernoulli) should wait for #37736 which deprecates `PMF.binomial`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability 4/4 Mathlib/Probability/ProbabilityMassFunction/Constructions.lean 1 1 ['github-actions'] nobody
0-3111
51 minutes ago
0-3196
46 minutes ago
0-2787
46 minutes
40032 ADedecker
author:ADedecker
feat: define MonoidHom.piMap --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra
label:t-algebra$
46/22 Mathlib/Algebra/Group/Pi/Lemmas.lean 1 1 ['github-actions'] nobody
0-2839
47 minutes ago
0-2923
41 minutes ago
0-2514
41 minutes
40033 JJYYY-JJY
author:JJYYY-JJY
chore: remove flexible linter suppressions This PR removes two local `linter.flexible` suppressions by replacing compact `simp; infer_instance` with explicit proofs. Changed files: - `Mathlib/Dynamics/TopologicalEntropy/DynamicalEntourage.lean` - `Mathlib/Topology/UniformSpace/Ultra/Constructions.lean` Tested with: `lake build` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor 20/8 Mathlib/Dynamics/TopologicalEntropy/DynamicalEntourage.lean,Mathlib/Topology/UniformSpace/Ultra/Constructions.lean 2 2 ['github-actions'] nobody
0-2834
47 minutes ago
0-2911
41 minutes ago
0-2502
41 minutes
40011 SnirBroshi
author:SnirBroshi
feat(Algebra/Group/Subgroup/Pointwise): iSup of normal subgroups is normal This is a generalization of `sup_normal`, which is for the supremum of two subgroups. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra t-group-theory
label:t-algebra$
29/0 Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/Algebra/Group/Subgroup/Pointwise.lean 2 2 ['github-actions', 'tb65536'] nobody
0-2702
45 minutes ago
0-38380
10 hours ago
0-37971
10 hours
39339 marcelolynch
author:marcelolynch
feat(ci): add !downstream-check PR-validation workflow This PR adds a comment-triggered workflow that lets maintainers validate a mathlib4 PR against curated downstream Lean projects. A user comments !downstream-check FLT, Toric --merge-branch, carleson@v1.2.3 on a PR and the workflow: * gates the commenter on `author_association ∈ {OWNER, MEMBER, COLLABORATOR}`, * checks out `leanprover-community/mathlib-ci` via the existing `get-mathlib-ci` composite action and runs `./ci-tools/.github/actions/check-downstream-validate` on the directive (parses the grammar, resolves the PR's `merge_commit_sha`, and POSTs a user-facing PR comment if the syntax is wrong), * mints an App token and dispatches `mathlib-pr-validation.yml` in `leanprover-community/downstream-reports`, * runs `./ci-tools/.github/actions/check-downstream-ack` to post an acknowledgement comment on the PR. Grammar (each comma-separated entry): [@] [--merge-branch] * `` — inventory short name (e.g. `FLT`) or GitHub `owner/repo` slug. Resolved by the dispatched workflow. * `@` — optional. Any git refspec for the downstream's checkout. * `--merge-branch` — optional, per entry. Flips that entry from the default LKG mode (cherry-pick PR onto the downstream's last-known-good mathlib) to merge mode (build against the PR's merge tree). Grammar errors leave a comment on the PR addressing the requester, quoting the parser's error + a usage hint, so a typo doesn't bury the diagnosis in the workflow log. Runtime errors (unknown downstream, build failures, etc.) come from the dispatched downstream-reports workflow on its own — the two repos stay decoupled. ## Companion changes * leanprover-community/mathlib-ci#37 : adds the actions this workflow consumes. This PR bumps the `get-mathlib-ci` SHA pin to ingest this CI 169/1 .github/actions/get-mathlib-ci/action.yml,.github/workflows/pr_check_downstream.yml 2 10 ['downstream-reports-automation', 'github-actions', 'marcelolynch', 'thorimur'] bryangingechen
assignee:bryangingechen
0-2214
36 minutes ago
0-10531
2 hours ago
0-10122
2 hours

New contributors' PRs on the review queue

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
38344 robo7179
author:robo7179
feat(SimpleGraph/Coloring/VertexColoring): Matching is 2 colorable --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 51/0 Mathlib/Combinatorics/SimpleGraph/Coloring/VertexColoring.lean 1 5 ['SnirBroshi', 'github-actions', 'vlad902'] nobody
34-44354
1 month ago
38-11898
38 days ago
38-11875
38 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. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
31-2210
1 month ago
36-78730
36 days ago
37-53147
37 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
27-18690
27 days ago
38-81192
38 days ago
38-81309
38 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
25-68175
25 days ago
26-38403
26 days ago
26-37994
26 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 133/0 Mathlib.lean,Mathlib/Combinatorics/SetFamily/Sperner1D.lean 2 3 ['github-actions', 'grunweg'] nobody
25-59409
25 days ago
25-69559
25 days ago
25-69150
25 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order new-contributor 9/19 Mathlib/Order/PrimeSeparator.lean 1 2 ['github-actions'] nobody
24-52100
24 days ago
24-52187
24 days ago
24-51778
24 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
22-66115
22 days ago
39-13189
39 days ago
39-12780
39 days
39023 TBUGTB
author:TBUGTB
feat(Algebra/Order): API lemmas on floor and abs Co-authored-by: Etienne Marion @EtienneC30 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
22-47841
22 days ago
22-51030
22 days ago
22-50621
22 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
21-9072
21 days ago
21-12496
21 days ago
34-62203
34 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
20-79867
20 days ago
47-13963
47 days ago
62-70753
62 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. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
20-79857
20 days ago
21-45635
21 days ago
36-50523
36 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
20-79849
20 days ago
36-35592
36 days ago
37-23624
37 days
39162 anovickis
author:anovickis
feat(Topology/PartitionOfUnity): add pointwise_decomposition_finsum + companions Add three short lemmas to `Mathlib/Topology/PartitionOfUnity.lean` extending the existing `PartitionOfUnity` API: - `pointwise_decomposition_finsum` — for `f : X → ℝ` and `x ∈ s`, `f x = ∑ᶠ i, ρ i x · f x`. This is the pointwise step that lifts to integral linearity in measure-theoretic PoU integration: `∫_s f dμ = ∑ᶠ i, ∫_s (ρ i · f) dμ`. - `one_minus_sum_nonneg` — `0 ≤ 1 - ∑ᶠ i, ρ i x`. Direct rearrangement of the existing `sum_le_one` field; useful as a complement-mass remainder bound in chart-by-chart estimates. - `abs_le_one` — `|ρ i x| ≤ 1`. Combines the existing `nonneg` and `le_one`; convenience for absolute-value bounds. All three are short proofs using existing structure fields (`sum_eq_one`, `sum_le_one`, `nonneg`, `le_one`). These came up while writing chart-by-chart Stokes-on-manifold estimates where one wants to decompose `∫_M f` into chart-supported pieces using a partition of unity. The pointwise identity is the obvious first step; the other two are complementary algebraic bounds that show up in remainder estimates. --- 🤖 Generated with [Claude Code](https://claude.com/claude-code) t-topology new-contributor LLM-generated 27/0 Mathlib/Topology/PartitionOfUnity.lean 1 2 ['github-actions'] urkud
assignee:urkud
17-79822
17 days ago
18-75743
18 days ago
18-75334
18 days
39239 alainchmt
author:alainchmt
feat(FieldTheory/Finite): irreducible polynomial divides X^q^n - X iff degree divides n --- Add the theorem saying that, for an irreducible polynomial `f` over a finite field `K`, the degree of `f` divides `n` if and only if `f` divides `X ^ (Nat.card K) ^ n - X`. Include auxiliary lemmas. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra new-contributor
label:t-algebra$
34/0 Mathlib/FieldTheory/Finite/Extension.lean,Mathlib/FieldTheory/Minpoly/Field.lean 2 2 ['github-actions'] nobody
17-48995
17 days ago
17-49084
17 days ago
17-48675
17 days
39279 jayscambler
author:jayscambler
feat(Cryptography/Sigma): Schnorr sigma protocol and signature scheme Adds `Mathlib/Cryptography/Sigma/Schnorr.lean`. New file in a new top-level directory; mathlib currently has no `Mathlib/Cryptography/`, so I've taken `Mathlib/Cryptography/Sigma/` as the natural home for sigma-protocol formalizations. The file proves the three defining properties of Schnorr's identification scheme as a sigma protocol: - `Schnorr.correct`: completeness. Honest verifier accepts honest signer's transcript. - `Schnorr.specialSoundness`: from two accepting transcripts sharing the commitment but using different challenges `c, c'`, the witness `x = (s - s') / (c - c')` is recovered. Needs `q` prime so `c - c'` is invertible in `ZMod q`. - `Schnorr.hvzkAccepts`: the HVZK simulator `g^s · (y^c)⁻¹` always yields accepting transcripts. This is the structural-correctness half of HVZK only; the distributional indistinguishability statement is a separate result and not in this PR. On top of the sigma protocol there's `Schnorr.Signature.{keyGen, sign, verify, correct}` wrapping it as a Fiat-Shamir signature scheme; `Schnorr.Signature.correct` is a one-line corollary of `Schnorr.correct`. Two auxiliary lemmas, `Schnorr.gpow_sub` and `Schnorr.gpow_mul`, bridge `ZMod q` arithmetic and group exponentiation under `Fintype.card G = q`. They're local to this file for now because the surrounding `gpow` API is itself cryptography-specific; if a general `ZMod q`-graded group action framework lands in mathlib later, both lemmas would become instances of it. There's also a small `example` instantiating everything on `Multiplicative (ZMod q)` for `Fact q.Prime` to show the API typechecks. That instantiation is a toy (DLOG is trivial in that group), but it confirms the abstraction is usable. **AI disclosure**: this PR was a collaboration between myself, Grey Haven's autocontext and Claude Opus 4.7 (Anthropic). I read each line and built locally on current master. (strawberry has three r's) new-contributor LLM-generated 352/0 Mathlib.lean,Mathlib/Cryptography/Sigma/Schnorr.lean 2 2 ['github-actions'] nobody
16-26437
16 days ago
16-26516
16 days ago
16-26597
16 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 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-group-theory new-contributor large-import 31/2 Mathlib/GroupTheory/FinitelyPresentedGroup.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean 2 33 ['github-actions', 'javgomzar', 'kbuzzard', 'mathlib-merge-conflicts', 'plp127', 'tb65536', 'vihdzp'] mattrobball
assignee:mattrobball
16-18047
16 days ago
16-18083
16 days ago
39-15411
39 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 maintainer-merge 87/67 Mathlib/Computability/Encoding.lean,Mathlib/ModelTheory/Encoding.lean 2 9 ['AlexeyMilovanov', 'dagurtomas', 'github-actions', 'vihdzp'] nobody
15-84308
15 days ago
22-48886
22 days ago
48-28333
48 days
39341 drocta
author:drocta
feat(Algebra/Colimit/DirectLimit): add DirectLimit.(NonUnital)StarAlgebra.(lift/of) maps and associated lemmas add the `of` and `lift` maps for `DirectLimit.StarAlgebra` and `DirectLimit.NonUnitalStarAlgebra`, as well as the associated lemmas, `of_f`, `lift_comp_of`, `lift_of`, and `hom_ext` for each. Also make `DirectLimit.NonUnitalAlgebra` only require `[Monoid R]` rather than `[CommSemiring R]`. --- Use of AI: I again asked ChatGPT for some advice about some things about this code. I can personally vouch for all of the code I'm submitting, and that I understand all of it. This is the third part of my project towards supporting direct limits of $C^∗$ -algebras (as I described [on Zulip](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/Early.20feedback.20on.20approach.20towards.20formalizing.20UHF.20algebras.3F) ). This PR adds an import of `Mathlib.Algebra.Star.StarAlgHom` (because it needs `StarAlgHom` and `NonUnitalStarAlgHom`) replacing/encompassing the previously added imports of `Mathlib.Algebra.Star.StarRingHom` and `Mathlib.Algebra.Algebra.NonUnitalHom` (added in PR #38308 and #38672 respectively). t-algebra new-contributor
label:t-algebra$
100/3 Mathlib/Algebra/Colimit/DirectLimit.lean 1 2 ['github-actions'] nobody
15-78860
15 days ago
15-81552
15 days ago
15-81143
15 days
39392 jayscambler
author:jayscambler
feat(Cryptography): one-time pad and Shannon perfect secrecy Adds `Mathlib/Cryptography/OTP.lean`. One-time pad over an arbitrary finite abelian group `G`: - `OTP.encrypt k m := m + k`, `OTP.decrypt k c := c - k`. - `OTP.correct`: `decrypt k (encrypt k m) = m`, by `abel`. - `OTP.perfect_secrecy`: for any `m₀, m₁`, the distributions of `encrypt k m₀` and `encrypt k m₁` over uniform `k` are equal; both reduce to `PMF.uniformOfFintype G`. Proof goes via `Equiv.addLeft`. Independent of the Schnorr PR (#39279); no shared definitions. Unlike everything else likely to live under `Mathlib/Cryptography/`, the security guarantee here is information-theoretic, not computational. **AI disclosure**: this PR was a collaboration between myself, Grey Haven's autocontext and Claude Opus 4.7 (Anthropic). I read each line and built locally on current master. (strawberry has three r's) new-contributor LLM-generated 76/0 Mathlib.lean,Mathlib/Cryptography/OTP.lean 2 3 ['MrBrain295', 'github-actions'] nobody
14-75389
14 days ago
15-11463
15 days ago
15-11054
15 days
37707 MavenRain
author:MavenRain
feat(Combinatorics/SimpleGraph): add IsMaximalClique/IsMaximalIndepSet, refactor IsMaximum* to MaximalFor Addresses #34962 new-contributor t-combinatorics 63/31 Mathlib/Combinatorics/SimpleGraph/Clique.lean 1 6 ['MavenRain', 'SnirBroshi', 'eric-wieser', 'github-actions'] nobody
13-59112
13 days ago
13-59184
13 days ago
13-60415
13 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor t-set-theory 19/0 Mathlib/Data/Finset/Card.lean,Mathlib/Data/Fintype/Card.lean 2 10 ['IvanRenison', 'cjrl', 'dagurtomas', 'ghseeli', 'github-actions'] nobody
12-76092
12 days ago
12-76092
12 days ago
50-46539
50 days
26479 thefundamentaltheor3m
author:thefundamentaltheor3m
feat(Analysis/Complex/CauchyIntegral): Cauchy–Goursat for Unbounded Rectangles In this PR, we prove versions of the Cauchy-Goursat theorem where the contours in question are rectangular and unbounded (ie, where the contours look like the $\bigsqcup$ symbol). I am not sure if I have formalised these in the best way, or if `Analysis.Complex.CauchyIntegral` is the best place for them (it might be prudent to reorganise the file into multiple files at some point), but I believe this is a useful result. Suggestions welcome. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-analysis sphere-packing 219/0 Mathlib/Analysis/Complex/CauchyIntegral.lean 1 7 ['github-actions', 'j-loreaux', 'loefflerd', 'mathlib4-merge-conflict-bot', 'thefundamentaltheor3m', 'wwylele'] urkud
assignee:urkud
11-66927
11 days ago
11-66927
11 days ago
45-77740
45 days
35122 Marygold-Dusk
author:Marygold-Dusk
feat: define C^n submersions This PR defines submersions between C^n manifolds. In the infinite-dimensional setting, submersions are defined via local normal forms rather than surjectivity of the mfderiv. A map f is a submersion at x if, in suitable charts around x and f x, it has the form (u, v) ↦ u after identifying the model space with a product. We prove a few basic properties: - being a submersion is a local property, - products of submersions are submersions, - the set of submersed points is open Future PRs will prove that submersions are C^n and deduce equivalence with the standard definition in finite dimensions. From the path towards the regular value theorem. This file was developed under the supervision of Michael Rothgang. Co-authored-by: Michael Rothgang --- Most of the design is analogues to immersions. t-differential-geometry new-contributor 642/0 Mathlib.lean,Mathlib/Geometry/Manifold/Submersion.lean,docs/references.bib 3 54 ['Marygold-Dusk', 'chrisflav', 'github-actions', 'grunweg'] PatrickMassot and grunweg
assignee:grunweg assignee:PatrickMassot
11-55115
11 days ago
11-55115
11 days ago
55-75240
55 days
39269 godofecht
author:godofecht
feat(Algebra/Spectrum): add the second resolvent identity Adds `spectrum.resolvent_sub_resolvent`: For `a b : A` in an `R`-algebra and `r` in the resolvent set of both, `resolvent a r - resolvent b r = resolvent a r * (a - b) * resolvent b r`. Companion to `spectrum.resolvent_eq`. t-algebra new-contributor
label:t-algebra$
15/0 Mathlib/Algebra/Algebra/Spectrum/Basic.lean 1 3 ['github-actions', 'wwylele'] nobody
11-24909
11 days ago
17-13074
17 days ago
17-12665
17 days
39366 akiezun
author:akiezun
feat(Data/Nat): add prime divisibility for ascFactorial and choose Adds two prime-divisibility lemmas for natural-number factorial/binomial APIs. The first characterizes when a prime divides an ascending factorial: `Nat.Prime.dvd_ascFactorial_iff`. The second applies this to binomial coefficients: `Nat.Prime.dvd_choose_add_sub_one_iff`, using `Nat.ascFactorial_eq_factorial_mul_choose'` and cancellation of the `n!` factor when `n < p`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor large-import 46/0 Mathlib.lean,Mathlib/Data/Nat/Choose/Consecutive.lean,Mathlib/Data/Nat/Factorial/BigOperators.lean 3 9 ['SnirBroshi', 'akiezun', 'github-actions', 'wwylele'] nobody
11-17456
11 days ago
11-19497
11 days ago
15-29467
15 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 398/0 Mathlib.lean,Mathlib/Combinatorics/DiHypergraph/Basic.lean 2 4 ['b-mehta', 'espottesmith', 'github-actions', 'mathlib4-merge-conflict-bot'] nobody
10-80719
10 days ago
56-50104
56 days ago
114-33162
114 days
39567 AlexBrodbelt
author:AlexBrodbelt
feat(Mathlib/Data/Finite/Option): option type is finite iff type is finite Option type is finite if and only if the type is finite. This is an intermediate result to proving that if the `GroupWithZero` is (in)finite then the `Units` are (in)finite. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor 25/0 Mathlib.lean,Mathlib/Data/Finite/Option.lean 2 11 ['AlexBrodbelt', 'github-actions', 'plp127', 'themathqueen'] nobody
10-31991
10 days ago
10-48042
10 days ago
10-48247
10 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` [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis new-contributor 225/0 Mathlib.lean,Mathlib/Analysis/Distribution/TestFunctionSchwartz.lean 2 24 ['aditya-ramabadran', 'github-actions', 'j-loreaux'] ADedecker and mcdoll
assignee:mcdoll assignee:ADedecker
10-23950
10 days ago
19-29124
19 days ago
51-29011
51 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 17 ['EtienneC30', 'dennj', 'dupuisf', 'github-actions', 'grunweg', 'j-loreaux', 'mathlib-merge-conflicts', 'riccardobrasca'] kex-y
assignee:kex-y
9-79184
9 days ago
33-1238
33 days ago
43-33842
43 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 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-measure-probability new-contributor 181/0 Mathlib.lean,Mathlib/InformationTheory/Coding/LinearCode.lean 2 37 ['cduenasnavarro', 'github-actions', 'linesthatinterlace', 'rkirov', 'vihdzp', 'wwylele'] kex-y
assignee:kex-y
9-79180
9 days ago
46-12261
46 days ago
46-12615
46 days
39384 EngelsVon
author:EngelsVon
feat(Analysis/Calculus/DifferentialForm): Stokes' theorem on rectangular boxes ## Summary This PR proves the generalized Stokes theorem for differential forms on rectangular boxes $[a, b] \subset \mathbb{R}^{m+1}$. The proof strategy is: 1. Extract the `i`-th signed face component `boxFaceComponent ω i` from an `m`-form `ω` — a scalar function whose divergence equals the top-form density of the exterior derivative `dω`. 2. Apply Mathlib's existing divergence theorem for boxes (`integral_divergence_of_hasFDerivAt_off_countable'`). This gives a genuine proved Stokes formula in the Euclidean setting, complementing the existing infrastructure for differential forms. ## Main definitions - `DifferentialForm.topFormDensity`: density function of a top-form field - `DifferentialForm.boxFaceComponent`: the `i`-th signed face component of an `m`-form on `ℝ^(m+1)` - `DifferentialForm.boxBoundaryIntegral`: the signed boundary integral over `∂[a,b]` ## Main results - `box_stokes_of_hasFDerivAt`: Stokes' theorem on boxes with pointwise differentiability hypotheses - `box_stokes_of_contDiff`: a convenient `C¹` formulation t-analysis new-contributor 314/0 Mathlib.lean,Mathlib/Analysis/Calculus/DifferentialForm/BoxStokes.lean 2 2 ['github-actions'] j-loreaux
assignee:j-loreaux
9-79171
9 days ago
15-19836
15 days ago
15-19427
15 days
39389 i-love-lean
author:i-love-lean
feat(Analysis/SpecialFunctions): homeomorphism for spherical coordinates A few months ago, I noticed that mathlib was missing change of variables to spherical coordinates, which is taught in undergraduate calculus and useful for many 3D integrals. So far, I used `PolarCoord.lean` as reference and implemented a similar homeomorphism for spherical coordinates. There's still a lot of work left to prove an analog of `integral_comp_polarCoord_symm` but for spherical coordinates, so I'm splitting up the work into several PRs. I also fixed a typo in `PolarCoord.lean`. t-analysis new-contributor 133/2 Mathlib.lean,Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean,Mathlib/Analysis/SpecialFunctions/PolarCoord.lean,Mathlib/Analysis/SpecialFunctions/SphericalCoord.lean 4 4 ['github-actions', 'i-love-lean', 'wwylele'] j-loreaux
assignee:j-loreaux
9-79170
9 days ago
15-10971
15 days ago
15-11382
15 days
39406 roos-j
author:roos-j
feat(Analysis): van der Corput's lemma Adds van der Corput's lemma on one-dimensional oscillatory integrals, a standard tool in harmonic analysis. Co-authored-by: Manasa Praveen --- From https://github.com/roos-j/lean-oscillatory, see there for future plans Zulip discussion [#mathlib4 > Oscillatory integrals in Lean](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Oscillatory.20integrals.20in.20Lean/with/584786060) AI disclosure: The code in this PR was predominantly human-written. gpt-5.5 has helped in the later stages with shortening proofs, golfing and general advice. t-analysis new-contributor 551/0 Mathlib.lean,Mathlib/Analysis/OscillatoryIntegrals/VanDerCorput.lean 2 2 ['github-actions'] j-loreaux
assignee:j-loreaux
9-79168
9 days ago
14-56830
14 days ago
14-57485
14 days
39605 Qinghev
author:Qinghev
Add docstrings for reversed range telescoping lemmas This PR adds docstrings for two existing Finset telescoping lemmas and their additive versions generated by `to_additive`: * `Finset.prod_range_div'` / `Finset.sum_range_sub'` * `Finset.eq_prod_range_div` / `Finset.eq_sum_range_sub` The goal is a small documentation-only contribution that makes the reversed range telescoping API easier to discover from search and hover docs. Local checks: * `git diff --check -- Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean` * Attempted `lake env lean Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean`, but local validation is currently blocked by downloading the `leanprover/lean4:v4.30.0-rc2` toolchain from GitHub timing out/connection-resetting on this machine. Opened as draft until the toolchain/network check can be completed or CI confirms the documentation-only change. t-algebra new-contributor
label:t-algebra$
8/2 Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean 1 2 ['github-actions'] nobody
9-42273
9 days ago
9-42273
9 days ago
9-41864
9 days
39332 Michaillus
author:Michaillus
chore(Topology/Spectral): Added two small lemmas chore(Topology/Spectral): Added two lemmas `IsCompact.isClosed_constructibleTopology_of_isOpen` `IsCompact.isClosed_constructibleTopology_of_isClosed` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology new-contributor 12/0 Mathlib/Topology/Spectral/ConstructibleTopology.lean 1 7 ['Michaillus', 'github-actions', 'plp127', 'qawbecrdtey'] PatrickMassot
assignee:PatrickMassot
9-38767
9 days ago
16-6843
16 days ago
16-6434
16 days
39225 junodeveloper
author:junodeveloper
feat(SimpleGraph): add no-bridge theorem for even degree graphs This PR proves that a finite graph in which every vertex has even degree has no bridge. It adds: * `SimpleGraph.not_isBridge_of_even_degree` The proof argues by contradiction: if an edge is a bridge, delete it and look at the connected component containing one endpoint. In that component, the endpoint has odd degree, while any other odd-degree vertex would contradict the bridge assumption and the even-degree hypothesis. This contradicts the handshaking lemma via the existing odd-degree API. Local checks: ```bash lake build Mathlib.Combinatorics.SimpleGraph.Connectivity.EdgeConnectivity lake exe lint-style Mathlib.Combinatorics.SimpleGraph.Connectivity.EdgeConnectivity lake exe runLinter Mathlib.Combinatorics.SimpleGraph.Connectivity.EdgeConnectivity ``` ## AI usage disclosure I used OpenClaw/Codex while developing this PR. Much of the Lean proof of `not_isBridge_of_even_degree` was drafted with AI assistance, including API search and proof refactoring. I reviewed the generated code, made edits, ran the local checks above, and understand and take responsibility for the final statement and proof. t-combinatorics new-contributor large-import LLM-generated 122/0 Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean 1 12 ['Rida-Hamadani', 'SnirBroshi', 'github-actions', 'junodeveloper', 'linesthatinterlace'] nobody
9-33538
9 days ago
18-3113
18 days ago
18-2704
18 days
39607 TentativeConvert
author:TentativeConvert
feat(Algebra/DirectSum): equivalence between direct sum indexed by ι₁ and double sum indexed by ι₂ and fibres of f : ι₁ → ι₂ 1. Add variant `equivCongrLeft'` of `equivCongrLeft`, and corresponding `…_apply` lemma. 2. Add `…_of lemmas` for both `equivCongrLeft` and `equivCongrLeft'`. 3. Add `…of lemma` for `sigmaCurry`, i.e. `sigmaCurry_of`. 4. Add `sigmaFiberAddEquiv`: the equivalence between a direct sum indexed by a type `ι₁` and the double sum indexed by a type `ι₂` and the fibres of a map `f : ι₁ → ι₂`. Add two `…_apply` lemmas and an `…_of` lemma. --- This is supposed to be a first step towards merging the draft PR #39356. re 1: Mathematically, I don't see why one version should be preferred over the other, but I found the existing `equivCongrLeft` more difficult to work with when the equivalence `h : ι ≃ κ` is naturally given in the opposite direction. (I could not avoid explicit type casts through the equality `h.symm.symm = h` when defining `sigmaFiberAddEquiv` in terms of `equivCongrLeft`.) Very unsure about the name of `equivCongrLeft'`. (I see that the name `equivCongrLeft` was chosen in analogy with `Equiv.piCongrLeft`. `Equiv.piCongrRight` looks very different, so presumably `equivCongrLeft'` should *not* be called `equivCongrRight`.) re 4: Very unsure about the naming of the two different `…_apply` lemmas; called them `…_apply` and `…_apply'` for now. The second (`…_apply'`) cannot be a `simp` lemma as it would prevent the first (`…_apply`) from firing. I've used Claude Opus for understanding error messages and git interaction, but everything is hand coded. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra new-contributor
label:t-algebra$
66/1 Mathlib/Algebra/DirectSum/Basic.lean 1 3 ['github-actions'] nobody
9-32808
9 days ago
9-45361
9 days ago
9-46582
9 days
33714 idontgetoutmuch
author:idontgetoutmuch
feat(Mathlib/Geometry/Manifold): Riemannian metrics exist II Supersedes https://github.com/leanprover-community/mathlib4/pull/33519 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] nobody
8-80717
8 days ago
40-33868
40 days ago
85-40442
85 days
39474 emlis42
author:emlis42
feat(Topology/Separation/Hausdorff): add `Filter.limUnder_congr` This PR adds `Filter.limUnder_congr` and some lemmas about `limUnder`. `Filter.limUnder_congr` allows rewriting `limUnder` expressions using equivalences of convergence behavior, without proving the filters actually converge, allowing convergence proofs to be carried out on more convenient expressions latter. t-topology new-contributor large-import 24/1 Mathlib/Order/Filter/AtTopBot/Archimedean.lean,Mathlib/Topology/Separation/Hausdorff.lean 2 2 ['github-actions'] PatrickMassot
assignee:PatrickMassot
8-79129
8 days ago
13-14159
13 days ago
13-13750
13 days
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 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 199/0 Mathlib.lean,Mathlib/Combinatorics/SetFamily/DualVC.lean,docs/references.bib 3 37 ['Shreyas4991', 'YaelDillies', 'Zetetic-Dhruv', 'github-actions'] nobody
8-24704
8 days ago
20-6937
20 days ago
36-53577
36 days
36667 NoneMore
author:NoneMore
feat(ModelTheory): add `exClosure` definition for first-order formulas Prepare for moving realizations between elementarily equivalent structures. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-logic 37/0 Mathlib/ModelTheory/Semantics.lean,Mathlib/ModelTheory/Syntax.lean 2 2 ['github-actions'] nobody
7-80716
7 days ago
75-64937
75 days ago
75-64528
75 days
39687 TentativeConvert
author:TentativeConvert
feat(Algebra/Group/Submonoid): type class to indicate that supremum in a SubmonoidClass agrees with supremum of submonoids Add a type class `SubmonoidClass.IsConcreteSSup` to indicate that the canonical map `.ofClass` from a class `S` of submonoids of `M` to `Submonoid M` preserves suprema. --- This PR implements the minimal type class assumption needed to make „pushfoward of gradings along maps of indexing sets“ – see draft PR #39356 – work in some `SetLike` generality. Given `{S M : Type*} [SetLike S M] [Monoid M] [SubmonoidClass S M]`, we have canonical maps ``` S → Submonoid M → Set M ``` The first is `Submonoid.ofClass`, the second and the composition are `coe` maps coming from the `SetLike` structures. Depending on `S`, these maps may or may not satisfy various properties with respect the lattice structures on `Submonoid M` and `Set M`. Mathlib so far includes the type class `[IsConcreteLE S M]`, which asserts that the composition `S → Set M` is order-preserving and order-reflecting. The type class defined here asserts that the first map, `S → Submonoid M`, preserves suprema. In examples such as `S = Subgroup M`, `S = Submodule R M`, much more is true – in these cases, `S` is a complete sublattice of `Submonoid M`. But there are also examples where only the weaker property defined here holds, e.g. `S = OpenSubgroup M` for a topological group `M`. Note on `outParam`: I did *not* write `(M : outParam Type*)` in the assumptions of `SubmonoidClass.IsConcreteSSup` in accordance with the [DocString of `Setlike`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/SetLike/Basic.html#SetLike). However, we do have `(B : outParam Type*)` in the definition of `IsConcreteLE`, so perhaps I'm misinterpreting the DocString. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-algebra
label:t-algebra$
56/0 Mathlib.lean,Mathlib/Algebra/Group/Submonoid/SSup.lean 2 2 ['github-actions'] nobody
7-49110
7 days ago
7-49179
7 days ago
7-49370
7 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. The design is modelled closely after [`Init.Data.Order.PackageFactories`](https://leanprover-community.github.io/mathlib4_docs/Init/Data/Order/PackageFactories.html) (`Std.PreorderPackage` is equivalent-ish to Mathlib’s `Preorder`, and same for partial and linear orders). The `OfStdArgs` types allow conveniently bundling a whole bunch of default arguments together in a way that allows one default argument set to `extends` another. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order new-contributor maintainer-merge 391/0 Mathlib.lean,Mathlib/Order/Std.lean,MathlibTest/OrderOfStd.lean 3 9 ['SabrinaJewson', 'YaelDillies', 'github-actions'] YaelDillies
assignee:YaelDillies
7-9427
7 days ago
8-1223
8 days ago
52-81556
52 days
39697 sorrachai
author:sorrachai
feat(Data/Tree/Basic): add Membership instance, new notation, rename Tree Summary: 1. [Rename]([#CSLib > Splay tree PR: BinaryTree vs Tree @ 💬](https://leanprover.zulipchat.com/#narrow/channel/513188-CSLib/topic/Splay.20tree.20PR.3A.20BinaryTree.20vs.20Tree/near/596482765)) from Tree to BinaryTree, which propagates the changes to other files that use it. 2. Add membership instance, prove decidability of membership. 3. Add toListInOrder, toListPreOrder, toListPostOrder Suggestion based on the discussion in the cslib [thread](https://leanprover.zulipchat.com/#narrow/channel/513188-CSLib/topic/Splay.20tree.20PR/near/596568391)[#CSLib > Splay tree PR @ 💬](https://leanprover.zulipchat.com/#narrow/channel/513188-CSLib/topic/Splay.20tree.20PR/near/596568391). --- * depends on: #39707 new-contributor 187/75 Mathlib/Combinatorics/Enumerative/Catalan/Tree.lean,Mathlib/Combinatorics/Enumerative/DyckWord.lean,Mathlib/Data/Tree/Basic.lean,Mathlib/Data/Tree/Get.lean,Mathlib/Data/Tree/Traversable.lean,Mathlib/Tactic/CancelDenoms/Core.lean,docs/overview.yaml 7 4 ['eric-wieser', 'github-actions', 'sorrachai'] nobody
7-2442
7 days ago
7-34002
7 days ago
7-35648
7 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'] nobody
6-80719
6 days ago
93-20174
93 days ago
95-54051
95 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 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] sgouezel
assignee:sgouezel
6-79545
6 days ago
30-33668
30 days ago
96-32072
96 days
39518 abeldonate
author:abeldonate
feat(RingTheory/LocalProperties/Projective): Projective Module theorem Theorem: R Noetherian, M finitely generated R-Mod. Then: M projective iff M_m free for all m maximal t-ring-theory new-contributor large-import 21/0 Mathlib/RingTheory/LocalProperties/Projective.lean 1 9 ['abeldonate', 'github-actions', 'mbkybky', 'vlad902'] nobody
6-55234
6 days ago
10-32853
10 days ago
10-74699
10 days
39530 RaggedR
author:RaggedR
feat(Combinatorics/SimpleGraph): group actions on simple graphs This adds the first connection between Mathlib's MulAction and SimpleGraph libraries. The GraphAction class asserts that a group action on the vertex type preserves the adjacency relation, and builds on it to define vertex-transitivity and arc-transitivity for graphs. The GraphAction typeclass gives adj_smul_iff (the biconditional for group actions) and toIso (each group element induces a graph automorphism). The IsVertexTransitive class combines GraphAction with IsPretransitive, and IsArcTransitive requires transitivity on ordered adjacent pairs (arcs). The main theorem is the standard characterization: a graph is arc-transitive if and only if it is vertex-transitive and locally transitive (the stabilizer of each vertex acts transitively on its neighbors). The forward direction is proved directly by composing a vertex-transporting element with a neighbor-transporting stabilizer element. The reverse direction shows that an arc-transitive graph with no isolated vertices is vertex-transitive. These definitions are the algebraic graph theory prerequisites for formalizing coset graphs (Sabidussi's construction) and the characterization of symmetric graphs via double cosets and involutions (Lorimer's theorem). --- LLM tools were used to assist with Lean formalization. The mathematical content is the author's own work. t-combinatorics new-contributor LLM-generated 130/0 Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Action.lean 2 7 ['RaggedR', 'b-mehta', 'github-actions', 'mathlib-bors'] nobody
6-44602
6 days ago
6-44602
6 days ago
11-12643
11 days
38194 ryanncode
author:ryanncode
feat(LinearAlgebra/BilinearForm): add indefinite metrics Add the `IndefiniteMetric` structure to support vector spaces equipped with a non-degenerate, symmetric, indefinite bilinear form. Provide the algebraic foundation for indefinite inner product spaces by formalizing the metric via `LinearMap.BilinForm` and extracting its associated quadratic form without enforcing the `IsPosSemidef` typeclass. Previously, mathlib required strictly positive-definite metrics to instantiate inner product spaces (`InnerProductSpace`), which prevented the formalization of indefinite geometries without causing typeclass inference failures. Bridge this gap by isolating the symmetric bilinear form from topological and positivity constraints, allowing the library to handle generalized indefinite metric spaces safely. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra new-contributor
label:t-algebra$
47/0 Mathlib.lean,Mathlib/LinearAlgebra/BilinearForm/IndefiniteMetric.lean 2 5 ['dagurtomas', 'github-actions', 'mathlib-merge-conflicts', 'ryanncode'] nobody
6-36802
6 days ago
6-38547
6 days ago
22-7907
22 days
39212 emlis42
author:emlis42
feat(Algebra/ContinuedFractions): add `partNums!` and `partDens!` This PR adds `partNums!` and `partDens!`, which provide infinite stream representations for the sequences of partial numerators and denominators of a generalized continued fraction. t-algebra new-contributor
label:t-algebra$
8/0 Mathlib/Algebra/ContinuedFractions/Basic.lean 1 4 ['emlis42', 'github-actions', 'grunweg'] nobody
6-21342
6 days ago
18-23102
18 days ago
18-22693
18 days
37716 slavanaprienko
author:slavanaprienko
feat(LinearAlgebra/Matrix/Determinant): Desnanot-Jacobi identity This PR adds the Desnanot-Jacobi identity (also known as the Lewis Carroll identity or Dodgson condensation): for any (n+2)×(n+2) matrix M over a commutative ring, $$\det(M) \cdot \det(M_{1,n}^{1,n}) = \det(M_1^1) \cdot \det(M_n^n) - \det(M_1^n) \cdot \det(M_n^1)$$ The proof follows Bressoud's *Proofs and Confirmations* (Cambridge University Press, 1999): multiply M by an auxiliary matrix built from columns of the adjugate, then compare determinants. This yields the identity premultiplied by det(M). To cancel, we pass to a universal polynomial ring (an integral domain with nonzero determinant), then specialize back to arbitrary commutative rings. It seems there's some interest in adding this: https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Determinantal.20identity.20and.20the.20Cauchy.20matrix.20determinant/with/582946873 --- t-algebra new-contributor
label:t-algebra$
217/0 Mathlib.lean,Mathlib/LinearAlgebra/Matrix/Determinant/DesnanotJacobi.lean 2 13 ['SnirBroshi', 'github-actions', 'grunweg', 'kim-em', 'slavanaprienko'] nobody
6-1851
6 days ago
18-11808
18 days ago
19-49629
19 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 59 ['Vilin97', 'YanYablonovskiy', 'adomani', 'botbaki-review', 'copilot-pull-request-reviewer', 'dagurtomas', 'eric-wieser', 'github-actions', 'grunweg', 'j-loreaux', 'mathlib-dependent-issues', 'wwylele'] ADedecker
assignee:ADedecker
5-79212
5 days ago
28-5039
28 days ago
60-53710
60 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 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] Komyyy
assignee:Komyyy
5-79210
5 days ago
50-2344
50 days ago
51-85444
51 days
39436 dtumad
author:dtumad
chore: Add `seqLeft` and `seqRight` unfolding to monad_norm simp set This PR adds `seqLeft_eq_bind` and `seqRight_eq_bind` to `monad_norm`, so that `<*` and `*>` get unfolded in the same way as `<*>` already does when using the `simp` set. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-meta new-contributor 1/1 Mathlib/Tactic/Attr/Core.lean 1 2 ['github-actions'] dwrensha
assignee:dwrensha
4-80261
4 days ago
14-7064
14 days ago
14-6655
14 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'] alreadydone
assignee:alreadydone
4-79100
4 days ago
36-20835
36 days ago
36-24178
36 days
39256 Sfgangloff
author:Sfgangloff
feat(SymbolicDynamics): add monotonicity lemma for LanguageOn In Symbolic dynamics. Proof that the language of a set of configurations is monotone with respect to inclusion of configuration sets: X ⊆ Y → LanguageOn X U ⊆ LanguageOn Y U The proof is a direct unfolding of definitions: a pattern in the language of X comes from restricting some configuration x ∈ X, and inclusion X ⊆ Y allows the same witness to be used for Y. Related to issue #39252 t-dynamics new-contributor 9/1 Mathlib/Dynamics/SymbolicDynamics/Basic.lean 1 3 ['github-actions'] ADedecker
assignee:ADedecker
4-79099
4 days ago
17-31949
17 days ago
17-31540
17 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-topology new-contributor infinity-cosmos 362/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 124 ['arnoudvanderleer', 'dagurtomas', 'github-actions', 'joelriou', 'mathlib-merge-conflicts', 'robin-carlier'] robin-carlier
assignee:robin-carlier
4-48478
4 days ago
4-48478
4 days ago
35-49001
35 days
38669 dannyply
author:dannyply
feat(Topology/Algebra/PontryaginDual): prove compact monoids have discrete duals Proves that the Pontryagin dual of a compact monoid is discrete. As a consequence, it also adds the corresponding finite-type instances for compact discrete monoids. This upstreams a result first added downstream in [`YaelDillies/APAP`](https://github.com/YaelDillies/APAP), where this fact was needed to close a `sorry`. The proof separates the trivial character from all the others using the right half of the circle and adds a few reusable `Circle` helper lemmas near the existing related API. The original APAP proof was AI-assisted and then reviewed/rewritten during downstream review. For this PR, I used Codex to help adapt the APAP proof to mathlib and to refactor the supporting lemmas. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology new-contributor 130/16 Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean,Mathlib/Topology/Algebra/PontryaginDual.lean,Mathlib/Topology/MetricSpace/Pseudo/Defs.lean 3 30 ['dannyply', 'github-actions', 'j-loreaux', 'tb65536'] j-loreaux
assignee:j-loreaux
4-38833
4 days ago
4-38833
4 days ago
5-27103
5 days
39820 samuelchassot
author:samuelchassot
Add proof of the existence of an Eulerian walk if all vertices have even degree or if exactly vertices have odd degree As per the TODO open in `Trails.lean`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 671/3 Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Eulerian.lean,Mathlib/Combinatorics/SimpleGraph/Trails.lean 3 8 ['SnirBroshi', 'copilot-pull-request-reviewer', 'github-actions'] nobody
4-37675
4 days ago
4-38906
4 days ago
4-38497
4 days
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 95/93 Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean,Mathlib/Combinatorics/SimpleGraph/DeleteEdges.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean 5 48 ['MJ141592', 'Rida-Hamadani', 'SnirBroshi', 'YaelDillies', 'b-mehta', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] nobody
4-35374
4 days ago
4-35407
4 days ago
53-77576
53 days
39505 dannyhe652
author:dannyhe652
feat(SimpleGraph): add Vizing's theorem for edge coloring Hi! I'm a high school student interested in formulization of mathematics in Lean. Recently, I have worked on a project to formulize Vizing Theorem with Daniel Raggi from Cambridge University with AI assistance. In particular, we first drafted an outline for the proof, and built the proof using Claude Opus 4.5 and 4.6. The proof is optimized using Aristotle and finally reviewed by ourselves. We rewrote some parts of the code and some comments. The code now builds cleanly and we wish this code to be reviewed by Lean Community. I am aware that there are previous attempts, some being successful, on formulizing Vizing Theorem, including this one by Arohee https://github.com/aroheebhoja/vizing. However, I believe that no PR have been made. Our proof is not based on his proof, but it could be helpful for the community to review that project as well. I sincerely thank everyone who has time to verify and review our code. A summary of the project is as follows. Please contact me if there are any questions or problems. ## Summary This PR completes the proof of **Vizing's theorem** for edge coloring in simple graphs, proving that the chromatic index of any graph is either Δ (the maximum degree) or Δ + 1. ## Changes ### New files - **`Mathlib/Combinatorics/SimpleGraph/Coloring/EdgeColoring.lean`** — Core definitions - `edgeColoring`: Type for line graph colorings - `edgeColorable`: Graph is edge-colorable with n colors - `chromaticIndex`: Chromatic index as ℕ - **`Mathlib/Combinatorics/SimpleGraph/Coloring/KempeChain.lean`** — Kempe Chain - Coloring observables: `incidentEdges`, `incidentColors`, `missingColors` - Kempe subgraph structure with bounded degree - `swapKempe`: Recolor edges in a connected component via color-swapping - **`Mathlib/Combinatorics/SimpleGraph/Coloring/VizingFan.lean`** — Vizing Fan Rotation - `IsFan`: Vizing fan structure with special color properties - Fan maximality and dichotomy on terminal vertices - `rotate_termA`: Extend coloring when a free color exists at both endpoints - `vizingAdjacencyLemma`: Main adjacency lemma for both cases - **`Mathlib/Combinatorics/SimpleGraph/Coloring/VizingTheorem.lean`** — Main theorems - `edge_eq_of_color_eq`: Proper edge colorings assign different colors to distinct edges sharing a vertex - `maxDegree_le_chromaticIndex`: χ'(G) ≥ Δ(G) - `chromaticIndex_bot`: Empty graph has chromatic index 0 - `vizingUpperBound_aux`: Inductive proof of upper bound on number of edge - `vizingTheorem`: χ'(G) ∈ {Δ(G), Δ(G) + 1} ### Modified files - `Mathlib.lean` — Added imports for the four new coloring modules ## Technical Approach **Lower bound** (χ'(G) ≥ Δ): - Edges incident to a max-degree vertex form a clique in the line graph - Clique number lower-bounds chromatic number **Upper bound** (χ'(G) ≤ Δ + 1): - Induction on the number of edges - Base case: empty graph colored with 0 colors - Inductive step: - If a free color exists at both endpoints of an edge, then extend directly - Otherwise: - Build a maximal fan from one endpoint - Apply dichotomy: either extend via Term-A (free color at both endpoints) or Term-B (Kempe swap) - Term-B uses a three-vertex connectivity argument to derive a contradiction, forcing the fan to extend ## Key Lemmas - `incidentEdges`, `incidentColors`, `missingColors`: Coloring observables at vertices - `kempeSubgraph`: Restricted subgraph of edges with two specific colors - `swapKempe`: Recolor via Kempe chain swapping - `IsFan.singleton`: Trivial fan always valid - `IsFan.length_le_card`: Fan length is bounded by vertex count - `IsFan.dichotomy`: Maximal fan satisfies Term-A or Term-B - `IsFan.rotate_termA`: Term-A case extends the coloring inductively - `vizingAdjacencyLemma`: Handles both cases for extending one edge - `vizingUpperBound_aux`: Framework for full inductive proof - `edge_eq_of_color_eq`: Distinctness of edges with same color ## Testing All four modules compile with no `sorry` nor errors or warnings. ## References * V. G. Vizing, *On an estimate of the chromatic class of a p-graph*, Diskret. Analiz. 3 (1964), 25–30. ## Co-authors Co-authored-by: Daniel Raggi Co-authored-by: Aristotle (Harmonic) Co-authored-by: Claude Opus 4.5 & 4.6 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor LLM-generated 1915/0 Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Coloring/EdgeColoring.lean,Mathlib/Combinatorics/SimpleGraph/Coloring/KempeChain.lean,Mathlib/Combinatorics/SimpleGraph/Coloring/VizingFan.lean,Mathlib/Combinatorics/SimpleGraph/Coloring/VizingTheorem.lean 5 3 ['github-actions'] nobody
3-83220
3 days ago
11-84981
11 days ago
11-85951
11 days
39282 Sfgangloff
author:Sfgangloff
feat(SymbolicDynamics): add union morphism lemma for LanguageOn In symbolic dynamics. This PR proves that taking the language over a finite shape commutes with unions of configuration sets: $LanguageOn (X \cup Y) U = LanguageOn X U \cup LanguageOn Y U$ The proof is a direct unfolding of definitions: a pattern in the language of $X \cup Y$ comes from restricting a configuration $x ∈ X \cup Y$, and splitting on whether $x \in X$ or $x \in Y$ yields the corresponding inclusion in either $LanguageOn X U$ or $LanguageOn Y U$. The converse direction rebuilds a witness in $X \cup Y$ from either side of the union. Related to issue #39252 t-dynamics new-contributor 15/1 Mathlib/Dynamics/SymbolicDynamics/Basic.lean 1 2 ['github-actions'] sgouezel
assignee:sgouezel
3-79388
3 days ago
16-57004
16 days ago
16-56595
16 days
39722 kg583
author:kg583
feat(Combinatorics): Link `Nat.Partition` to `YoungDiagram` --- AI disclosure: Claude was used to source some proof sketches. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor large-import 120/4 Mathlib.lean,Mathlib/Combinatorics/Enumerative/Partition/Basic.lean,Mathlib/Combinatorics/Enumerative/Partition/Conjugate.lean,Mathlib/Combinatorics/Young/YoungDiagram.lean 4 36 ['NoahW314', 'github-actions', 'kg583', 'wwylele'] nobody
3-72701
3 days ago
6-13510
6 days ago
7-10676
7 days
38275 TTony2019
author:TTony2019
feat: Add `AffineEquiv.image_intrinsicInterior` ## Summary This PR generalizes the existing lemma `AffineIsometry.image_intrinsicInterior` to the setting of affine equivalences, yielding the corresponding result `AffineEquiv.image_intrinsicInterior`. Since affine equivalences are more general than affine isometries, the proof requires an additional finite-dimensionality assumption. The key extra input is that in finite-dimensional spaces, an affine equivalence induces a homeomorphism via `AffineEquiv.toHomeomorphOfFiniteDimensional`, so the assumptions are adjusted accordingly. Apart from these extra assumptions, the argument is essentially the same as for `AffineIsometry.image_intrinsicInterior`. ## Collaboration This PR was developed together with @imathwy. t-analysis new-contributor 283/41 Mathlib/Analysis/Convex/Intrinsic.lean,Mathlib/Analysis/Normed/Module/FiniteDimension.lean,Mathlib/LinearAlgebra/AffineSpace/Restrict.lean,Mathlib/Topology/Algebra/AffineSubspace.lean,Mathlib/Topology/Homeomorph/Defs.lean 5 29 ['TTony2019', 'github-actions', 'imathwy', 'j-loreaux', 'themathqueen'] j-loreaux
assignee:j-loreaux
3-54127
3 days ago
3-54127
3 days ago
20-44401
20 days
39491 Yu-Misaka
author:Yu-Misaka
feat(Mathlib/LinearAlgebra/RootSystem/CartanMatrix): a Cartan matrix of a reduced crystallographic root system cannot have eigenvalue 4 This proves the TODO that a Cartan matrix of a reduced crystallographic root system cannot have eigenvalue 4. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-algebra codex LLM-generated
label:t-algebra$
125/8 Mathlib/Data/Matrix/Mul.lean,Mathlib/LinearAlgebra/RootSystem/CartanMatrix.lean,Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Basis.lean,Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Semisimple.lean 4 6 ['Yu-Misaka', 'copilot-pull-request-reviewer', 'github-actions', 'mathlib-bors', 'ocfnash'] ocfnash
assignee:ocfnash
3-51211
3 days ago
3-51300
3 days ago
3-50901
3 days
39864 8e7
author:8e7
feat(Combinatorics/SimpleGraph/Acyclic): helly property on subtrees This PR adds several lemmas regarding connected subsets of vertices in trees (subtrees). The main result is the Helly property for subtrees: For a finite set of subtrees, if any pair of subtrees intersect, then there is a common vertex in all subtrees. This lemma is part of an effort to formalize tree decompositions (see #38334), and will be used in a future PR to prove `G.cliqueNum - 1 <= G.treeWidth`. AI Usage: The proofs were developed with the help of Claude Code. I vouch for all the code written and understand the content fully. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor LLM-generated 114/0 Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean 2 2 ['github-actions'] nobody
3-29195
3 days ago
3-50708
3 days ago
3-50413
3 days
39863 thomaskwaring
author:thomaskwaring
feat(Topology/Sets/Opens): Heyting-algebra operations on open sets Add expressions for the Heyting-algebra operations on the frame of opens subsets of a topological space. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology new-contributor 22/0 Mathlib/Topology/Sets/Opens.lean 1 9 ['eric-wieser', 'github-actions', 'thomaskwaring'] nobody
3-1250
3 days ago
3-46867
3 days ago
3-54009
3 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
2-80543
2 days ago
46-29221
46 days ago
47-4706
47 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$
270/0 Mathlib.lean,Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/Group/Commute/Defs.lean,Mathlib/Algebra/Star/Unitary.lean,Mathlib/LinearAlgebra/Matrix/HadamardMatrix.lean,docs/references.bib 6 56 ['JJYYY-JJY', 'dennj', 'eric-wieser', 'github-actions', 'themathqueen', 'wwylele'] themathqueen
assignee:themathqueen
2-79091
2 days ago
17-4743
17 days ago
32-23374
32 days
39391 emlis42
author:emlis42
feat(MeasureTheory/Integral): add integral_congr_uIoo This PR adds some congruence lemmas for interval integrals under `NoAtoms μ` and golfs some lemmas. | Lemma | Heartbeats | Proof Elaboration Time | ---- | ---- | ---- `LocallyIntegrable.ae_hasDerivAt_integral` | 7684 → 5235 (−2449, 31%) | 603ms → 445ms (−157ms, 26%) `MonotoneOn.exists_tendsto_deriv_liminf_lintegral_enorm_le` | 31019 → 8388 (−22631, 73%) | 2475ms → 631ms (−1843ms, 74%) `MonotoneOn.intervalIntegral_deriv_mem_uIcc` | 22680 → 5983 (−16697, 73%) | 1713ms → 537ms (−1175ms, 68%) `AbsolutelyContinuousOnInterval.integral_deriv_mul_eq_sub` | 1475 → 845 (−630, 42%) | 92ms → 41ms (−50ms, 55%) `fourierCoeff_liftIco_eq` | 1040 → 703 (−337, 32%) | 55ms → 41ms (−13ms, 24%) `taylor_integral_remainder_aux` | 26585 → 18827 (−7758, 29%) | 2095ms → 1575ms (−520ms, 24%) Profiled on top of commit `9e407aa1ef1be515a1bd0e1c1fc081d5b855f25e` using `set_option trace.profiler true in` and ``` set_option Elab.async false in #count_heartbeats in ``` t-measure-probability new-contributor 52/35 Mathlib/Analysis/Calculus/Taylor.lean,Mathlib/Analysis/Fourier/AddCircle.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/AbsolutelyContinuousFun.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/Basic.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/DerivIntegrable.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/LebesgueDifferentiationThm.lean 6 3 ['github-actions', 'mathlib-merge-conflicts'] kex-y
assignee:kex-y
2-79087
2 days ago
4-28323
4 days ago
13-20337
13 days
39369 pd4st8hb95-hub
author:pd4st8hb95-hub
feat: add basic fuzzy set definitions This PR adds a minimal `FuzzySet` API in `Mathlib/Order/FuzzySet`. A fuzzy set is represented as an abbreviation: `FuzzySet α L := α → L` The file provides basic definitions and lemmas: - `degree` - `support` - `core` - `weakCut` - `strongCut` - membership simp lemmas - extensionality - basic monotonicity lemmas for weak and strong cuts This PR intentionally does not add complement, union/intersection-specific API, normal or convex fuzzy sets, fuzzy relations, or advanced fuzzy set theory. Validation: - `lake build Mathlib.Order.FuzzySet` - `#lint only docBlame docBlameThm` Feedback on whether `Mathlib/Order/FuzzySet.lean` is the right location for this minimal API would be appreciated. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order new-contributor 169/0 Mathlib.lean,Mathlib/Order/FuzzySet.lean 2 6 ['github-actions', 'grunweg', 'pd4st8hb95-hub', 'wwylele'] nobody
2-36848
2 days ago
13-34449
13 days ago
13-34400
13 days
37071 ericluap
author:ericluap
feat: Dedekind completion of rationals is isomorphic to EReal t-order new-contributor 128/4 Mathlib.lean,Mathlib/Data/EReal/Basic.lean,Mathlib/Data/EReal/DedekindCut.lean,Mathlib/Order/Completion.lean 4 59 ['ericluap', 'github-actions', 'plp127', 'vihdzp', 'wwylele'] vihdzp
assignee:vihdzp
2-14991
2 days ago
18-26149
18 days ago
41-20928
41 days
39865 eliasjudin
author:eliasjudin
feat(Algebra): add eval API parity lemmas Adds two eval API parity lemmas from #23044: `MvPolynomial.hom_eval₂`, parallel to `Polynomial.hom_eval₂`, and `Polynomial.eval₂RingHom_comp_C`, parallel to `MvPolynomial.eval₂Hom_comp_C`. This addresses the eval portion of #23044; the degree-name discussion there is left for separate work. t-algebra new-contributor
label:t-algebra$
10/0 Mathlib/Algebra/MvPolynomial/Eval.lean,Mathlib/Algebra/Polynomial/Eval/Defs.lean 2 2 ['github-actions'] nobody
2-10061
2 days ago
3-53768
3 days ago
3-53359
3 days
39811 TheGoedeDoel
author:TheGoedeDoel
feat(CategoryTheory): functors of submonoids We add a definition of a functor of submonoids: For a functor `M : C ⥤ MonCat`, a submonoid functor consists of a submonoid of `M.obj U` for every `U`, compatible with the restriction maps `M.map i`. We provide the complete lattice structure on `SubmonoidFunctor M` and a map and comap operation. In a follow-up PR, we will use this to define the localisation of a presheaf of modules along a submonoid functor of the sheaf of rings. See also https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Subfunctors.20with.20algebraic.20structure/with/587726088 for a discussion of alternative designs. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory new-contributor maintainer-merge 183/2 Mathlib.lean,Mathlib/Algebra/Group/Submonoid/Operations.lean,Mathlib/CategoryTheory/Subfunctor/SubmonoidFunctor.lean 3 110 ['TheGoedeDoel', 'chrisflav', 'github-actions', 'joelriou', 'quantumsnow'] chrisflav
assignee:chrisflav
2-7790
2 days ago
3-18465
3 days ago
3-35036
3 days
39495 hawkrobe
author:hawkrobe
feat(Data/Multiset/Antidiagonal): two structural lemmas Adds `map_swap_antidiagonal` and `antidiagonal_add`. --- Fills out the API parallel to `Multiset.Nat.map_swap_antidiagonal` and `Finset.map_swap_antidiagonal`. (And adds `@[congr]` to `bind_congr`.) Used downstream for shuffle-coproduct constructions. (#7486, I found this old [Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/antidiagonals.20having.20multiplicity.20.237595/near/238573473)) I used Claude Code to audit and polish. t-data new-contributor 20/0 Mathlib/Data/Multiset/Antidiagonal.lean,Mathlib/Data/Multiset/Bind.lean 2 6 ['github-actions', 'hawkrobe', 'j-loreaux'] nobody
1-80266
1 day ago
9-38303
9 days ago
12-18886
12 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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'] riccardobrasca
assignee:riccardobrasca
1-79570
1 day ago
28-40090
28 days ago
52-39171
52 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory new-contributor 144/1 Mathlib/RingTheory/MvPowerSeries/GaussNorm.lean 1 4 ['WilliamCoram', 'github-actions'] riccardobrasca
assignee:riccardobrasca
1-79568
1 day ago
45-22959
45 days ago
45-22550
45 days
39294 Sfgangloff
author:Sfgangloff
feat(SymbolicDynamics): prove LanguageOn monotonicity under intersection In symbolic dynamics. This PR proves that taking the language over a finite shape is monotone with respect to intersections of configuration sets: ```math \mathrm{LanguageOn}(X \cap Y)\, U \subseteq \mathrm{LanguageOn}\, X\, U \cap \mathrm{LanguageOn}\, Y\, U ``` The proof is a direct unfolding of definitions: a pattern in the language of `X ∩ Y` comes from restricting a configuration `x ∈ X ∩ Y`. Since such an `x` belongs simultaneously to `X` and `Y`, the same restriction witness gives membership both in `LanguageOn X U` and in `LanguageOn Y U`, yielding membership in their intersection. Related to issue #39252 t-dynamics new-contributor 9/1 Mathlib/Dynamics/SymbolicDynamics/Basic.lean 1 2 ['github-actions'] ADedecker
assignee:ADedecker
1-79562
1 day ago
16-48208
16 days ago
16-47799
16 days
39903 akiezun
author:akiezun
feat(NumberTheory): add almost prime numbers Adds Nat.IsAlmostPrime k n for natural numbers with exactly k prime factors counted with multiplicity, plus Nat.IsAtMostAlmostPrime and Nat.IsSemiprime. The definitions reuse the existing arithmetic function Ω, and the initial API proves the basic zero/one cases, prime examples, and closure under multiplication. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-number-theory 87/0 Mathlib.lean,Mathlib/NumberTheory/AlmostPrime.lean 2 5 ['SnirBroshi', 'akiezun', 'github-actions', 'vihdzp'] loefflerd
assignee:loefflerd
1-79555
1 day ago
2-81627
2 days ago
2-81218
2 days
37374 NoneMore
author:NoneMore
feat(Topology/DerivedSet): add relative derived set lemmas Add `relDerivedSet`, `relDerivedSet_subset`, and `IsClosed.relDerivedSet_eq`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology new-contributor 17/0 Mathlib/Topology/DerivedSet.lean 1 7 ['NoneMore', 'github-actions', 'plp127', 'vihdzp'] fpvandoorn
assignee:fpvandoorn
1-60276
1 day ago
1-60344
1 day ago
59-24640
59 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
1-59761
1 day ago
24-83736
24 days ago
25-71630
25 days
38596 JJYYY-JJY
author:JJYYY-JJY
Add basic row-equivalence and echelon-form API for matrices This PR adds the first foundational slice of `Mathlib.LinearAlgebra.Matrix.Echelon`, a theorem-oriented API for elementary row operations, row-equivalence, and echelon-form predicates for matrices. The main additions are: * elementary row-scaling matrices and their `GL` versions; * `Matrix.RowEquivalent` for the left action of `GL m R` on rectangular matrices; * row-zero, pivot, echelon, and reduced-echelon predicates; * semantic representative predicates `Matrix.IsEchelonFormOf` and `Matrix.IsReducedEchelonFormOf`. This intentionally stops before row-space characterizations, existence and uniqueness of reduced echelon representatives, and the noncomputable canonical representative `Matrix.rref`; those are planned for later PRs. Co-authored-by: Joseph Qian Co-authored-by: Veer Shukla Co-authored-by: Dhruv Bhatia Co-authored-by: Zheng Wu <1036819072@qq.com> --- This update trims the original full row-reduction API in response to reviewer feedback that the PR was too large. It keeps only the foundation needed by later row-reduction and `rref` PRs. t-algebra new-contributor
label:t-algebra$
312/6 Mathlib.lean,Mathlib/LinearAlgebra/Matrix/Echelon.lean,Mathlib/LinearAlgebra/Matrix/Transvection.lean 3 10 ['JJYYY-JJY', 'SnirBroshi', 'copilot-pull-request-reviewer', 'dagurtomas', 'github-actions', 'wwylele'] nobody
1-59739
1 day ago
15-85665
15 days ago
23-60679
23 days
39841 hawkrobe
author:hawkrobe
feat(RingTheory/HopfAlgebra): Construction on primitive elements Adds `HopfAlgebra.ofPrimitives` which builds a Hopf algebra structure on a bialgebra generated by primitive elements, given a candidate anti-algebra hom that sends each generator to its negation. --- The commutative case with `.ofAlgHom` gets this for free via `ext` but the non-commutative case needs extra work. * [ ] depends on: #39785 t-ring-theory new-contributor 314/20 Mathlib.lean,Mathlib/RingTheory/Bialgebra/Primitive.lean,Mathlib/RingTheory/HopfAlgebra/Basic.lean,Mathlib/RingTheory/HopfAlgebra/Generators.lean,Mathlib/RingTheory/HopfAlgebra/Primitive.lean,Mathlib/RingTheory/HopfAlgebra/TensorProduct.lean 6 2 ['github-actions'] nobody
1-56874
1 day ago
2-18832
2 days ago
4-15839
4 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. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 87/0 Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Star.lean 2 41 ['8e7', 'IvanRenison', 'JovanGerb', 'SnirBroshi', 'b-mehta', 'github-actions', 'vihdzp', 'vlad902'] nobody
1-53890
1 day ago
43-72293
43 days ago
45-70149
45 days
39707 sorrachai
author:sorrachai
chore(Data/Tree/Basic): Rename Tree to BinaryTree Rename `Tree` to `BinaryTree`. This frees up the name `Tree` to cover n-ary trees in future. We only deprecate the `def`s, and move the theorems without deprecation. new-contributor t-data 157/62 Mathlib/Combinatorics/Enumerative/Catalan/Tree.lean,Mathlib/Combinatorics/Enumerative/DyckWord.lean,Mathlib/Data/Tree/Basic.lean,Mathlib/Data/Tree/Get.lean,Mathlib/Data/Tree/Traversable.lean,Mathlib/Tactic/CancelDenoms/Core.lean,docs/overview.yaml 7 36 ['b-mehta', 'eric-wieser', 'github-actions', 'sorrachai'] nobody
1-39411
1 day ago
5-30643
5 days ago
5-44292
5 days
39785 hawkrobe
author:hawkrobe
refactor(RingTheory/HopfAlgebra): `ofConvInverse` constructor The antipode of a Hopf algebra is [generally](https://arxiv.org/pdf/1409.8356) the two-sided inverse of the identity in the convolution algebra `End(A)`. When `A` is commutative, algebra homs are closed under convolution and this lifts to AlgHom equality. See [this comment](https://github.com/leanprover-community/mathlib4/pull/31898#issuecomment-3566663278) on #31898. --- Sadly the AlgHom-equality formulation is unavailable in the noncommutative case. t-ring-theory new-contributor maintainer-merge 41/20 Mathlib/RingTheory/HopfAlgebra/Basic.lean,Mathlib/RingTheory/HopfAlgebra/TensorProduct.lean 2 27 ['YaelDillies', 'eric-wieser', 'faenuccio', 'github-actions', 'hawkrobe', 'themathqueen'] nobody
1-34124
1 day ago
1-71080
1 day ago
4-63570
4 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 26 ['github-actions', 'jcreinhold', 'joelriou', 'mckoen'] joelriou
assignee:joelriou
1-24737
1 day ago
20-14692
20 days ago
26-69460
26 days
39790 hawkrobe
author:hawkrobe
feat(RingTheory): quotients of coalgebra/bialgebra/Hopf algebras --- Adds the quotient constructions suggested [here](https://github.com/leanprover-community/mathlib4/pull/39579#issuecomment-4529401418). t-ring-theory new-contributor 234/0 Mathlib.lean,Mathlib/RingTheory/Bialgebra/Quotient.lean,Mathlib/RingTheory/Coalgebra/Quotient.lean,Mathlib/RingTheory/HopfAlgebra/Quotient.lean 4 9 ['YaelDillies', 'github-actions', 'hawkrobe'] nobody
1-20685
1 day ago
1-71112
1 day ago
3-75843
3 days
33355 0xTerencePrime
author:0xTerencePrime
feat(Combinatorics/SimpleGraph/Connectivity): define vertex connectivity **AI Disclosure**: Developed with LLM assistance (Claude). All mathematical design decisions were made by the author. --- 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`: two vertices are `k`-vertex-reachable if they remain reachable after removing any set of strictly fewer than `k` vertices, using `G.induce sᶜ`. - `SimpleGraph.IsVertexPreconnected`: a graph is `k`-vertex-preconnected if any two vertices are `k`-vertex-reachable. - `SimpleGraph.IsVertexConnected`: a graph is `k`-vertex-connected if it is `k`-vertex-preconnected and has more than `k` vertices (`k + 1 ≤ ENat.card V`). ### Key lemmas - `k = 0`: 0-connected ↔ nonempty; 0-preconnected always holds - `k = 1`: 1-connected ↔ `Nontrivial V ∧ G.Preconnected` - `anti` / `mono`: antitonic in `k`, monotonic in the graph new-contributor t-combinatorics LLM-generated 169/0 Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/VertexConnectivity.lean 2 165 ['0xTerencePrime', 'SnirBroshi', 'SproutSeeds', 'YaelDillies', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] b-mehta
assignee:b-mehta
1-14094
1 day ago
3-66162
3 days ago
62-8625
62 days
28613 espottesmith
author:espottesmith
feat(Combinatorics): define undirected hypergraphs This PR defines undirected hypergraphs: ``` @[ext] structure Hypergraph (α : Type*) where /-- The vertex set -/ vertexSet : Set α /-- The hyperedge set -/ hyperedgeSet : Set (Set α) /-- All hyperedges must be subsets of the vertex set -/ hyperedge_isSubset_vertexSet : ∀ ⦃e⦄, e ∈ hyperedgeSet → e ⊆ vertexSet ``` In addition to the main definition, some additional definitions and related lemmas are provided: - vertex adjacency - hyperedge adjacency - vertex "stars" - special cases (loops, empty hypergraphs, trivial hypergraphs, complete hypergraphs, simple hypergraphs, k-uniform hypergraphs, and d-regular hypergraphs) - (some) hypergraph cardinality - subhypergraphs, induced subhypergraphs, and partial hypergraphs This implementation is certainly bare-bones. I'm submitting this PR at this point, rather than when my developments are more fleshed out, because there has been some interest in others contributing to hypergraph formalization in mathlib. In the near future, goals include: - defining incidence matrices (i.e., conversion from `Hypergraph α` to `Matrix α (Set α) β` - coersion/generalization of graph as 2-uniform hypergraph - conversion of a hypergraph into its associated clique graph/two-section graph - constructing the dual of a hypergraph (note: on first blush, this appears somewhat challenging, given that we define hyperedges as `Set α` rather than some other type `β`) - rank and co-rank - walks, paths, cycles, etc. on hypergraphs --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-combinatorics new-contributor 286/0 Mathlib.lean,Mathlib/Combinatorics/Hypergraph/Basic.lean 2 152 ['SnirBroshi', 'b-mehta', 'espottesmith', 'github-actions', 'jt496', 'lauramonk', 'mathlib4-merge-conflict-bot', 'tb65536'] b-mehta
assignee:b-mehta
1-2131
1 day ago
2-13731
2 days ago
104-1971
104 days
39629 hawkrobe
author:hawkrobe
feat(RingTheory/Coalgebra/Convolution): Algebra on convolution semiring This PR completes the algebraic structure on the convolution object. --- I followed the pattern in [`Matrix/WithConv.lean`](https://github.com/leanprover-community/mathlib4/blob/5e932f97dd25535344f80f9dd8da3aab83df0fe6/Mathlib/LinearAlgebra/Matrix/WithConv.lean#L98) which splits out `IsScalarTower` and `SMulCommClass`. Used in pre-Lie / Oudom–Guin constructions. t-ring-theory new-contributor 24/1 Mathlib/RingTheory/Coalgebra/Convolution.lean 1 2 ['github-actions'] nobody
1-1971
1 day ago
9-13913
9 days ago
9-13504
9 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'] nobody
0-80711
22 hours ago
22-10177
22 days ago
29-82077
29 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) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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 21 ['Hagb', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] dagurtomas
assignee:dagurtomas
0-79140
21 hours ago
3-67376
3 days ago
26-34688
26 days
39347 Sfgangloff
author:Sfgangloff
feat(SymbolicDynamics): refactor of Pattern and shift-invariance of shape languages for subshifts ## Summary This PR refactors Pattern.mulShift in Mathlib/Dynamics/SymbolicDynamics/Basic.lean and uses the cleaner definition to prove shift-invariance of the language of a subshift on a finite shape. ## Changes Pattern.mulShift now returns a Pattern instead of a configuration (more natural). - Old type: Pattern.mulShift : Pattern A G → G → (G → A) - New type: Pattern.mulShift : Pattern A G → G → Pattern A G - The result carries its support (p.support.image (v * ·)) and the default-outside-support proof, so callers don't have to re-derive them. The [IsLeftCancelMul G] hypothesis is moved to the lemmas that actually use it. - The definition Pattern.mulShift itself no longer needs left-cancellation (it only chooses a preimage noncomputably). - The hypothesis is now stated on mulShift_config_apply_mul_left_of_mem and mulOccursInAt_eq_cylinder directly, instead of being a section-level variable. Renames following the type change. - mulShift_apply_mul_left_of_mem → mulShift_config_apply_mul_left_of_mem (because we now write (p.mulShift v).config instead of p.mulShift v). New @[simp] and @[ext] lemmas for Pattern. - Pattern.ext: two patterns are equal iff their supports agree and their configurations agree on the support. - Pattern.mulShift_support: the support of p.mulShift v is p.support.image (v * ·). - Pattern.fromConfig_support: the support of fromConfig x U is U. - Pattern.fromConfig_config_of_mem: on its support, fromConfig x U agrees with x. New lemma Pattern.fromConfig_mulShift. For a left inverse g' * g = 1, shifting the pattern fromConfig x U by g equals fromConfig (mulShift g' x) (U.image (g * ·)). New theorem MulSubshift.languageOn_image_mulShift. For a subshift Y and elements g, g' with g * g' = 1 and g' * g = 1: (fun p => p.mulShift g) '' Y.languageOn U = Y.languageOn (U.image (g * ·)) i.e. the language on the translated shape is exactly the image of the language on U under the pattern-shift map. This gives a bijection between Y.languageOn U and Y.languageOn (U.image (g * ·)), with inverse p ↦ p.mulShift g'. Stated for left-cancellative monoids with an invertible element. Updated docstrings for Pattern.mulShift and the renamed lemma to reflect the bundled-Pattern return type and clarify which results need [IsLeftCancelMul G]. t-dynamics new-contributor 142/48 Mathlib/Dynamics/SymbolicDynamics/Basic.lean 1 3 ['github-actions'] sgouezel
assignee:sgouezel
0-79129
21 hours ago
15-74421
15 days ago
15-74012
15 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 t-analysis 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 24 ['TTony2019', 'github-actions', 'wwylele'] nobody
0-54294
15 hours ago
30-75078
30 days ago
33-18542
33 days
40005 tautschnig
author:tautschnig
feat(Data/ZMod/Basic): isUnit characterisation in prime power moduli Add two lemmas characterising units in ZMod (p^n) via divisibility of the canonical lift: isUnit_iff_not_prime_dvd_val: for prime p and n > 0, IsUnit x ↔ ¬ p ∣ x.val. not_isUnit_iff_prime_dvd_val: for prime p and n > 0, ¬ IsUnit x ↔ p ∣ x.val. These specialise the existing isUnit_iff_coprime to prime power moduli, where the coprimality condition reduces to a simple divisibility check on the unique prime factor. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor 15/0 Mathlib/Data/ZMod/Basic.lean 1 3 ['copilot-pull-request-reviewer', 'github-actions'] nobody
0-53266
14 hours ago
0-55584
15 hours ago
0-55175
15 hours
40006 tautschnig
author:tautschnig
feat(Data/ZMod/Basic): idempotents in ZMod (p^d) are exactly {0, 1} Add sq_eq_self_iff_eq_zero_or_one: in ZMod (p^d) for prime p and d > 0, x^2 = x iff x = 0 or x = 1. This generalises eq_zero_or_one_of_sq_eq_self (which requires CancelMonoidWithZero, i.e., no zero divisors) to the prime-power case. ZMod (p^d) has zero divisors for d >= 2, so the mul_left_injective₀ argument used by the existing lemma does not apply. The proof works by lifting to ℕ, using that if gcd(a, b) = 1 and p^d | a*b then p^d divides one of a or b (by Euclid's lemma), then noting that a = x.val and b = x.val - 1 are consecutive naturals and hence coprime. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data new-contributor 56/0 Mathlib/Data/ZMod/Basic.lean 1 2 ['github-actions'] nobody
0-50663
14 hours ago
0-50733
13 hours ago
0-51019
14 hours
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 LLM-generated 128/2 Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean,Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean,docs/references.bib 3 7 ['dennj', 'github-actions', 'grunweg', 'ocfnash', 'riccardobrasca'] riccardobrasca
assignee:riccardobrasca
0-50466
14 hours ago
24-11918
24 days ago
42-25619
42 days
39868 JuanCoRo
author:JuanCoRo
feat(Algebra/Polynomial): linearity of `divByMonic` and adjacent results --- This PR adds the `R`-linearity of the monic polynomial division map `_ /ₘ q`. It also adds adjacent results that stem from this work. #### Refactors: - Reuses the proofs from `add_modByMonic` and `smul_modByMonic` to generalize these results to `add_div_modByMonic` and `smul_div_modByMonic` respectively. - Replaces the proofs of `add_modByMonic` and `smul_modByMonic` as specializations of the more general theorems `add_div_modByMonic` and `smul_div_modByMonic` respectively. #### Additions: - Adds the necessary results for `_ /ₘ q` linearity: - `add_divByMonic : (p₁ + p₂) /ₘ q = p₁ /ₘ q + p₂ /ₘ q` - `smul_divByMonic : c • p /ₘ q = c • (p /ₘ q)` - Adds `_ /ₘ q` as an `R`-linear map: - `divByMonicHom`: definition of `_ /ₘ q` as a linear map - `mem_ker_divByMonic`: kernel characterization for `_ /ₘ q`. - In `Div.lean` adds dual results for `/ₘ` that were already present for `%ₘ` - `neg_divByMonic : (-p) /ₘ q = -(p /ₘ q)` - `sub_divByMonic : (p₁ - p₂) /ₘ q = p₁ /ₘ q - p₂ /ₘ q` - `mul_divByMonic_assoc (hd : q ∣ p₂) : (p₁ * p₂) /ₘ q = p₁ * (p₂ /ₘ q)` While `mul_divByMonic_assoc` is not exactly the dual of `mul_modByMonic`, I thought it wouldn't hurt to add it. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-algebra
label:t-algebra$
54/17 Mathlib/Algebra/Polynomial/Div.lean,Mathlib/Algebra/Polynomial/RingDivision.lean 2 2 ['github-actions'] nobody
0-40666
11 hours ago
0-43979
12 hours ago
0-43649
12 hours
39954 jihuang2024
author:jihuang2024
feat(Analysis/Polynomial): define Hurwitz stability and prove small-degree characterizations Proofs were developed with assistance from Claude Code. I have reviewed and understand all the code and can justify the design decisions. This PR introduces the predicate Polynomial.IsHurwitzStable for real polynomials and proves the Routh–Hurwitz stability criterion for degrees 1 and 2. A polynomial p : ℝ[X] is Hurwitz stable if every root of its complexification has strictly negative real part. This notion arises in control theory and the study of linear ODEs, where it characterises asymptotic stability of a system. New definitions Polynomial.IsHurwitzStable: ∀ z : ℂ, (p.map (algebraMap ℝ ℂ)).IsRoot z → z.re < 0 New theorems Polynomial.not_isHurwitzStable_zero: the zero polynomial is not Hurwitz stable Polynomial.IsHurwitzStable.ne_zero: Hurwitz stable polynomials are nonzero Polynomial.isHurwitzStable_X_add_C: X + C a is Hurwitz stable ↔ 0 < a Polynomial.isHurwitzStable_quadratic: X ^ 2 + C b * X + C c is Hurwitz stable ↔ 0 < b ∧ 0 < c Proof strategy for the quadratic The quadratic case splits on whether a root z is real (z.im = 0) or complex (z.im ≠ 0, which forces 2 * z.re + b = 0). Existence of a root uses Complex.exists_root (Fundamental Theorem of Algebra). The necessary condition in the real-root case uses the Vieta complementary root -b - z.re. Future work The general Routh–Hurwitz theorem (for degree n, stated in terms of the Hurwitz matrix and its leading principal minors) requires infrastructure not yet in Mathlib — in particular a theory of the Cauchy index or the Bezoutian of two polynomials. This PR lays the definitional foundation for that work. This corresponds to [1000.yaml](https://github.com/leanprover-community/mathlib4/blob/master/docs/1000.yaml#L2697) Q4455015 - Routh–Hurwitz theorem t-analysis new-contributor LLM-generated 131/0 Mathlib.lean,Mathlib/Analysis/Polynomial/RouthHurwitz.lean 2 10 ['SnirBroshi', 'github-actions', 'jihuang2024', 'wwylele'] nobody
0-35880
9 hours ago
0-37713
10 hours ago
1-42331
1 day
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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory t-number-theory new-contributor 159/0 Mathlib.lean,Mathlib/Algebra/Order/Antidiag/Prod.lean,Mathlib/Algebra/Order/Antidiag/Tendsto.lean,Mathlib/RingTheory/MvPowerSeries/Restricted.lean 4 51 ['WilliamCoram', 'erdOne', 'github-actions', 'jcommelin', 'mathlib-merge-conflicts', 'mbkybky'] jcommelin
assignee:jcommelin
0-30753
8 hours ago
10-28829
10 days ago
53-4042
53 days
40016 xhalo32
author:xhalo32
feat(InfiniteSum): add hasProd_ite_eq' and tprod_ite_eq' Adds `eq'` variants that mirror those in `Mathlib/Algebra/BigOperators/Group/Finset/Piecewise.lean` and `Mathlib/Algebra/BigOperators/Finsupp/Basic.lean`. For proof of their usefulness, these summability lemmas about indicator functions are now straight-forward: ```lean theorem hasSum_indicator_singleton_const [CommMonoid α] [TopologicalSpace α] [TopologicalSpace β] [AddCommMonoid β] {x : α} {f : α → β} (L := unconditional α) [L.LeAtTop] : HasSum (fun y => Set.indicator {y} f x) (f x) L := by classical exact hasSum_ite_eq' x (f x) L theorem summable_indicator_singleton_const [CommMonoid α] [TopologicalSpace α] [TopologicalSpace β] [AddCommMonoid β] {x : α} {f : α → β} (L := unconditional α) [L.LeAtTop] : Summable (fun y => Set.indicator {y} f x) L := ⟨_, hasSum_indicator_singleton_const _⟩ ``` We are also depending on these proofs in [Polya-lean](https://github.com/alma-n/polya-lean). Update: changed `convert` to `convert!`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology new-contributor 14/0 Mathlib/Topology/Algebra/InfiniteSum/Basic.lean 1 3 ['github-actions', 'xhalo32'] nobody
0-22879
6 hours ago
0-26163
7 hours ago
0-30184
8 hours
39996 RuthP628
author:RuthP628
feat(ModelTheory/Semantics): add simp theorems similar to Sentence.realize_not Add simp theorems Sentence.realize_bot, Sentence.realize_top, Sentence.realize_inf, Sentence.realize_sup, Sentence.realize_imp and Sentence.realize_iff in the style of Sentence.realize_not as consequences of the corresponding theorems for formulas. t-logic new-contributor 31/1 Mathlib/ModelTheory/Semantics.lean 1 10 ['RuthP628', 'b-mehta', 'github-actions', 'plp127'] nobody
0-9334
2 hours ago
0-36340
9 hours ago
0-43170
11 hours
40026 thefundamentaltheor3m
author:thefundamentaltheor3m
feat(ArithmeticFunction/Defs): A power of a multiplicative arithmetic function is multiplicative --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-number-theory new-contributor 9/0 Mathlib/NumberTheory/ArithmeticFunction/Defs.lean 1 2 ['github-actions'] nobody
0-6392
1 hour ago
0-19424
5 hours ago
0-19015
5 hours
38534 AlexeyMilovanov
author:AlexeyMilovanov
refactor(Computability): bundle PFun into a structure with FunLike instance This PR refactors `PFun` from `def PFun α β := α → Part β` to a structure with a `FunLike` instance. [Discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Fix.20for.20fun_prop.20on.20PFun.20.28context.3A.20Computability.20Theory.29) ### Main changes * `PFun` is now a structure with a single field `toFun : α → Part β`. * Added the `FunLike (α →. β) α (Part β)` instance and `initialize_simps_projections`. * Added the basic projection/application simp lemmas needed for the structure wrapper. * Definitions which used to return raw lambdas as partial functions now explicitly use `PFun.mk` or `PFun.lift`. * Equality proofs for partial functions now use `PFun.ext` / `DFunLike.ext` where `funext` no longer applies directly. ### Downstream impact The refactor mainly impacts Computability Theory and Category Theory (`Category/PartialFun.lean`). Since `PFun` is no longer definitionally equal to `α → Part β`, tactics such as `rfl`, `simp`, and `funext` can no longer always see through the old raw-function representation. As a result, several proofs (e.g. `fix_aux`, `ppred`, `mem_eval`, and `unitIso`) grew in size, requiring explicit `ext` + `simp` breakdowns. I tried to keep these proof changes minimal; further golfing suggestions are very welcome. It seems that fully recovering the old brevity in some places may require additional `PFun`-specific API/congruence support, which I avoided adding in this PR to keep the diff minimal. ### Affected files * **Core:** `Mathlib/Data/PFun.lean` * **Computability:** `Partrec`, `PartrecBasis`, `PartrecCode`, `RE`, `RecursiveIn`, `Ackermann`, `Halting`, `StateTransition`, `TuringDegree`, `TuringMachine/Config` * **Category Theory:** `Category/PartialFun.lean` * **Other:** `Data/Finset/PImage.lean`, `NumberTheory/Dioph.lean` This also removes the previous `set_option linter.flexible false` workaround in `TuringMachine/Config.lean` and the local transparency workarounds in `Category/PartialFun.lean`. ### Note on LLM usage The core `PFun` change caused numerous downstream errors. I initially used an LLM to help draft fixes for these files. Afterwards, I spent a significant amount of time manually correcting and modifying all of the generated changes. new-contributor t-computability 897/634 Mathlib/CategoryTheory/Category/PartialFun.lean,Mathlib/Computability/Ackermann.lean,Mathlib/Computability/Halting.lean,Mathlib/Computability/Partrec.lean,Mathlib/Computability/PartrecBasis.lean,Mathlib/Computability/PartrecCode.lean,Mathlib/Computability/RE.lean,Mathlib/Computability/RecursiveIn.lean,Mathlib/Computability/StateTransition.lean,Mathlib/Computability/TuringDegree.lean,Mathlib/Computability/TuringMachine/Config.lean,Mathlib/Data/Finset/PImage.lean,Mathlib/Data/PFun.lean,Mathlib/NumberTheory/Dioph.lean 14 9 ['AlexeyMilovanov', 'dagurtomas', 'github-actions', 'j-loreaux', 'mathlib-bors', 'mathlib-merge-conflicts'] nobody
0-3900
1 hour ago
4-6983
4 days ago
12-34317
12 days
40033 JJYYY-JJY
author:JJYYY-JJY
chore: remove flexible linter suppressions This PR removes two local `linter.flexible` suppressions by replacing compact `simp; infer_instance` with explicit proofs. Changed files: - `Mathlib/Dynamics/TopologicalEntropy/DynamicalEntourage.lean` - `Mathlib/Topology/UniformSpace/Ultra/Constructions.lean` Tested with: `lake build` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor 20/8 Mathlib/Dynamics/TopologicalEntropy/DynamicalEntourage.lean,Mathlib/Topology/UniformSpace/Ultra/Constructions.lean 2 2 ['github-actions'] nobody
0-2834
47 minutes ago
0-2911
41 minutes ago
0-2502
41 minutes

PRs on the review queue labelled 'easy'

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
39591 plp127
author:plp127
feat: `Equiv.symm_trans` Add theorem `Equiv.symm_trans`, which says `(f.trans g).symm = g.symm.trans f.symm`. See [Zulip](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/.60Equiv.2Esymm_trans.60/near/596266434). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) easy t-logic 2/0 Mathlib/Logic/Equiv/Defs.lean 1 1 ['github-actions'] nobody
10-12338
10 days ago
10-12433
10 days ago
10-12024
10 days
38974 Brian-Nugent
author:Brian-Nugent
chore: fix documentation of `LocallyQuasiFinite` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebraic-geometry easy 6/5 Mathlib/AlgebraicGeometry/Morphisms/QuasiFinite.lean 1 1 ['github-actions'] alreadydone
assignee:alreadydone
9-79177
9 days ago
24-5450
24 days ago
24-5041
24 days
39798 vihdzp
author:vihdzp
chore: use `notation3` for `Ordinal.typeLT` This creates a delaborator, which avoids goals from looking like `(type fun x1 x2 ↦ x1 < x2) < (type fun x1 x2 ↦ x1 < x2)`. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory easy maintainer-merge 5/1 Mathlib/SetTheory/Ordinal/Basic.lean 1 4 ['YaelDillies', 'github-actions', 'vihdzp'] YaelDillies
assignee:YaelDillies
4-4642
4 days ago
4-5251
4 days ago
4-22641
4 days
39987 vihdzp
author:vihdzp
chore: golf `Ordinal.cof_univ` --- (I think this is my second time golfing this one theorem, sorry!) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-set-theory easy 1/4 Mathlib/SetTheory/Cardinal/Cofinality/Ordinal.lean 1 1 ['github-actions', 'plp127'] nobody
0-76129
21 hours ago
1-14895
1 day ago
1-14486
1 day
39869 grunweg
author:grunweg
doc: clarify the scope of `field_simp` The term semi-field is sufficiently non-standard that it has led to confusion whether e.g. `NNReal` is supported by field_simp: it is (as it is a semifield). Let's clarify the doc-string. Inspired by discussions at the ICERM workshop "Techniques and Tools for the Formalization of Analysis". --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) documentation easy t-meta maintainer-merge 4/4 Mathlib/Tactic/FieldSimp.lean 1 2 ['github-actions', 'joneugster'] thorimur
assignee:thorimur
0-40586
11 hours ago
3-37559
3 days ago
3-37150
3 days
39816 WenrongZou
author:WenrongZou
chore(MvPolynomial): rename a lemma using prime This PR renames a lemma by adding a prime. Many other lemmas in (mv)polynomial theory also use a prime in their names for the same reason — their primed versions should be rewritten in the `xxx_eq_ite` form. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory easy 13/10 Mathlib/Algebra/MvPolynomial/Basic.lean,Mathlib/RingTheory/MvPolynomial/IrreducibleQuadratic.lean,Mathlib/RingTheory/Smooth/IntegralClosure.lean,Mathlib/RingTheory/Spectrum/Prime/Polynomial.lean,Mathlib/RingTheory/TensorProduct/MvPolynomial.lean,scripts/nolints_prime_decls.txt 6 11 ['NoahW314', 'WenrongZou', 'github-actions', 'ocfnash'] nobody
0-33281
9 hours ago
0-33332
9 hours ago
3-33010
3 days
39952 vihdzp
author:vihdzp
feat: `IsBotOneClass (WithTop α)` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra t-order easy
label:t-algebra$
4/0 Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean 1 1 ['github-actions', 'plp127'] nobody
0-32234
8 hours ago
1-82585
1 day ago
1-82176
1 day
39787 Hagb
author:Hagb
feat(Order/WellQuasiOrder): `WellQuasiOrdered` if onto homomorphous from a `WellQuasiOrdered` relation It is used in #39788 for proof of well foundedness of `MonomialOrder` when the index type is finite. The hypotheses can be further weaken once #38557 is merged. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-order easy 16/0 Mathlib/Order/WellQuasiOrder.lean 1 3 ['Hagb', 'github-actions', 'plp127'] nobody
0-24010
6 hours ago
5-10086
5 days ago
5-9677
5 days

PRs on the review queue labelled 'tech debt' or 'longest-pole'

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
39755 wwylele
author:wwylele
chore(GroupTheory): remove a defeq abuse --- I am not sure if this is the right change to make, so I'd like to start a discussion from this. The issue here seems to be that the simp lemma [MulAction.orbitRel.Quotient.orbit_mk](https://leanprover-community.github.io/mathlib4_docs/Mathlib/GroupTheory/GroupAction/Defs.html#MulAction.orbitRel.Quotient.orbit_mk) fired and changed the underlying type of variables in the expression, which is not defeq at instance transparency, and fails defeq check for `MulAction` ([MulAction.instElemOrbit](https://leanprover-community.github.io/mathlib4_docs/Mathlib/GroupTheory/GroupAction/Defs.html#MulAction.instElemOrbit) vs [MulAction.instElemOrbit_1](https://leanprover-community.github.io/mathlib4_docs/Mathlib/GroupTheory/GroupAction/Defs.html#MulAction.instElemOrbit_1)). The easy change here is to disable the offending simp, but it feels like a common language pitfall. Should we do either of the following instead? - remove `MulAction.orbitRel.Quotient.orbit_mk` from default simp set - Make the the orbit definition more transparent [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) tech debt t-group-theory 1/2 Mathlib/GroupTheory/GroupAction/Basic.lean 1 1 ['github-actions'] nobody
6-4080
6 days ago
6-16422
6 days ago
6-16013
6 days
39808 chenson2018
author:chenson2018
chore(Data): refactor proofs where `grind?` fails These are sources of technical debt as now reported in the [weekly linting report](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Weekly.20linting.20log/with/544658968). The idea is that a successful `grind` proof can fail to report the theorems it used via `grind?`, which means that if these proofs break across toolchains that it becomes significantly harder to repair. Most of these are fixed by squeezing the call to `grind` and unsetting `linter.tacticAnalysis.verifyGrindOnly` so they no longer appear in the weekly report. Unfortunately, this can't be on by default for performance reasons, but I highly encourage using this linter when adding any `grind` proofs. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data tech debt 69/41 Mathlib/Data/Bool/Basic.lean,Mathlib/Data/Bool/Set.lean,Mathlib/Data/EReal/Operations.lean,Mathlib/Data/Fin/Tuple/NatAntidiagonal.lean,Mathlib/Data/Finset/Image.lean,Mathlib/Data/Finset/Powerset.lean,Mathlib/Data/Finset/Range.lean,Mathlib/Data/Finset/SMulAntidiagonal.lean,Mathlib/Data/List/Basic.lean,Mathlib/Data/List/Chain.lean,Mathlib/Data/List/Count.lean,Mathlib/Data/List/Cycle.lean,Mathlib/Data/List/Induction.lean,Mathlib/Data/List/ReduceOption.lean,Mathlib/Data/List/Sigma.lean,Mathlib/Data/List/Sort.lean,Mathlib/Data/List/TakeDrop.lean,Mathlib/Data/List/Triplewise.lean,Mathlib/Data/Option/Basic.lean,Mathlib/Data/Set/Card.lean,Mathlib/Data/Set/Disjoint.lean,Mathlib/Data/Set/Function.lean,Mathlib/Data/Set/Insert.lean,Mathlib/Data/Sum/Order.lean 24 1 ['github-actions'] nobody
4-52641
4 days ago
4-66061
4 days ago
4-65652
4 days
39769 chenson2018
author:chenson2018
chore(Topology): refactor proofs where `grind?` fails These are sources of technical debt as now reported in the [weekly linting report](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Weekly.20linting.20log/with/544658968). The idea is that a successful `grind` proof can fail to report the theorems it used via `grind?`, which means that if these proofs break across toolchains that it becomes significantly harder to repair. Most of these are fixed by squeezing the call to `grind` and unsetting `linter.tacticAnalysis.verifyGrindOnly` so they no longer appear in the weekly report. Unfortunately, this can't be on by default for performance reasons, but I highly encourage using this linter when adding any `grind` proofs. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-topology tech debt 35/17 Mathlib/Topology/Compactness/CountablyCompact.lean,Mathlib/Topology/EMetricSpace/BoundedVariation.lean,Mathlib/Topology/MetricSpace/Pseudo/Defs.lean,Mathlib/Topology/Order/Basic.lean,Mathlib/Topology/Order/IsLUB.lean,Mathlib/Topology/Order/WithTop.lean,Mathlib/Topology/Path.lean,Mathlib/Topology/Sets/VietorisTopology.lean,Mathlib/Topology/Sheaves/Flasque.lean 9 1 ['github-actions'] nobody
4-42568
4 days ago
5-41319
5 days ago
5-40910
5 days
38957 wwylele
author:wwylele
chore(GroupTheory/DivisibleHull): remove `backward.privateInPublic` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) tech debt t-group-theory 5/12 Mathlib/GroupTheory/DivisibleHull.lean 1 13 ['Komyyy', 'github-actions', 'grunweg', 'jcommelin', 'wwylele'] jcommelin
assignee:jcommelin
3-77084
3 days ago
3-79561
3 days ago
17-71102
17 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. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
2-80716
2 days ago
23-22380
23 days ago
23-21971
23 days
39886 grunweg
author:grunweg
chore(Geometry/Manifold): remove some `@[expose] public` section Go through a few files and audit the exposed definitions there. Best reviewed commit by commit. --- I'm happy to give more details on any file where desired. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-differential-geometry tech debt 17/20 Mathlib/Geometry/Manifold/Bordism.lean,Mathlib/Geometry/Manifold/VectorField/LieBracket.lean,Mathlib/Geometry/Manifold/WhitneyEmbedding.lean 3 1 ['github-actions'] JovanGerb
assignee:JovanGerb
2-45315
2 days ago
3-10908
3 days ago
3-10499
3 days
40015 SnirBroshi
author:SnirBroshi
chore: replace some `omega`s None of these had any noticable slowdown. --- Is it time to add `omega` to the technical debt counters? There are ~250 left. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) tech debt 7/7 Mathlib/Combinatorics/SimpleGraph/Walk/Subwalks.lean,Mathlib/Data/Finset/Powerset.lean,Mathlib/Data/Int/Interval.lean,Mathlib/Data/List/Defs.lean,Mathlib/Data/List/Infix.lean 5 6 ['SnirBroshi', 'chenson2018', 'github-actions', 'grunweg'] nobody
0-21860
6 hours ago
0-21862
5 hours ago
0-25835
7 hours
39990 grunweg
author:grunweg
chore: move Data/Nat/Lattice to Order This file uses only order theory: that is a much better location --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) tech debt file-removed 19/19 Mathlib.lean,Mathlib/Algebra/Polynomial/Div.lean,Mathlib/Combinatorics/SimpleGraph/Clique.lean,Mathlib/Combinatorics/SimpleGraph/Coloring/VertexColoring.lean,Mathlib/Data/ENat/Lattice.lean,Mathlib/Data/List/PeriodicityLemma.lean,Mathlib/Data/Multiset/Interval.lean,Mathlib/Data/NNReal/Basic.lean,Mathlib/Data/Set/Accumulate.lean,Mathlib/Dynamics/PeriodicPts/Lemmas.lean,Mathlib/Dynamics/TopologicalEntropy/DynamicalEntourage.lean,Mathlib/MeasureTheory/SetSemiring.lean,Mathlib/Order/Interval/Set/OrdConnectedLinear.lean,Mathlib/Order/Lattice/Nat.lean,Mathlib/Order/OrderIsoNat.lean,Mathlib/RingTheory/Nilpotent/Basic.lean,Mathlib/RingTheory/Nilpotent/Defs.lean,Mathlib/Topology/Instances/Nat.lean,Mathlib/Topology/Metrizable/Uniformity.lean 19 6 ['SnirBroshi', 'github-actions', 'grunweg'] nobody
0-14128
3 hours ago
1-10882
1 day ago
1-10475
1 day
39984 grunweg
author:grunweg
chore(Data): move some files to better locations Move a number of files in `Data` to clearly better locations. See individual commit messages for details. --- - [x] depends on: #39976 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) file-removed tech debt 30/30 Counterexamples/HomogeneousPrimeNotPrime.lean,Mathlib.lean,Mathlib/Algebra/Group/ConjFinite.lean,Mathlib/Algebra/Group/Subgroup/Finite.lean,Mathlib/Algebra/GroupWithZero/Units/Fintype.lean,Mathlib/Algebra/Lie/SerreConstruction.lean,Mathlib/Analysis/Calculus/ContDiff/FaaDiBruno.lean,Mathlib/Analysis/Real/Cardinality.lean,Mathlib/CategoryTheory/Galois/Basic.lean,Mathlib/Combinatorics/SimpleGraph/VertexCover.lean,Mathlib/Data/Set/PowersetCard.lean,Mathlib/Data/ZMod/Basic.lean,Mathlib/GroupTheory/Index.lean,Mathlib/GroupTheory/SpecificGroups/Alternating.lean,Mathlib/LinearAlgebra/Matrix/Action.lean,Mathlib/LinearAlgebra/Matrix/Bilinear.lean,Mathlib/LinearAlgebra/Matrix/Cartan.lean,Mathlib/LinearAlgebra/Matrix/DualNumber.lean,Mathlib/LinearAlgebra/Matrix/Invertible.lean,Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean,Mathlib/LinearAlgebra/Matrix/SchurComplement.lean,Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean,Mathlib/LinearAlgebra/Projectivization/Cardinality.lean,Mathlib/NumberTheory/MulChar/Basic.lean,Mathlib/RingTheory/SimpleModule/Basic.lean,Mathlib/SetTheory/Cardinal/Embedding.lean,Mathlib/SetTheory/Cardinal/NatCard.lean,Mathlib/SetTheory/Cardinal/Rat.lean,Mathlib/Topology/Compactification/OnePoint/ProjectiveLine.lean,scripts/noshake.json 30 3 ['github-actions', 'mathlib-dependent-issues'] nobody
0-12429
3 hours ago
0-14405
3 hours ago
0-14052
3 hours