diff -r f27882976251 -r 289a30c4cfb7 Sectxt_prop.thy --- a/Sectxt_prop.thy Wed May 15 15:42:46 2013 +0800 +++ b/Sectxt_prop.thy Thu May 16 15:18:44 2013 +0800 @@ -617,11 +617,16 @@ apply (rule_tac f = "x # pf" in parentf_is_dir) by (auto simp:is_dir_def current_files_def split:option.splits t_inode_tag.splits) -lemma get_pfs_secs_prop: +lemma get_pfs_secs_prop': "\get_parentfs_ctxts s f = None; valid s\ \ \ is_dir s f" apply (induct f) by (auto split:option.splits dest:current_has_sec' parentf_is_dir_prop1) +lemma get_pfs_secs_prop: + "\is_dir s f; valid s\ \ \ asecs. get_parentfs_ctxts s f = Some asecs" +using get_pfs_secs_prop' +by (auto) + lemma get_pfs_secs_open: "valid (Open p f flags fd opt # s) \ get_parentfs_ctxts (Open p f flags fd opt # s) = get_parentfs_ctxts s" apply (frule noroot_events, frule vd_cons, frule vt_grant_os) @@ -656,7 +661,7 @@ from p1 os have p5: "f' \ f" by (auto simp:is_dir_in_current) show ?case using mkdir vd os p4 p5 p1 by (auto simp:sectxt_of_obj_simps is_dir_simps p3 - split:option.splits dest:current_has_sec' get_pfs_secs_prop) + split:option.splits dest:current_has_sec' get_pfs_secs_prop') qed qed @@ -669,7 +674,7 @@ | _ \ None))" apply (frule vd_cons, frule vt_grant_os) apply (frule noroot_events, case_tac f) -by (auto split:option.splits dest:current_has_sec' get_pfs_secs_prop get_pfs_secs_mkdir1 +by (auto split:option.splits dest:current_has_sec' get_pfs_secs_prop' get_pfs_secs_mkdir1 simp:sectxt_of_obj_simps is_dir_simps) lemmas get_parentfs_ctxts_simps = get_pfs_secs_other get_pfs_secs_mkdir1 get_pfs_secs_mkdir2