Confusion on document about definition override

24 views
Skip to first unread message

Shiyao MA

unread,
Aug 12, 2019, 8:30:10 PM8/12/19
to tlaplus
Per here:

The Toolbox will create the appropriate entry in that section when it creates a model if it finds a definition having the precise syntax above or the syntax
NotANat == CHOOSE n : ~(n \in Nat)

What does the above mean? Why does the toolbox create such an entry, why emphasize such an action? How is it related to model value?


Best, 

Thanks. 

Andrew Helwer

unread,
Aug 12, 2019, 11:03:55 PM8/12/19
to tlaplus
These "null" value definitions are very common in TLA+. They also aren't compatible with TLC, the finite model checker. You have to add a definition override which reassigns the null value label to a model value, basically a meaningless singleton object value which can only be checked for equality and is only equal to itself. Since it would be annoying to manually perform this definition override in every new model, the toolbox detects definitions of this type and automatically adds a definition override for these null values.

Shiyao MA

unread,
Aug 12, 2019, 11:42:01 PM8/12/19
to tlaplus
Thanks for your reply.

I would rather manually write in the cfg file with:
CONSTANT
NoValue = NoValue


Relying on the toolbox for that trick seems some extra redundant work.

Andrew Helwer

unread,
Aug 13, 2019, 9:11:22 AM8/13/19
to tlaplus
You are free to write the cfg file manually. This feature is only available to those using the toolbox.
Reply all
Reply to author
Forward
0 new messages