Config files

The config files are used for TLC model checking.

The possible contents of the config file itself are presented below. The config file has .cfg extension, and usually has the same name of your spec (.tla file).

TODO: values supported in config files. Typed model values.

Table Of Contents:

Supported Sections

Constants or Constant (they're aliases)

You can use it to specify the constant used in the model.

CONSTANTS
    Processes = {1,2,3}

Equivalent to:

CONSTANT
    Processes = {1,2,3}

SPECIFICATION

The name of the predicate that usually has the form of: Init /\ [][Next]_vars /\backslash.

Usually per convention it's called Spec.

SPECIFICATION
    Spec

INVARIANT or INVARIANTS (they're aliases)

Invariants that you want to verify.

INVARIANT
    TypeOk \* Always verify your types!

PROPERTIES or PROPERTY (they're aliases)

Temporal properties you want to verify.

PROPERTIES
    Termination

CONSTRAINT or CONSTRAINTS (they're aliases)

Used to restrict the state space to be explored. Helps restricting unbounded models.

SYMMETRY

Helps reducing the state space to explore by removing symmetric states. You can't check liveness properties when symmetry is used. See: https://federicoponzi.github.io/tlaplus-wiki/codebase/wishlist.html#liveness-checking-under-symmetry-difficulty-high-skills-java-tla

VIEW

CHECK_DEADLOCK

POSTCONDITION

ALIAS

INIT

NEXT

A copy-pastable example:

\* Add statements after this line.
CONSTANTS

SPECIFICATION
    Spec

INVARIANT
    TypeOK

PROPERTIES
\*    Termination

\* Check presence of deadlocks. It's true by default.
CHECK_DEADLOCK 
    FALSE

Resources

Check the EBNF and more info on the apalache documentation here.

Last change: 2024-09-08, commit: 0ca592e