support of a permutation #
Main definitions #
In the following, f g : Equiv.Perm α.
Equiv.Perm.Disjoint: two permutationsfandgareDisjointif every element is fixed either byf, or byg. Equivalently,fandgareDisjointiff theirsupportare disjoint.Equiv.Perm.IsSwap:f = swap x yforx ≠ y.Equiv.Perm.support: the elementsx : αthat are not fixed byf.
Assume α is a Fintype:
Equiv.Perm.fixed_point_card_lt_of_ne_one fsays thatfhas strictly less thanFintype.card α - 1fixed points, unlessf = 1. (Equivalently,f.supporthas at least 2 elements.)
Two permutations f and g are Disjoint if their supports are disjoint, i.e.,
every element is fixed either by f, or by g.
Instances For
@[simp]
@[simp]
theorem
Equiv.Perm.disjoint_iff_eq_or_eq
{α : Type u_1}
{f g : Perm α}
:
f.Disjoint g ↔ ∀ (x : α), f x = x ∨ g x = x
@[simp]
@[simp]
@[simp]
@[simp]
theorem
Equiv.Perm.disjoint_prod_perm
{α : Type u_1}
{l₁ l₂ : List (Perm α)}
(hl : List.Pairwise Disjoint l₁)
(hp : l₁.Perm l₂)
:
l₁.prod = l₂.prod
theorem
Equiv.Perm.nodup_of_pairwise_disjoint
{α : Type u_1}
{l : List (Perm α)}
(h1 : 1 ∉ l)
(h2 : List.Pairwise Disjoint l)
:
l.Nodup
theorem
Equiv.Perm.pow_apply_eq_self_of_apply_eq_self
{α : Type u_1}
{f : Perm α}
{x : α}
(hfx : f x = x)
(n : ℕ)
:
(f ^ n) x = x
theorem
Equiv.Perm.zpow_apply_eq_self_of_apply_eq_self
{α : Type u_1}
{f : Perm α}
{x : α}
(hfx : f x = x)
(n : ℤ)
:
(f ^ n) x = x
theorem
Equiv.Perm.pow_apply_eq_of_apply_apply_eq_self
{α : Type u_1}
{f : Perm α}
{x : α}
(hffx : f (f x) = x)
(n : ℕ)
:
(f ^ n) x = x ∨ (f ^ n) x = f x
theorem
Equiv.Perm.zpow_apply_eq_of_apply_apply_eq_self
{α : Type u_1}
{f : Perm α}
{x : α}
(hffx : f (f x) = x)
(i : ℤ)
:
(f ^ i) x = x ∨ (f ^ i) x = f x
theorem
Equiv.Perm.Disjoint.mul_apply_eq_iff
{α : Type u_1}
{σ τ : Perm α}
(hστ : σ.Disjoint τ)
{a : α}
:
(σ * τ) a = a ↔ σ a = a ∧ τ a = a
theorem
Equiv.Perm.Disjoint.mul_eq_one_iff
{α : Type u_1}
{σ τ : Perm α}
(hστ : σ.Disjoint τ)
:
σ * τ = 1 ↔ σ = 1 ∧ τ = 1
theorem
Equiv.Perm.Disjoint.zpow_disjoint_zpow
{α : Type u_1}
{σ τ : Perm α}
(hστ : σ.Disjoint τ)
(m n : ℤ)
:
(σ ^ m).Disjoint (τ ^ n)
theorem
Equiv.Perm.Disjoint.pow_disjoint_pow
{α : Type u_1}
{σ τ : Perm α}
(hστ : σ.Disjoint τ)
(m n : ℕ)
:
(σ ^ m).Disjoint (τ ^ n)
f.IsSwap indicates that the permutation f is a transposition of two elements.
Instances For
@[simp]
theorem
Equiv.Perm.ne_and_ne_of_swap_mul_apply_ne_self
{α : Type u_1}
[DecidableEq α]
{f : Perm α}
{x y : α}
(hy : (swap x (f x) * f) y ≠ y)
:
f y ≠ y ∧ y ≠ x
@[deprecated Equiv.Perm.set_support_symm_eq (since := "2025-11-17")]
Alias of Equiv.Perm.set_support_symm_eq.
@[simp]
theorem
Equiv.Perm.apply_pow_apply_eq_iff
{α : Type u_1}
(f : Perm α)
(n : ℕ)
{x : α}
:
f ((f ^ n) x) = (f ^ n) x ↔ f x = x
@[simp]
theorem
Equiv.Perm.apply_zpow_apply_eq_iff
{α : Type u_1}
(f : Perm α)
(n : ℤ)
{x : α}
:
f ((f ^ n) x) = (f ^ n) x ↔ f x = x
The Finset of nonfixed points of a permutation.
Instances For
@[simp]
theorem
Equiv.Perm.mem_support
{α : Type u_1}
[DecidableEq α]
[Fintype α]
{f : Perm α}
{x : α}
:
x ∈ f.support ↔ f x ≠ x
theorem
Equiv.Perm.notMem_support
{α : Type u_1}
[DecidableEq α]
[Fintype α]
{f : Perm α}
{x : α}
:
x ∉ f.support ↔ f x = x
@[simp]
theorem
Equiv.Perm.support_eq_empty_iff
{α : Type u_1}
[DecidableEq α]
[Fintype α]
{σ : Perm α}
:
σ.support = ∅ ↔ σ = 1
@[simp]
@[simp]
theorem
Equiv.Perm.support_refl
{α : Type u_1}
[DecidableEq α]
[Fintype α]
:
support (Equiv.refl α) = ∅
theorem
Equiv.Perm.mem_support_iff_of_commute
{α : Type u_1}
[DecidableEq α]
[Fintype α]
{g c : Perm α}
(hgc : Commute g c)
(x : α)
:
If g and c commute, then g stabilizes the support of c
@[simp]
theorem
Equiv.Perm.ofSubtype_eq_iff
{α : Type u_1}
[DecidableEq α]
[Fintype α]
{g c : Perm α}
{s : Finset α}
(hg : ∀ (x : α), g x ∈ s ↔ x ∈ s)
:
ofSubtype (g.subtypePerm hg) = c ↔ c.support ≤ s ∧ ∀ (hc' : ∀ (x : α), c x ∈ s ↔ x ∈ s), c.subtypePerm hc' = g.subtypePerm hg
A permutation c is the extension of a restriction of g to s iff its support is contained in s and its restriction is that of g
theorem
Equiv.Perm.support_ofSubtype
{α : Type u_1}
[DecidableEq α]
[Fintype α]
{p : α → Prop}
[DecidablePred p]
(u : Perm (Subtype p))
:
(ofSubtype u).support = Finset.map (Function.Embedding.subtype p) u.support
theorem
Equiv.Perm.mem_support_of_mem_noncommProd_support
{α : Type u_2}
{β : Type u_3}
[DecidableEq β]
[Fintype β]
{s : Finset α}
{f : α → Perm β}
{comm : (↑s).Pairwise (Function.onFun Commute f)}
{x : β}
(hx : x ∈ (s.noncommProd f comm).support)
:
∃ a ∈ s, x ∈ (f a).support
theorem
Equiv.Perm.disjoint_iff_disjoint_support
{α : Type u_1}
[DecidableEq α]
[Fintype α]
{f g : Perm α}
:
f.Disjoint g ↔ _root_.Disjoint f.support g.support
theorem
Equiv.Perm.Disjoint.disjoint_support
{α : Type u_1}
[DecidableEq α]
[Fintype α]
{f g : Perm α}
(h : f.Disjoint g)
:
@[simp]
theorem
Equiv.Perm.disjoint_swap_swap
{α : Type u_1}
[DecidableEq α]
{x y z t : α}
(h : [x, y, z, t].Nodup)
:
@[simp]
theorem
Equiv.Perm.support_extend_domain
{α : Type u_1}
[DecidableEq α]
[Fintype α]
{β : Type u_2}
[DecidableEq β]
[Fintype β]
{p : β → Prop}
[DecidablePred p]
(f : α ≃ Subtype p)
{g : Perm α}
:
(g.extendDomain f).support = Finset.map f.asEmbedding g.support
@[simp]
@[simp]
theorem
Equiv.Perm.card_support_prod_list_of_pairwise_disjoint
{α : Type u_1}
[DecidableEq α]
[Fintype α]
{l : List (Perm α)}
(h : List.Pairwise Disjoint l)
:
l.prod.support.card = (List.map (Finset.card ∘ support) l).sum
@[simp]
theorem
Equiv.Perm.support_subtypePerm
{α : Type u_1}
[DecidableEq α]
{s : Finset α}
(f : Perm α)
(h : ∀ (x : α), f x ∈ s ↔ x ∈ s)
:
(f.subtypePerm h).support = {x : ↥s | f ↑x ≠ ↑x}
Fixed points #
theorem
Equiv.Perm.fixed_point_card_lt_of_ne_one
{α : Type u_1}
[DecidableEq α]
[Fintype α]
{σ : Perm α}
(h : σ ≠ 1)
:
@[simp]
theorem
Equiv.Perm.support_conj
{α : Type u_1}
[Fintype α]
[DecidableEq α]
{σ τ : Perm α}
:
(σ * τ * σ⁻¹).support = Finset.map (Equiv.toEmbedding σ) τ.support