REAL_RAT_REDUCE_CONV : conv

SYNOPSIS
Evaluate subexpressions built up from rational literals of type :real, by proof.

DESCRIPTION
When applied to a term, REAL_RAT_REDUCE_CONV performs a recursive bottom-up evaluation by proof of subterms built from rational literals of type :real using the unary operators `--', `inv' and `abs', and the binary arithmetic (`+', `-', `*', `/', `pow') and relational (`<', `<=', `>', `>=', `=') operators, as well as propagating literals through logical operations, e.g. T /\ x <=> x, returning a theorem that the original and reduced terms are equal. The permissible rational literals are integer literals (&n or -- &n), ratios (&p / &q or -- &p / &q), or decimals (#DDD.DDDD or #DDD.DDDDeNN). Any numeric result is always put in the form &p / &q or -- &p / &q with q > 1 and p and q sharing no common factor, or simply &p or -- &p when that is impossible.

FAILURE CONDITIONS
Never fails, but may have no effect.

EXAMPLE
  # REAL_RAT_REDUCE_CONV
     `#3.1415926535 < &355 / &113 /\ &355 / &113 < &3 + &1 / &7`;;
  val it : thm =
    |- #3.1415926535 < &355 / &113 /\ &355 / &113 < &3 + &1 / &7 <=> T

SEE ALSO
NUM_REDUCE_CONV, REAL_RAT_ABS_CONV, REAL_RAT_ADD_CONV, REAL_RAT_DIV_CONV, REAL_RAT_EQ_CONV, REAL_RAT_GE_CONV, REAL_RAT_GT_CONV, REAL_RAT_INV_CONV, REAL_RAT_LE_CONV, REAL_RAT_LT_CONV, REAL_RAT_MAX_CONV, REAL_RAT_MIN_CONV, REAL_RAT_MUL_CONV, REAL_RAT_NEG_CONV, REAL_RAT_POW_CONV, REAL_RAT_RED_CONV, REAL_RAT_SUB_CONV.