Section Fold_With_Restriction.
Variable R : A -> A -> Prop.
Hypothesis R_sym : Symmetric R.
Hypothesis R_compat : Proper (eqA==>eqA==>iff) R.
(*  (** [ForallOrdPairs R] is compatible with [equivlistA] over the lists without duplicates, as long as the relation [R] is symmetric and compatible with [eqA]. To prove this fact, we use an auxiliary notion: "forall distinct pairs, ...". *)
Definition ForallNeqPairs :=
ForallPairs (fun a b => ~eqA a b -> R a b).
(** [ForallOrdPairs] and [ForallNeqPairs] are related, but not completely equivalent. For proving one implication, we need to know that the list has no duplicated elements... *)
(** ... and for proving the other implication, we need to be able to reverse relation [R]. *)

Lemma ForallOrdPairs_ForallNeqPairs : forall l,
ForallOrdPairs R l -> ForallNeqPairs l.