diff -r b992684e9ff6 -r dcde836219bc deleted_prop.thy --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/deleted_prop.thy Fri Apr 12 10:43:11 2013 +0100 @@ -0,0 +1,49 @@ +theory deleted_prop +imports Main rc_theory os_rc +begin + +context tainting begin + +lemma deleted_cons_I: "deleted obj s \ deleted obj (e # s)" +by (case_tac e, auto) + +lemma not_deleted_cons_D: "\ deleted obj (e # s) \ \ deleted obj s" +by (auto dest:deleted_cons_I) + +lemma not_deleted_imp_exists: + "\\ deleted obj s; exists [] obj\ \ exists s obj" +apply (induct s, simp) +apply (case_tac a, case_tac [!] obj, auto) +done + +lemma cons_app_simp_aux: + "(a # b) @ c = a # (b @ c)" by auto + +lemma not_deleted_imp_exists': + "\\ deleted obj (s'@s); exists s obj\ \ exists (s'@s) obj" +apply (induct s', simp, simp only:cons_app_simp_aux) +apply (frule not_deleted_cons_D) +apply (case_tac a, case_tac [!] obj, auto) +done + +lemma nodel_imp_un_deleted: + "no_del_event s \ \ deleted obj s" +by (induct s, simp, case_tac a,auto) + +lemma nodel_exists_remains: + "\no_del_event (s'@s); exists s obj\ \ exists (s'@s) obj" +apply (drule_tac obj = obj in nodel_imp_un_deleted) +by (simp add:not_deleted_imp_exists') + +lemma nodel_imp_exists: + "\no_del_event s; exists [] obj\ \ exists s obj" +apply (drule_tac obj = obj in nodel_imp_un_deleted) +by (simp add:not_deleted_imp_exists) + +lemma no_del_event_cons_D: + "no_del_event (e # s) \ no_del_event s" +by (case_tac e, auto) + +end + +end \ No newline at end of file