diff -r 570f90f175ee -r 9b42765ce554 Current_prop.thy --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Current_prop.thy Tue Jun 04 15:51:02 2013 +0800 @@ -0,0 +1,51 @@ +theory Current_prop +imports Main Flask_type Flask My_list_prefix Init_prop Valid_prop Delete_prop +begin +(*<*) + +context flask begin + +lemma procs_of_shm_prop1: "\ p_flag \ procs_of_shm s h; valid s\ \ h \ current_shms s" +apply (induct s arbitrary:p_flag) +apply (case_tac p_flag, simp, drule init_procs_has_shm, simp) +apply (frule vd_cons, frule vt_grant_os) +apply (case_tac a, auto split:if_splits option.splits) +done + +lemma procs_of_shm_prop2: "\(p, flag) \ procs_of_shm s h; valid s\ \ p \ current_procs s" +apply (induct s arbitrary:p flag) +apply (simp, drule init_procs_has_shm, simp) +apply (frule vd_cons, frule vt_grant_os) +apply (case_tac a, auto split:if_splits option.splits) +done + +lemma procs_of_shm_prop3: "\(p, flag) \ procs_of_shm s h; (p, flag') \ procs_of_shm s h; valid s\ + \ flag = flag'" +apply (induct s arbitrary:p flag flag') +apply (simp, drule_tac flag = flag in init_procs_has_shm, drule_tac flag = flag' in init_procs_has_shm, simp) +apply (frule vd_cons, frule vt_grant_os) +apply (case_tac a, auto split:if_splits option.splits dest:procs_of_shm_prop2) +done + +lemma procs_of_shm_prop4: "\(p, flag) \ procs_of_shm s h; valid s\ \ flag_of_proc_shm s p h = Some flag" +apply (induct s arbitrary:p flag) +apply (simp, drule init_procs_has_shm, simp) +apply (frule vd_cons, frule vt_grant_os) +apply (case_tac a, auto split:if_splits option.splits dest:procs_of_shm_prop2) +done + +lemma procs_of_shm_prop4': + "\flag_of_proc_shm s p h = None; valid s\ \ \ flag. (p, flag) \ procs_of_shm s h" +by (auto dest:procs_of_shm_prop4) + +lemma not_init_intro_proc: + "\p \ current_procs s; valid s\ \ deleted (O_proc p) s \ p \ init_procs" +using not_deleted_init_proc by auto + +lemma not_init_intro_proc': + "\p \ current_procs s; valid s\ \ \ (\ deleted (O_proc p) s \ p \ init_procs)" +using not_deleted_init_proc by auto + +end + +end \ No newline at end of file