let negativeClause clause =
List.map(fun term ->
match term with
| PNot(c) -> c
| PCall(s) -> PNot(PCall(s))
| PReturn(s) -> PNot(PReturn(s))
| PCallOrReturn(s) -> PNot(PCallOrReturn(s))
| PIndexedExp(s) -> PNot(PIndexedExp(s))
| PTrue -> PFalse
| PFalse -> PTrue
| _ -> assert false
) clause