method pred_atomic = function
    | Ptrue | Pfalse | Prel(_,[]) | Pcall _ -> true
    | Prel(r,_) -> operator_atomic (self#pred_relation r)
    | _ -> false