Go backward to Program Denotation Go up to Top Go forward to Simplification II |
P[[Z:=1; if A=0 then diverge;
Z:=3.]](zero)
= let s3 = [ [[A]] |-> zero ]newstore
s' = C[[Z:=1; if A=0 then
diverge; Z:=3]]s3
in access [[Z]] s'
= let s3 = [ [[A]] |-> zero ]newstore
s4 = [ [[Z]] |-> one ]s3
s' = C[[if A=0 then
diverge; Z:=3]]s4
in access [[Z]] s'
= let s3 = [ [[A]] |-> zero ]newstore
s4 = [ [[Z]] |-> one ]s3
s5 = C[[if A=0 then
diverge]]s4
s' = C[[Z:=3]]s5
in access [[Z]] s'
C[[if A=0 then diverge]]s4
= B[[A=0]]s4 -> C[[diverge]]s4
[] s4
= true -> C[[diverge]]s4 [] s4
= C[[diverge]]s4
= (lambdas._|_)s4
= _|_