Section Permutation.
Variable A:Type.
Inductive Permutation : list A -> list A -> Prop :=
| perm_nil: Permutation [] []
| perm_skip x l l' : Permutation l l' -> Permutation (x::l) (x::l')
| perm_swap x y l : Permutation (y::x::l) (x::y::l)
| perm_trans l l' l'' :
Permutation l l' -> Permutation l' l'' -> Permutation l l''.
Local Hint Constructors Permutation : core.
(** Some facts about [Permutation] *)
(** Permutation over lists is a equivalence relation *)

Theorem Permutation_sym : forall l l' : list A,
Permutation l l' -> Permutation l' l.