Go backward to Non-Strict Command Execution Go up to Top Go forward to Retaining Multiple Stores |
begin
X:=0;
diverge;
X:=2
return X+1
K[[begin X:=0; diverge; X:=2 return
X+1]]s0
= E[[X+1]] (C[[X:=0; diverge X:=2]]s0)
= E[[X+1]]
(C[[X:=2]](C[[diverge; X:=2]]s0))
= E[[X+1]](C[[X:=2]]s1)
= E[[X+1]](update [[X]] (E[[2]]s1)
s1)
= E[[X+1]]([ [[X]] |-> (E[[2]]s1) ]s1)
= E[[X]]([ [[X]] |-> (E[[2]]s1) ]s1)
plus one
= E[[2]]s1 plus one
= two plus one
= three
s1 = C[[X:=0; diverge]]s0 needs not be simplified!