anchor.diff:       *)
       match l, r with
       | (ZFalse, _) | (_, ZTrue) -> ctx.MkTrue ()
  +    | (x, ZFalse) -> mkNot ctx x
       | (ZTrue, x) -> x
       | _ -> ctx.MkImplies (l, r)
   
  
positive.code: let mkNeq (ctx: Z3.Context) l r =
      ctx.MkNot (ctx.MkEq (l, r))
  
  /// Makes an implication from a pair of two expressions.
  let mkImplies (ctx: Z3.Context) l r =
      (* l => r <-> ¬l v r.
  
negative.code: let mkEq (ctx: Z3.Context) = curry ctx.MkEq
  /// Curried wrapper over MkDiv.
  let mkDiv (ctx: Z3.Context) = curry ctx.MkDiv
  