let p_implies p1 p2 =
  match val_of p1, val_of p2 with
    | Ptrue, _ -> p2
    | Pfalse, _ -> cut Ptrue p1
    | _, Ptrue -> cut Ptrue p2
    | _ -> Pimplies (p1, p2)