intros until o; unfold close_sm in |- *.
intro.
generalize H.
elim (fsecmat (secmat s) o).
intros y H0; discriminate H0.
auto.
Qed.

(* Specifications: *)
Lemma OwnerClose_smCorr2 :
forall (s : SFSstate) (Sub u0 : SUBJECT) (o : OBJECT),
FuncPre5 s ->
match fsecmat (secmat s) o with
| Some y => set_In Sub (set_union SUBeq_dec (ActReaders y) (ActWriters y))
| None => False
end ->
match fsecmat (ownerclose_sm s Sub o) o, fsecmat (secmat s) o with
| _, None => False
| None, Some z => True
| Some y, Some z =>
(set_In u0 (ActReaders y) -> set_In u0 (ActReaders z)) /\
(set_In u0 (ActWriters y) -> set_In u0 (ActWriters z))
end.