% @(#)$Id: TrashesSemantics.lsl,v 1.2 1995/11/13 15:34:50 leavens Exp $ TrashesSemantics: trait assumes State, AllocatedAssigned(Loc, T) introduces isTrashed: Loc[T], State, State -> Bool asserts \forall loc: Loc[T], pre,post: State isTrashed(loc, pre, post) == (assigned(loc, pre) /\ ~assigned(loc, post)) \/ (allocated(loc, pre) /\ ~allocated(loc, post)); implies \forall loc: Loc[T], pre,post: State isTrashed(loc, pre, post) => (allocated(loc, pre) /\ (~allocated(loc, post) \/ ~assigned(loc, post))); isTrashed(loc, pre, post) => ~assigned(loc, post); ~isTrashed(loc, pre, post) == (~assigned(loc, pre) \/ assigned(loc, post)) /\ (~allocated(loc, pre) \/ allocated(loc, post)); (~isTrashed(loc, pre, post) /\ assigned(loc, pre)) => assigned(loc, post); (~isTrashed(loc, pre, post) /\ allocated(loc, pre)) => allocated(loc, post); converts isTrashed exempting \forall loc: Loc[T], st: State isTrashed(loc,bottom,st), isTrashed(loc,st,bottom)
[Index]
HTML generated using lcpp2html.