previous up next
Go backward to Non-Strict Command Execution
Go up to Top
Go forward to Retaining Multiple Stores
RISC-Linz logo

Example

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!


Author: Wolfgang Schreiner
Last Modification: November 5, 1997

previous up next