intros s t Sub FP1 FP2 FP3 SP TF; inversion TF.
inversion H.
unfold StarProperty in |- *; simpl in |- *; intros u0 o1 o2.
elim (OBJNAMEeq_dec p (ObjName o1)); elim (OBJNAMEeq_dec p (ObjName o2)).
intros y y0.
replace (fsecmat (secmat s) o1) with (None (A:=ReadersWriters)).
elim (fsecmat (secmat s) o2); elim (fsecmat (secmat s) o1);
elim (fOSC (create_oSC s Sub p) o2); elim (fOSC (create_oSC s Sub p) o1);
trivial.
eauto.
intros y y0.
replace (fsecmat (secmat s) o1) with (None (A:=ReadersWriters)).
elim (fsecmat (secmat s) o2); elim (fOSC (create_oSC s Sub p) o2);
elim (fOSC (create_oSC s Sub p) o1); trivial.
eauto.
intros y y0.
replace (fsecmat (secmat s) o2) with (None (A:=ReadersWriters)).
elim (fsecmat (secmat s) o1); elim (fOSC (create_oSC s Sub p) o2);
elim (fOSC (create_oSC s Sub p) o1); trivial.
eauto.
intros y y0.
replace (fOSC (create_oSC s Sub p) o1) with (fOSC (objectSC s) o1).
replace (fOSC (create_oSC s Sub p) o2) with (fOSC (objectSC s) o2).
unfold StarProperty in SP; apply SP.
auto.
auto.
Qed.

(* Specifications: *)
Lemma CreatePCP :
forall s t : SFSstate,
FuncPre1 s -> FuncPre2 s -> PreservesControlProp s Create t.