Operation: chsubsc


Require Export DACandMAC.

Section Chsubsc.



Variable s: SFSstate.


Some preliminary definitions



Definition chsubsc_SC
 [v:SUBJECT; sc:SecClass] : (set SUBJECT*SecClass) :=

 Cases (fSSC (subjectSC s) v) of
  |None => (subjectSC s)
  |(Some y) => (set_add SSCeq_dec
                         (v,sc)
                         (set_remove SSCeq_dec (v,y) (subjectSC s)))
 end.


Next state definition

Local t [u:SUBJECT; sc:SecClass] : SFSstate :=

   (mkSFS (groups s) (primaryGrp s) (chsubsc_SC u sc) (AllGrp s)
          (RootGrp s) (SecAdmGrp s) (objectSC s) (acl s)
          (secmat s) (files s) (directories s)).


Operation definition



Inductive chsubsc [secadm,u:SUBJECT; sc:SecClass] : SFSstate -> Prop :=

  |chsubscOK:
      (set_In secadm ((groups s) (SecAdmGrp s)))
      ->((rw:ReadersWriters)
         ~(set_In u (ActReaders rw))/\~(set_In u (ActWriters rw)))
      ->(chsubsc secadm u sc (t u sc)).


End Chsubsc.

Hints Unfold chsubsc_SC.


Index
This page has been generated by coqdoc