575 by (res_inst_tac [("z","z")] eq_Abs_Integ 1); |
575 by (res_inst_tac [("z","z")] eq_Abs_Integ 1); |
576 by (res_inst_tac [("z","w")] eq_Abs_Integ 1); |
576 by (res_inst_tac [("z","w")] eq_Abs_Integ 1); |
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 (res_inst_tac [("x","k")] exI 1); |
581 by (res_inst_tac [("x","k")] exI 1); |
581 by (asm_full_simp_tac (!simpset delsimps [add_Suc, add_Suc_right] |
582 by (asm_full_simp_tac (!simpset delsimps [add_Suc, add_Suc_right] |
582 addsimps ([add_Suc RS sym] @ add_ac)) 1); |
583 addsimps ([add_Suc RS sym] @ add_ac)) 1); |
583 (*To cancel x2, rename it to be first!*) |
584 (*To cancel x2, rename it to be first!*) |
584 by (rename_tac "a b c" 1); |
585 by (rename_tac "a b" 1); |
585 by (asm_full_simp_tac (!simpset delsimps [add_Suc_right] |
586 by (asm_full_simp_tac (!simpset delsimps [add_Suc_right] |
586 addsimps (add_left_cancel::add_ac)) 1); |
587 addsimps (add_left_cancel::add_ac)) 1); |
587 qed "zless_eq_zadd_Suc"; |
588 qed "zless_eq_zadd_Suc"; |
588 |
589 |
589 goalw Integ.thy [zless_def, znegative_def, zdiff_def, znat_def] |
590 goalw Integ.thy [zless_def, znegative_def, zdiff_def, znat_def] |