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

Re: [tlaplus] how to updating state and return in a definition



Hello,

if you remove the empty pair of parentheses, your definition is correct TLA+. It defines an operator whose effect it is to increment the state variable val and in can be used inside an action like so:

MyAction ==
  /\ ...
  /\ Calculate   \* update variable val
  /\ ...

There is no notion of "returning" an update of a variable.

If you'd rather compute a value that can be used within an _expression_ you can define

ValPlusOne == val + 1

and have something like

f' = [f EXCEPT ![p] = ValPlusOne]

for updating an array at a certain position.

Regards,
Stephan

On 15 May 2019, at 02:54, Balaji Arun <ba2669@xxxxxx> wrote:

I am trying to have a specification with a definition for Calculate()

module A:

VARIABLE val

Calculate() ==
   val
' = val + 1
   (*return [v: val] here*)

How do I return that val to whoever is calling it (even another module that instantiates module A)? Assuming multiple processes call Calculate concurrently.

--
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 post to this group, send email to tlaplus@xxxxxxxxxxxxxxxx.
Visit this group at https://groups.google.com/group/tlaplus.
To view this discussion on the web visit https://groups.google.com/d/msgid/tlaplus/d6598cfb-609a-4f6c-98a6-b12d58e6c6b4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
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 post to this group, send email to tlaplus@xxxxxxxxxxxxxxxx.
Visit this group at https://groups.google.com/group/tlaplus.
To view this discussion on the web visit https://groups.google.com/d/msgid/tlaplus/5313435A-78BA-494C-8A89-28E2C4720933%40gmail.com.
For more options, visit https://groups.google.com/d/optout.