Skip to content

[Merged by Bors] - feat(CategoryTheory): ContAction FintypeCat G is a Galois category - #42397

Closed
joelriou wants to merge 598 commits into
leanprover-community:masterfrom
joelriou:galois-contaction
Closed

[Merged by Bors] - feat(CategoryTheory): ContAction FintypeCat G is a Galois category#42397
joelriou wants to merge 598 commits into
leanprover-community:masterfrom
joelriou:galois-contaction

Conversation

@joelriou

@joelriou joelriou commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

@joelriou joelriou added WIP Work in progress t-category-theory Category theory labels Aug 3, 2026
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown

PR summary 29f0f3e212

Import changes exceeding 2%

% File
+2.96% Mathlib.CategoryTheory.Galois.FullSubcategory
+38.78% Mathlib.CategoryTheory.ObjectProperty.FiniteLimits

Import changes for modified files

Dependency changes

File Base Count Head Count Change
Mathlib.CategoryTheory.ObjectProperty.FiniteLimits 673 934 +261 (+38.78%)
Mathlib.CategoryTheory.Galois.FullSubcategory 1048 1079 +31 (+2.96%)
Import changes for all files
Files Import difference
Mathlib.CategoryTheory.Galois.FullSubcategory 31
Mathlib.CategoryTheory.ObjectProperty.FiniteLimits 261
Mathlib.CategoryTheory.Galois.ContAction (new file) 1425

Declarations diff (regex)

+ Action.isContinuous
+ exists_openSubgroup_of_isContinuous_of_finite
+ iInfOfFinite
+ iInfOfFinite_le
+ instance (J : Type*) [Category* J] [HasColimitsOfShape J V] (S : Set G) :
+ instance (J : Type*) [Category* J] [HasLimitsOfShape J V] (S : Set G) :
+ instance (P : ObjectProperty C) [P.IsClosedUnderFiniteColimits]
+ instance (S : Set G) : (trivialOnSet FintypeCat.{w} S).IsGaloisSubcategory
+ instance (S : Set G) [HasPullbacks V] :
+ instance : (isContinuous FintypeCat.{w} G).IsClosedUnderFiniteColimits
+ instance : (isContinuous FintypeCat.{w} G).IsClosedUnderFiniteLimits
+ instance : (isContinuous FintypeCat.{w} G).IsClosedUnderSubobjects := by
+ instance : (isContinuous FintypeCat.{w} G).IsGaloisSubcategory
+ instance : P.IsClosedUnderFiniteCoproducts
+ instance : P.IsClosedUnderFiniteProducts
+ instance [HasFiniteColimits V] (S : Set G) :
+ instance [HasFiniteLimits V] (S : Set G) :
+ instance {ι : Type*} (P : ι → ObjectProperty C) [∀ i, (P i).IsClosedUnderQuotients] :
+ instance {ι : Type*} (P : ι → ObjectProperty C) [∀ i, (P i).IsClosedUnderSubobjects] :
+ isContinuous_eq_iSup
+ trivialOnSet
+ trivialOnSet_antitone
+ trivialOnSet_le_isContinuous
+ ρ_apply_eq_smul

You can run this locally as follows
## from your `mathlib4` directory:
git clone https://github.com/leanprover-community/mathlib-ci.git ../mathlib-ci

## summary with just the declaration names:
../mathlib-ci/scripts/pr_summary/declarations_diff.sh <optional_commit>

## more verbose report:
../mathlib-ci/scripts/pr_summary/declarations_diff.sh long <optional_commit>

The doc-module for scripts/pr_summary/declarations_diff.sh in the mathlib-ci repository contains some details about this script.

Declarations diff (Lean)

Lean-aware diff — post-build, computed from the Lean environment (commit 29f0f3e).

  • +26 new declarations
  • −0 removed declarations
+Action.exists_openSubgroup_of_isContinuous_of_finite
+Action.instIsClosedUnderColimitsOfShapeTrivialOnSetOfHasColimitsOfShape
+Action.instIsClosedUnderFiniteColimitsFintypeCatIsContinuousFunObjFinite
+Action.instIsClosedUnderFiniteColimitsTrivialOnSetOfHasFiniteColimits
+Action.instIsClosedUnderFiniteLimitsFintypeCatIsContinuousFunObjFinite
+Action.instIsClosedUnderFiniteLimitsTrivialOnSetOfHasFiniteLimits
+Action.instIsClosedUnderLimitsOfShapeTrivialOnSetOfHasLimitsOfShape
+Action.instIsClosedUnderSubobjectsFintypeCatIsContinuousFunObjFinite
+Action.instIsClosedUnderSubobjectsTrivialOnSetOfHasPullbacks
+Action.instIsGaloisSubcategoryFintypeCatIsContinuousFunObjFinite
+Action.instIsGaloisSubcategoryFintypeCatTrivialOnSet
+Action.isContinuous
+Action.isContinuous_eq_iSup
+Action.trivialOnSet
+Action.trivialOnSet_antitone
+Action.trivialOnSet_le_isContinuous
+Action.ρ_apply_eq_smul
+CategoryTheory.ObjectProperty.IsClosedUnderFiniteColimits.instIsClosedUnderFiniteCoproducts
+CategoryTheory.ObjectProperty.IsClosedUnderFiniteLimits.instIsClosedUnderFiniteProducts
+CategoryTheory.ObjectProperty.instIsClosedUnderColimitsOfShapeSingleObjOfIsClosedUnderFiniteColimitsOfFinite
+CategoryTheory.ObjectProperty.instIsClosedUnderQuotientsISup
+CategoryTheory.ObjectProperty.instIsClosedUnderSubobjectsISup
+OpenAddSubgroup.iInfOfFinite
+OpenAddSubgroup.iInfOfFinite_le
+OpenSubgroup.iInfOfFinite
+OpenSubgroup.iInfOfFinite_le

No changes to strong technical debt.

Increase in weak tech debt: (relative, absolute) = (1.00, 0.00)
Current number Change Type (weak)
exposed public sections 5048 1

Current commit 29f0f3e212
Reference commit 69fe4f49ff

This script lives in the mathlib-ci repository. To run it locally, from your mathlib4 directory:

git clone https://github.com/leanprover-community/mathlib-ci.git ../mathlib-ci
../mathlib-ci/scripts/reporting/technical-debt-metrics.py pr_summary
  • The relative value is the weighted sum of the differences with weight given by the inverse of the current value of the statistic.
  • The absolute value is the relative value divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).

@mathlib-dependent-issues mathlib-dependent-issues Bot added the blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) label Aug 3, 2026
@github-actions github-actions Bot added the large-import Automatically added label for PRs with a significant increase in transitive imports label Aug 12, 2026
@mathlib-dependent-issues mathlib-dependent-issues Bot removed the blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) label Aug 14, 2026
@mathlib-dependent-issues

Copy link
Copy Markdown

@joelriou joelriou removed the WIP Work in progress label Aug 14, 2026
@mathlib-triage mathlib-triage Bot assigned robin-carlier and unassigned dagurtomas Aug 27, 2026

@robin-carlier robin-carlier left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, my only nitpick concerns the addition of some docstrings

Comment thread Mathlib/CategoryTheory/Galois/ContAction.lean Outdated
Comment thread Mathlib/CategoryTheory/Galois/ContAction.lean Outdated
Comment thread Mathlib/CategoryTheory/Galois/ContAction.lean
Comment thread Mathlib/CategoryTheory/Galois/ContAction.lean
Comment thread Mathlib/CategoryTheory/Galois/ContAction.lean
@robin-carlier

Copy link
Copy Markdown
Contributor

Thanks!

maintainer delegate

@robin-carlier robin-carlier added the awaiting-author Reply -awaiting-author to remove the label on your PR once you have addressed all comments. label Sep 5, 2026
@github-actions

github-actions Bot commented Sep 5, 2026

Copy link
Copy Markdown

🚀 Pull request has been placed on the maintainer queue by robin-carlier.

@mathlib-triage mathlib-triage Bot added the maintainer-merge A reviewer has approved the changed; awaiting maintainer approval. label Sep 5, 2026
SnirBroshi and others added 13 commits September 5, 2026 13:05
…community#42674)

Hello, this PR adds the geometric mean theorem  to
Mathlib/Geometry/Euclidean/Angle/Unoriented/RightAngle.lean, with the iff form and
the leg form, and records it in docs/1000.yaml (Q2226868). Statements use ^ 2
per review guidance on leanprover-community#42518.

This PR was written with AI assistance (Claude Code)
Implement DLMF attribute. This allows users to link Mathlib declarations to DLMF entries.

The implementation here copies the LMFDB implementation (so in particular only checks that the character set in the ID is valid). 

The DLMF _(NIST Digital Library of Mathematical Functions)_ is a mathematical database for special functions and their applications by the National Institute of Standards and Technology (see [wikipedia](https://en.wikipedia.org/wiki/Digital_Library_of_Mathematical_Functions), and the [DLMF itself](https://dlmf.nist.gov/front/foreword)). 

It is also already linked to by the zbmath API for example.
This lemma is primarily intended to replace `PMF.bind_comm` in leanprover-community#42821.
…ome comment (leanprover-community#42901)

I'm not sure we always want to encourage this (and it's mostly not followed in practice anyway).
….congr` (leanprover-community#43005)

The new `Equiv.setCongr` matches `MulEquiv.monoidHomCongrLeft` and friends. Perform the same change for `Finset`.

Follow-up to leanprover-community#42640.

Generated by Claude Sonnet, reviewed and improved line-by-line by myself.

Assisted-by: Claude Sonnet 5

Co-authored-by: Oliver Nash <7734364+ocfnash@users.noreply.github.com>
…eanprover-community#42897)

Add notation `R ∙₊ x` for `hull R {x}` in analogy to existing notation for `Submodule.span`. Add lemmas

* `mem_hull_singleton` proving `y ∈ R ∙₊ x ↔ ∃ r : R, 0 ≤ r ∧ r • x = y`
* `le_hull_singleton_iff` proving `C ≤ R ∙₊ x ↔ ∀ y ∈ C, ∃ r : R, 0 ≤ r ∧ r • x = y`

These are analogues of respective lemmas for submodule span and demonstrate the use of this notation.
I only rewrote those lemmas for which the corresponding span lemma cannot be used directly.

Co-authored-by: Martin Winter <martin.winter.math@gmail.com>
…on (leanprover-community#41964)

Add second mean value theorem for integration, including an inequality variant for Banach-space valued functions.
…es over commutative rings (leanprover-community#43192)

Currently in mathlib, to define a presheaf of modules over a commutative ring, one 
writes 
```
variable  {C : Type*} [Category* C] (R : Cᵒᵖ ⥤ CommRingCat.{u}) (F : PresheafOfModules.{v} (R ⋙ forget₂ _ _))
```

The problem with this formulation is that many operations do not preserve the shape of `(R ⋙ forget₂ _ _)`. For 
example, [PresheafOfModules.pushforward₀](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Category/ModuleCat/Presheaf/Pushforward.html#PresheafOfModules.pushforward%E2%82%80) has type `PresheafOfModules (R ⋙ forget₂ _ _) ⥤ PresheafOfModules (F.op ⋙ R ⋙ forget₂ _ _)` when applied directly. This is why [PresheafOfModules.pushforward₀OfCommRingCat](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Category/ModuleCat/Presheaf/Pushforward.html#PresheafOfModules.pushforward%E2%82%80OfCommRingCat) was introduced. There are now around a dozen of these comm ring specific abbrevs in open PRs. In this PR, I introduce `PresheafOfModulesOfCommRing` with the goal of having a namespace to put all of these as well as making it easier to avoid making mistakes. 

For an example of this being used, see leanprover-community#43193.

Co-authored-by: Brian-Nugent <bnugent@uw.edu>
…prover-community#42913)

Align with the [Stacks Project definition](https://stacks.math.columbia.edu/tag/01TP) as well as Definition 10.34 of Görtz–Wedhorn.
…by `κ`-accessible functors (leanprover-community#41420)

Co-authored-by: Michael Rothgang <10105016+grunweg@users.noreply.github.com>
Co-authored-by: smorel394 <67864981+smorel394@users.noreply.github.com>
Co-authored-by: Jovan Gerbscheid <56355248+JovanGerb@users.noreply.github.com>
Co-authored-by: Patrick Massot <14060883+PatrickMassot@users.noreply.github.com>
Co-authored-by: Yi.Yuan <kysyy1@126.com>
Co-authored-by: Thomas Browning <13339017+tb65536@users.noreply.github.com>
Co-authored-by: Oliiiiver <114979686+Oliiiiver@users.noreply.github.com>
Co-authored-by: Seewoo Lee <49933279+seewoo5@users.noreply.github.com>
Co-authored-by: Whysoserioushah <109107491+Whysoserioushah@users.noreply.github.com>
Co-authored-by: Bolton Bailey <bolton.bailey@gmail.com>
Co-authored-by: mathlib-update-dependencies[bot] <258990618+mathlib-update-dependencies[bot]@users.noreply.github.com>
Co-authored-by: Nicola Falciola <n.falciola@vu.nl>
Co-authored-by: Johan Commelin <johan@commelin.net>
Co-authored-by: Yaël Dillies <yael.dillies@gmail.com>
Co-authored-by: Yongxi (Aaron) Lin <97214596+CoolRmal@users.noreply.github.com>
thorimur and others added 15 commits September 5, 2026 13:05
…ic (leanprover-community#42457)

Removes some `import all`s by making `evalMinFac.core`, `evalIntMod.go`, and `eval`(`LE`/`LT`)`.core` public.

Note that this inlines the `Nat.instAddMonoidWithOne` instance in `evalMinFac.core` instead of making it an argument. Otherwise, the code is not touched.

Co-authored-by: Jon Eugster <eugster.jon@gmail.com>
…nprover-community#42861)

This PR allows `to_dual` to add translations between two sets of constants by trying all possible pairings, instead of only going for the respective pairing. This is possible thanks to leanprover-community#40365, which made `to_dual` validate all translations. This is useful for
- `to_dual (attr := simps)` on e.g. an `Iso` or `Comma`, since the projections `hom`/`inv` and `left`/`right` are dual to eachother.
- `to_dual` on structures where the fields are reordered, such as `Comma`.

I think the tiny slowdown is worth the convenience.
…rover-community#43397)

`ContextInfo.runTacticCode` migrates whatever the tactic under test logs (e.g. "Try this" suggestions) into the command's message log, so it gets reported as if a tactic analysis pass had produced the log message. There are a couple of exceptions: `rwMerge` and `verifyTryThisSuggestions`. They worked around the default setup by manually saving and restoring the log (I see comments like "Drop any messages, since they will appear as if they are genuine errors").

This PR restores the log inside `runTacticCode` itself, so a pass only ever reports what it logs on its own. `runTacticCodeCapturingInfoTree` is unchanged, for callers that want to inspect the output of re-running a tactic. AFAICS, `runTacticCode` has no callers outside the tactic analysis framework, and all of them only read the returned goals.

Also, drop the hand-rolled save-the-log-and-restore-it-later juggling around `runTacticCode` in `rwMerge` and `verifyTryThisSuggestions`, since it's no longer needed. (`verifyTryThisSuggestions` keeps its other restore, the one around `runTacticCodeCapturingInfoTree`, on purpose: that call wants the re-run's info trees.)

One existing expectation changes: the `tryAtEachStepSimpAllSuggestions` test no longer shows the `Try this: simp_all only [p]` line, which came from the re-run `simp_all?` rather than from the pass. A new test checks that a re-run tactic's message doesn't get reported.
…smul_kernel_sub_outerKernel (leanprover-community#43333)

This PR adds `posSemidef_norm_sq_smul_kernel_sub_outerKernel`, which shows that the matrix `(‖f‖ : 𝕜) ^ 2 • K - outerKernel 𝕜 f` is positive semi-definite.
Add two of my projects to the list of downstream repositories
This PR removes the `rw_search` tactic, as it was deprecated over 2 years ago.
…ity#41651)

Add two group-theory results on maximal subgroups (coatoms of the subgroup lattice), plus a small API change:
- `isCyclic_of_isCoatom_subsingleton`: a group with at most one maximal subgroup is cyclic.
- `CommGroup.isSimpleGroup_iff_isCoatom`: a subgroup of a commutative group is maximal iff the quotient by it is simple.
- `comapMk'OrderIso`: retype the codomain of the correspondence-theorem order isomorphism to `Set.Ici N`, making the order API available (also it mirrors `Submodule.comapMkQRelIso`). The two codomains are defeq and there are no use.

:robot: This PR was extracted from the [SKW project](https://github.com/xroblot/SKW) by Claude.
…42307)

This PR defines Bessel potential or Fourier theoretic Sobolev spaces. 

Material taken from github.com/mcdoll/DirichletProblem
…heafOfModulesOfCommRing` (leanprover-community#43193)

Co-authored-by: Brian-Nugent <bnugent@uw.edu>
…property of addSubMap and sym2x (leanprover-community#43292)

This is the next PR on the way to the approximate parallelogram law on an elliptic curve.
It shows that the addition-and-subtraction map satisfies its specification: it sends `sym2x P Q` to `sym2x (P+Q) (P-Q)`, up to a nonzero scaling factor.
Co-authored-by: Robin Carlier <robin@rcarlier.dev>
@github-actions github-actions Bot added tech debt Tracking cross-cutting technical debt, see e.g. the "Technical debt counters" stream on zulip file-removed A Lean module was (re)moved without a `deprecated_module` annotation labels Sep 5, 2026
@github-actions github-actions Bot removed the file-removed A Lean module was (re)moved without a `deprecated_module` annotation label Sep 5, 2026
@joelriou joelriou removed the awaiting-author Reply -awaiting-author to remove the label on your PR once you have addressed all comments. label Sep 5, 2026
@jcommelin

Copy link
Copy Markdown
Member

Thanks 🎉

bors merge

@mathlib-bors mathlib-bors Bot added the ready-to-merge This PR has been sent to bors. label Sep 7, 2026
@mathlib-triage mathlib-triage Bot removed the maintainer-merge A reviewer has approved the changed; awaiting maintainer approval. label Sep 7, 2026
mathlib-bors Bot pushed a commit that referenced this pull request Sep 7, 2026
…42397)

Co-authored-by: mathlib-update-dependencies[bot] <258990618+mathlib-update-dependencies[bot]@users.noreply.github.com>
Co-authored-by: Xavier Roblot <46200072+xroblot@users.noreply.github.com>
Co-authored-by: Moritz Doll <21366319+mcdoll@users.noreply.github.com>
Co-authored-by: Brian Nugent <b.nugent@utah.edu>
Co-authored-by: Michael Stoll <99838730+MichaelStollBayreuth@users.noreply.github.com>
Co-authored-by: Yongxi (Aaron) Lin <97214596+CoolRmal@users.noreply.github.com>
Co-authored-by: Snir Broshi <26556598+SnirBroshi@users.noreply.github.com>
Co-authored-by: Hang Lu Su <homeowmorphism@pm.me>
Co-authored-by: Vasilii Nesterov <118051017+vasnesterov@users.noreply.github.com>
Co-authored-by: Vlad Tsyrklevich <vlad@tsyrklevi.ch>
Co-authored-by: Jovan Gerbscheid <56355248+JovanGerb@users.noreply.github.com>
Co-authored-by: Anne Baanen <2116570+Vierkantor@users.noreply.github.com>
Co-authored-by: Aaron Liu <aaronliu2008@outlook.com>
Co-authored-by: Yaël Dillies <yael.dillies@gmail.com>
Co-authored-by: Xavier Généreux <20421163+xgenereux@users.noreply.github.com>
Co-authored-by: Nailin Guan <150537269+Thmoas-Guan@users.noreply.github.com>
Co-authored-by: Thomas R. Murrills <68410468+thorimur@users.noreply.github.com>
Co-authored-by: Jesse Alama <56691+jessealama@users.noreply.github.com>
Co-authored-by: TJHeeringa <16029718+TJHeeringa@users.noreply.github.com>
Co-authored-by: Salvatore Mercuri <47568553+smmercuri@users.noreply.github.com>
@mathlib-bors mathlib-bors Bot added the bors-staging This PR is currently being built by bors on the staging branch. label Sep 7, 2026
@mathlib-bors

mathlib-bors Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

@mathlib-bors mathlib-bors Bot changed the title feat(CategoryTheory): ContAction FintypeCat G is a Galois category [Merged by Bors] - feat(CategoryTheory): ContAction FintypeCat G is a Galois category Sep 7, 2026
@mathlib-bors mathlib-bors Bot closed this Sep 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bors-staging This PR is currently being built by bors on the staging branch. large-import Automatically added label for PRs with a significant increase in transitive imports ready-to-merge This PR has been sent to bors. t-category-theory Category theory tech debt Tracking cross-cutting technical debt, see e.g. the "Technical debt counters" stream on zulip

Projects

None yet

Development

Successfully merging this pull request may close these issues.