Sectxt_prop.thy
changeset 8 289a30c4cfb7
parent 7 f27882976251
child 31 aa1375b6c0eb
--- 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':
   "\<lbrakk>get_parentfs_ctxts s f = None; valid s\<rbrakk> \<Longrightarrow> \<not> 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:
+  "\<lbrakk>is_dir s f; valid s\<rbrakk> \<Longrightarrow> \<exists> 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) \<Longrightarrow> 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' \<noteq> 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 @@
                | _ \<Rightarrow> 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