diff -r b6ee5f35c41f -r e9c5594d5963 Flask.thy --- a/Flask.thy Wed May 08 10:00:38 2013 +0800 +++ b/Flask.thy Thu May 09 11:19:44 2013 +0800 @@ -158,6 +158,7 @@ and init_procs_has_shm: "\ p h flag. (p,flag) \ init_procs_of_shm h \ p \ init_procs \ h \ init_shms" and init_msgs_distinct: "\ q. distinct (init_msgs_of_queue q)" + and init_msgs_valid: "\ m q. m \ set (init_msgs_of_queue q) \ q \ init_msgqs" and init_socket_has_inode: "\ p fd. (p, fd) \ init_sockets \ \ im. init_inum_of_socket (p, fd) = Some im \ p \ init_procs \ fd \ init_fds_of_proc p" and inos_has_sock_tag: "\ s im. init_inum_of_socket s = Some im \ s \ init_sockets \ (\ tag. init_itag_of_inum im = Some tag \ is_sock_itag tag)" @@ -735,11 +736,15 @@ (\ fd. obj = O_udp_sock (p', fd) \ is_udp_sock s (p',fd)) \ deleted obj s)" | "deleted obj (CloseFd p fd # s) = ((obj = O_fd p fd) \ (obj = O_tcp_sock (p,fd) \ is_tcp_sock s (p,fd)) \ - (obj = O_udp_sock (p,fd) \ is_udp_sock s (p, fd)) \ deleted obj s)" + (obj = O_udp_sock (p,fd) \ is_udp_sock s (p, fd)) \ + (\ f. obj = O_file f \ proc_fd_of_file s f = {(p, fd)} \ + f \ files_hung_by_del s) \ deleted obj s)" | "deleted obj (Execve p f fds # s) = ((\ fd \ current_proc_fds s p. obj = O_fd p fd \ fd \ fds) \ (\ fd. obj = O_tcp_sock (p, fd) \ is_tcp_sock s (p,fd) \ fd \ fds) \ (\ fd. obj = O_udp_sock (p, fd) \ is_udp_sock s (p,fd) \ fd \ fds) \ deleted obj s)" +| "deleted obj (Clone p p' fds shms # s) = ((\ fd \ current_proc_fds s p. obj = O_fd p' fd \ fd \ fds) \ + deleted obj s)" | "deleted obj (UnLink p f # s) = ((obj = O_file f) \ deleted obj s)" | "deleted obj (Rmdir p f # s) = ((obj = O_dir f) \ deleted obj s)" | "deleted obj (Exit p # s) = ((obj = O_proc p) \ (\ fd \ current_proc_fds s p. obj = O_fd p fd) \