Require Export ModelProperties.
Require Export aclstatIsSecure.
Require Export chmodIsSecure.
Require Export createIsSecure.
Require Export mkdirIsSecure.
Require Export openIsSecure.
Require Export addUsrGrpToAclIsSecure.
Require Export chobjscIsSecure.
Require Export chownIsSecure.
Require Export chsubscIsSecure.
Require Export closeIsSecure.
Require Export delUsrGrpFromAclIsSecure.
Require Export oscstatIsSecure.
Require Export owner_closeIsSecure.
Require Export readIsSecure.
Require Export readdirIsSecure.
Require Export rmdirIsSecure.
Require Export sscstatIsSecure.
Require Export statIsSecure.
Require Export unlinkIsSecure.
Require Export writeIsSecure.
Require Export Le.
(*This definition generalizes the notion of secure state. It includes*)
(*all the security relevant conditions and also the mathematicals    *)
(*ones (for instance the one that asserts that subjectSC is a partial*)
(*function).                                                         *)
Definition GeneralSecureState (s : SFSstate) : Prop :=
SecureState s /\
StarProperty s /\
FuncPre1 s /\
FuncPre2 s /\
FuncPre3 s /\ FuncPre4 s /\ FuncPre5 s /\ FuncPre6 s /\ FuncPre7 s.
(*********************************************************************)
(*                       The Model's Lemmas                          *)
(*********************************************************************)
(*The following Lemma shows that the initial state is a secure state.*)

Lemma InitialStateIsSecure : GeneralSecureState InitState.
unfold GeneralSecureState, SecureState, InitState, DACSecureState,
MACSecureState, StarProperty, FuncPre1, FuncPre2, FuncPre3, FuncPre4,
FuncPre5, FuncPre6, FuncPre7 in |- *; simpl in |- *.