Soundness Theorem
[[P:H]] in [[H]], for
every well-typed phrase P:H
- Case n: int
- [[n: int]] = n in Int = [[int]]
- Case @L: intexp
- We know [[L: intloc]] = l in [[intloc]] =
Location. Then, for every Store s, [[@L: intexp]](s) =
lookup(l, s) in Int i.e. [[@L: intexp]] in Store -> Int = [[intexp]].
- Case C1;C2: comm
- We know [[C1: comm]] and [[C2: comm]] are elements of
Store -> Storebottom. For every Store s,
we
have [[C1;C2: comm]](s) = [[C2: comm]]([[C1:
comm]](s)) and [[C2:comm]](s) = s1 in Storebottom. If s1=bottom,
[[C2: comm]](s1)=bottom in Storebottom. If s1 in Store, then
[[C2: comm]](s1) in Storebottom. Hence,
[[C1;C2: comm]] in Store ->
Storebottom = [[comm]].
Prove one case for each typing rule.
Author: Wolfgang Schreiner
Last Modification: March 26, 1998