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
                 | PFuncReturn (hash, f) -> PNot(PFuncReturn (hash, f))
                 | PFuncParam (hash, f, p) ->  PNot(PFuncParam (hash, f, p))
                 | PAnd (_,_)
                 | POr (_,_) -> assert false 
          ) clause