====== 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. At the bare minimum a ''%%SPECIFICATION%%'' should be provided. ===== Supported Sections ===== ==== 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 ==== 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} ==== 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: ===== SPECIFICATION Spec CONSTANTS Nodes = 3 INVARIANT TypeOK PROPERTIES Termination \* Check presence of deadlocks. This is true by default. CHECK_DEADLOCK FALSE ===== Resources ===== Check the EBNF and more info on the apalache documentation [[https://apalache.informal.systems/docs/apalache/tlc-config.html|here]].