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