Definition eqarefl := (@Equivalence_Reflexive _ _ eqA_equiv).Definition eqatrans := (@Equivalence_Transitive _ _ eqA_equiv).Definition eqasym := (@Equivalence_Symmetric _ _ eqA_equiv).Ltac inv := invlist InA; invlist sort; invlist lelistA; invlist NoDupA.(** First, the two notions [equivlistA] and [eqlistA] are indeed equivlances *)

Global Instance equivlist_equiv : Equivalence equivlistA.Global Instance eqlistA_equiv : Equivalence eqlistA.(** 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.

Lemma NoDupA_app : forall l l', NoDupA l -> NoDupA l' -> (forall x, InA x l -> InA x l' -> False) -> NoDupA (l++l').