End Inclusion.
Hint Resolve incl_shift.
Definition inclp (X : Type) (A : list X) (p : X -> Prop) : Prop :=
forall x, x el A -> p x.
(* Setoid rewriting with list inclusion and list equivalence *)
Instance in_equi_proper X :
Proper (eq ==> @equi X ==> iff) (@In X).
(* Equivalence *)
Section Equi.
Variable X : Type.
Implicit Types A B : list X.

Lemma equi_push x A :
x el A -> A === x::A.