Skip to content

Model ledgerBranches sparsely. #1835

Model ledgerBranches sparsely.

Model ledgerBranches sparsely. #1835

Triggered via pull request April 19, 2024 23:32
Status Success
Total duration 7m 29s
Artifacts

tlaplus.yml

on: pull_request
Model Checking - Consistency
3m 12s
Model Checking - Consistency
Counterexamples - Consistency
1m 9s
Counterexamples - Consistency
Simulation - Consistency
2m 39s
Simulation - Consistency
tlai-linter
2m 55s
tlai-linter
Fit to window
Zoom out
Zoom in

Annotations

10 errors, 1 warning, and 8 notices
tlai-linter: tla/consistency/ExternalHistory.tla#L20
The comment about not including unknown and pending status is inconsistent with the TLA+ definition of `TxStatuses` which includes `InvalidStatus`. The term "invalid" is not equivalent to "unknown" or "pending", and the comment does not mention "invalid" status.
tlai-linter: tla/consistency/ExternalHistory.tla#L24
The comment about views starting at 1 is inconsistent with the TLA+ definition of `Views` as `Nat`, which includes 0. The comment implies that 0 should not be a valid view, but `Nat` allows it.
tlai-linter: tla/consistency/ExternalHistory.tla#L27
The comment about sequence numbers starting at 1 is inconsistent with the TLA+ definition of `SeqNums` as `Nat`, which includes 0. The comment implies that 0 should not be a valid sequence number, but `Nat` allows it.
tlai-linter: tla/consistency/ExternalHistory.tla#L30
The comment about `TxIDs` starting at (1,1) is inconsistent with the TLA+ definition of `TxIDs` as `Views \X SeqNums`, since both `Views` and `SeqNums` include 0, thus (0,0) is included in `TxIDs` which contradicts the comment.
tlai-linter: tla/consistency/ExternalHistory.tla#L118
The comment about `TxStatusReceivedEventIndexes` being indexes into history for events where a committed status is received is inconsistent with the TLA+ definition which selects indexes from `history` where any `TxStatusReceived` event occurs, not just committed ones.
tlai-linter: tla/consistency/ExternalHistory.tla#L121
The comment about `RoTxRequestedCommittedEventIndexes` being indexes into history for events where a committed status is received is inconsistent with the TLA+ definition which selects indexes from `history` where `RoTxRequest` events with committed transaction IDs occur, not where a committed status is received.
tlai-linter: tla/consistency/ExternalHistoryInvars.tla#L5
The comment about read-write transaction responses always following an associated request is inconsistent with the TLA+ definition of `AllRwReceivedIsFirstSentInv` which allows for the possibility of a `RwTxResponse` without a preceding `RwTxRequest` with the same transaction, as it only checks for the existence of any request earlier in the history, not necessarily an associated one.
tlai-linter: tla/consistency/SingleNode.tla#L9
The comment about abstract ledgers containing only client transactions is inconsistent with the TLA+ definition of `ledgerBranches` which does not explicitly restrict the ledger to client transactions, as there is no check for the type of transaction within the ledger entries.
tlai-linter: tla/consistency/SingleNode.tla#L23
The comment about each ledger being append-only is inconsistent with the TLA+ definition of `LedgersMonoProp` which uses the `IsPrefix` operator that allows for the ledger to remain unchanged, not strictly append-only as the comment suggests.
tlai-linter: tla/consistency/SingleNode.tla#L43
The comment about submitting new read-write transactions does not mention any constraints on the transactions, but the TLA+ definition of `RwTxRequestAction` includes a constraint on the next request ID, which is inconsistent with the comment's lack of mention of such a constraint.
tlai-linter
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
tlai-linter: tla/consistency/ExternalHistory.tla#L10
The comment mentions that "Both transaction types are modelled as forward-always transactions" which is consistent with the TLA+ declarations of `RwTxRequest`, `RwTxResponse`, `RoTxRequest`, and `RoTxResponse` as constants, implying that they are always moving forward in the model.
tlai-linter: tla/consistency/ExternalHistory.tla#L16
The comment states that the model does not include the unknown and pending status to reduce state space, which is consistent with the TLA+ declarations of `CommittedStatus` and `InvalidStatus` as the only elements of `TxStatuses`.
tlai-linter: tla/consistency/ExternalHistory.tla#L24
The comment about views and sequence numbers starting at 1 and using 0 as a null value is consistent with the TLA+ definitions of `Views` and `SeqNums` as `Nat`, since `Nat` includes 0 and all positive integers.
tlai-linter: tla/consistency/ExternalHistory.tla#L33
The comment describes a dummy application where read-write transactions append an integer to a list and read-only transactions read the list, which is consistent with the TLA+ definition of `Txs` as `Nat`, representing the list of integers.
tlai-linter: tla/consistency/ExternalHistory.tla#L54
The comment about the history being append-only is consistent with the TLA+ definition of `HistoryMonoProp` using the `IsPrefix` operator, which ensures that `history` can only grow.
tlai-linter: tla/consistency/ExternalHistory.tla#L80
The comment about the highest commit sequence number is consistent with the TLA+ definition of `CommitSeqNum` using the `Max` operator to find the maximum sequence number from `CommittedTxIDs`.
tlai-linter: tla/consistency/ExternalHistory.tla#L94
The comment about indexes being events where the transaction was responded to is consistent with the TLA+ definition of `RwTxResponseCommittedEventIndexes` which selects indexes from `history` where `RwTxResponse` events with committed transaction IDs occur.
tlai-linter: tla/consistency/ExternalHistory.tla#L106
The comment about indexes being events where the transaction was responded to is consistent with the TLA+ definition of `RoTxResponseCommittedEventIndexes` which selects indexes from `history` where `RoTxResponse` events with committed transaction IDs occur.