Section Perm.
Variable A: Type.
Inductive perm: list A -> list A -> Prop :=
perm_id: forall l, perm l l
| perm_swap: forall a b l,  perm (a::b::l) (b::a::l)
| perm_skip: forall a l1 l2,  perm l1 l2 -> perm (a::l1) (a::l2)
| perm_trans: forall l1 l2 l3, perm l1 l2 -> perm l2 l3 -> perm l1 l3.

Lemma perm_in_inv a l1: In a l1 -> exists l2, perm l1 (a:: l2).