% @(#)$Id: WithUnassigned.lsl,v 1.1 1995/11/06 05:12:17 leavens Exp $
WithUnassigned(T): trait
introduces
injectTVal: T -> WithUnassigned[T]
extractTVal: WithUnassigned[T] -> T
unassigned: -> WithUnassigned[T]
isUnassigned: WithUnassigned[T] -> Bool
asserts
sort WithUnassigned[T] generated by injectTVal, unassigned
sort WithUnassigned[T] partitioned by isUnassigned, extractTVal
\forall tval: T
extractTVal(injectTVal(tval)) == tval;
~isUnassigned(injectTVal(tval));
isUnassigned(unassigned);
implies
\forall tval: T
injectTVal(extractTVal(injectTVal(tval))) == injectTVal(tval);
converts
isUnassigned, extractTVal
exempting extractTVal(unassigned)
[Index]
HTML generated using lcpp2html.