anchor.diff:  (* lists without duplicates, but do not remove subsumed disjuncts.           *)
   (*                                                                           *)
   (* In both cases the input term is supposed to be in NNF already. We do go   *)
  -(* inside quantifiers and transform their Choice.get <| body, but don't move them.         *)
  -(* ------------------------------------------------------------------------- *)
  +(* inside quantifiers and transform their body, but don't move them.         *)
  +(* ------------------------------------------------------------------------- *)
  +
   // WEAK_DNF_CONV: Converts a term already in negation normal form into disjunctive normal form.
   // DNF_CONV: Converts a term already in negation normal form into disjunctive normal form.
   let WEAK_DNF_CONV, DNF_CONV = 
  
positive.code: (* ------------------------------------------------------------------------- *)
  (* Pre-simplification.                                                       *)
  (* ------------------------------------------------------------------------- *)
  /// Applies basic propositional simplications and some miniscoping.
  let PRESIMP_CONV = 
  
negative.code: 
  open FSharp.Compatibility.OCaml
  open FSharp.Compatibility.OCaml.Num
  
  open ExtCore.Control
  
  open NHol
  open lib
  