461 |
461 |
462 Addsimps [eq_number_of_Suc, Suc_eq_number_of, |
462 Addsimps [eq_number_of_Suc, Suc_eq_number_of, |
463 less_number_of_Suc, less_Suc_number_of, |
463 less_number_of_Suc, less_Suc_number_of, |
464 le_number_of_Suc, le_Suc_number_of]; |
464 le_number_of_Suc, le_Suc_number_of]; |
465 |
465 |
466 (* Pusch int(.) inwards: *) |
466 (* Push int(.) inwards: *) |
467 Addsimps [int_Suc,zadd_int RS sym]; |
467 Addsimps [int_Suc,zadd_int RS sym]; |
|
468 |
|
469 (*** Prepare linear arithmetic for nat numerals ***) |
|
470 |
|
471 let |
|
472 |
|
473 (* reduce contradictory <= to False *) |
|
474 val add_rules = |
|
475 [add_nat_number_of, diff_nat_number_of, mult_nat_number_of, |
|
476 eq_nat_number_of, less_nat_number_of, le_nat_number_of_eq_not_less, |
|
477 le_Suc_number_of,le_number_of_Suc, |
|
478 less_Suc_number_of,less_number_of_Suc, |
|
479 Suc_eq_number_of,eq_number_of_Suc, |
|
480 eq_number_of_0, eq_0_number_of, less_0_number_of, |
|
481 nat_number_of, Let_number_of, if_True, if_False]; |
|
482 |
|
483 val simprocs = [Nat_Plus_Assoc.conv,Nat_Times_Assoc.conv]; |
|
484 |
|
485 in |
|
486 LA_Data_Ref.ss_ref := !LA_Data_Ref.ss_ref addsimps add_rules |
|
487 addsimprocs simprocs |
|
488 end; |