[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[tlaplus] A \/ B



Hello Everyone.
I`m new to TLA+, sorry for trivial questions ...
studying session 7 in PlusCal Tutorial https://lamport.azurewebsites.net/tla/tutorial/session7.html i got TLA+ code.
In short words:
init: x = 0
A == /\ pc[3] = "a"
     /\ x' = x + 1
     /\ pc' = [pc EXCEPT ![3] = "Done"]

B == /\ pc[-7] = "b"
     /\ x' = x + 1
     /\ pc' = [pc EXCEPT ![-7] = "Done"]

Next = A \/ B \/ Terminating
processes executed once, and the resulting value of x is 2
From my point of view, it could be 1 if both processes worked and finished in parallel, but it doesn`t happen.

Can you please tell me what is the checker logic for this code?
it executes both A and B, but the last executed overwrites pc, so first is obliged to be executed second time?
or after executing first, it even doesn`t try to run second, because this condition doesn't stay:  pc' = [pc EXCEPT ![-7] = "Done"] ?

Sincerely yours, Andrew

--
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/ae6e7be5-6a5d-408e-8782-f75dfb225a82n%40googlegroups.com.