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