mirror of
https://github.com/tendermint/tendermint.git
synced 2026-05-23 07:31:29 +00:00
PBTS/tla: decision on valid values invariant
This commit is contained in:
@@ -522,6 +522,15 @@ AgreementOnValue ==
|
||||
/\ decision[p] = Decision(v, t, r1)
|
||||
/\ decision[q] = Decision(v, t, r2)
|
||||
|
||||
\* [PBTS-INV-VALID.0]
|
||||
ConsensusValidValue ==
|
||||
\A p \in Corr:
|
||||
\* decision[p] = Decision(v, t, r)
|
||||
LET dec == decision[p] IN dec /= NilDecision => IsValid(dec[1])
|
||||
|
||||
\* [PBTS-INV-MONOTONICITY.0]
|
||||
\* TODO: we would need to compare timestamps of blocks from different height
|
||||
|
||||
\* [PBTS-CONSENSUS-TIME-VALID.0]
|
||||
ConsensusTimeValid ==
|
||||
\A p \in Corr, t \in Timestamps :
|
||||
|
||||
@@ -789,6 +789,15 @@ DisagreementOnValue ==
|
||||
/\ decision[p] = Decision(p1, r1)
|
||||
/\ decision[q] = Decision(p2, r2)
|
||||
|
||||
\* [PBTS-INV-VALID.0]
|
||||
ConsensusValidValue ==
|
||||
\A p \in Corr:
|
||||
\* decision[p] = Decision(Proposal(v,t,pr), r)
|
||||
LET prop == decision[p][1] IN prop /= NilProposal => IsValid(prop[1])
|
||||
|
||||
\* [PBTS-INV-MONOTONICITY.0]
|
||||
\* TODO: we would need to compare timestamps of blocks from different height
|
||||
|
||||
\* [PBTS-CONSENSUS-TIME-VALID.0]
|
||||
ConsensusTimeValid ==
|
||||
\A p \in Corr:
|
||||
|
||||
Reference in New Issue
Block a user