# Re: [tlaplus] Re: About Action

• From: Huailin <huailin@xxxxxxxxx>
• Date: Thu, 22 Apr 2021 14:05:51 -0700
• Ironport-hdrordr: A9a23:kYvIlKxvC4yqR+x2hmbFKrPx8egkLtp033Aq2lEZdDV8Sebdv9yynfgdyB//gCsQXnZlotybJKycWxrnme8P3aA4Bp3neAX9omOnIMVZ7YXkyyD9ACGWzIMtrZtIW5NVTOf9BV0St6yKmTWQOdAm3dWB7eSUlf7Tpk0dOz1CRoNBy0NCCgidGlBrXwUuP/VWKLOw7tdKzgDQC0g/Qd+8AhA+Lpv+jv3N0KnreBsXQyMggTP+/Q+Azb7hDlyxxR0eUyxCqI1SslTttgzi++GDv/SjoyWsl1P7ypRNhZ/A57J4dYCxo+0UMCipswCzee1aKvy/lRU0uvzq1FExjNLXqQwhNMgb0QKSQkiQgT/Anzbtyywv7XiK8y7nvVLGqcz9RDU1T89An58xSGqV12MFsMtn2KxGm0K13qAneC/opT/w7dTEWxZhmiOP0DAfuNUehXBeTocSAYU5xedvmzIuYes9NRn34owmD+ViSPvky59tAC6nRkvUsWV1zNunUm5bJGb2fmE4ttWRw3xqmhlCvgAl7fYSmXoN7/sGK6Vs3fjOMahjidh1P7srRJ96bd1xNvefOyjnTR7KDWOfOliPLtBiB1v977DypJE4/vujdpBN9oY7hZipaiI6iUcCP2zpD8OK0Nln0DDoBF+8UzPk191E6/FC24HUdf7ENyuMTVxrvdCnv+xaIsCzYYf8BLtmR9HkK2XqFcJy2xDmH6NVNWIVXKQuy7QGcmPLhNnKJI3svumeWOrPJbbrDDYvUn7+BHxGZzToOMBc9CmQKzfFqSmUfWjsdEz59Zc1KqTc8uQJobJ9f7Fkg0wvhV605t6GJFR5w8lGGjoAHJrX1pmjrW3z12fF5WdkN158CQJ6+7P9Shpx1EA3D38=

Thanks a lot, Andrew.

From Lamport's paper or/and the book,

"An action represents a relation between old states and new states, where is unprimed variables refer to the old state and the primed variables refer to the new state."

and

"Formally, the meaning [[A]] of an action A is a relation between states--a function that assigns a boolean s[[A]]t to a pair of states s, t. "

Hence, if I have an action described as my previous email: x' + 1 = y+z
then the meaning of s[[x' + 1 = y+z ]] t:

s: (x, y,z) values.

t: (x', y,z) values. /* y and z are not changed after this action

In other words, in TLA, the state is NOT 1:1 mapped to a variable, but to the whole set of the variables.

Am I correct?

Thanks,

Huailin

On Thu, Apr 22, 2021 at 6:38 AM Andrew Helwer <andrew.helwer@xxxxxxxxx> wrote:
Hi Huailin,

The formula x' + 1 = y + z is syntactically valid and can be used in an action property, but if you want to use TLC it cannot be used in an action itself. See Specifying Systems p238 for the expressions TLC can handle when computing successor states; they include expressions of the form:
• x' = e
• x' \in S
• UNCHANGED x
Andrew

On Wednesday, April 21, 2021 at 11:48:27 PM UTC-4 hua...@xxxxxxxxx wrote:
Folks,

For an TLA's action, which is essentially a boolean _expression_, does it ONLY relate to two variables(primed or non-primed)?

For instance,  x' + 1 =y. (Please refer to Section 2.3 in Lamport's seminal paper "The Temporal Logic of Actions"-ACM 1993).

Can we have an  x' + 1 = y+z  as an action? If yes, how we define the "old state" and the new state with the postfix notation? maybe define a super-state to cover (y, z)?

Thanks huge,

Huailin

--
You received this message because you are subscribed to a topic in the Google Groups "tlaplus" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/tlaplus/8tZQbkMScgU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to tlaplus+unsubscribe@xxxxxxxxxxxxxxxx.