let por = function
  | Ptrue, _ | _,Ptrue -> Ptrue
  | Pfalse,p |p,Pfalse -> p
  | p,p' -> Por (p,p')