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)