Skip to content

feat(RepresentationTheory): add Smooth.Basic for smooth representations#41525

Open
JX-Mo wants to merge 28 commits into
leanprover-community:masterfrom
JX-Mo:Smooth.Basic
Open

feat(RepresentationTheory): add Smooth.Basic for smooth representations#41525
JX-Mo wants to merge 28 commits into
leanprover-community:masterfrom
JX-Mo:Smooth.Basic

Conversation

@JX-Mo

@JX-Mo JX-Mo commented Jul 9, 2026

Copy link
Copy Markdown

This PR introduces basic set up for smooth representations of a topological group. Hopefully it will serve as preliminary content for those who are interested in formalizing representation theory for p-adic reductive groups in the future. We introduce the following in the file:

  1. Define smoothness for representations of a topological group. It is a property for a representation to be smooth: the stabilizer of any vector is open.
  2. Prove basic closure properties: subrepresentations, quotient representations, tensor products, direct sums of smooth representations are smooth.
  3. Construct smoothHom and contragredient: they are obtained by cutting out smooth vectors from the naive hom and dual.

JX-Mo and others added 23 commits June 23, 2026 18:21
Co-authored-by: Thomas Browning <tb65536@users.noreply.github.com>
1. Delete the last lemma and relevant imports. 
2. Fix naming conventions.
3. Delete the long list in docstring.
Make {n : \Nat} implicit in le_stabilizer_sum
Style improvements.
Simplify proofs related to stabilizers using simp +contextual.
Use the latest lemma `inv_apply_eq_iff` to shorten the proof of stabilizer_conj
Add a lemma for Subrepresentation recording the inherited group action.
Add the definition of the quotient representation associated to a subrepresentation in Representation.Subrepresentation
Co-authored-by: Whysoserioushah <109107491+Whysoserioushah@users.noreply.github.com>
Rename using `toRepresentation_apply_mk` and `quotient_apply_mk`

Remove @[simp] above quotient_apply_mk
Add toRepresentation_apply_coe
Removed unused import for group tactics.
@github-actions github-actions Bot added the new-contributor This PR was made by a contributor with at most 5 merged PRs. Welcome to the community! label Jul 9, 2026
@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown

Welcome new contributor!

Thank you for contributing to Mathlib! If you haven't done so already, please review our contribution guidelines, as well as the style guide and naming conventions. In particular, we kindly remind contributors that we have guidelines regarding the use of AI when making pull requests.

We use a review queue to manage reviews. If your PR does not appear there, it is probably because it is not successfully building (i.e., it doesn't have a green checkmark), has the awaiting-author tag, or another reason described in the Lifecycle of a PR. The review dashboard has a dedicated webpage which shows whether your PR is on the review queue, and (if not), why.

If you haven't already done so, please come to https://leanprover.zulipchat.com/, introduce yourself, and mention your new PR.

Thank you again for joining our community.

@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown

PR summary 448cad44a8

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference
Mathlib.RepresentationTheory.Stabilizer (new file) 1493
Mathlib.RepresentationTheory.Smooth.Basic (new file) 1620

Declarations diff (regex)

+ IntertwiningMap.isSmoothVector
+ IntertwiningMap.isSmooth_injective
+ IntertwiningMap.isSmooth_surjective
+ IntertwiningMap.smoothVectors
+ IntertwiningMap.stabilizer_le
+ IsSmooth
+ IsSmoothVector
+ contragredient
+ isSmoothVector_add
+ isSmoothVector_apply
+ isSmoothVector_iff
+ isSmoothVector_smul
+ isSmoothVector_sum
+ isSmoothVector_tmul
+ isSmoothVector_zero
+ isSmooth_contragredient
+ isSmooth_directSum
+ isSmooth_iff
+ isSmooth_prod
+ isSmooth_quotient
+ isSmooth_smoothHom
+ isSmooth_smoothVectors
+ isSmooth_subrepresentation
+ isSmooth_tprod
+ isSmooth_trivial
+ le_stabilizer_add
+ le_stabilizer_smul
+ le_stabilizer_sum
+ le_stabilizer_tmul
+ mem_smoothSubmodule
+ mem_stabilizer
+ quotient
+ quotient_apply_mk
+ smoothHom
+ smoothSubmodule
+ smoothVectors
+ stabilizer
+ stabilizer_conj
+ stabilizer_zero
+ toRepresentation_apply_coe
+ toRepresentation_apply_mk

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 448cad4).

  • +47 new declarations
  • −0 removed declarations
+Representation.IntertwiningMap.stabilizer_le
+Representation.Smooth.IntertwiningMap.isSmoothVector
+Representation.Smooth.IntertwiningMap.isSmooth_injective
+Representation.Smooth.IntertwiningMap.isSmooth_surjective
+Representation.Smooth.IntertwiningMap.smoothVectors
+Representation.Smooth.IsSmooth
+Representation.Smooth.IsSmooth.casesOn
+Representation.Smooth.IsSmooth.mk
+Representation.Smooth.IsSmooth.rec
+Representation.Smooth.IsSmooth.recOn
+Representation.Smooth.IsSmooth.smooth
+Representation.Smooth.IsSmoothVector
+Representation.Smooth.contragredient
+Representation.Smooth.isSmoothVector_add
+Representation.Smooth.isSmoothVector_apply
+Representation.Smooth.isSmoothVector_iff
+Representation.Smooth.isSmoothVector_smul
+Representation.Smooth.isSmoothVector_sum
+Representation.Smooth.isSmoothVector_tmul
+Representation.Smooth.isSmoothVector_zero
+Representation.Smooth.isSmooth_contragredient
+Representation.Smooth.isSmooth_directSum
+Representation.Smooth.isSmooth_iff
+Representation.Smooth.isSmooth_prod
+Representation.Smooth.isSmooth_quotient
+Representation.Smooth.isSmooth_smoothHom
+Representation.Smooth.isSmooth_smoothVectors
+Representation.Smooth.isSmooth_subrepresentation
+Representation.Smooth.isSmooth_tprod
+Representation.Smooth.isSmooth_trivial
+Representation.Smooth.mem_smoothSubmodule
+Representation.Smooth.smoothHom
+Representation.Smooth.smoothSubmodule
+Representation.Smooth.smoothVectors
+Representation.Smooth.smoothVectors.congr_simp
+Representation.le_stabilizer_add
+Representation.le_stabilizer_smul
+Representation.le_stabilizer_sum
+Representation.le_stabilizer_tmul
+Representation.mem_stabilizer
+Representation.stabilizer
+Representation.stabilizer_conj
+Representation.stabilizer_zero
+Subrepresentation.quotient
+Subrepresentation.quotient_apply_mk
+Subrepresentation.toRepresentation_apply_coe
+Subrepresentation.toRepresentation_apply_mk

No changes to strong technical debt.

Increase in weak tech debt: (relative, absolute) = (2.00, 0.00)
Current number Change Type (weak)
5010 2 exposed public sections

Current commit 448cad44a8
Reference commit 46931f419b

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.sh 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).

@JX-Mo

JX-Mo commented Jul 10, 2026

Copy link
Copy Markdown
Author

Could someone please add the t-algebra label?

@Yu-Misaka Yu-Misaka added the t-algebra Algebra (groups, rings, fields, etc) label Jul 11, 2026
@felixpernegger

Copy link
Copy Markdown
Contributor

Could someone please add the t-algebra label?

For the future, note you can write "t-algebra" as comment and then the label will be applied.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new-contributor This PR was made by a contributor with at most 5 merged PRs. Welcome to the community! t-algebra Algebra (groups, rings, fields, etc)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants