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