The Transition Relation |
Require Export aclstat.
Require Export chmod.
Require Export create.
Require Export mkdir.
Require Export open.
Require Export addUsrGrpToAcl.
Require Export chobjsc.
Require Export chown.
Require Export chsubsc.
Require Export close.
Require Export delUsrGrpFromAcl.
Require Export oscstat.
Require Export owner_close.
Require Export read.
Require Export readdir.
Require Export rmdir.
Require Export sscstat.
Require Export stat.
Require Export unlink.
Require Export write.
|
|
Section TransitionFunction.
|
Inductive TransFunc :
SUBJECT -> SFSstate -> Operation -> SFSstate -> Prop :=
|DoAclstat:
(u:SUBJECT; o:OBJECT; out:(Exc AccessCtrlListData); s:SFSstate)
(aclstat s u o s out)
->(TransFunc u s Aclstat s)
|DoChmod:
(u:SUBJECT; o:OBJECT; perms:PERMS; s,t:SFSstate)
(chmod s u o perms t)
->(TransFunc u s Chmod t)
|DoCreate:
(u:SUBJECT; p:OBJNAME; perms:PERMS; s,t:SFSstate)
(create s u p perms t)
->(TransFunc u s Create t)
|DoMkdir:
(u:SUBJECT; p:OBJNAME; perms:PERMS; s,t:SFSstate)
(mkdir s u p perms t)
->(TransFunc u s Mkdir t)
|DoOpen:
(u:SUBJECT; o:OBJECT; m:MODE; s,t:SFSstate)
(open s u o m t)
->(TransFunc u s Open t)
|DoAddUsrGrpToAcl:
(u:SUBJECT; o:OBJECT; ru,wu,pu:SUBJECT; rg,wg,pg:GRPNAME;
s,t:SFSstate)
(addUsrGrpToAcl s u o ru wu pu rg wg pg t)
->(TransFunc u s AddUsrGrpToAcl t)
|DoChobjsc:
(secadm:SUBJECT; o:OBJECT; sc:SecClass; s,t:SFSstate)
(chobjsc s secadm o sc t)
->(TransFunc secadm s Chobjsc t)
|DoChown:
(u:SUBJECT; o:OBJECT; p:SUBJECT; g:GRPNAME; s,t:SFSstate)
(chown s u o p g t)
->(TransFunc u s Chown t)
|DoChsubsc:
(secadm,u:SUBJECT; sc:SecClass; s,t:SFSstate)
(chsubsc s secadm u sc t)
->(TransFunc secadm s Chsubsc t)
|DoClose:
(u:SUBJECT; o:OBJECT; s,t:SFSstate)
(close s u o t)
->(TransFunc u s Close t)
|DoDelUsrGrpFromAcl:
(u:SUBJECT; o:OBJECT; ru,wu,pu:SUBJECT; rg,wg,pg:GRPNAME;
s,t:SFSstate)
(delUsrGrpFromAcl s u o ru wu pu rg wg pg t)
->(TransFunc u s DelUsrGrpFromAcl t)
|DoOscstat:
(u:SUBJECT; o:OBJECT; out:(Exc SecClass); s:SFSstate)
(oscstat s u o s out)
->(TransFunc u s Oscstat s)
|DoOwner_Close:
(owner,u:SUBJECT; o:OBJECT; s,t:SFSstate)
(owner_close s owner u o t)
->(TransFunc owner s Owner_Close t)
|DoRead:
(u:SUBJECT; o:OBJECT; n:nat; out:(Exc FILECONT); s:SFSstate)
(read s u o n s out)
->(TransFunc u s Read s)
|DoReaddir:
(u:SUBJECT; o:OBJECT; n:nat; out:(Exc DIRCONT); s:SFSstate)
(readdir s u o n s out)
->(TransFunc u s Readdir s)
|DoRmdir:
(u:SUBJECT; o:OBJECT; s,t:SFSstate)
(rmdir s u o t)
->(TransFunc u s Rmdir t)
|DoSscstat:
(u, user:SUBJECT; out:(Exc SecClass); s:SFSstate)
(sscstat s u user s out)
->(TransFunc u s Sscstat s)
|DoStat:
(u:SUBJECT; o:OBJECT; out:(Exc stat_struct); s:SFSstate)
(stat s u o s out)
->(TransFunc u s Stat s)
|DoUnlink:
(u:SUBJECT; o:OBJECT; s,t:SFSstate)
(unlink s u o t)
->(TransFunc u s Unlink t)
|DoWrite:
(u:SUBJECT; o:OBJECT; n:nat; buf:FILECONT; s,t:SFSstate)
(write s u o n buf t)
->(TransFunc u s Write t).
End TransitionFunction.