equal
deleted
inserted
replaced
490 |
490 |
491 Addsimprocs [fast_int_arith_simproc]; |
491 Addsimprocs [fast_int_arith_simproc]; |
492 |
492 |
493 (* FIXME: K true should be replaced by a sensible test to speed things up |
493 (* FIXME: K true should be replaced by a sensible test to speed things up |
494 in case there are lots of irrelevant terms involved. |
494 in case there are lots of irrelevant terms involved. |
495 *) |
495 |
496 val arith_tac = |
496 val arith_tac = |
497 refute_tac (K true) (REPEAT o split_tac[nat_diff_split]) |
497 refute_tac (K true) (REPEAT o split_tac[nat_diff_split]) |
498 ((REPEAT_DETERM o etac linorder_neqE) THEN' fast_arith_tac); |
498 ((REPEAT_DETERM o etac linorder_neqE) THEN' fast_arith_tac); |
|
499 *) |
499 |
500 |
500 (* Some test data |
501 (* Some test data |
501 Goal "!!a::int. [| a <= b; c <= d; x+y<z |] ==> a+c <= b+d"; |
502 Goal "!!a::int. [| a <= b; c <= d; x+y<z |] ==> a+c <= b+d"; |
502 by(fast_arith_tac 1); |
503 by(fast_arith_tac 1); |
503 Goal "!!a::int. [| a < b; c < d |] ==> a-d+ #2 <= b+(-c)"; |
504 Goal "!!a::int. [| a < b; c < d |] ==> a-d+ #2 <= b+(-c)"; |