diff -r 0c209a3e2647 -r 8779d321cc2e Static.thy --- a/Static.thy Fri May 10 10:23:34 2013 +0800 +++ b/Static.thy Wed May 15 11:21:39 2013 +0800 @@ -49,9 +49,9 @@ (Some sec, Some psec, Some aseclist) \ Some (Init f, sec, Some psec, set aseclist) | _ \ None)" -definition init_cfs2sfiles :: "t_file set \ t_sfile set" +definition init_cf2sfiles :: "t_file \ t_sfile set" where - "init_cfs2sfiles fs \ {sf. \f \ fs. init_cf2sfile f = Some sf \ is_init_file f}" + "init_cf2sfiles f \ {sf. \f' \ init_same_inode_files f. init_cf2sfile f' = Some sf}" definition init_cfd2sfd :: "t_process \ t_fd \ (security_context_t \ t_open_flags \ t_sfile) option" where @@ -117,7 +117,7 @@ | _ \ None)" | "init_obj2sobj (O_file f) = (if (f \ init_files \ is_init_file f) - then Some (S_file (init_cfs2sfiles (init_same_inode_files f)) + then Some (S_file (init_cf2sfiles f) (\ f'. f' \ (init_same_inode_files f) \ O_file f \ seeds)) else None)" | "init_obj2sobj (O_dir f) = @@ -697,12 +697,12 @@ (**************** translation from dynamic to static *******************) -definition cf2sfile :: "t_state \ t_file \ bool \ t_sfile option" +definition cf2sfile :: "t_state \ t_file \ t_sfile option" where - "cf2sfile s f Is_file \ + "cf2sfile s f \ case (parent f) of - None \ if Is_file then None else Some sroot - | Some pf \ if Is_file + None \ Some sroot + | Some pf \ if (is_file s f) then (case (sectxt_of_obj s (O_file f), sectxt_of_obj s (O_dir pf), get_parentfs_ctxts s pf) of (Some sec, Some psec, Some asecs) \ Some (if (\ deleted (O_file f) s \ is_init_file f) then Init f else Created, sec, Some psec, set asecs) @@ -712,16 +712,16 @@ Some (if (\ deleted (O_dir f) s \ is_init_dir f) then Init f else Created, sec, Some psec, set asecs) | _ \ None)" -definition cfs2sfiles :: "t_state \ t_file set \ t_sfile set" +definition cf2sfiles :: "t_state \ t_file \ t_sfile set" where - "cfs2sfiles s fs \ {sf. \ f \ fs. cf2sfile s f True = Some sf}" + "cf2sfiles s f \ {sf. \ f' \ (same_inode_files s f). cf2sfile s f' = Some sf}" (* here cf2sfile is passed with True, because, process' fds are only for files not dirs *) definition cfd2sfd :: "t_state \ t_process \ t_fd \ t_sfd option" where "cfd2sfd s p fd \ (case (file_of_proc_fd s p fd, flags_of_proc_fd s p fd, sectxt_of_obj s (O_fd p fd)) of - (Some f, Some flags, Some sec) \ (case (cf2sfile s f True) of + (Some f, Some flags, Some sec) \ (case (cf2sfile s f) of Some sf \ Some (sec, flags, sf) | _ \ None) | _ \ None)" @@ -782,10 +782,10 @@ | _ \ None)" | "co2sobj s (O_file f) = (if (f \ current_files s) then - Some (S_file (cfs2sfiles s (same_inode_files s f)) (O_file f \ tainted s)) + Some (S_file (cf2sfiles s f) (O_file f \ tainted s)) else None)" | "co2sobj s (O_dir f) = - (case (cf2sfile s f False) of + (case (cf2sfile s f) of Some sf \ Some (S_dir sf) | _ \ None)" | "co2sobj s (O_msgq q) =