Sectxt_prop.thy
changeset 31 aa1375b6c0eb
parent 8 289a30c4cfb7
child 73 924ab7a4e7fa
equal deleted inserted replaced
30:01274a64aece 31:aa1375b6c0eb
   598 apply (rule ext, frule vd_cons, frule vt_grant_os, case_tac e, case_tac[!] x)
   598 apply (rule ext, frule vd_cons, frule vt_grant_os, case_tac e, case_tac[!] x)
   599 apply (auto simp:sectxt_of_obj_def split:option.splits if_splits
   599 apply (auto simp:sectxt_of_obj_def split:option.splits if_splits
   600            dest!:current_has_type' current_proc_has_role' current_has_user')
   600            dest!:current_has_type' current_proc_has_role' current_has_user')
   601 done
   601 done
   602 
   602 
       
   603 lemma sec_kill: 
       
   604   "valid (Kill p p' # s) \<Longrightarrow> sectxt_of_obj (Kill p p' # s) = sectxt_of_obj s"
       
   605 by (auto dest!:sec_others)
       
   606 
       
   607 lemma sec_ptrace:
       
   608   "valid (Ptrace p p' # s) \<Longrightarrow> sectxt_of_obj (Ptrace p p' # s) = sectxt_of_obj s"
       
   609 by (auto dest!:sec_others)
       
   610 
       
   611 lemma sec_exit:
       
   612   "valid (Exit p # s) \<Longrightarrow> sectxt_of_obj (Exit p # s) = sectxt_of_obj s"
       
   613 by (auto dest!:sec_others)
       
   614 
       
   615 lemma sec_readfile:
       
   616   "valid (ReadFile p fd # s) \<Longrightarrow> sectxt_of_obj (ReadFile p fd # s) = sectxt_of_obj s"
       
   617 by (auto dest!:sec_others)
       
   618 
       
   619 lemma sec_writefile:
       
   620   "valid (WriteFile p fd # s) \<Longrightarrow> sectxt_of_obj (WriteFile p fd # s) = sectxt_of_obj s"
       
   621 by (auto dest!:sec_others)
       
   622 
       
   623 lemma sec_closefd:
       
   624   "valid (CloseFd p fd # s) \<Longrightarrow> sectxt_of_obj (CloseFd p fd # s) = sectxt_of_obj s"
       
   625 by (auto dest!:sec_others)
       
   626 
       
   627 lemma sec_unlink:
       
   628   "valid (UnLink p f # s) \<Longrightarrow> sectxt_of_obj (UnLink p f # s) = sectxt_of_obj s"
       
   629 by (auto dest!:sec_others)
       
   630 
       
   631 lemma sec_Rmdir:
       
   632   "valid (Rmdir p f # s) \<Longrightarrow> sectxt_of_obj (Rmdir p f # s) = sectxt_of_obj s"
       
   633 by (auto dest!:sec_others)
       
   634 
       
   635 lemma sec_truncate:
       
   636   "valid (Truncate p f len # s) \<Longrightarrow> sectxt_of_obj (Truncate p f len # s) = sectxt_of_obj s"
       
   637 by (auto dest!:sec_others)
       
   638 
       
   639 lemma sec_recvmsg:
       
   640   "valid (RecvMsg p q m # s) \<Longrightarrow> sectxt_of_obj (RecvMsg p q m # s) = sectxt_of_obj s"
       
   641 by (auto dest!:sec_others)
       
   642 
       
   643 lemma sec_removemsgq:
       
   644   "valid (RemoveMsgq p q # s) \<Longrightarrow> sectxt_of_obj (RemoveMsgq p q # s) = sectxt_of_obj s"
       
   645 by (auto dest!:sec_others)
       
   646 
       
   647 lemma sec_attach:
       
   648   "valid (Attach p h flag # s) \<Longrightarrow> sectxt_of_obj (Attach p h flag # s) = sectxt_of_obj s"
       
   649 by (auto dest!:sec_others)
       
   650 
       
   651 lemma sec_detach:
       
   652   "valid (Detach p h # s) \<Longrightarrow> sectxt_of_obj (Detach p h # s) = sectxt_of_obj s"
       
   653 by (auto dest!:sec_others)
       
   654 
       
   655 lemma sec_deleteshm:
       
   656   "valid (DeleteShM p h # s) \<Longrightarrow> sectxt_of_obj (DeleteShM p h # s) = sectxt_of_obj s"
       
   657 by (auto dest!:sec_others)
       
   658 
       
   659 lemma sec_bind:
       
   660   "valid (Bind p fd addr # s) \<Longrightarrow> sectxt_of_obj (Bind p fd addr # s) = sectxt_of_obj s"
       
   661 by (auto dest!:sec_others)
       
   662 
       
   663 lemma sec_connect:
       
   664   "valid (Connect p fd addr # s) \<Longrightarrow> sectxt_of_obj (Connect p fd addr # s) = sectxt_of_obj s"
       
   665 by (auto dest!:sec_others)
       
   666 
       
   667 lemma sec_listen:
       
   668   "valid (Listen p fd # s) \<Longrightarrow> sectxt_of_obj (Listen p fd # s) = sectxt_of_obj s"
       
   669 by (auto dest!:sec_others)
       
   670 
       
   671 lemma sec_sendsock:
       
   672   "valid (SendSock p fd # s) \<Longrightarrow> sectxt_of_obj (SendSock p fd # s) = sectxt_of_obj s"
       
   673 by (auto dest!:sec_others)
       
   674 
       
   675 lemma sec_recvsock:
       
   676   "valid (RecvSock p fd # s) \<Longrightarrow> sectxt_of_obj (RecvSock p fd # s) = sectxt_of_obj s"
       
   677 by (auto dest!:sec_others)
       
   678 
       
   679 lemma sec_shutdown:
       
   680   "valid (Shutdown p fd how # s) \<Longrightarrow> sectxt_of_obj (Shutdown p fd how # s) = sectxt_of_obj s"
       
   681 by (auto dest!:sec_others)
       
   682 
   603 lemmas sectxt_of_obj_simps = sec_execve sec_open sec_mkdir sec_linkhard sec_createmsgq sec_sendmsg
   683 lemmas sectxt_of_obj_simps = sec_execve sec_open sec_mkdir sec_linkhard sec_createmsgq sec_sendmsg
   604   sec_createshm sec_createsock sec_accept sec_clone sec_others (* init_sectxt_prop *)
   684   sec_createshm sec_createsock sec_accept sec_clone sec_kill sec_ptrace sec_exit sec_readfile
       
   685   sec_writefile sec_closefd sec_unlink sec_Rmdir sec_truncate sec_recvmsg sec_removemsgq
       
   686   sec_attach sec_detach sec_deleteshm sec_bind sec_connect sec_listen sec_sendsock
       
   687   sec_recvsock sec_shutdown
       
   688 (* init_sectxt_prop *)
   605 
   689 
   606 (**************** get_parentfs_ctxts simpset **************)
   690 (**************** get_parentfs_ctxts simpset **************)
   607 
   691 
   608 lemma parentf_is_dir_prop1: "\<lbrakk>is_dir s (x # pf); valid s\<rbrakk> \<Longrightarrow> is_dir s pf"
   692 lemma parentf_is_dir_prop1: "\<lbrakk>is_dir s (x # pf); valid s\<rbrakk> \<Longrightarrow> is_dir s pf"
   609 apply (rule_tac f = "x # pf" in parentf_is_dir)
   693 apply (rule_tac f = "x # pf" in parentf_is_dir)