Notation compatb := (Proper (E.eq==>Logic.eq)) (only parsing).

(* Specifications: *)
Lemma filter_1 : compatb f -> In x (filter f s) -> In x s.
Lemma filter_2 : compatb f -> In x (filter f s) -> f x = true.
Lemma filter_3 : compatb f -> In x s -> f x = true -> In x (filter f s).
Lemma for_all_1 : compatb f -> For_all (fun x => f x = true) s -> for_all f s = true.
Lemma for_all_2 : compatb f -> for_all f s = true -> For_all (fun x => f x = true) s.
Lemma exists_1 : compatb f -> Exists (fun x => f x = true) s -> exists_ f s = true.
Lemma exists_2 : compatb f -> exists_ f s = true -> Exists (fun x => f x = true) s.
Lemma elements_1 : In x s -> InA E.eq x (elements s).
Lemma elements_2 : InA E.eq x (elements s) -> In x s.