src/HOL/Integ/Integ.ML
changeset 2683 be7b439baef2
parent 2596 3b4ad6c7726f
child 3725 c7fa890d0d92
equal deleted inserted replaced
2682:13cdbf95ed92 2683:be7b439baef2
   577 by (safe_tac (!claset));
   577 by (safe_tac (!claset));
   578 by (asm_full_simp_tac (!simpset addsimps [zadd, zminus]) 1);
   578 by (asm_full_simp_tac (!simpset addsimps [zadd, zminus]) 1);
   579 by (safe_tac (!claset addSDs [less_eq_Suc_add]));
   579 by (safe_tac (!claset addSDs [less_eq_Suc_add]));
   580 by (rename_tac "k" 1);
   580 by (rename_tac "k" 1);
   581 by (res_inst_tac [("x","k")] exI 1);
   581 by (res_inst_tac [("x","k")] exI 1);
   582 by (asm_full_simp_tac (!simpset delsimps [add_Suc, add_Suc_right]
       
   583                                 addsimps ([add_Suc RS sym] @ add_ac)) 1);
       
   584 (*To cancel x2, rename it to be first!*)
   582 (*To cancel x2, rename it to be first!*)
   585 by (rename_tac "a b" 1);
   583 by (rename_tac "a b c" 1);
       
   584 by (Asm_full_simp_tac 1);
   586 by (asm_full_simp_tac (!simpset delsimps [add_Suc_right]
   585 by (asm_full_simp_tac (!simpset delsimps [add_Suc_right]
   587                                 addsimps (add_left_cancel::add_ac)) 1);
   586                                 addsimps ([add_Suc_right RS sym] @ add_ac)) 1);
   588 qed "zless_eq_zadd_Suc";
   587 qed "zless_eq_zadd_Suc";
   589 
   588 
   590 goalw Integ.thy [zless_def, znegative_def, zdiff_def, znat_def] 
   589 goalw Integ.thy [zless_def, znegative_def, zdiff_def, znat_def] 
   591     "z < z + $#(Suc(n))";
   590     "z < z + $#(Suc(n))";
   592 by (res_inst_tac [("z","z")] eq_Abs_Integ 1);
   591 by (res_inst_tac [("z","z")] eq_Abs_Integ 1);