% @(#)$Id: PointerDeref.lsl,v 1.1 1999/02/03 20:29:30 leavens Exp $ % Dereferencing of pointers % AUTHOR: Clyde Ruby PointerDeref(T): trait includes MutableObj(T), MutableObj(Ptr[Obj[T]]), MutableObj(Ptr[ConstObj[T]]) includes ConstObj(T), ConstObj(Ptr[Obj[T]]), ConstObj(Ptr[ConstObj[T]]) includes Pointer(Obj, T), Pointer(ConstObj, T) introduces deref: Obj[Ptr[Obj[T]]], State -> T deref: Obj[Ptr[ConstObj[T]]], State -> T deref: ConstObj[Ptr[Obj[T]]], State -> T deref: ConstObj[Ptr[ConstObj[T]]], State -> T asserts \forall p1:Obj[Ptr[Obj[T]]], p2:Obj[Ptr[ConstObj[T]]], p3:ConstObj[Ptr[Obj[T]]], p4:ConstObj[Ptr[ConstObj[T]]], st:State deref(p1, st) == eval(*(eval(p1, st)), st); deref(p2, st) == eval(*(eval(p2, st)), st); deref(p3, st) == eval(*(eval(p3, st)), st); deref(p4, st) == eval(*(eval(p4, st)), st);
[Index]
HTML generated using lcpp2html.