1 (* ---------------------------------------------------------------------- *)
3 (* ---------------------------------------------------------------------- *)
5 let NUM_REWRITES = ref [
13 ARITH_RULE `x + 0 = x`;
14 ARITH_RULE `0 + x = x`;
15 ARITH_RULE `1 * x = x`;
16 ARITH_RULE `x * 1 = x`;
19 let NUM_SIMP_TAC = REWRITE_TAC !NUM_REWRITES;;
21 let extend_num_rewrites l =
22 NUM_REWRITES := !NUM_REWRITES @ l;;
24 (* ---------------------------------------------------------------------- *)
26 (* ---------------------------------------------------------------------- *)
32 let REAL_REWRITES = ref [
54 REAL_ARITH `x - &0 = x`;
62 ARITH_RULE `-- &1 * x = -- x`;
63 ARITH_RULE `-- &1 * -- &1 = &1`;
64 ARITH_RULE `-- (-- x * y) = x * y`;
65 ARITH_RULE `x - x = &0`;
81 let REAL_SIMP_TAC = REWRITE_TAC (
85 let REAL_SOLVE_TAC = ASM_MESON_TAC (!REAL_REWRITES @ !REAL_ELIM);;
87 let extend_real_rewrites l =
88 REAL_REWRITES := !REAL_REWRITES @ l;;
90 let BASIC_REWRITES = ref (!REAL_REWRITES @ !NUM_REWRITES);;