18 (* ---------------------------------------------------------------- *) |
18 (* ---------------------------------------------------------------- *) |
19 |
19 |
20 Goal "ex2seqC = (LAM ex. (%s. case ex of \ |
20 Goal "ex2seqC = (LAM ex. (%s. case ex of \ |
21 \ nil => (s,None,s)>>nil \ |
21 \ nil => (s,None,s)>>nil \ |
22 \ | x##xs => (flift1 (%pr. \ |
22 \ | x##xs => (flift1 (%pr. \ |
23 \ (s,Some (fst pr), snd pr)>> (ex2seqC`xs) (snd pr)) \ |
23 \ (s,Some (fst pr), snd pr)>> (ex2seqC$xs) (snd pr)) \ |
24 \ `x) \ |
24 \ $x) \ |
25 \ ))"; |
25 \ ))"; |
26 by (rtac trans 1); |
26 by (rtac trans 1); |
27 by (rtac fix_eq2 1); |
27 by (rtac fix_eq2 1); |
28 by (rtac ex2seqC_def 1); |
28 by (rtac ex2seqC_def 1); |
29 by (rtac beta_cfun 1); |
29 by (rtac beta_cfun 1); |
30 by (simp_tac (simpset() addsimps [flift1_def]) 1); |
30 by (simp_tac (simpset() addsimps [flift1_def]) 1); |
31 qed"ex2seqC_unfold"; |
31 qed"ex2seqC_unfold"; |
32 |
32 |
33 Goal "(ex2seqC `UU) s=UU"; |
33 Goal "(ex2seqC $UU) s=UU"; |
34 by (stac ex2seqC_unfold 1); |
34 by (stac ex2seqC_unfold 1); |
35 by (Simp_tac 1); |
35 by (Simp_tac 1); |
36 qed"ex2seqC_UU"; |
36 qed"ex2seqC_UU"; |
37 |
37 |
38 Goal "(ex2seqC `nil) s = (s,None,s)>>nil"; |
38 Goal "(ex2seqC $nil) s = (s,None,s)>>nil"; |
39 by (stac ex2seqC_unfold 1); |
39 by (stac ex2seqC_unfold 1); |
40 by (Simp_tac 1); |
40 by (Simp_tac 1); |
41 qed"ex2seqC_nil"; |
41 qed"ex2seqC_nil"; |
42 |
42 |
43 Goal "(ex2seqC `((a,t)>>xs)) s = \ |
43 Goal "(ex2seqC $((a,t)>>xs)) s = \ |
44 \ (s,Some a,t)>> ((ex2seqC`xs) t)"; |
44 \ (s,Some a,t)>> ((ex2seqC$xs) t)"; |
45 by (rtac trans 1); |
45 by (rtac trans 1); |
46 by (stac ex2seqC_unfold 1); |
46 by (stac ex2seqC_unfold 1); |
47 by (asm_full_simp_tac (simpset() addsimps [Consq_def,flift1_def]) 1); |
47 by (asm_full_simp_tac (simpset() addsimps [Consq_def,flift1_def]) 1); |
48 by (asm_full_simp_tac (simpset() addsimps [Consq_def,flift1_def]) 1); |
48 by (asm_full_simp_tac (simpset() addsimps [Consq_def,flift1_def]) 1); |
49 qed"ex2seqC_cons"; |
49 qed"ex2seqC_cons"; |