Fintype instances for Equiv and Perm #
Main declarations:
permsOfFinset s: The finset of permutations of the finsets.
Given a list, produce a list of all permutations of its elements.
Equations
- permsOfList [] = [1]
- permsOfList (a :: l) = permsOfList l ++ List.flatMap (fun (b : α) => List.map (fun (f : Equiv.Perm α) => Equiv.swap a b * f) (permsOfList l)) l
Instances For
theorem mem_permsOfList_of_mem {α : Type u_1} [DecidableEq α] {l : List α} {f : Equiv.Perm α} (h : ∀ (x : α), f x ≠ x → x ∈ l) :
theorem mem_of_mem_permsOfList {α : Type u_1} [DecidableEq α] {l : List α} {f : Equiv.Perm α} :
f ∈ permsOfList l → ∀ {x : α}, f x ≠ x → x ∈ l
theorem nodup_permsOfList {α : Type u_1} [DecidableEq α] {l : List α} :
l.Nodup → (permsOfList l).Nodup
Given a finset, produce the finset of all permutations of its elements.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
The collection of permutations of a fintype is a fintype.
Equations
- fintypePerm = { elems := permsOfFinset Finset.univ, complete := ⋯ }
Instances For
@[instance_reducible]
instance Equiv.instFintype {α : Type u_1} {β : Type u_2} [DecidableEq α] [DecidableEq β] [Fintype α] [Fintype β] :
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
instance MulEquiv.instFintype {α : Type u_3} {β : Type u_4} [Mul α] [Mul β] [DecidableEq α] [DecidableEq β] [Fintype α] [Fintype β] :
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
instance AddEquiv.instFintype {α : Type u_3} {β : Type u_4} [Add α] [Add β] [DecidableEq α] [DecidableEq β] [Fintype α] [Fintype β] :
Equations
- One or more equations did not get rendered due to their size.
theorem Fintype.card_equiv {α : Type u_1} {β : Type u_2} [DecidableEq α] [DecidableEq β] [Fintype α] [Fintype β] (e : α ≃ β) :