# Transpositions of standard finite types
```agda
{-# OPTIONS --lossy-unification #-}
module finite-group-theory.transpositions-standard-finite-types where
```
<details><summary>Imports</summary>
```agda
open import elementary-number-theory.natural-numbers
open import finite-group-theory.permutations-standard-finite-types
open import finite-group-theory.transpositions
open import foundation.action-on-identifications-functions
open import foundation.coproduct-types
open import foundation.dependent-pair-types
open import foundation.empty-types
open import foundation.equivalence-extensionality
open import foundation.equivalences
open import foundation.function-types
open import foundation.functoriality-coproduct-types
open import foundation.homotopies
open import foundation.identity-types
open import foundation.negated-equality
open import foundation.negation
open import foundation.propositions
open import foundation.unit-type
open import foundation.universe-levels
open import foundation.whiskering-homotopies-composition
open import lists.functoriality-lists
open import lists.lists
open import univalent-combinatorics.equality-standard-finite-types
open import univalent-combinatorics.standard-finite-types
```
</details>
## Idea
Given `i` and `j` in `Fin n`, the transposition associated to `i` and `j` swap
these two elements.
## Definitions
### Transpositions on `Fin n`
This definition uses the `standard-transposition` in
[`finite-group-theory.transposition`](finite-group-theory.transpositions.md).
```agda
module _
(n : ℕ) (i j : Fin n) (neq : i ≠ j)
where
transposition-Fin : Permutation n
transposition-Fin = standard-transposition (has-decidable-equality-Fin n) neq
map-transposition-Fin : Fin n → Fin n
map-transposition-Fin =
map-standard-transposition (has-decidable-equality-Fin n) neq
left-computation-transposition-Fin :
map-standard-transposition (has-decidable-equality-Fin n) neq i = j
left-computation-transposition-Fin =
left-computation-standard-transposition (has-decidable-equality-Fin n) neq
right-computation-transposition-Fin :
map-standard-transposition (has-decidable-equality-Fin n) neq j = i
right-computation-transposition-Fin =
right-computation-standard-transposition (has-decidable-equality-Fin n) neq
is-fixed-point-transposition-Fin :
(z : Fin n) →
i ≠ z →
j ≠ z →
map-standard-transposition (has-decidable-equality-Fin n) neq z = z
is-fixed-point-transposition-Fin =
is-fixed-point-standard-transposition (has-decidable-equality-Fin n) neq
```
### The transposition that swaps the two last elements of `Fin (succ-ℕ (succ-ℕ n))`
We define directly the transposition of `Fin (succ-ℕ (succ-ℕ n))` that exchanges
the two elements associated to `n` and `succ-ℕ n`.
```agda
module _
(n : ℕ)
where
map-swap-two-last-elements-transposition-Fin :
Fin (succ-ℕ (succ-ℕ n)) → Fin (succ-ℕ (succ-ℕ n))
map-swap-two-last-elements-transposition-Fin (inl (inl x)) = inl (inl x)
map-swap-two-last-elements-transposition-Fin (inl (inr star)) = inr star
map-swap-two-last-elements-transposition-Fin (inr star) = inl (inr star)
is-involution-map-swap-two-last-elements-transposition-Fin :
( map-swap-two-last-elements-transposition-Fin ∘
map-swap-two-last-elements-transposition-Fin) ~
id
is-involution-map-swap-two-last-elements-transposition-Fin (inl (inl x)) =
refl
is-involution-map-swap-two-last-elements-transposition-Fin (inl (inr star)) =
refl
is-involution-map-swap-two-last-elements-transposition-Fin (inr star) = refl
swap-two-last-elements-transposition-Fin : Permutation (succ-ℕ (succ-ℕ n))
pr1 swap-two-last-elements-transposition-Fin =
map-swap-two-last-elements-transposition-Fin
pr2 swap-two-last-elements-transposition-Fin =
is-equiv-is-invertible
map-swap-two-last-elements-transposition-Fin
is-involution-map-swap-two-last-elements-transposition-Fin
is-involution-map-swap-two-last-elements-transposition-Fin
```
We show that this definiton is an instance of the previous one.
```agda
cases-htpy-swap-two-last-elements-transposition-Fin :
(x : Fin (succ-ℕ (succ-ℕ n))) →
(x = neg-one-Fin (succ-ℕ n)) + (x ≠ neg-one-Fin (succ-ℕ n)) →
(x = neg-two-Fin (succ-ℕ n)) + (x ≠ neg-two-Fin (succ-ℕ n)) →
map-swap-two-last-elements-transposition-Fin x =
map-transposition-Fin
( succ-ℕ (succ-ℕ n))
( neg-two-Fin (succ-ℕ n))
( neg-one-Fin (succ-ℕ n))
( neq-inl-inr)
( x)
cases-htpy-swap-two-last-elements-transposition-Fin _ (inl refl) _ =
inv
( right-computation-transposition-Fin
( succ-ℕ (succ-ℕ n))
( neg-two-Fin (succ-ℕ n))
( neg-one-Fin (succ-ℕ n))
( neq-inl-inr))
cases-htpy-swap-two-last-elements-transposition-Fin _ (inr p) (inl refl) =
inv
( left-computation-transposition-Fin
( succ-ℕ (succ-ℕ n))
( neg-two-Fin (succ-ℕ n))
( neg-one-Fin (succ-ℕ n))
( neq-inl-inr))
cases-htpy-swap-two-last-elements-transposition-Fin
( inl (inl x))
( inr p)
( inr q) =
inv
( is-fixed-point-transposition-Fin
( succ-ℕ (succ-ℕ n))
( neg-two-Fin (succ-ℕ n))
( neg-one-Fin (succ-ℕ n))
( neq-inl-inr)
( inl (inl x))
( q ∘ inv)
( p ∘ inv))
cases-htpy-swap-two-last-elements-transposition-Fin
( inl (inr star))
( inr p)
( inr q) = ex-falso (q refl)
cases-htpy-swap-two-last-elements-transposition-Fin
( inr star)
( inr p)
( inr q) = ex-falso (p refl)
htpy-swap-two-last-elements-transposition-Fin :
htpy-equiv
( swap-two-last-elements-transposition-Fin)
( transposition-Fin
( succ-ℕ (succ-ℕ n))
( neg-two-Fin (succ-ℕ n))
( neg-one-Fin (succ-ℕ n))
( neq-inl-inr))
htpy-swap-two-last-elements-transposition-Fin x =
cases-htpy-swap-two-last-elements-transposition-Fin
( x)
( has-decidable-equality-Fin
( succ-ℕ (succ-ℕ n))
( x)
( neg-one-Fin (succ-ℕ n)))
( has-decidable-equality-Fin
( succ-ℕ (succ-ℕ n))
( x)
( neg-two-Fin (succ-ℕ n)))
```
### Transpositions of a pair of adjacent elements in `Fin (succ-ℕ n)`
#### Definition using `swap-two-last-elements-transposition-Fin`
```agda
adjacent-transposition-Fin :
(n : ℕ) → (k : Fin n) →
Permutation (succ-ℕ n)
adjacent-transposition-Fin (succ-ℕ n) (inl x) =
equiv-coproduct (adjacent-transposition-Fin n x) id-equiv
adjacent-transposition-Fin (succ-ℕ n) (inr x) =
swap-two-last-elements-transposition-Fin n
map-adjacent-transposition-Fin :
(n : ℕ) → (k : Fin n) →
(Fin (succ-ℕ n) → Fin (succ-ℕ n))
map-adjacent-transposition-Fin n k = map-equiv (adjacent-transposition-Fin n k)
```
#### `adjacent-transposition-Fin` is an instance of the definiton `transposition-Fin`
```agda
cases-htpy-map-coproduct-map-transposition-id-Fin :
(n : ℕ) → (k l : Fin n) → (neq : k ≠ l) →
(x : Fin (succ-ℕ n)) →
(x = inl-Fin n k) + (x ≠ inl-Fin n k) →
(x = inl-Fin n l) + (x ≠ inl-Fin n l) →
map-coproduct (map-transposition-Fin n k l neq) id x =
map-transposition-Fin
( succ-ℕ n)
( inl-Fin n k)
( inl-Fin n l)
( neq ∘ is-injective-inl-Fin n)
( x)
cases-htpy-map-coproduct-map-transposition-id-Fin n k l neq x (inl refl) _ =
( ( ap
( inl-Fin n)
( left-computation-transposition-Fin n k l neq)) ∙
( inv
( left-computation-transposition-Fin
( succ-ℕ n)
( inl-Fin n k)
( inl-Fin n l)
( neq ∘ is-injective-inl-Fin n))))
cases-htpy-map-coproduct-map-transposition-id-Fin
( n)
( k)
( l)
( neq)
( x)
( inr _)
( inl refl) =
( ( ap
( inl-Fin n)
( right-computation-transposition-Fin n k l neq)) ∙
( inv
( right-computation-transposition-Fin
( succ-ℕ n)
( inl-Fin n k)
( inl-Fin n l)
( neq ∘ is-injective-inl-Fin n))))
cases-htpy-map-coproduct-map-transposition-id-Fin
( n)
( k)
( l)
( neq)
( inl x)
( inr neqk)
( inr neql) =
( ( ap
( inl-Fin n)
( is-fixed-point-transposition-Fin
( n)
( k)
( l)
( neq)
( x)
( neqk ∘ (inv ∘ ap (inl-Fin n)))
( neql ∘ (inv ∘ ap (inl-Fin n))))) ∙
( inv
( is-fixed-point-transposition-Fin
( succ-ℕ n)
( inl-Fin n k)
( inl-Fin n l)
( neq ∘ is-injective-inl-Fin n)
( inl x)
( neqk ∘ inv)
( neql ∘ inv))))
cases-htpy-map-coproduct-map-transposition-id-Fin
( n)
( k)
( l)
( neq)
( inr star)
( inr neqk)
( inr neql) =
inv
( is-fixed-point-transposition-Fin
( succ-ℕ n)
( inl-Fin n k)
( inl-Fin n l)
( neq ∘ is-injective-inl-Fin n)
( inr star)
( neqk ∘ inv)
( neql ∘ inv))
htpy-map-coproduct-map-transposition-id-Fin :
(n : ℕ) → (k l : Fin n) → (neq : k ≠ l) →
htpy-equiv
( equiv-coproduct (transposition-Fin n k l neq) id-equiv)
( transposition-Fin
( succ-ℕ n)
( inl-Fin n k)
( inl-Fin n l)
( neq ∘ is-injective-inl-Fin n))
htpy-map-coproduct-map-transposition-id-Fin n k l neq x =
cases-htpy-map-coproduct-map-transposition-id-Fin
( n)
( k)
( l)
( neq)
( x)
( has-decidable-equality-Fin (succ-ℕ n) x (inl-Fin n k))
( has-decidable-equality-Fin (succ-ℕ n) x (inl-Fin n l))
helper-htpy-same-transposition-Fin :
(n : ℕ) (k l : Fin n) (neq1 : k ≠ l) (neq2 : k ≠ l) →
(neq1 = neq2) →
htpy-equiv
( transposition-Fin n k l neq1)
( transposition-Fin n k l neq2)
helper-htpy-same-transposition-Fin n k l neq1 .neq1 refl = refl-htpy
htpy-same-transposition-Fin :
{n : ℕ} {k l : Fin n} {neq1 : k ≠ l} {neq2 : k ≠ l} →
htpy-equiv
( transposition-Fin n k l neq1)
( transposition-Fin n k l neq2)
htpy-same-transposition-Fin {n} {k} {l} {neq1} {neq2} =
helper-htpy-same-transposition-Fin n k l neq1 neq2 (eq-is-prop is-prop-neg)
htpy-adjacent-transposition-Fin :
(n : ℕ) → (k : Fin n) →
htpy-equiv
( adjacent-transposition-Fin n k)
( transposition-Fin
( succ-ℕ n)
( inl-Fin n k)
( inr-Fin n k)
( neq-inl-Fin-inr-Fin n k))
htpy-adjacent-transposition-Fin (succ-ℕ n) (inl x) =
( ( htpy-map-coproduct (htpy-adjacent-transposition-Fin n x) refl-htpy) ∙h
( ( htpy-map-coproduct-map-transposition-id-Fin
( succ-ℕ n)
( inl-Fin n x)
( inr-Fin n x)
( neq-inl-Fin-inr-Fin n x)) ∙h
( htpy-same-transposition-Fin)))
htpy-adjacent-transposition-Fin (succ-ℕ n) (inr star) =
htpy-swap-two-last-elements-transposition-Fin n
```
## Properties
### The transposition associated to `i` and `j` is homotopic to the one associated with `j` and `i`
```agda
cases-htpy-transposition-Fin-transposition-swap-Fin :
(n : ℕ) → (i j : Fin n) → (neq : i ≠ j) → (x : Fin n) →
(x = i) + (x ≠ i) →
(x = j) + (x ≠ j) →
map-transposition-Fin n i j neq x =
map-transposition-Fin n j i (neq ∘ inv) x
cases-htpy-transposition-Fin-transposition-swap-Fin
( n)
( i)
( j)
( neq)
( .i)
( inl refl) _ =
left-computation-transposition-Fin n i j neq ∙
inv (right-computation-transposition-Fin n j i (neq ∘ inv))
cases-htpy-transposition-Fin-transposition-swap-Fin
( n)
( i)
( j)
( neq)
( .j)
( inr _)
( inl refl) =
right-computation-transposition-Fin n i j neq ∙
inv (left-computation-transposition-Fin n j i (neq ∘ inv))
cases-htpy-transposition-Fin-transposition-swap-Fin
( n)
( i)
( j)
( neq)
( x)
( inr neqi)
( inr neqj) =
is-fixed-point-transposition-Fin
( n)
( i)
( j)
( neq)
( x)
( neqi ∘ inv)
( neqj ∘ inv) ∙
inv
(is-fixed-point-transposition-Fin
( n)
( j)
( i)
( neq ∘ inv)
( x)
( neqj ∘ inv)
( neqi ∘ inv))
htpy-transposition-Fin-transposition-swap-Fin :
(n : ℕ) → (i j : Fin n) → (neq : i ≠ j) →
htpy-equiv
( transposition-Fin n i j neq)
( transposition-Fin n j i (neq ∘ inv))
htpy-transposition-Fin-transposition-swap-Fin n i j neq x =
cases-htpy-transposition-Fin-transposition-swap-Fin
( n)
( i)
( j)
( neq)
( x)
( has-decidable-equality-Fin n x i)
( has-decidable-equality-Fin n x j)
```
### The conjugate of a transposition is also a transposition
```agda
htpy-conjugate-transposition-Fin :
(n : ℕ) (x y z : Fin n)
(neqxy : x ≠ y)
(neqyz : y ≠ z)
(neqxz : x ≠ z) →
htpy-equiv
( transposition-Fin n y z neqyz ∘e
( transposition-Fin n x y neqxy ∘e
transposition-Fin n y z neqyz))
( transposition-Fin n x z neqxz)
htpy-conjugate-transposition-Fin n x y z neqxy neqyz neqxz =
htpy-conjugate-transposition
( has-decidable-equality-Fin n)
( neqxy)
( neqyz)
( neqxz)
private
htpy-whisker-conjugate :
{l1 : Level} {A : UU l1} {f f' : A → A} (g : A → A) →
(f ~ f') → (f ∘ (g ∘ f)) ~ (f' ∘ (g ∘ f'))
htpy-whisker-conjugate {f = f} {f' = f'} g H x =
H (g ( f x)) ∙ ap (f' ∘ g) (H x)
htpy-conjugate-transposition-swap-two-last-elements-transposition-Fin :
(n : ℕ) (x : Fin (succ-ℕ n)) (neq : x ≠ neg-one-Fin n) →
htpy-equiv
( swap-two-last-elements-transposition-Fin n ∘e
( transposition-Fin
( succ-ℕ (succ-ℕ n))
( inl-Fin (succ-ℕ n) x)
( neg-two-Fin (succ-ℕ n))
( neq ∘ is-injective-inl-Fin (succ-ℕ n)) ∘e
swap-two-last-elements-transposition-Fin n))
( transposition-Fin
( succ-ℕ (succ-ℕ n))
( inl-Fin (succ-ℕ n) x)
( neg-one-Fin (succ-ℕ n))
( neq-inl-inr))
htpy-conjugate-transposition-swap-two-last-elements-transposition-Fin n x neq =
( ( htpy-whisker-conjugate
( map-transposition-Fin
( succ-ℕ (succ-ℕ n))
( inl-Fin (succ-ℕ n) x)
( neg-two-Fin (succ-ℕ n))
( neq ∘ is-injective-inl-Fin (succ-ℕ n)))
( htpy-swap-two-last-elements-transposition-Fin n)) ∙h
( ( htpy-conjugate-transposition-Fin
( succ-ℕ (succ-ℕ n))
( inl-Fin (succ-ℕ n) x)
( neg-two-Fin (succ-ℕ n))
( neg-one-Fin (succ-ℕ n))
( neq ∘ is-injective-inl-Fin (succ-ℕ n))
( neq-inl-inr)
( neq-inl-inr))))
htpy-conjugate-transposition-swap-two-last-elements-transposition-Fin' :
(n : ℕ) (x : Fin (succ-ℕ n)) (neq : x ≠ neg-one-Fin n) →
htpy-equiv
( swap-two-last-elements-transposition-Fin n ∘e
( transposition-Fin
( succ-ℕ (succ-ℕ n))
( neg-two-Fin (succ-ℕ n))
( inl-Fin (succ-ℕ n) x)
( neq ∘ (is-injective-inl-Fin (succ-ℕ n) ∘ inv)) ∘e
swap-two-last-elements-transposition-Fin n))
( transposition-Fin
( succ-ℕ (succ-ℕ n))
( neg-one-Fin (succ-ℕ n))
( inl-Fin (succ-ℕ n) x)
( neq-inr-inl))
htpy-conjugate-transposition-swap-two-last-elements-transposition-Fin' n x neq =
( ( double-whisker-comp
( map-swap-two-last-elements-transposition-Fin n)
( ( htpy-transposition-Fin-transposition-swap-Fin
( succ-ℕ (succ-ℕ n))
( neg-two-Fin (succ-ℕ n))
( inl-Fin (succ-ℕ n) x)
( neq ∘ (is-injective-inl-Fin (succ-ℕ n) ∘ inv))) ∙h
htpy-same-transposition-Fin)
( map-swap-two-last-elements-transposition-Fin n)) ∙h
( ( htpy-conjugate-transposition-swap-two-last-elements-transposition-Fin
( n)
( x)
( neq) ∙h
( ( htpy-transposition-Fin-transposition-swap-Fin
( succ-ℕ (succ-ℕ n))
( inl-Fin (succ-ℕ n) x)
( neg-one-Fin (succ-ℕ n))
( neq-inl-inr)) ∙h
htpy-same-transposition-Fin))))
```
### Every transposition is the composition of a list of adjacent transpositions
```agda
list-adjacent-transpositions-transposition-Fin :
(n : ℕ) → (i j : Fin (succ-ℕ n)) →
list (Fin n)
list-adjacent-transpositions-transposition-Fin n (inr _) (inr _) = nil
list-adjacent-transpositions-transposition-Fin 0 (inl _) (inr _) = nil
list-adjacent-transpositions-transposition-Fin 0 (inl _) (inl _) = nil
list-adjacent-transpositions-transposition-Fin 0 (inr _) (inl _) = nil
list-adjacent-transpositions-transposition-Fin
( succ-ℕ n)
( inl i)
( inl j) =
map-list (inl-Fin n) (list-adjacent-transpositions-transposition-Fin n i j)
list-adjacent-transpositions-transposition-Fin
( succ-ℕ n)
( inl (inr star))
( inr star) = cons (inr star) nil
list-adjacent-transpositions-transposition-Fin
( succ-ℕ n)
( inl (inl i))
( inr star) =
snoc
( cons
( inr star)
( map-list
( inl-Fin n)
( list-adjacent-transpositions-transposition-Fin n (inl i) (inr star))))
( inr star)
list-adjacent-transpositions-transposition-Fin
( succ-ℕ n)
( inr star)
( inl (inl j)) =
snoc
( cons
( inr star)
( map-list
( inl-Fin n)
( list-adjacent-transpositions-transposition-Fin n (inr star) (inl j))))
( inr star)
list-adjacent-transpositions-transposition-Fin
( succ-ℕ n)
( inr star)
( inl (inr star)) = cons (inr star) nil
permutation-list-adjacent-transpositions :
(n : ℕ) → list (Fin n) → Permutation (succ-ℕ n)
permutation-list-adjacent-transpositions n nil = id-equiv
permutation-list-adjacent-transpositions n (cons x l) =
adjacent-transposition-Fin n x ∘e
permutation-list-adjacent-transpositions n l
map-permutation-list-adjacent-transpositions :
(n : ℕ) → list (Fin n) → Fin (succ-ℕ n) → Fin (succ-ℕ n)
map-permutation-list-adjacent-transpositions n l =
map-equiv (permutation-list-adjacent-transpositions n l)
htpy-permutation-inl-list-adjacent-transpositions :
(n : ℕ) → (l : list (Fin n)) →
htpy-equiv
( permutation-list-adjacent-transpositions
( succ-ℕ n)
( map-list (inl-Fin n) l))
( equiv-coproduct
( permutation-list-adjacent-transpositions n l)
( id-equiv))
htpy-permutation-inl-list-adjacent-transpositions n nil =
inv-htpy (id-map-coproduct (Fin (succ-ℕ n)) unit)
htpy-permutation-inl-list-adjacent-transpositions n (cons x l) =
( map-coproduct (map-adjacent-transposition-Fin n x) id ·l
htpy-permutation-inl-list-adjacent-transpositions n l) ∙h
( inv-htpy
( preserves-comp-map-coproduct
( map-permutation-list-adjacent-transpositions n l)
( map-adjacent-transposition-Fin n x)
( id)
( id)))
htpy-permutation-snoc-list-adjacent-transpositions :
(n : ℕ) (l : list (Fin n)) (x : Fin n) →
htpy-equiv
( permutation-list-adjacent-transpositions n (snoc l x))
( permutation-list-adjacent-transpositions n l ∘e
adjacent-transposition-Fin n x)
htpy-permutation-snoc-list-adjacent-transpositions n nil x = refl-htpy
htpy-permutation-snoc-list-adjacent-transpositions n (cons y l) x =
map-adjacent-transposition-Fin n y ·l
htpy-permutation-snoc-list-adjacent-transpositions n l x
htpy-permutation-list-adjacent-transpositions-transposition-Fin :
(n : ℕ) (i j : Fin (succ-ℕ n)) (neq : i ≠ j) →
htpy-equiv
( permutation-list-adjacent-transpositions
( n)
( list-adjacent-transpositions-transposition-Fin n i j))
( transposition-Fin (succ-ℕ n) i j neq)
htpy-permutation-list-adjacent-transpositions-transposition-Fin
( 0)
( inr star)
( inr star)
( neq) = ex-falso (neq refl)
htpy-permutation-list-adjacent-transpositions-transposition-Fin
( succ-ℕ n)
( inl i)
( inl j)
( neq) =
( ( htpy-permutation-inl-list-adjacent-transpositions
( n)
( list-adjacent-transpositions-transposition-Fin n i j)) ∙h
( ( htpy-map-coproduct
( htpy-permutation-list-adjacent-transpositions-transposition-Fin
( n)
( i)
( j)
( neq ∘ (ap (inl-Fin (succ-ℕ n)))))
( refl-htpy)) ∙h
( ( htpy-map-coproduct-map-transposition-id-Fin
( succ-ℕ n)
( i)
( j)
( neq ∘ ap (inl-Fin (succ-ℕ n)))) ∙h
( htpy-same-transposition-Fin))))
htpy-permutation-list-adjacent-transpositions-transposition-Fin
( succ-ℕ n)
( inl (inl i))
( inr star)
( neq) =
( ( map-swap-two-last-elements-transposition-Fin n ·l
htpy-permutation-snoc-list-adjacent-transpositions
( succ-ℕ n)
( map-list
( inl-Fin n)
( list-adjacent-transpositions-transposition-Fin
( n)
( inl i)
( inr star)))
( inr star)) ∙h
( ( double-whisker-comp
( map-swap-two-last-elements-transposition-Fin n)
( ( htpy-permutation-inl-list-adjacent-transpositions
( n)
( list-adjacent-transpositions-transposition-Fin
( n)
( inl i)
( inr star))) ∙h
( htpy-map-coproduct
( htpy-permutation-list-adjacent-transpositions-transposition-Fin
( n)
( inl i)
( inr star)
( neq-inl-inr))
( refl-htpy) ∙h
htpy-map-coproduct-map-transposition-id-Fin
( succ-ℕ n)
( inl i)
( inr star)
( neq-inl-inr)))
( map-swap-two-last-elements-transposition-Fin n)) ∙h
( htpy-conjugate-transposition-swap-two-last-elements-transposition-Fin
( n)
( inl i)
( neq-inl-inr) ∙h
htpy-same-transposition-Fin)))
htpy-permutation-list-adjacent-transpositions-transposition-Fin
( succ-ℕ n)
( inl (inr star))
( inr star)
( neq) =
htpy-swap-two-last-elements-transposition-Fin n ∙h
htpy-same-transposition-Fin
htpy-permutation-list-adjacent-transpositions-transposition-Fin
( succ-ℕ n)
( inr star)
( inl (inl j))
( neq) =
( ( map-swap-two-last-elements-transposition-Fin n ·l
htpy-permutation-snoc-list-adjacent-transpositions
( succ-ℕ n)
( map-list
( inl-Fin n)
( list-adjacent-transpositions-transposition-Fin
( n)
( inr star)
( inl j)))
( inr star)) ∙h
( ( double-whisker-comp
( map-swap-two-last-elements-transposition-Fin n)
( ( htpy-permutation-inl-list-adjacent-transpositions
( n)
( list-adjacent-transpositions-transposition-Fin
( n)
( inr star)
( inl j))) ∙h
( ( htpy-map-coproduct
( htpy-permutation-list-adjacent-transpositions-transposition-Fin
( n)
( inr star)
( inl j)
( neq-inr-inl))
( refl-htpy)) ∙h
( ( htpy-map-coproduct-map-transposition-id-Fin
( succ-ℕ n)
( inr star)
( inl j)
( neq-inr-inl)) ∙h
( htpy-same-transposition-Fin))))
( map-swap-two-last-elements-transposition-Fin n)) ∙h
( ( htpy-conjugate-transposition-swap-two-last-elements-transposition-Fin'
( n)
( inl j)
( neq-inl-inr)) ∙h
htpy-same-transposition-Fin)))
htpy-permutation-list-adjacent-transpositions-transposition-Fin
( succ-ℕ n)
( inr star)
( inl (inr star))
( neq) =
htpy-swap-two-last-elements-transposition-Fin n ∙h
( ( htpy-transposition-Fin-transposition-swap-Fin
( succ-ℕ (succ-ℕ n))
( neg-two-Fin (succ-ℕ n))
( neg-one-Fin (succ-ℕ n))
( neq-inl-inr)) ∙h
htpy-same-transposition-Fin)
htpy-permutation-list-adjacent-transpositions-transposition-Fin
( succ-ℕ n)
( inr star)
( inr star)
( neq) = ex-falso (neq refl)
```