Current_files_prop.thy
changeset 7 f27882976251
parent 6 8779d321cc2e
child 9 87fdf2de0ffa
--- a/Current_files_prop.thy	Wed May 15 11:21:39 2013 +0800
+++ b/Current_files_prop.thy	Wed May 15 15:42:46 2013 +0800
@@ -215,25 +215,27 @@
 
       have "\<forall> f. f \<in> files_hung_by_del (a # \<tau>) \<longrightarrow> inum_of_file (a # \<tau>) f \<noteq> None"
         apply (clarify, case_tac a) using os fin
-        apply (auto simp:files_hung_by_del.simps inum_of_file.simps os_grant.simps current_files_def 
+        apply (auto simp:files_hung_by_del.simps inum_of_file.simps os_grant.simps current_files_def is_file_def 
                    split:if_splits option.splits)
         done
       moreover 
       have "\<forall>f pf im. parent f = Some pf \<and> inum_of_file (a # \<tau>) f = Some im \<longrightarrow> inum_of_file (a # \<tau>) pf \<noteq> None" 
         apply (clarify, case_tac a)
         using vt os pin'
-        apply (auto simp:os_grant.simps current_files_def inum_of_file.simps split:if_splits option.splits)
+        apply (auto simp:os_grant.simps current_files_def inum_of_file.simps is_file_def is_dir_def 
+                   split:if_splits option.splits t_inode_tag.splits)
         apply (drule_tac f = pf and f' = f in hns', simp, simp, simp)
-        apply (drule_tac f = list and f' = f in fns', simp, simp, simp)
-        apply (drule_tac f = list and f' = f in dns', simp, simp, simp)
+        apply (rule_tac f = list and f' = f in fns', simp add:is_file_def, simp, simp)
+        apply (rule_tac f = list and f' = f in dns', simp add:is_dir_def, simp, simp)
         done
       moreover have "\<forall>f f' im. is_file (a # \<tau>) f \<and> parent f' = Some f \<and> inum_of_file (a # \<tau>) f' = Some im \<longrightarrow> False"
         apply (clarify, case_tac a)    
-        using vt os fns''
+        using vt os fns'' cons
         apply (auto simp:os_grant.simps current_files_def inum_of_file.simps itag_of_inum.simps 
                          is_file_def is_dir_def 
                     dest:ios's_im_in_cim iof's_im_in_cim
-                   split:if_splits option.splits t_inode_tag.splits t_socket_type.splits)
+                   split:if_splits option.splits t_inode_tag.splits t_socket_type.splits) 
+        apply (rule_tac im = a and f = f and f' = f' in fns'', simp+)
         apply (drule_tac f = f' and pf = list in pin', simp, simp)
         apply (drule_tac f = f' and pf = list2 in pin', simp, simp)
         done
@@ -370,7 +372,7 @@
 apply (induct \<tau>)
 apply (clarsimp simp add:file_of_proc_fd.simps inum_of_file.simps init_filefd_prop1 init_file_has_inum)
 apply ((rule_tac allI|rule_tac impI|erule_tac conjE)+, frule vd_cons, frule vt_grant_os, case_tac a)
-apply (auto simp:inum_of_file.simps file_of_proc_fd.simps os_grant.simps current_files_def 
+apply (auto simp:inum_of_file.simps file_of_proc_fd.simps os_grant.simps current_files_def is_file_def
            split:if_splits option.splits)
 apply (simp add:pfdof_simp3)+
 apply (simp add:proc_fd_of_file_def)+  
@@ -496,7 +498,7 @@
 lemma current_files_linkhard: 
   "valid (LinkHard p f\<^isub>1 f\<^isub>2 # \<tau>) \<Longrightarrow> current_files (LinkHard p f\<^isub>1 f\<^isub>2 # \<tau>) = insert f\<^isub>2 (current_files \<tau>)"
 apply (frule vt_grant_os, frule vd_cons)
-by (auto simp:current_files_def inum_of_file.simps os_grant.simps split:option.splits)
+by (auto simp:current_files_def inum_of_file.simps os_grant.simps is_file_def split:option.splits)
 
 (*
 lemma rename_renaming_decom: