src/HOL/Integ/NatBin.ML
changeset 8257 fe9bf28e8a58
parent 8116 759f712f8f06
child 8423 3c19160b6432
equal deleted inserted replaced
8256:6ba8fa2b0638 8257:fe9bf28e8a58
   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;