intros s t Sub FP6 SP TF; inversion TF.
inversion H.
unfold StarProperty in |- *; simpl in |- *; 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 (A:=ReadersWriters)).
elim (fOSC (objectSC s) o); elim (fOSC (chobjsc_SC s o sc) o);
contradiction || auto.
symmetry  in |- *; unfold fsecmat in |- *; auto.
auto.
rewrite <- EQ1.
replace (fsecmat (secmat s) o) with (None (A:=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 || auto.
auto.
symmetry  in |- *; unfold fsecmat in |- *; auto.
rewrite <- EQ2.
replace (fsecmat (secmat s) o) with (None (A:=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 || auto.
auto.
symmetry  in |- *; unfold fsecmat in |- *; 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.

(* Specifications: *)
Lemma ChobjscPCP : forall s t : SFSstate, PreservesControlProp s Chobjsc t.
intros; unfold PreservesControlProp in |- *; intros Sub TF; inversion TF;
unfold ControlProperty in |- *.