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