|
|
- ------------------ MODULE TendermintAccTrace_004_draft -------------------------
- (*
- When Apalache is running too slow and we have an idea of a counterexample,
- we use this module to restrict the behaviors only to certain actions.
- Once the whole trace is replayed, the system deadlocks.
-
- Version 1.
-
- Igor Konnov, 2020.
- *)
-
- EXTENDS Sequences, Apalache, TendermintAcc_004_draft
-
- \* a sequence of action names that should appear in the given order,
- \* excluding "Init"
- CONSTANT
- \* @type: TRACE;
- Trace
-
- VARIABLE
- \* @type: TRACE;
- toReplay
-
- TraceInit ==
- /\ toReplay = Trace
- /\ action' := "Init"
- /\ Init
-
- TraceNext ==
- /\ Len(toReplay) > 0
- /\ toReplay' = Tail(toReplay)
- \* Here is the trick. We restrict the action to the expected one,
- \* so the other actions will be pruned
- /\ action' := Head(toReplay)
- /\ Next
-
- ================================================================================
|