unfold fOSC in |- *.
intros until z.
cut
match PARTFUNC OBJeq_dec (objectSC s) o with
| Some y => set_In (o, y) (objectSC s)
| None => ~ set_In o (DOM OBJeq_dec (objectSC s))
end.
unfold unlink_oSC in |- *.
unfold fOSC in |- *.
elim (PARTFUNC OBJeq_dec (objectSC s) o).
intros.
cut (PARTFUNC OBJeq_dec (set_remove OSCeq_dec (o, a) (objectSC s)) o = None).
rewrite H2.
intro.
discriminate H3.
auto.
intros.
discriminate H1.
apply DOMFuncRel4.
Qed.

(* Specifications: *)
Lemma NoDACChange :
forall (s : SFSstate) (o : OBJECT) (SSC : set (SUBJECT * SecClass))
(OSC : set (OBJECT * SecClass)) (FILES : set (OBJECT * FILECONT))
(DIRECTS : set (OBJECT * DIRCONT)) (SM : set (OBJECT * ReadersWriters)),
~
DACCtrlAttrHaveChanged s
(mkSFS (groups s) (primaryGrp s) SSC (AllGrp s)
(RootGrp s) (SecAdmGrp s) OSC (acl s) SM FILES DIRECTS) o.