github.com/aakash4dev/cometbft@v0.38.2/spec/light-client/accountability/MC_n4_f3.tla (about)

     1  ----------------------------- MODULE MC_n4_f3 -------------------------------
     2  CONSTANT
     3    \* @type: $round -> $process;
     4    Proposer
     5  
     6  \* the variables declared in TendermintAcc3
     7  VARIABLES
     8    \* @type: $process -> $round;
     9    round,    \* a process round number: Corr -> Rounds
    10    \* @type: $process -> $step;
    11    step,     \* a process step: Corr -> { "PROPOSE", "PREVOTE", "PRECOMMIT", "DECIDED" }
    12    \* @type: $process -> $value;
    13    decision, \* process decision: Corr -> ValuesOrNil
    14    \* @type: $process -> $value;
    15    lockedValue,  \* a locked value: Corr -> ValuesOrNil
    16    \* @type: $process -> $round;
    17    lockedRound,  \* a locked round: Corr -> RoundsOrNil
    18    \* @type: $process -> $value;
    19    validValue,   \* a valid value: Corr -> ValuesOrNil
    20    \* @type: $process -> $round;
    21    validRound,   \* a valid round: Corr -> RoundsOrNil
    22    \* @type: $round -> Set($proposeMsg);
    23    msgsPropose,   \* PROPOSE messages broadcast in the system, Rounds -> Messages
    24    \* @type: $round -> Set($preMsg);
    25    msgsPrevote,   \* PREVOTE messages broadcast in the system, Rounds -> Messages
    26    \* @type: $round -> Set($preMsg);
    27    msgsPrecommit, \* PRECOMMIT messages broadcast in the system, Rounds -> Messages
    28    \* @type: Set($proposeMsg);
    29    evidencePropose, \* the PROPOSE messages used by some correct processes to make transitions
    30    \* @type: Set($preMsg);
    31    evidencePrevote, \* the PREVOTE messages used by some correct processes to make transitions
    32    \* @type: Set($preMsg);
    33    evidencePrecommit, \* the PRECOMMIT messages used by some correct processes to make transitions
    34    \* @type: $action;
    35    action        \* we use this variable to see which action was taken
    36  
    37  INSTANCE TendermintAccDebug_004_draft WITH
    38    Corr <- {"c1"},
    39    Faulty <- {"f2", "f3", "f4"},
    40    N <- 4,
    41    T <- 1,
    42    ValidValues <- { "v0", "v1" },
    43    InvalidValues <- {"v2"},
    44    MaxRound <- 2
    45  
    46  \* run Apalache with --cinit=ConstInit
    47  ConstInit == \* the proposer is arbitrary -- works for safety
    48    Proposer \in [Rounds -> AllProcs]
    49  
    50  =============================================================================