22 (*** Inequality lemmas involving int (Suc m) ***) |
22 (*** Inequality lemmas involving int (Suc m) ***) |
23 |
23 |
24 Goal "(w < z + int (Suc m)) = (w < z + int m | w = z + int m)"; |
24 Goal "(w < z + int (Suc m)) = (w < z + int m | w = z + int m)"; |
25 by (auto_tac (claset(), |
25 by (auto_tac (claset(), |
26 simpset() addsimps [zless_iff_Suc_zadd, zadd_assoc, zadd_int])); |
26 simpset() addsimps [zless_iff_Suc_zadd, zadd_assoc, zadd_int])); |
27 by (cut_inst_tac [("m","m")] int_Suc 1); |
27 by (cut_inst_tac [("m","m")] int_Suc_int_1 1); |
28 by (cut_inst_tac [("m","n")] int_Suc 1); |
28 by (cut_inst_tac [("m","n")] int_Suc_int_1 1); |
29 by (Asm_full_simp_tac 1); |
29 by (Asm_full_simp_tac 1); |
30 by (exhaust_tac "n" 1); |
30 by (exhaust_tac "n" 1); |
31 by Auto_tac; |
31 by Auto_tac; |
32 by (cut_inst_tac [("m","m")] int_Suc 1); |
32 by (cut_inst_tac [("m","m")] int_Suc_int_1 1); |
33 by (full_simp_tac (simpset() addsimps zadd_ac) 1); |
33 by (full_simp_tac (simpset() addsimps zadd_ac) 1); |
34 by (asm_full_simp_tac (simpset() addsimps [zadd_assoc RS sym]) 1); |
34 by (asm_full_simp_tac (simpset() addsimps [zadd_assoc RS sym]) 1); |
35 by (auto_tac (claset(), |
35 by (auto_tac (claset(), |
36 simpset() addsimps [zless_iff_Suc_zadd, zadd_assoc, zadd_int])); |
36 simpset() addsimps [zless_iff_Suc_zadd, zadd_assoc, zadd_int])); |
37 qed "zless_add_int_Suc_eq"; |
37 qed "zless_add_int_Suc_eq"; |