(** Moreover, [eqlistA] implies [equivlistA]. A reverse result will be proved later for sorted list without duplicates. *)
Global Instance eqlistA_equivlistA : subrelation eqlistA equivlistA.
(** InA is compatible with eqA (for its first arg) and with equivlistA (and hence eqlistA) for its second arg *)
Global Instance InA_compat : Proper (eqA==>equivlistA==>iff) InA.
(** For compatibility, an immediate consequence of [InA_compat] *)

(* Specifications: *)
Lemma InA_eqA : forall l x y, eqA x y -> InA x l -> InA y l.
#[local]
Hint Immediate InA_eqA : core.
Lemma In_InA : forall l x, In x l -> InA x l.
#[local]
Hint Resolve In_InA : core.
Lemma InA_split : forall l x, InA x l ->
exists l1 y l2, eqA x y /\ l = l1++y::l2.
Lemma InA_app : forall l1 l2 x,
InA x (l1 ++ l2) -> InA x l1 \/ InA x l2.
Lemma InA_app_iff : forall l1 l2 x,
InA x (l1 ++ l2) <-> InA x l1 \/ InA x l2.
Lemma InA_rev : forall p m,
InA p (rev m) <-> InA p m.