anchor.diff:      prove
           ((parse_term @"!n x y. ODD n ==> (x pow n < y pow n <=> x < y)"), 
            MESON_TAC [REAL_POW_LT2_ODD; REAL_POW_LE2_ODD; REAL_NOT_LE])
  +
   let REAL_POW_LE2_ODD_EQ = 
       prove
           ((parse_term @"!n x y. ODD n ==> (x pow n <= y pow n <=> x <= y)"), 
  
positive.code: 
  let REAL_ABS_ABS = 
      prove((parse_term @"!x. abs(abs(x)) = abs(x)"), REAL_ARITH_TAC)
  let REAL_ABS_LE = prove((parse_term @"!x. x <= abs(x)"), REAL_ARITH_TAC)
  
  let REAL_ABS_REFL = 
  
negative.code:         ((parse_term @"!x y z. &0 < z /\ x * z <= y * z ==> x <= y"), 
           ONCE_REWRITE_TAC [REAL_MUL_SYM]
           |> THEN <| REWRITE_TAC [REAL_LE_LCANCEL_IMP])
  
  let REAL_LE_RMUL_EQ = 
      prove
          ((parse_term @"!x y z. &0 < z ==> (x * z <= y * z <=> x <= y)"), 
           MESON_TAC [REAL_LE_RMUL; REAL_LE_RCANCEL_IMP; REAL_LT_IMP_LE])
  
  let REAL_LE_LMUL_EQ = 
      prove
          ((parse_term @"!x y z. &0 < z ==> (z * x <= z * y <=> x <= y)"), 
  