Saturday, October 8, 2022

glossary for TLA+ and PlusCal jargon

TLA+

See also TLA+ language summary and this summary. Here's another summary of operators.

jargon definition
Apalache "symbolic model checker for TLA+." "Translates TLA+ into the logic supported by SMT solvers such as Microsoft Z3."
Source: apalache github
behavior

aka execution
sequence of states
Source: Lecture 1 video

CONSTANT


Source: Specifying Systems page i25

CONSTANTS See CONSTANT
execution see behavior.
Source: Lecture 1 video
deadlock

execution stopped when it wasn't supposed to
Source: Lecture 3 video

See also termination
EXTENDS
Source: Lecture 2 video
FALSE See also TRUE
Source: Lecture 2 video
IF THEN
Source: Lecture 2 video
IF THEN ELSE
Source: Lecture 2 video
liveness property

"you have to look at the entire execution, which may be infinite, to determine that it is not satisfied."
Source: session 9

See also safety property

MODULE
Source: Lecture 2 video
PlusCal User's manual
safety property

"if is not satisfied by an execution, then you can tell that it's not satisfied by looking at a finite portion of the execution—even if the execution is infinite."
Source: session 9

See also liveness property

state assignment of values to variables
Source: Lecture 1 video and
Source: TLA+ chapter in "Software Specification Methods"
state machine, specification of
  • all possible initial states
    • variables
    • initial value of each variable
  • what state follows a given state
    • relations values of variables in current state and possible values in the next state.
Source: Lecture 1 video
state predicate

"A formula that is true or false of a state. A state predicate is just an ordinary Boolean-valued formula that can contain variables but no primed variables and no temporal operators like <>."
Source: session 9

step change from one state to the next state.
Source: Lecture 1 video
strong fairness "A step of a process is strongly fair in a behavior iff there is no point in the behavior after which the step is enabled in infinitely many states but no such step occurs in the behavior."
Source: session 9

See also weak fairness
strongly fair see strong fairness
termination

execution stopped when it was supposed to
Source: Lecture 3 video

See also deadlock
TLA

Temporal Logic of Actions
a temporal logic developed for describing and reasoning about concurrent and distributed systems
Source: Specifying and Verifying Systems With TLA+

TLAPS TLA+ proof system.
Source: Lecture 1 video and
Source: TLA+ Proof System (TLAPS)
TLA+

language for high-level modeling digital systems. Here "high-level" refers to the design aspects, above the code. Examples of digital systems: algorithms, programs, and computer systems.
Source: Lecture 1 video

"a formal specification language based on (untyped) ZF set theory, first-order logic, and TLA (the Temporal Logic of Actions)"
Source: Specifying and Verifying Systems With TLA+

TLA+ version 2 user guide (2018)

TLA+ hyperbook

TLA+ toolbox IDE for TLA+.
Source: Lecture 1 video.

Toolbox website
TLC on-the-fly model checker for debugging TLA+ specifications
Source: Specifying and Verifying Systems With TLA+
TRUE See also FALSE
Source: Lecture 2 video
VARIABLE
Source: Lecture 2 video
VARIABLES
weak fairness

the process must keep taking steps if it can
Source: session 9

See also strong fairness

weakly fair see weak fairness
/\ and
\/ or
Source: Lecture 2 video
<>

aka eventually
For any state predicate P, the formula <>P is true of a behavior iff P is true of at least one state of the behavior.
Source: session 9

[]

aka always
For any state predicate P, the formula <>P is true of a behavior iff P is true of at least one state of the behavior.
Source: session 9

~>

aka leads to
Source: session 9

' aka prime
next value


In module Sequences

See TLA+ summary page 8 of 9, and this summary.
jargon definition
Append(seq,e) the sequence obtained by appending the value e as the new last element of the sequence seq. For example,
Append(<<1, 2>>, 42) equals <<1, 2, 42>>.
Source: intermezzo 1
Head(seq) the first element of a non-empty sequence seq. For example, Head(<<"a", "c", "b">>) equals "a".
Source: intermezzo 1
\o aka concatenation
"seq1 \o seq2 is the sequence obtained by concatinating the sequences seq1 and seq2 in the obvious way. For example, seq \o <<e>> equals Append(seq,e) for any sequence seq and value e."
Source: intermezzo 1

No comments:

Post a Comment