Hi Chris,
Here's a quick toy model:
VARIABLES x, y
Swap ==
/\ x' = y
/\ y' = x
If vars == {x, y}, then after Swap we have vars' = {x', y'} = {y, x}. Since sets are unordered, we have vars' = vars, or UNCHANGED vars. But clearly the state of the system changed!
With vars == <<x, y>>, after Swap we have vars' = <<y, x>>. Since order matters in sequences, vars' # vars and we get the expected behavior.
H
Hi tlaplus group,--
I am just curious with the convention why vars is defined as tuples of variables for UNCHANGED, <<A>>_vars, [A]_vars, [][Next]_vars, WF_vars and SF_vars. My understanding is that tuples preserved ordering of elements. Maybe I am still confused or still having a hang over with Programming Language, but I like to understand why tuple is the selected convention for such variables for those semantics, instead of set. Sometimes it confused me to make sure I follow the ordering from how I defined them in vars up to the way I removed variables in my UNCHANGED _expression_.
Thanks,Zitro--
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 tlaplus+unsubscribe@xxxxxxxxxxxxxxxx.
To view this discussion on the web visit https://groups.google.com/d/msgid/tlaplus/8c448736-b5e8-4855-a094-3c80ad617a94n%40googlegroups.com.