Stabilizer of a finset #
This file defines the stabilizer of a finset of a group as a finset.
Main declarations #
Finset.mulStab
: The stabilizer of a nonempty finset as a finset.
instance
Finset.instDecidablePredMemSubgroupStabilizerSetToSet_leanCamCombi
{α : Type u_2}
[Group α]
[DecidableEq α]
(s : Finset α)
:
DecidablePred fun (x : α) => x ∈ MulAction.stabilizer α ↑s
Equations
- s.instDecidablePredMemSubgroupStabilizerSetToSet_leanCamCombi a = decidable_of_iff (a ∈ MulAction.stabilizer α s) ⋯
instance
Finset.instDecidablePredMemAddSubgroupStabilizerSetToSet_leanCamCombi
{α : Type u_2}
[AddGroup α]
[DecidableEq α]
(s : Finset α)
:
DecidablePred fun (x : α) => x ∈ AddAction.stabilizer α ↑s
Equations
- s.instDecidablePredMemAddSubgroupStabilizerSetToSet_leanCamCombi a = decidable_of_iff (a ∈ AddAction.stabilizer α s) ⋯
The stabilizer of s
as a finset. As an exception, this sends ∅
to ∅
.
Equations
- s.mulStab = Finset.filter (fun (a : α) => a • s = s) (s / s)
Instances For
The stabilizer of s
as a finset. As an exception, this sends ∅
to ∅
.
Equations
- s.addStab = Finset.filter (fun (a : α) => a +ᵥ s = s) (s - s)
Instances For
@[simp]
theorem
Finset.mem_mulStab
{α : Type u_2}
[Group α]
[DecidableEq α]
{s : Finset α}
{a : α}
(hs : s.Nonempty)
:
@[simp]
theorem
Finset.mem_addStab
{α : Type u_2}
[AddGroup α]
[DecidableEq α]
{s : Finset α}
{a : α}
(hs : s.Nonempty)
:
theorem
Finset.mulStab_subset_div_right
{α : Type u_2}
[Group α]
[DecidableEq α]
{s : Finset α}
{a : α}
(ha : a ∈ s)
:
theorem
Finset.addStab_subset_sub_right
{α : Type u_2}
[AddGroup α]
[DecidableEq α]
{s : Finset α}
{a : α}
(ha : a ∈ s)
:
@[simp]
theorem
Finset.coe_mulStab
{α : Type u_2}
[Group α]
[DecidableEq α]
{s : Finset α}
(hs : s.Nonempty)
:
↑s.mulStab = ↑(MulAction.stabilizer α ↑s)
@[simp]
theorem
Finset.coe_addStab
{α : Type u_2}
[AddGroup α]
[DecidableEq α]
{s : Finset α}
(hs : s.Nonempty)
:
↑s.addStab = ↑(AddAction.stabilizer α ↑s)
theorem
Finset.mem_mulStab_iff_subset_smul_finset
{α : Type u_2}
[Group α]
[DecidableEq α]
{s : Finset α}
{a : α}
(hs : s.Nonempty)
:
theorem
Finset.mem_addStab_iff_subset_vadd_finset
{α : Type u_2}
[AddGroup α]
[DecidableEq α]
{s : Finset α}
{a : α}
(hs : s.Nonempty)
:
theorem
Finset.mem_mulStab_iff_smul_finset_subset
{α : Type u_2}
[Group α]
[DecidableEq α]
{s : Finset α}
{a : α}
(hs : s.Nonempty)
:
theorem
Finset.mem_addStab_iff_vadd_finset_subset
{α : Type u_2}
[AddGroup α]
[DecidableEq α]
{s : Finset α}
{a : α}
(hs : s.Nonempty)
:
@[simp]
@[simp]
@[simp]
theorem
Finset.addStab_singleton
{α : Type u_2}
[AddGroup α]
[DecidableEq α]
(a : α)
:
{a}.addStab = 0
theorem
Finset.Nonempty.of_mulStab
{α : Type u_2}
[Group α]
[DecidableEq α]
{s : Finset α}
:
s.mulStab.Nonempty → s.Nonempty
theorem
Finset.Nonempty.of_addStab
{α : Type u_2}
[AddGroup α]
[DecidableEq α]
{s : Finset α}
:
s.addStab.Nonempty → s.Nonempty
@[simp]
@[simp]
theorem
Finset.Nonempty.one_mem_mulStab
{α : Type u_2}
[Group α]
[DecidableEq α]
{s : Finset α}
:
s.Nonempty → 1 ∈ s.mulStab
Alias of the reverse direction of Finset.one_mem_mulStab
.
theorem
Finset.Nonempty.zero_mem_addStab
{α : Type u_2}
[AddGroup α]
[DecidableEq α]
{s : Finset α}
:
s.Nonempty → 0 ∈ s.addStab
theorem
Finset.Nonempty.mulStab
{α : Type u_2}
[Group α]
[DecidableEq α]
{s : Finset α}
(h : s.Nonempty)
:
s.mulStab.Nonempty
theorem
Finset.Nonempty.addStab
{α : Type u_2}
[AddGroup α]
[DecidableEq α]
{s : Finset α}
(h : s.Nonempty)
:
s.addStab.Nonempty
@[simp]
theorem
Finset.mulStab_nonempty
{α : Type u_2}
[Group α]
[DecidableEq α]
{s : Finset α}
:
s.mulStab.Nonempty ↔ s.Nonempty
@[simp]
theorem
Finset.addStab_nonempty
{α : Type u_2}
[AddGroup α]
[DecidableEq α]
{s : Finset α}
:
s.addStab.Nonempty ↔ s.Nonempty
@[simp]
@[simp]
theorem
Finset.Nonempty.mulStab_nontrivial
{α : Type u_2}
[Group α]
[DecidableEq α]
{s : Finset α}
(h : s.Nonempty)
:
theorem
Finset.Nonempty.addStab_nontrivial
{α : Type u_2}
[AddGroup α]
[DecidableEq α]
{s : Finset α}
(h : s.Nonempty)
:
theorem
Finset.subset_mulStab_mul_left
{α : Type u_2}
[Group α]
[DecidableEq α]
{s t : Finset α}
(ht : t.Nonempty)
:
theorem
Finset.subset_addStab_add_left
{α : Type u_2}
[AddGroup α]
[DecidableEq α]
{s t : Finset α}
(ht : t.Nonempty)
:
@[simp]
@[simp]
theorem
Finset.mul_subset_right_iff
{α : Type u_2}
[Group α]
[DecidableEq α]
{s t : Finset α}
(ht : t.Nonempty)
:
theorem
Finset.add_subset_right_iff
{α : Type u_2}
[AddGroup α]
[DecidableEq α]
{s t : Finset α}
(ht : t.Nonempty)
:
theorem
Finset.smul_mulStab
{α : Type u_2}
[Group α]
[DecidableEq α]
{s : Finset α}
{a : α}
(ha : a ∈ s.mulStab)
:
theorem
Finset.vadd_addStab
{α : Type u_2}
[AddGroup α]
[DecidableEq α]
{s : Finset α}
{a : α}
(ha : a ∈ s.addStab)
:
@[simp]
@[simp]
theorem
Finset.inter_mulStab_subset_mulStab_union
{α : Type u_2}
[Group α]
[DecidableEq α]
{s t : Finset α}
:
theorem
Finset.inter_addStab_subset_addStab_union
{α : Type u_2}
[AddGroup α]
[DecidableEq α]
{s t : Finset α}
:
theorem
Finset.mulStab_subset_div_left
{α : Type u_2}
[CommGroup α]
[DecidableEq α]
{s : Finset α}
{a : α}
(ha : a ∈ s)
:
theorem
Finset.addStab_subset_sub_left
{α : Type u_2}
[AddCommGroup α]
[DecidableEq α]
{s : Finset α}
{a : α}
(ha : a ∈ s)
:
theorem
Finset.subset_mulStab_mul_right
{α : Type u_2}
[CommGroup α]
[DecidableEq α]
{s t : Finset α}
(hs : s.Nonempty)
:
theorem
Finset.subset_addStab_add_right
{α : Type u_2}
[AddCommGroup α]
[DecidableEq α]
{s t : Finset α}
(hs : s.Nonempty)
:
@[simp]
@[simp]
@[simp]
theorem
Finset.add_addStab_add_add_add_addStab_add
{α : Type u_2}
[AddCommGroup α]
[DecidableEq α]
{s t : Finset α}
:
theorem
Finset.smul_finset_mulStab_subset
{α : Type u_2}
[CommGroup α]
[DecidableEq α]
{s : Finset α}
{a : α}
(ha : a ∈ s)
:
theorem
Finset.vadd_finset_addStab_subset
{α : Type u_2}
[AddCommGroup α]
[DecidableEq α]
{s : Finset α}
{a : α}
(ha : a ∈ s)
:
theorem
Finset.mul_subset_left_iff
{α : Type u_2}
[CommGroup α]
[DecidableEq α]
{s t : Finset α}
(hs : s.Nonempty)
:
theorem
Finset.add_subset_left_iff
{α : Type u_2}
[AddCommGroup α]
[DecidableEq α]
{s t : Finset α}
(hs : s.Nonempty)
:
@[simp]
theorem
Finset.mulStab_idem
{α : Type u_2}
[CommGroup α]
[DecidableEq α]
(s : Finset α)
:
s.mulStab.mulStab = s.mulStab
@[simp]
theorem
Finset.addStab_idem
{α : Type u_2}
[AddCommGroup α]
[DecidableEq α]
(s : Finset α)
:
s.addStab.addStab = s.addStab
@[simp]
@[simp]
theorem
Finset.addStab_vadd
{α : Type u_2}
[AddCommGroup α]
[DecidableEq α]
(a : α)
(s : Finset α)
:
theorem
Finset.mulStab_image_coe_quotient
{α : Type u_2}
[CommGroup α]
[DecidableEq α]
{s : Finset α}
(hs : s.Nonempty)
:
(Finset.image QuotientGroup.mk s).mulStab = 1
theorem
Finset.addStab_image_coe_quotient
{α : Type u_2}
[AddCommGroup α]
[DecidableEq α]
{s : Finset α}
(hs : s.Nonempty)
:
(Finset.image QuotientAddGroup.mk s).addStab = 0
theorem
Finset.preimage_image_quotientMk_stabilizer_eq_add_addStab
{α : Type u_2}
[AddCommGroup α]
[DecidableEq α]
{t : Finset α}
(ht : t.Nonempty)
(s : Finset α)
:
theorem
Finset.preimage_image_quotientMk_mulStabilizer
{α : Type u_2}
[CommGroup α]
[DecidableEq α]
(s : Finset α)
:
theorem
Finset.preimage_image_quotientMk_addStabilizer
{α : Type u_2}
[AddCommGroup α]
[DecidableEq α]
(s : Finset α)
:
theorem
Finset.pairwiseDisjoint_smul_finset_mulStab
{α : Type u_2}
[CommGroup α]
[DecidableEq α]
(s : Finset α)
:
theorem
Finset.pairwiseDisjoint_vadd_finset_addStab
{α : Type u_2}
[AddCommGroup α]
[DecidableEq α]
(s : Finset α)
:
theorem
Finset.disjoint_vadd_finset_addStab_add_addStab
{α : Type u_2}
[AddCommGroup α]
[DecidableEq α]
{s t : Finset α}
{a : α}
:
theorem
Finset.card_mulStab_dvd_card_mul_mulStab
{α : Type u_2}
[CommGroup α]
[DecidableEq α]
(s t : Finset α)
:
theorem
Finset.card_addStab_dvd_card_add_addStab
{α : Type u_2}
[AddCommGroup α]
[DecidableEq α]
(s t : Finset α)
:
theorem
Finset.card_mulStab_dvd_card
{α : Type u_2}
[CommGroup α]
[DecidableEq α]
(s : Finset α)
:
s.mulStab.card ∣ s.card
theorem
Finset.card_addStab_dvd_card
{α : Type u_2}
[AddCommGroup α]
[DecidableEq α]
(s : Finset α)
:
s.addStab.card ∣ s.card
theorem
Finset.card_mulStab_le_card
{α : Type u_2}
[CommGroup α]
[DecidableEq α]
{s : Finset α}
:
s.mulStab.card ≤ s.card
theorem
Finset.card_addStab_le_card
{α : Type u_2}
[AddCommGroup α]
[DecidableEq α]
{s : Finset α}
:
s.addStab.card ≤ s.card
theorem
Finset.card_mulStab_dvd_card_mulStab
{α : Type u_2}
[CommGroup α]
[DecidableEq α]
{s t : Finset α}
(hs : s.Nonempty)
(h : s.mulStab ⊆ t.mulStab)
:
s.mulStab.card ∣ t.mulStab.card
theorem
Finset.card_addStab_dvd_card_addStab
{α : Type u_2}
[AddCommGroup α]
[DecidableEq α]
{s t : Finset α}
(hs : s.Nonempty)
(h : s.addStab ⊆ t.addStab)
:
s.addStab.card ∣ t.addStab.card
theorem
Finset.card_mulStab_mul_card_image_coe'
{α : Type u_2}
[CommGroup α]
[DecidableEq α]
(s t : Finset α)
[DecidableEq (α ⧸ MulAction.stabilizer α ↑t)]
:
t.mulStab.card * (Finset.image QuotientGroup.mk s).card = (s * t.mulStab).card
A version of Lagrange's theorem.
theorem
Finset.card_addStab_add_card_image_coe'
{α : Type u_2}
[AddCommGroup α]
[DecidableEq α]
(s t : Finset α)
[DecidableEq (α ⧸ AddAction.stabilizer α ↑t)]
:
t.addStab.card * (Finset.image QuotientAddGroup.mk s).card = (s + t.addStab).card
A version of Lagrange's theorem.
theorem
Finset.card_mul_card_eq_mulStab_card_mul_coe
{α : Type u_2}
[CommGroup α]
[DecidableEq α]
(s t : Finset α)
:
theorem
Finset.card_add_card_eq_addStab_card_add_coe
{α : Type u_2}
[AddCommGroup α]
[DecidableEq α]
(s t : Finset α)
:
theorem
Finset.card_mulStab_mul_card_image_coe
{α : Type u_2}
[CommGroup α]
[DecidableEq α]
(s t : Finset α)
:
(s * t).mulStab.card * (Finset.image QuotientGroup.mk s * Finset.image QuotientGroup.mk t).card = (s * t).card
A version of Lagrange's theorem.
theorem
Finset.card_addStab_add_card_image_coe
{α : Type u_2}
[AddCommGroup α]
[DecidableEq α]
(s t : Finset α)
:
(s + t).addStab.card * (Finset.image QuotientAddGroup.mk s + Finset.image QuotientAddGroup.mk t).card = (s + t).card
A version of Lagrange's theorem.
theorem
Finset.subgroup_mul_card_eq_mul_of_mul_stab_subset
{α : Type u_2}
[CommGroup α]
[DecidableEq α]
(s : Subgroup α)
[DecidablePred fun (x : α) => x ∈ s]
(t : Finset α)
(hst : ↑s ⊆ ↑t.mulStab)
:
Nat.card ↥s * (Finset.image QuotientGroup.mk t).card = t.card
theorem
Finset.addSubgroup_add_card_eq_add_of_add_stab_subset
{α : Type u_2}
[AddCommGroup α]
[DecidableEq α]
(s : AddSubgroup α)
[DecidablePred fun (x : α) => x ∈ s]
(t : Finset α)
(hst : ↑s ⊆ ↑t.addStab)
:
Nat.card ↥s * (Finset.image QuotientAddGroup.mk t).card = t.card
theorem
Finset.mulStab_quotient_commute_subgroup
{α : Type u_2}
[CommGroup α]
[DecidableEq α]
(s : Subgroup α)
[DecidablePred fun (x : α) => x ∈ s]
(t : Finset α)
(hst : ↑s ⊆ ↑t.mulStab)
:
Finset.image QuotientGroup.mk t.mulStab = (Finset.image QuotientGroup.mk t).mulStab
theorem
Finset.addStab_quotient_addCommute_addSubgroup
{α : Type u_2}
[AddCommGroup α]
[DecidableEq α]
(s : AddSubgroup α)
[DecidablePred fun (x : α) => x ∈ s]
(t : Finset α)
(hst : ↑s ⊆ ↑t.addStab)
:
Finset.image QuotientAddGroup.mk t.addStab = (Finset.image QuotientAddGroup.mk t).addStab