Stephan, thank you very much for the answer,
the behavior about 'x' variable is clear to me
but I would precise my question:
for me, the i2 variable is supposed to be listed in the 'UNCHANGED' block, but instead, it is described as "/\ i2' = i2'".
i2 appears in UNCHANGED, if "x:= ~x;" is removed from the text
lets compare those two examples:
1.
process clock = "clock"
begin
ActionClock:
i1 := i1+1;
x:= ~x;
goto ActionClock;
end process;
>>
ActionClock == /\ pc["clock"] = "ActionClock"
/\ i1' = i1+1
/\ x' = ~x
/\ pc' = [pc EXCEPT !["clock"] = "ActionClock"]
/\ i2' = i2
2.
process clock = "clock"
begin
ActionClock:
i1 := i1+1;
goto ActionClock;
end process;
>>
ActionClock == /\ pc["clock"] = "ActionClock"
/\ i1' = i1+1
/\ pc' = [pc EXCEPT !["clock"] = "ActionClock"]
/\ UNCHANGED << x, i2 >>
it happens, when I do use 'translate pluscal algorithm' in TLA+ toolbox, v 1.7.1
Practically, both examples are equivalent about i2 variable behavior,
Just the translator don`t want to define 'UNCHANGED' block for the single variable
You received this message because you are subscribed to the Google Groups "tlaplus" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
.
.