module Vec.Permutation {a} {A : Set a} where open import Data.Nat using (ℕ) open import Data.Vec open import Relation.Binary private variable n : ℕ xs ys zs : Vec A n infix 3 _↭_ data _↭_ : Rel (Vec A n) a where refl : xs ↭ xs prep : ∀ x → xs ↭ ys → x ∷ xs ↭ x ∷ ys swap : ∀ x y → xs ↭ ys → x ∷ y ∷ xs ↭ y ∷ x ∷ ys trans : xs ↭ ys → ys ↭ zs → xs ↭ zs