equal
deleted
inserted
replaced
24 by (Blast_tac 1); |
24 by (Blast_tac 1); |
25 qed "par_beta_varL"; |
25 qed "par_beta_varL"; |
26 Addsimps [par_beta_varL]; |
26 Addsimps [par_beta_varL]; |
27 |
27 |
28 Goal "t => t"; |
28 Goal "t => t"; |
29 by (dB.induct_tac "t" 1); |
29 by (induct_tac "t" 1); |
30 by (ALLGOALS Asm_simp_tac); |
30 by (ALLGOALS Asm_simp_tac); |
31 qed"par_beta_refl"; |
31 qed"par_beta_refl"; |
32 Addsimps [par_beta_refl]; |
32 Addsimps [par_beta_refl]; |
33 (* AddSIs [par_beta_refl]; causes search to blow up *) |
33 (* AddSIs [par_beta_refl]; causes search to blow up *) |
34 |
34 |
50 qed "par_beta_subset_beta"; |
50 qed "par_beta_subset_beta"; |
51 |
51 |
52 (*** => ***) |
52 (*** => ***) |
53 |
53 |
54 Goal "!t' n. t => t' --> lift t n => lift t' n"; |
54 Goal "!t' n. t => t' --> lift t n => lift t' n"; |
55 by (dB.induct_tac "t" 1); |
55 by (induct_tac "t" 1); |
56 by (ALLGOALS(fast_tac (claset() addss (simpset())))); |
56 by (ALLGOALS(fast_tac (claset() addss (simpset())))); |
57 qed_spec_mp "par_beta_lift"; |
57 qed_spec_mp "par_beta_lift"; |
58 Addsimps [par_beta_lift]; |
58 Addsimps [par_beta_lift]; |
59 |
59 |
60 Goal |
60 Goal |
61 "!s s' t' n. s => s' --> t => t' --> t[s/n] => t'[s'/n]"; |
61 "!s s' t' n. s => s' --> t => t' --> t[s/n] => t'[s'/n]"; |
62 by (dB.induct_tac "t" 1); |
62 by (induct_tac "t" 1); |
63 by (asm_simp_tac (addsplit(simpset())) 1); |
63 by (asm_simp_tac (addsplit(simpset())) 1); |
64 by (strip_tac 1); |
64 by (strip_tac 1); |
65 by (eresolve_tac par_beta_cases 1); |
65 by (eresolve_tac par_beta_cases 1); |
66 by (Asm_simp_tac 1); |
66 by (Asm_simp_tac 1); |
67 by (asm_simp_tac (simpset() addsimps [subst_subst RS sym]) 1); |
67 by (asm_simp_tac (simpset() addsimps [subst_subst RS sym]) 1); |