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)