--- a/Nominal/Ex/CPS/CPS3_DanvyFilinski.thy Mon Jul 11 23:42:52 2011 +0900
+++ b/Nominal/Ex/CPS/CPS3_DanvyFilinski.thy Tue Jul 12 03:12:32 2011 +0900
@@ -1,9 +1,6 @@
header {* CPS transformation of Danvy and Filinski *}
theory CPS3_DanvyFilinski imports Lt begin
-lemma TODO: "eqvt_at f a \<Longrightarrow> eqvt_at f (p \<bullet> a)"
- sorry
-
nominal_primrec
CPS1 :: "lt \<Rightarrow> (lt \<Rightarrow> lt) \<Rightarrow> lt" ("_*_" [100,100] 100)
and
@@ -104,8 +101,7 @@
apply (case_tac "c = xa")
apply simp_all[2]
apply (rotate_tac 1)
- apply (drule TODO)
- apply (drule_tac x="(atom ca \<rightleftharpoons> atom x)" in spec)
+ apply (drule_tac q="(atom ca \<rightleftharpoons> atom x)" in eqvt_at_perm)
apply (simp add: swap_fresh_fresh)
apply (simp add: eqvt_at_def swap_fresh_fresh)
apply (thin_tac "eqvt_at CPS1_CPS2_sumC (Inr (M, c~))")
@@ -189,8 +185,7 @@
apply (case_tac "c = xa")
apply simp_all[2]
apply (rotate_tac 1)
- apply (drule TODO)
- apply (drule_tac x="(atom ca \<rightleftharpoons> atom x)" in spec)
+ apply (drule_tac q="(atom ca \<rightleftharpoons> atom x)" in eqvt_at_perm)
apply (simp add: swap_fresh_fresh)
apply (simp add: eqvt_at_def swap_fresh_fresh)
apply (thin_tac "eqvt_at CPS1_CPS2_sumC (Inr (M, c~))")
--- a/Nominal/Ex/CPS/CPS3_DanvyFilinski_FCB2.thy Mon Jul 11 23:42:52 2011 +0900
+++ b/Nominal/Ex/CPS/CPS3_DanvyFilinski_FCB2.thy Tue Jul 12 03:12:32 2011 +0900
@@ -70,12 +70,11 @@
apply (erule fresh_eqvt_at)
apply (simp add: supp_Inr finite_supp)
apply (simp add: fresh_Inr fresh_Pair lt.fresh fresh_at_base)
- apply (simp only: )
+ apply (simp only:)
+ apply (simp (no_asm))
apply (erule_tac c="a" in Abs_lst1_fcb2')
apply (simp add: Abs_fresh_iff lt.fresh)
apply (simp add: fresh_star_def fresh_Pair_elim lt.fresh fresh_at_base)
- apply (subgoal_tac "p \<bullet> CPS1_CPS2_sumC (Inr (M, a~)) = CPS1_CPS2_sumC (p \<bullet> (Inr (M, a~)))")
- apply (simp add: perm_supp_eq fresh_star_def lt.fresh)
oops
end