let rec forall f xs = try List.fold_left (fun p x -> let q = f x in if F.is_false q then raise Trivial ; F.p_and p q) F.p_true xs with Trivial -> F.p_false