(* examples for use with the "zero" prover *)
(* times are user/system/gc/real *)
(* original prover on left, exception optimized on right *)
(* each timing run was performed as follows:
1) fresh copy of the HOLL prover (under SML109.32)
2) declare exception UNCHANGED
3) load code for rule
4) load examples
5) load timing functions
6) check s1-->s13 in order
*)
val s1 = X "7 + (4 * (3 - 3))";
(* 0.100/0/0/0.115 0.140/0.010/0.020/0.151 *)
val s2 = X "(3 + 0 - 0) * 0";
(* 0.090/0/0/0.100 0.090/0/0/0.099 *)
val s3 = X "(3 + 7 + 8 * 9) * (0 - 0)";
(* 0.170/0/0/0.178 0.170/0/0/0.217 *)
val s4 = X "(8 + 0 - 0)";
(* 0.060/0/0/0.079 0.070/0/0/0.081 *)
val s5 = X "0 - 9";
(* 0.040/0/0/0.039 0.050/0.010/0/0.065 *)
val s6 = X "(9 + 0) - (7 * 0) + (0 + 0) + (0 + 14)";
(* 0.220/0/0/0.227 0.220/0/0/0.223 *)
val s7 = X "7 * (0 - 0 + 0 * 0 - 0 + 0)";
(* 0.170/0/0/0.172 0.200/0/0/0.208 *)
val s8 = X "(3 * 4 + 9 - 12) + (3 * 0) + (0 * 4) + (7 - 0 + 14 + 24 * 5)";
(* 0.390/0/0/0.400 0.400/0/0/0/0.406 *)
val s9 = X "x + 0";
(* 0.040/0/0/0.037 0.040/0/0/0.043 *)
val s10 = X "(f x) + 0";
(* 0.030/0/0/0.032 0.030/0/0/0.033 *)
val s11 = X "(f x) * 0";
(* 0.030/0/0/0.029 0.030/0/0/0.031 *)
val s12 = X("(3 * 4 + 9 - 12) + (3 * 0) + (0 * 4) + (7 - 0 + 14 + 24 * 5)"^
" + "^"(f x) * 0"^" - "^"7 * (0 - 0 + 0 * 0 - 0 + 0)");
(* 0.610/0/0/0.620 0.630/0/0/0.637 *)
val s13 = X ("1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 1 + 1 +"^
"0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0");
(* 0.530/0.010/0.010/0.559 0.540/0/0/0.550 *)
(* for what this is worth.....
consider the following four time sets:
0.540/0/0/0.550
0.500/0/0/0.550
0.520/0.010/0/0.519
0.570/0.030/0.020/0.619
the results of four consecutive tests of the
"optimized" zero prover on s13 *)