File: Mathlib/GroupTheory/Perm/Option.lean

full_name: Equiv.optionCongr_one
code: @[simp]
theorem Equiv.optionCongr_one {α : Type*} : (1 : Perm α).optionCongr = 1 
goal: Equiv.optionCongr 1 = 1

full_name: Equiv.optionCongr_swap
code: @[simp]
theorem Equiv.optionCongr_swap {α : Type*} [DecidableEq α] (x y : α) :
    optionCongr (swap x y) = swap (some x) (some y) 
goal: Equiv.optionCongr (Equiv.swap x y) = Equiv.swap (some x) (some y)

full_name: Equiv.optionCongr_sign
code: @[simp]
theorem Equiv.optionCongr_sign {α : Type*} [DecidableEq α] [Fintype α] (e : Perm α) :
    Perm.sign e.optionCongr = Perm.sign e 
goal: Equiv.Perm.sign (Equiv.optionCongr e) = Equiv.Perm.sign e

full_name: map_equiv_removeNone
code: @[simp]
theorem map_equiv_removeNone {α : Type*} [DecidableEq α] (σ : Perm (Option α)) :
    (removeNone σ).optionCongr = swap none (σ none) * σ 
goal: (Equiv.removeNone σ).optionCongr = Equiv.swap none (σ none) * σ

full_name: Equiv.Perm.decomposeOption_symm_apply
code: /-- Permutations of `Option α` are equivalent to fixing an
`Option α` and permuting the remaining with a `Perm α`.
The fixed `Option α` is swapped with `none`. -/
@[simps]
def Equiv.Perm.decomposeOption {α : Type*} [DecidableEq α] :
    Perm (Option α) ≃ Option α × Perm α 
goal: Equiv.Perm.decomposeOption.symm i = Equiv.swap none i.1 * Equiv.optionCongr i.2

full_name: Equiv.Perm.decomposeOption_apply
code: /-- Permutations of `Option α` are equivalent to fixing an
`Option α` and permuting the remaining with a `Perm α`.
The fixed `Option α` is swapped with `none`. -/
@[simps]
def Equiv.Perm.decomposeOption {α : Type*} [DecidableEq α] :
    Perm (Option α) ≃ Option α × Perm α 
goal: Equiv.Perm.decomposeOption σ = (σ none, Equiv.removeNone σ)

full_name: Equiv.Perm.decomposeOption
code: /-- Permutations of `Option α` are equivalent to fixing an
`Option α` and permuting the remaining with a `Perm α`.
The fixed `Option α` is swapped with `none`. -/
@[simps]
def Equiv.Perm.decomposeOption {α : Type*} [DecidableEq α] :
    Perm (Option α) ≃ Option α × Perm α 
goal: Equiv.Perm (Option α) ≃ Option α × Equiv.Perm α

full_name: Equiv.Perm.decomposeOption_symm_of_none_apply
code: theorem Equiv.Perm.decomposeOption_symm_of_none_apply {α : Type*} [DecidableEq α] (e : Perm α)
    (i : Option α) : Equiv.Perm.decomposeOption.symm (none, e) i = i.map e 
goal: (Equiv.Perm.decomposeOption.symm (none, e)) i = Option.map (⇑e) i

full_name: Equiv.Perm.decomposeOption_symm_sign
code: theorem Equiv.Perm.decomposeOption_symm_sign {α : Type*} [DecidableEq α] [Fintype α] (e : Perm α) :
    Perm.sign (Equiv.Perm.decomposeOption.symm (none, e)) = Perm.sign e 
goal: Equiv.Perm.sign (Equiv.Perm.decomposeOption.symm (none, e)) = Equiv.Perm.sign e

full_name: Finset.univ_perm_option
code: /-- The set of all permutations of `Option α` can be constructed by augmenting the set of
permutations of `α` by each element of `Option α` in turn. -/
theorem Finset.univ_perm_option {α : Type*} [DecidableEq α] [Fintype α] :
    @Finset.univ (Perm <| Option α) _ =
      (Finset.univ : Finset <| Option α × Perm α).map Equiv.Perm.decomposeOption.symm.toEmbedding 
goal: Finset.univ = Finset.map Equiv.Perm.decomposeOption.symm.toEmbedding Finset.univ