Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(GroupTheory/GroupAction/Primitive) #12052

Open
wants to merge 152 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 52 commits
Commits
Show all changes
152 commits
Select commit Hold shift + click to select a range
f2b4301
blocks of group actions
AntoineChambert-Loir Apr 5, 2024
cf64231
Merge branch 'ACL/IwBlocks' into ACL/IwPrimitive
AntoineChambert-Loir Apr 8, 2024
4590e6d
feat(Mathlib/GroupAction/Primitive): primitive actions
AntoineChambert-Loir Apr 8, 2024
8cf4bff
adjust files blocks and primitive
AntoineChambert-Loir Apr 8, 2024
8cdd62e
cleanup blocks
AntoineChambert-Loir Apr 8, 2024
85ed927
mv pointwise to group action
AntoineChambert-Loir Apr 8, 2024
5c2a690
update Mathlib.lean and a single import
AntoineChambert-Loir Apr 9, 2024
5fc97e4
delete obsolete file
AntoineChambert-Loir Apr 9, 2024
0d6df8d
remove import, add docstring
AntoineChambert-Loir Apr 9, 2024
52b250a
adjust docstring
AntoineChambert-Loir Apr 9, 2024
159414e
Merge branch 'ACL/IwBlocks' of https://github.com/leanprover-communit…
AntoineChambert-Loir Apr 9, 2024
8757c26
add the pointwise file
AntoineChambert-Loir Apr 9, 2024
e83f016
cleanup blocks
AntoineChambert-Loir Apr 9, 2024
745ea01
adjust to calm linter
AntoineChambert-Loir Apr 9, 2024
82405e6
Merge branch 'ACL/IwBlocks' into ACL/IwBlocks_Equiv
AntoineChambert-Loir Apr 10, 2024
7ae244f
change as suggested on Zulip
AntoineChambert-Loir Apr 10, 2024
05bb01d
Update Mathlib/GroupTheory/GroupAction/Pointwise.lean
AntoineChambert-Loir Apr 10, 2024
c7bf04a
Update Mathlib/GroupTheory/GroupAction/Pointwise.lean
AntoineChambert-Loir Apr 10, 2024
c956614
adjust
AntoineChambert-Loir Apr 10, 2024
72043b0
adjust docstring
AntoineChambert-Loir Apr 10, 2024
5c45358
adjust docstring (lint100)
AntoineChambert-Loir Apr 10, 2024
39609e7
adjust namespace for preimage_smul_set[sl]
AntoineChambert-Loir Apr 10, 2024
483a13c
adjust Pointwise
AntoineChambert-Loir Apr 10, 2024
a7bd55e
Merge branch 'ACL/IwBlocks' into ACL/IwBlocks_Equiv
AntoineChambert-Loir Apr 10, 2024
85f5ddd
Merge branch 'ACL/IwBlocks' into ACL/IwBlocks_Finite
AntoineChambert-Loir Apr 10, 2024
5188ff6
orderiso
AntoineChambert-Loir Apr 10, 2024
4ae8aad
truncate Blocks.lean to basic definitions
AntoineChambert-Loir Apr 10, 2024
dc4ff20
adjust to pointwise
AntoineChambert-Loir Apr 10, 2024
09c3c00
Merge branch 'ACL/IwBlocks_Equiv' into ACL/IwBlocks_Finite
AntoineChambert-Loir Apr 10, 2024
6949298
adjust and simplify
AntoineChambert-Loir Apr 10, 2024
d177d02
adjust references.bib
AntoineChambert-Loir Apr 10, 2024
1ee5230
insert references
AntoineChambert-Loir Apr 10, 2024
d7036c4
Merge branch 'ACL/IwBlocks' into ACL/IwPrimitive
AntoineChambert-Loir Apr 10, 2024
e01baab
Merge branch 'ACL/IwBlocks_Finite' into ACL/IwPrimitive
AntoineChambert-Loir Apr 10, 2024
c9817e1
adjust
AntoineChambert-Loir Apr 10, 2024
e37025e
further adjustments
AntoineChambert-Loir Apr 10, 2024
aeafd08
make one implicit parameter explicit
AntoineChambert-Loir Apr 10, 2024
43d6e01
adjust references.bib
AntoineChambert-Loir Apr 10, 2024
3b6a84b
update Mathlib.lean
AntoineChambert-Loir Apr 10, 2024
2fc698d
delete linearmap pointwise
AntoineChambert-Loir Apr 10, 2024
a3dec87
Merge branch 'ACL/Pointwise' into ACL/IwBlocks
AntoineChambert-Loir Apr 10, 2024
6a3bb02
adjust explicit argument of image_smul_set
AntoineChambert-Loir Apr 10, 2024
c8b6617
Merge branch 'ACL/IwBlocks' into ACL/IwBlocks_Equiv
AntoineChambert-Loir Apr 10, 2024
149bd17
Merge branch 'ACL/IwBlocks_Equiv' into ACL/IwBlocks_Finite
AntoineChambert-Loir Apr 10, 2024
18961a6
Merge branch 'ACL/IwBlocks_Finite' into ACL/IwPrimitive
AntoineChambert-Loir Apr 10, 2024
4a02243
Update Mathlib/GroupTheory/GroupAction/Blocks.lean
AntoineChambert-Loir Apr 10, 2024
78fdd8f
Update Mathlib/GroupTheory/GroupAction/Blocks.lean
AntoineChambert-Loir Apr 10, 2024
742bd6f
shorten one line and order imports
AntoineChambert-Loir Apr 10, 2024
03b56db
Merge branch 'ACL/IwBlocks_Equiv' into ACL/IwBlocks_Finite
AntoineChambert-Loir Apr 10, 2024
5051b07
Merge branch 'ACL/IwBlocks_Finite' into ACL/IwPrimitive
AntoineChambert-Loir Apr 10, 2024
282ffd3
that should be OK
AntoineChambert-Loir Apr 10, 2024
431eb7b
Merge branch 'ACL/IwBlocks_Finite' into ACL/IwPrimitive
AntoineChambert-Loir Apr 10, 2024
58da82a
linter 100, delete unused imports
AntoineChambert-Loir Apr 10, 2024
7a3bb25
update Mathlib.lean and cleanup MaximalSubgroups
AntoineChambert-Loir Apr 10, 2024
8f0f1d2
add imports
AntoineChambert-Loir Apr 10, 2024
e7c2a82
suppress noisy simp?
AntoineChambert-Loir Apr 10, 2024
494140f
adjust
AntoineChambert-Loir Apr 10, 2024
eef5916
Merge branch 'ACL/IwBlocks_Finite' into ACL/IwPrimitive
AntoineChambert-Loir Apr 10, 2024
1eebd97
make linter happy
AntoineChambert-Loir Apr 10, 2024
c499134
Merge branch 'master' into ACL/IwPrimitive
AntoineChambert-Loir Apr 13, 2024
0d8b5fd
blocks: results for finite sets
AntoineChambert-Loir Jun 22, 2024
bafa60f
Merge branch 'master' into ACL/IwPrimitive
AntoineChambert-Loir Jun 22, 2024
90ee4ad
remove one bizarre import
AntoineChambert-Loir Jun 24, 2024
12a390e
remove duplicate smul_set_iInter
AntoineChambert-Loir Jun 24, 2024
136957a
adjust
AntoineChambert-Loir Jun 24, 2024
5b1f3ff
adjust (bad merge)
AntoineChambert-Loir Jun 24, 2024
c48101c
adjust
AntoineChambert-Loir Jun 24, 2024
54abe1b
delete documentation that is irrelevant
AntoineChambert-Loir Jun 24, 2024
6085cec
Merge branch 'master' into ACL/IwBlocks_Finite2
AntoineChambert-Loir Jul 11, 2024
4e30fad
follow the recommendations of JC
AntoineChambert-Loir Jul 11, 2024
b1f4942
Merge branch 'master' into ACL/IwPrimitive
AntoineChambert-Loir Jul 12, 2024
2ca310f
update Blocks from master
AntoineChambert-Loir Jul 12, 2024
9b6b911
add import CoAtoms
AntoineChambert-Loir Jul 12, 2024
4bd30ae
adjust
AntoineChambert-Loir Jul 12, 2024
7e065ce
correct one variable (Lean bug)
AntoineChambert-Loir Jul 18, 2024
3150b79
correct Lean bug (add {B})
AntoineChambert-Loir Jul 18, 2024
17bca64
Merge branch 'master' into ACL/IwPrimitive
AntoineChambert-Loir Jul 19, 2024
9922bd5
adjust Mathlib.lean (bad merge)
AntoineChambert-Loir Jul 19, 2024
158d84f
Merge branch 'master' into ACL/IwPrimitive
AntoineChambert-Loir Jul 28, 2024
a087ba1
adjust Mathlib.lean
AntoineChambert-Loir Jul 28, 2024
281bf6f
adjust to new linter
AntoineChambert-Loir Jul 28, 2024
58761eb
merge master
AntoineChambert-Loir Aug 9, 2024
ef6dfa7
move one lemma
AntoineChambert-Loir Aug 28, 2024
5b2a4a3
Update Mathlib/GroupTheory/GroupAction/Blocks.lean
AntoineChambert-Loir Aug 28, 2024
9534d5a
Apply suggestions from code review
AntoineChambert-Loir Aug 28, 2024
b59aab4
use Thomas Browning's version
AntoineChambert-Loir Aug 28, 2024
61329c4
Merge branch 'master' into ACL/IwBlocks_Finite2
AntoineChambert-Loir Aug 28, 2024
075b62e
remove the unused lemmas and adjust hypothesis
AntoineChambert-Loir Aug 28, 2024
b91dfe3
Merge branch 'ACL/IwBlocks_Finite2' of https://github.com/leanprover-…
AntoineChambert-Loir Aug 28, 2024
eaa9e30
adjust (bizarrely, varaibele does not include…)
AntoineChambert-Loir Aug 28, 2024
ca978b7
delete line
AntoineChambert-Loir Aug 28, 2024
9f2be2d
Apply suggestions from code review
AntoineChambert-Loir Aug 29, 2024
a33416d
remove import
AntoineChambert-Loir Aug 29, 2024
efbd072
Merge branch 'ACL/IwBlocks_Finite2' of https://github.com/leanprover-…
AntoineChambert-Loir Aug 29, 2024
aecb78b
change top to Set.univ
AntoineChambert-Loir Aug 29, 2024
8ff6d41
import intervalCases tactic
AntoineChambert-Loir Aug 29, 2024
e48d3c8
merge master
AntoineChambert-Loir Sep 9, 2024
a37b588
Update Mathlib/GroupTheory/GroupAction/Blocks.lean
AntoineChambert-Loir Sep 14, 2024
0e1f041
Update Mathlib/GroupTheory/GroupAction/Blocks.lean
AntoineChambert-Loir Sep 14, 2024
40a0c93
add remark on hypothesis, deprecated lemma
AntoineChambert-Loir Sep 14, 2024
37018a4
unprime and add _of_transitive
AntoineChambert-Loir Sep 14, 2024
814b6dd
use variable
AntoineChambert-Loir Sep 14, 2024
020f96e
remove trailing spaces
AntoineChambert-Loir Sep 14, 2024
d709f0e
adjust to new name of index_stabilizer'
AntoineChambert-Loir Sep 14, 2024
66c43f3
respond to comments
AntoineChambert-Loir Oct 16, 2024
fcff3ad
merge master
AntoineChambert-Loir Oct 17, 2024
9f04ffa
merge 14029
AntoineChambert-Loir Oct 17, 2024
347aa64
adjust
AntoineChambert-Loir Oct 17, 2024
4f48090
merge master
AntoineChambert-Loir Oct 28, 2024
a9527e7
appease linter for author names
AntoineChambert-Loir Oct 28, 2024
b940a38
appease linter for · paragraphs
AntoineChambert-Loir Oct 28, 2024
b6d08c7
add a lemma and let CI compile this for me
AntoineChambert-Loir Oct 28, 2024
7f7f2e6
Update Mathlib/GroupTheory/GroupAction/Primitive.lean
AntoineChambert-Loir Oct 28, 2024
d1fc69d
Merge branch 'master' into ACL/IwPrimitive
AntoineChambert-Loir Oct 30, 2024
0b05136
adjust import
AntoineChambert-Loir Oct 30, 2024
b8ec667
Merge branch 'master' into ACL/IwPrimitive
AntoineChambert-Loir Nov 15, 2024
a648c52
try to add some equivariance for add action
AntoineChambert-Loir Nov 15, 2024
3a833a0
initial commit
AntoineChambert-Loir Nov 17, 2024
9c7dacc
add docstrings
AntoineChambert-Loir Nov 17, 2024
a01fc23
remove trailing spaces
AntoineChambert-Loir Nov 17, 2024
c642288
add additivize version of equivariant morphisms from #19171
AntoineChambert-Loir Nov 17, 2024
a90654a
additivize further
AntoineChambert-Loir Nov 18, 2024
96b622d
add forgotten double quotes
AntoineChambert-Loir Nov 18, 2024
adc612c
a small addition
AntoineChambert-Loir Nov 19, 2024
c7e1ee1
single notation for all equivariant morphisms, mul or add
AntoineChambert-Loir Nov 19, 2024
cceda49
swap order of additive/multiplicative declarations
AntoineChambert-Loir Nov 19, 2024
aaa3a22
update Hom.lean
AntoineChambert-Loir Nov 19, 2024
11bdb9b
lint-style
AntoineChambert-Loir Nov 19, 2024
b371ead
go on with additivization
AntoineChambert-Loir Nov 19, 2024
ffefb01
add docstring for additive versions
AntoineChambert-Loir Nov 19, 2024
534d961
commit changes from style linters
leanprover-community-mathlib4-bot Nov 19, 2024
0f19e67
add docstring and lint style
AntoineChambert-Loir Nov 19, 2024
77eef6d
merge ACL/AddEquiv
AntoineChambert-Loir Nov 19, 2024
26d4e94
additivize blocks
AntoineChambert-Loir Nov 19, 2024
ea2c0a9
additivize primitive actions
AntoineChambert-Loir Nov 19, 2024
abe91aa
lint-style
AntoineChambert-Loir Nov 19, 2024
e2aa6e5
add docstrings
AntoineChambert-Loir Nov 19, 2024
584a6e0
lint-style
AntoineChambert-Loir Nov 19, 2024
88a8d24
Merge branch 'master' into ACL/IwPrimitive
AntoineChambert-Loir Nov 25, 2024
451f436
adjust import (follow instruction by linter)
AntoineChambert-Loir Nov 25, 2024
2c7619c
merge master
AntoineChambert-Loir Nov 30, 2024
c0edcca
add import
AntoineChambert-Loir Nov 30, 2024
c461867
delete two duplicate lemmas (bad merge?)
AntoineChambert-Loir Dec 1, 2024
e798880
remove unused import
AntoineChambert-Loir Dec 1, 2024
8ecccff
Merge branch 'master' into ACL/IwPrimitive
AntoineChambert-Loir Dec 2, 2024
7d04a99
restore a deleted to_additive tag
AntoineChambert-Loir Dec 2, 2024
f329b56
do not rename instance
AntoineChambert-Loir Jan 5, 2025
c80e4d3
do not rename instance
AntoineChambert-Loir Jan 5, 2025
1edccdd
merge master
AntoineChambert-Loir Jan 14, 2025
5c8e981
correct bad merge
AntoineChambert-Loir Jan 14, 2025
aed72b0
further corrections after incorrect merge
AntoineChambert-Loir Jan 14, 2025
f77f78a
remove MaximalSubgroups, use IsCoatom
AntoineChambert-Loir Jan 14, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion Mathlib.lean
Original file line number Diff line number Diff line change
Expand Up @@ -352,7 +352,6 @@ import Mathlib.Algebra.Module.Hom
import Mathlib.Algebra.Module.Injective
import Mathlib.Algebra.Module.LinearMap.Basic
import Mathlib.Algebra.Module.LinearMap.End
import Mathlib.Algebra.Module.LinearMap.Pointwise
import Mathlib.Algebra.Module.LocalizedModule
import Mathlib.Algebra.Module.MinimalAxioms
import Mathlib.Algebra.Module.Opposites
Expand Down Expand Up @@ -2366,6 +2365,7 @@ import Mathlib.GroupTheory.FreeGroup.IsFreeGroup
import Mathlib.GroupTheory.FreeGroup.NielsenSchreier
import Mathlib.GroupTheory.GroupAction.Basic
import Mathlib.GroupTheory.GroupAction.BigOperators
import Mathlib.GroupTheory.GroupAction.Blocks
import Mathlib.GroupTheory.GroupAction.ConjAct
import Mathlib.GroupTheory.GroupAction.Defs
import Mathlib.GroupTheory.GroupAction.DomAct.ActionHom
Expand All @@ -2379,6 +2379,7 @@ import Mathlib.GroupTheory.GroupAction.Opposite
import Mathlib.GroupTheory.GroupAction.Option
import Mathlib.GroupTheory.GroupAction.Period
import Mathlib.GroupTheory.GroupAction.Pi
import Mathlib.GroupTheory.GroupAction.Pointwise
import Mathlib.GroupTheory.GroupAction.Prod
import Mathlib.GroupTheory.GroupAction.Quotient
AntoineChambert-Loir marked this conversation as resolved.
Show resolved Hide resolved
import Mathlib.GroupTheory.GroupAction.Ring
Expand Down
52 changes: 0 additions & 52 deletions Mathlib/Algebra/Module/LinearMap/Pointwise.lean

This file was deleted.

2 changes: 1 addition & 1 deletion Mathlib/Analysis/LocallyConvex/Bounded.lean
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ Copyright (c) 2022 Moritz Doll. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Moritz Doll
-/
import Mathlib.Algebra.Module.LinearMap.Pointwise
import Mathlib.GroupTheory.GroupAction.Pointwise
import Mathlib.Analysis.LocallyConvex.Basic
import Mathlib.Analysis.LocallyConvex.BalancedCoreHull
import Mathlib.Analysis.Seminorm
Expand Down
16 changes: 16 additions & 0 deletions Mathlib/Data/Set/Pointwise/SMul.lean
Original file line number Diff line number Diff line change
Expand Up @@ -1034,6 +1034,22 @@ lemma inv_op_smul_set_distrib (a : α) (s : Set α) : (op a • s)⁻¹ = a⁻¹
lemma smul_set_disjoint_iff : Disjoint (a • s) (a • t) ↔ Disjoint s t := by
simp [disjoint_iff, ← smul_set_inter]

example (a : α) (s : Set β) : a • s = (fun b ↦ a • b) '' s := by
rw [@image_smul]

@[to_additive]
lemma smul_set_iInter {ι : Type*} (a : α) (s : ι → Set β) :
(a • ⋂ i, s i) = ⋂ i, a • s i := by
AntoineChambert-Loir marked this conversation as resolved.
Show resolved Hide resolved
obtain _ | _ := isEmpty_or_nonempty ι
· refine' Eq.trans _ (Set.iInter_of_empty _).symm
rw [Set.iInter_of_empty]
exact Set.smul_set_univ
· rw [← image_smul, Set.InjOn.image_iInter_eq ?_]
simp only [image_smul]
apply Function.Injective.injOn
intro x y
simp only [smul_left_cancel_iff, imp_self]

end Group

section GroupWithZero
Expand Down
48 changes: 48 additions & 0 deletions Mathlib/GroupTheory/GroupAction/Basic.lean
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import Mathlib.GroupTheory.GroupAction.Group
import Mathlib.Data.Setoid.Basic
import Mathlib.Data.Set.Pointwise.SMul
import Mathlib.GroupTheory.Subgroup.Basic
import Mathlib.Data.Set.Finite

#align_import group_theory.group_action.basic from "leanprover-community/mathlib"@"d30d31261cdb4d2f5e612eabc3c4bf45556350d5"

Expand Down Expand Up @@ -679,3 +680,50 @@ theorem Equiv.swap_mem_stabilizer {α : Type*} [DecidableEq α] {S : Set α} {a
rw [MulAction.mem_stabilizer_iff, Set.ext_iff, ← swap_inv]
simp_rw [Set.mem_inv_smul_set_iff, Perm.smul_def, swap_apply_def]
exact ⟨fun h ↦ by simpa [Iff.comm] using h a, by intros; split_ifs <;> simp [*]⟩


namespace MulAction

variable {G : Type*} [Group G] {α : Type*} [MulAction G α]

/-- To prove inclusion of a *subgroup* in a stabilizer, it is enough to prove inclusions.-/
theorem le_stabilizer_iff_smul_le (s : Set α) (H : Subgroup G) :
H ≤ stabilizer G s ↔ ∀ g ∈ H, g • s ⊆ s := by
constructor
· intro hyp g hg
apply Eq.subset
rw [← mem_stabilizer_iff]
exact hyp hg
intro hyp
intro g hg
rw [mem_stabilizer_iff]
apply subset_antisymm
exact hyp g hg
intro x hx; use g⁻¹ • x; constructor
apply hyp g⁻¹ (inv_mem hg)
simp only [Set.smul_mem_smul_set_iff, hx]
simp only [smul_inv_smul]

/-- To prove membership to stabilizer of a *finite set*, it is enough to prove one inclusion. -/
theorem mem_stabilizer_of_finite_iff_smul_le (s : Set α) (hs : s.Finite) (g : G) :
g ∈ stabilizer G s ↔ g • s ⊆ s := by
haveI : Fintype s := Set.Finite.fintype hs
haveI : Fintype (g • s : Set α) := Fintype.ofFinite _
rw [mem_stabilizer_iff]
constructor
exact Eq.subset
· rw [← Set.toFinset_inj, ← Set.toFinset_subset_toFinset]
intro h
apply Finset.eq_of_subset_of_card_le h
apply le_of_eq
suffices (g • s).toFinset = Finset.map ⟨_, MulAction.injective g⟩ hs.toFinset by
rw [this, Finset.card_map, Set.toFinite_toFinset]
rw [← Finset.coe_inj]
simp only [Set.coe_toFinset, Set.toFinite_toFinset, Finset.coe_map,
Function.Embedding.coeFn_mk, Set.image_smul]

/-- To prove membership to stabilizer of a *finite set*, it is enough to prove one inclusion. -/
theorem mem_stabilizer_of_finite_iff_le_smul (s : Set α) (hs : s.Finite) (g : G) :
g ∈ stabilizer G s ↔ s ⊆ g • s := by
rw [← @inv_mem_iff, mem_stabilizer_of_finite_iff_smul_le s hs]
exact Set.subset_set_smul_iff.symm
Loading
Loading