Additional consistency invariant (#6184)

This commit is contained in:
Heidi Howard 2024-05-16 23:36:22 +01:00 коммит произвёл GitHub
Родитель 4eedf465d4
Коммит 5765fbdb55
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
1 изменённых файлов: 9 добавлений и 0 удалений

Просмотреть файл

@ -87,6 +87,14 @@ OnceCommittedPrevCommittedInv ==
/\ history[j].tx_id[2] <= history[i].tx_id[2]
=> history[j].status = CommittedStatus
\* If a transaction is committed then all others from greater (or equal) seqnums but strictly smaller terms are invalid
OnceCommittedNextInvalidInv ==
\A i, j \in TxStatusReceivedEventIndexes:
/\ history[i].status = CommittedStatus
/\ history[i].tx_id[2] <= history[j].tx_id[2]
/\ history[j].tx_id[1] < history[i].tx_id[1]
=> history[j].status = InvalidStatus
\* If a transaction is invalid then so are all others from the same term with greater seqnums
OnceInvalidNextInvalidInv ==
\A i, j \in TxStatusReceivedEventIndexes:
@ -98,6 +106,7 @@ OnceInvalidNextInvalidInv ==
\* The following is strengthened variant of CommittedOrInvalidInv
CommittedOrInvalidStrongInv ==
/\ OnceCommittedPrevCommittedInv
/\ OnceCommittedNextInvalidInv
/\ OnceInvalidNextInvalidInv