previous up next
Go backward to Function Domains
Go up to Top
Go forward to Recursive Function Definitions
RISC-Linz logo

Lifted Domains

Unsafe arrays of unsafe values

Domain Uarr = Array_|_
where Array = Nat -> Tr'
and Tr' = (B union {error})_|_
Operations
new-unsafe: Uarr
    new-unsafe = newarray
access-unsafe: Nat_|_ -> Uarr -> Tr'
    access-unsafe = lambda n.lambda r.(access n r)
upd-unsf: Nat_|_ -> Tr' -> Uarr -> Uarr
    upd-unsf = lambda n.lambda t.lambda r.(update n t r)

Indices and elements may be improper!

upd-unsf(plus one two)(not'(_|_))(new-unsafe)
= upd-unsf(plus one two)(not'(_|_))(newarray)
= upd-unsf(plus one two)(not'(_|_))(lambda n.error)
= upd-unsf(three)(_|_)(lambda n.error)
= update(three)(_|_)(lambda n.error)
= [three |-> _|_](lambda n.error) (not'=lambda t.not(t))


Author: Wolfgang Schreiner
Last Modification: October 14, 1997

previous up next