Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | |||
learning:tla_summary [2025/08/20 10:11] – fponzi | learning:tla_summary [2025/08/20 10:20] (current) – fponzi | ||
---|---|---|---|
Line 11: | Line 11: | ||
^ Construct ^ Description ^ | ^ Construct ^ Description ^ | ||
| **module M** | Begins the module or submodule named //M//. | | | **module M** | Begins the module or submodule named //M//. | | ||
- | | **extends M1, ..., Mn** | Incorporates declarations, | + | | **extends M1, ..., Mn** | Incorporates |
- | | **constants C1, ..., Cn** | Declares | + | | **constants C1, ..., Cn** | Declares |
- | | **variables x1, ..., xn** | Declares flexible variables. | | + | | **variables x1, ..., xn** | Declares |
- | | **assume P** | States assumption //P//. | | + | | **assume P** | Asserts |
- | | **F(x1, ..., xn) == exp** | Defines operator | + | | **F(x1, ..., xn) == exp** | Defines |
- | | **f[x ∈ S] == exp** | Defines | + | | **f[x ∈ S] == exp** | Defines f to be the function |
- | | **instance M with p1 <- e1, ..., pm <- em** | Instantiates | + | | **instance M with p1 <- e1, ..., pm <- em** | For each defined operator F of module M, this defines F to be the operator whose definition is obtained from the definition of F in M by replacing each declared constant or variable pj of M with ej. (If m = 0, the ' |
- | | **N(x1, ..., xn) == instance M with ...** | Parameterized instantiation | + | | **N(x1, ..., xn) == instance M with p1 <- e1, ..., pm <- em** | For each defined operator F of module |
- | | **theorem P** | Asserts that //P// can be proved. | | + | | **theorem P** | Asserts that P can be proved |
- | | **local def** | Makes definitions | + | | **local def** | Makes the definition(s) of def (which may be a definition or an instance statement) |
| **====** | Ends the current module or submodule. | | | **====** | Ends the current module or submodule. | | ||
Line 39: | Line 39: | ||
^ Construct ^ Description ^ | ^ Construct ^ Description ^ | ||
- | | **IF p THEN e1 ELSE e2** | Conditional expression. | | + | | **IF p THEN e1 ELSE e2** | Conditional expression: e1 if p is true, else e2. | |
- | | **CASE p1 -> e1 [] ... [] pn -> en** | Pattern-based conditional. | | + | | **CASE p1 -> e1 [] ... [] pn -> en** | Some ei such that pi is true. | |
- | | **CASE ... [] OTHER -> e** | Default case. | | + | | **CASE ... [] OTHER -> e** | Some ei such that pi is true, or e if all pi are false. | |
- | | **LET ... IN e** | Local definitions. | | + | | **LET d1 == e1 ... dn == en IN e** | e in the context of the definitions. | |
- | | **/\\ p1 ... pn** | Conjunction. | | + | | **/\\ p1 ... pn** | Conjunction |
- | | **\\/ p1 ... pn** | Disjunction. | | + | | **\\/ p1 ... pn** | Disjunction |
---- | ---- | ||
Line 51: | Line 51: | ||
^ Operator ^ Description ^ | ^ Operator ^ Description ^ | ||
- | | **e'** | Value of e in next state. | | + | | **e'** | The value of e in the final state of a step. | |
- | | **[A]_e** | A or (e' = e). | | + | | **[A]_e** | A ∨ (e' = e). | |
- | | **< | + | | **< |
- | | **ENABLED A** | Action | + | | **ENABLED A** | An A step is possible. | |
| **UNCHANGED e** | e' = e. | | | **UNCHANGED e** | e' = e. | | ||
| **A · B** | Composition of actions. | | | **A · B** | Composition of actions. | | ||
Line 63: | Line 63: | ||
^ Operator ^ Meaning ^ | ^ Operator ^ Meaning ^ | ||
- | | **[]F** | Always | + | | **[]F** | F is always true. | |
- | | **<> | + | | **<> |
- | | **WF_e(A)** | Weak fairness. | | + | | **WF_e(A)** | Weak fairness |
- | | **SF_e(A)** | Strong fairness. | | + | | **SF_e(A)** | Strong fairness |
| **F ~> G** | F leads to G. | | | **F ~> G** | F leads to G. | | ||
Line 108: | Line 108: | ||
---- | ---- | ||
+ |