Verification: chobjsc

Require ModelProperties.

Require AuxiliaryLemmas.

Section chobjscIsSecure.




Lemma ChobjscPSS:
 (s,t:SFSstate; u:SUBJECT)
  (FuncPre6 s)
  ->(SecureState s)->(TransFunc u s Chobjsc t)->(SecureState t).
Intros s t Sub FP6 SS TF; Inversion TF.
Inversion H.
Unfold SecureState.
BreakSS .
Split.
Auto.

Unfold SimpleSecurity; Simpl; Intros.
Elim (OBJeq_dec o o0).
Intro.
Rewrite <- a.
Cut (fsecmat (secmat s) o)=(None ReadersWriters).
Intro.
Rewrite H6.
Elim (fOSC (objectSC s) o); Elim (fOSC (chobjsc_SC s o sc) o);
  Elim (fSSC (subjectSC s) u); Contradiction Orelse Auto.

Unfold fsecmat; Auto.

Intro.
Replace (fOSC (chobjsc_SC s o sc) o0) with (fOSC (objectSC s) o0).
Unfold SimpleSecurity in MAC; Apply MAC.

Auto.

Qed.




Lemma ChobjscPSP:
 (s,t:SFSstate; u:SUBJECT)
  (FuncPre6 s)
  ->(StarProperty s)->(TransFunc u s Chobjsc t)->(StarProperty t).
Intros s t Sub FP6 SP TF; Inversion TF.
Inversion H.
Unfold StarProperty; Simpl; Intros.
Elim (OBJeq_dec o o1); Elim (OBJeq_dec o o2); Intros EQ2 EQ1.
Rewrite <- EQ1; Rewrite <- EQ2.
Replace (fsecmat (secmat s) o) with (None ReadersWriters).
Elim (fOSC (objectSC s) o); Elim (fOSC (chobjsc_SC s o sc) o);
  Contradiction Orelse Auto.

Symmetry; Unfold fsecmat; Auto.

Auto.
Rewrite <- EQ1.
Replace (fsecmat (secmat s) o) with (None ReadersWriters).
Replace (fOSC (chobjsc_SC s o sc) o2) with (fOSC (objectSC s) o2).
Elim (fsecmat (secmat s) o2); Elim (fOSC (chobjsc_SC s o sc) o);
  Elim (fOSC (objectSC s) o); Elim (fOSC (objectSC s) o2); Intros;
  Contradiction Orelse Auto.

Auto.

Symmetry; Unfold fsecmat; Auto.

Rewrite <- EQ2.
Replace (fsecmat (secmat s) o) with (None ReadersWriters).
Replace (fOSC (chobjsc_SC s o sc) o1) with (fOSC (objectSC s) o1).
Elim (fsecmat (secmat s) o1); Elim (fOSC (chobjsc_SC s o sc) o);
  Elim (fOSC (objectSC s) o); Elim (fOSC (objectSC s) o1); Intros;
  Contradiction Orelse Auto.

Auto.

Symmetry; Unfold fsecmat; Auto.

Replace (fOSC (chobjsc_SC s o sc) o2) with (fOSC (objectSC s) o2).
Replace (fOSC (chobjsc_SC s o sc) o1) with (fOSC (objectSC s) o1).
Unfold StarProperty in SP; Apply SP.

Auto.

Auto.

Qed.




Lemma ChobjscPCP:
    (s,t:SFSstate)(PreservesControlProp s Chobjsc t).
Intros; Unfold PreservesControlProp; Intros Sub TF; Inversion TF;
  Unfold ControlProperty.
Inversion H.
Split.
Intros.
Split.
Intro.
Absurd (DACCtrlAttrHaveChanged s
         (mkSFS (groups s) (primaryGrp s) (subjectSC s) (AllGrp s)
           (RootGrp s) (SecAdmGrp s) (chobjsc_SC s o sc) (acl s)
           (secmat s) (files s) (directories s)) o0); Auto.

Auto.

Intros.
Absurd (MACSubCtrlAttrHaveChanged s
         (mkSFS (groups s) (primaryGrp s) (subjectSC s) (AllGrp s)
           (RootGrp s) (SecAdmGrp s) (chobjsc_SC s o sc) (acl s)
           (secmat s) (files s) (directories s)) u0); Auto.

Qed.


End chobjscIsSecure.

Hints Resolve ChobjscPSS ChobjscPSP ChobjscPCP.


Index
This page has been generated by coqdoc