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

[tlaplus] Re: Priming TLA+ formulas



Your formula is legal TLA+, that's why SANY (I guess that's what you call the "compiler") accepts it. TLC expects you to write

a' = 1 /\ b' = 2

because it interprets Foo' as a formula to evaluate over the next state, which it has not constructed yet. Look at chapter 14 of Specifying Systems, 
and in particular section 14.2.6 for a discussion on how TLC computes states.

Stephan

On Monday, April 10, 2023 at 10:00:07 PM UTC+2 nedsr...@xxxxxxxxx wrote:
Hello again, in the example below I want to use Foo' to mean  a'=1 /\ b'=2. The compiler accepts this but TLC complains. Why is that?

VARIABLE a,b
Foo == a=1 /\ b=2
Init == Foo
Next == Foo /\ Foo'


Spec == Init /\ [][Next]_<<a,b>>

TLC complains 
TLC threw an unexpected exception.
This was probably caused by an error in the spec or model.
See the User Output or TLC Console for clues to what happened.
The exception was a java.lang.RuntimeException
:
In evaluation, the identifier a is either undefined or not an operator.
line 6, col 8 to line 6, col 8 of module test

--
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/60f7dd47-a862-408c-aee4-d157491e6553n%40googlegroups.com.