anchor.diff:  (* ------------------------------------------------------------------------- *)
   (* Real normalizer dealing with rational constants.                          *)
   (* ------------------------------------------------------------------------- *)
  +
   // REAL_POLY_NEG_CONV: Negates real polynomial while retaining canonical form.
   // REAL_POLY_ADD_CONV: Adds two real polynomials while retaining canonical form.
   // REAL_POLY_SUB_CONV: Subtracts two real polynomials while retaining canonical form.
  
positive.code: let REAL_ARITH_TAC = CONV_TAC REAL_ARITH
  
  /// Attempt to prove goal using basic algebra and linear arithmetic over the reals.
  let ASM_REAL_ARITH_TAC =
    REPEAT(FIRST_X_ASSUM(MP_TAC << Choice.get << check (not << is_forall << concl << Choice.get))) |>THEN<|
    REAL_ARITH_TAC
  
  (* ------------------------------------------------------------------------- *)
  (* A simple "field" rule.                                                    *)
  (* ------------------------------------------------------------------------- *)
  /// Prove basic 'field' facts over the reals.
  let REAL_FIELD =
    // CAUTION: change from value to function to delay its System.Exception
  
negative.code: (* ------------------------------------------------------------------------- *)
  (* Subtraction.                                                              *)
  (* ------------------------------------------------------------------------- *)
  
  /// Conversion to perform subtraction on two rational literals of type :real.
  let REAL_RAT_SUB_CONV = 
      let pth = prove((parse_term @"x - y = x + --y"), REWRITE_TAC [real_sub])
  