S2ss_prop2.thy
changeset 60 03d173288afe
parent 59 89770d3c8a9b
equal deleted inserted replaced
59:89770d3c8a9b 60:03d173288afe
   330 apply (rule_tac x = "O_proc pa" in exI, simp)
   330 apply (rule_tac x = "O_proc pa" in exI, simp)
   331 apply (erule disjE, simp, simp add:attach_Tainted_procs_prop3)
   331 apply (erule disjE, simp, simp add:attach_Tainted_procs_prop3)
   332 done
   332 done
   333 
   333 
   334 
   334 
       
   335 (* should be modified when socket is model in static *)
       
   336 lemma s2ss_createsock:
       
   337   "valid (CreateSock p af st fd inum # s) \<Longrightarrow> s2ss (CreateSock p af st fd inum # s) = s2ss s"
       
   338 apply (simp add:s2ss_def)
       
   339 apply (tactic {*my_seteq_tac 1*})
       
   340 apply (rule_tac x = obj in exI)
       
   341 apply (simp add:co2sobj_other)
       
   342 apply (simp add:co2sobj.simps alive_simps split:t_object.splits if_splits)
       
   343 apply (tactic {*my_setiff_tac 1*})
       
   344 apply (rule_tac x = obj in exI)
       
   345 apply (frule_tac obj = obj in co2sobj_other)
       
   346 apply (auto simp:co2sobj.simps alive_simps split:t_object.splits if_splits)
       
   347 done
       
   348 
       
   349 lemma s2ss_bind:
       
   350   "valid (Bind p fd addr # s) \<Longrightarrow> s2ss (Bind p fd addr # s) = s2ss s"
       
   351 apply (simp add:s2ss_def)
       
   352 apply (tactic {*my_seteq_tac 1*})
       
   353 apply (rule_tac x = obj in exI)
       
   354 apply (simp add:co2sobj_other)
       
   355 apply (simp add:co2sobj.simps alive_simps split:t_object.splits if_splits)
       
   356 apply (tactic {*my_setiff_tac 1*})
       
   357 apply (rule_tac x = obj in exI)
       
   358 apply (frule_tac obj = obj in co2sobj_other)
       
   359 apply (auto simp:co2sobj.simps alive_simps split:t_object.splits if_splits)
       
   360 done
       
   361 
       
   362 lemma s2ss_connect:
       
   363   "valid (Connect p fd addr # s) \<Longrightarrow> s2ss (Connect p fd addr # s) = s2ss s"
       
   364 apply (simp add:s2ss_def)
       
   365 apply (tactic {*my_seteq_tac 1*})
       
   366 apply (rule_tac x = obj in exI)
       
   367 apply (simp add:co2sobj_other)
       
   368 apply (simp add:co2sobj.simps alive_simps split:t_object.splits if_splits)
       
   369 apply (tactic {*my_setiff_tac 1*})
       
   370 apply (rule_tac x = obj in exI)
       
   371 apply (frule_tac obj = obj in co2sobj_other)
       
   372 apply (auto simp:co2sobj.simps alive_simps split:t_object.splits if_splits)
       
   373 done
       
   374 
       
   375 lemma s2ss_listen:
       
   376   "valid (Listen p fd # s) \<Longrightarrow> s2ss (Listen p fd # s) = s2ss s"
       
   377 apply (simp add:s2ss_def)
       
   378 apply (tactic {*my_seteq_tac 1*})
       
   379 apply (rule_tac x = obj in exI)
       
   380 apply (simp add:co2sobj_other)
       
   381 apply (simp add:co2sobj.simps alive_simps split:t_object.splits if_splits)
       
   382 apply (tactic {*my_setiff_tac 1*})
       
   383 apply (rule_tac x = obj in exI)
       
   384 apply (frule_tac obj = obj in co2sobj_other)
       
   385 apply (auto simp:co2sobj.simps alive_simps split:t_object.splits if_splits)
       
   386 done
       
   387 
       
   388 lemma s2ss_accept:
       
   389   "valid (Accept p fd addr port fd' inum # s) \<Longrightarrow> s2ss (Accept p fd addr port fd' inum # s) = s2ss s"
       
   390 apply (simp add:s2ss_def)
       
   391 apply (tactic {*my_seteq_tac 1*})
       
   392 apply (rule_tac x = obj in exI)
       
   393 apply (simp add:co2sobj_other)
       
   394 apply (simp add:co2sobj.simps alive_simps split:t_object.splits if_splits)
       
   395 apply (tactic {*my_setiff_tac 1*})
       
   396 apply (rule_tac x = obj in exI)
       
   397 apply (frule_tac obj = obj in co2sobj_other)
       
   398 apply (auto simp:co2sobj.simps alive_simps split:t_object.splits if_splits)
       
   399 done
       
   400 
       
   401 lemma s2ss_send:
       
   402   "valid (SendSock p fd # s) \<Longrightarrow> s2ss (SendSock p fd # s) = s2ss s"
       
   403 apply (simp add:s2ss_def)
       
   404 apply (tactic {*my_seteq_tac 1*})
       
   405 apply (rule_tac x = obj in exI)
       
   406 apply (simp add:co2sobj_other)
       
   407 apply (simp add:co2sobj.simps alive_simps split:t_object.splits if_splits)
       
   408 apply (tactic {*my_setiff_tac 1*})
       
   409 apply (rule_tac x = obj in exI)
       
   410 apply (frule_tac obj = obj in co2sobj_other)
       
   411 apply (auto simp:co2sobj.simps alive_simps split:t_object.splits if_splits)
       
   412 done
       
   413 
       
   414 lemma s2ss_recv:
       
   415   "valid (RecvSock p fd # s) \<Longrightarrow> s2ss (RecvSock p fd # s) = s2ss s"
       
   416 apply (simp add:s2ss_def)
       
   417 apply (tactic {*my_seteq_tac 1*})
       
   418 apply (rule_tac x = obj in exI)
       
   419 apply (simp add:co2sobj_other)
       
   420 apply (simp add:co2sobj.simps alive_simps split:t_object.splits if_splits)
       
   421 apply (tactic {*my_setiff_tac 1*})
       
   422 apply (rule_tac x = obj in exI)
       
   423 apply (frule_tac obj = obj in co2sobj_other)
       
   424 apply (auto simp:co2sobj.simps alive_simps split:t_object.splits if_splits)
       
   425 done
       
   426 
       
   427 lemma s2ss_shutdown:
       
   428   "valid (Shutdown p fd how # s) \<Longrightarrow> s2ss (Shutdown p fd how # s) = s2ss s"
       
   429 apply (simp add:s2ss_def)
       
   430 apply (tactic {*my_seteq_tac 1*})
       
   431 apply (rule_tac x = obj in exI)
       
   432 apply (simp add:co2sobj_other)
       
   433 apply (simp add:co2sobj.simps alive_simps split:t_object.splits if_splits)
       
   434 apply (tactic {*my_setiff_tac 1*})
       
   435 apply (rule_tac x = obj in exI)
       
   436 apply (frule_tac obj = obj in co2sobj_other)
       
   437 apply (auto simp:co2sobj.simps alive_simps split:t_object.splits if_splits)
       
   438 done
   335 
   439 
   336 lemmas s2ss_simps = s2ss_execve s2ss_clone s2ss_ptrace s2ss_kill s2ss_exit s2ss_open
   440 lemmas s2ss_simps = s2ss_execve s2ss_clone s2ss_ptrace s2ss_kill s2ss_exit s2ss_open
   337   s2ss_readfile s2ss_writefile s2ss_closefd s2ss_unlink s2ss_rmdir s2ss_linkhard
   441   s2ss_readfile s2ss_writefile s2ss_closefd s2ss_unlink s2ss_rmdir s2ss_linkhard
   338   s2ss_truncate s2ss_createmsgq s2ss_sendmsg s2ss_removemsgq s2ss_recvmsg
   442   s2ss_truncate s2ss_createmsgq s2ss_sendmsg s2ss_removemsgq s2ss_recvmsg
   339   s2ss_createshm s2ss_detach s2ss_deleteshm s2ss_attach
   443   s2ss_createshm s2ss_detach s2ss_deleteshm s2ss_attach
   340 
   444   s2ss_createsock s2ss_bind s2ss_connect s2ss_listen s2ss_accept s2ss_send 
       
   445   s2ss_recv s2ss_shutdown
   341 
   446 
   342 end
   447 end
   343 
   448 
   344 end
   449 end