(** Definition *)

Inductive CPermutation : list A -> list A -> Prop :=
| cperm : forall l1 l2, CPermutation (l1 ++ l2) (l2 ++ l1).(** Definition *)

Inductive CPermutation : list A -> list A -> Prop :=
| cperm : forall l1 l2, CPermutation (l1 ++ l2) (l2 ++ l1).Instance CPermutation_Permutation : Proper (CPermutation ==> (@Permutation A)) id.

Theorem CPermutation_nil : forall l, CPermutation [] l -> l = [].