let rec p_conj = function
  | [] -> Ptrue
  | [p] -> p
  | p::ps -> p_and p (p_conj ps)