Store = {<, , ..., > |
n
in Int, 1 <= <= , >= }
lookup: Location x Store x Int
lookup(loc, <, ..., , ...,
>) =
update: Location x Int x Store
Store
update(loc, , <, ..., , ...,
>)
= <, ..., , ..., >
allocate: Store Location
x Store
allocate <, , ..., >
=
(loc, <, , ..., , init>
where init is some unknown integer
size-of: Store Int
size-of <, , ..., > = m
free: Int Store Store
free <, , ..., , ...,
> =
<, , ..., >
if 0 <= <=