Preservation of the invariant: if the invariant holds in a system state, it also holds in the next system state.
A
A
An
Theorem:
(defthm validator-last-anchor-voters-p-of-create-next (implies (and (system-committees-fault-tolerant-p systate) (no-self-endorsed-p systate) (signer-records-p systate) (signer-quorum-p systate) (unequivocal-dags-p systate) (same-committees-p systate) (last-anchor-present-p systate) (create-possiblep cert systate) (in val (correct-addresses systate)) (validator-last-anchor-voters-p (get-validator-state val systate))) (validator-last-anchor-voters-p (get-validator-state val (create-next cert systate)))))
Theorem:
(defthm last-anchor-voters-p-of-create-next (implies (and (last-anchor-voters-p systate) (system-committees-fault-tolerant-p systate) (no-self-endorsed-p systate) (signer-records-p systate) (signer-quorum-p systate) (unequivocal-dags-p systate) (same-committees-p systate) (last-anchor-present-p systate) (create-possiblep cert systate)) (last-anchor-voters-p (create-next cert systate))))
Theorem:
(defthm validator-last-anchor-voters-p-of-accept-next (implies (and (system-committees-fault-tolerant-p systate) (signer-quorum-p systate) (unequivocal-signed-certs-p systate) (unequivocal-dags-p systate) (same-committees-p systate) (last-anchor-present-p systate) (accept-possiblep msg systate) (messagep msg) (in val (correct-addresses systate)) (validator-last-anchor-voters-p (get-validator-state val systate))) (validator-last-anchor-voters-p (get-validator-state val (accept-next msg systate)))))
Theorem:
(defthm last-anchor-voters-p-of-accept-next (implies (and (last-anchor-voters-p systate) (system-committees-fault-tolerant-p systate) (signer-quorum-p systate) (unequivocal-signed-certs-p systate) (unequivocal-dags-p systate) (same-committees-p systate) (last-anchor-present-p systate) (accept-possiblep msg systate) (messagep msg)) (last-anchor-voters-p (accept-next msg systate))))
Theorem:
(defthm validator-last-anchor-voters-p-of-advance-next (implies (and (advance-possiblep val systate) (in val1 (correct-addresses systate)) (validator-last-anchor-voters-p (get-validator-state val1 systate))) (validator-last-anchor-voters-p (get-validator-state val1 (advance-next val systate)))))
Theorem:
(defthm last-anchor-voters-p-of-advance-next (implies (and (last-anchor-voters-p systate) (advance-possiblep val systate)) (last-anchor-voters-p (advance-next val systate))))
Theorem:
(defthm stake-of-successors-loop-to-leader-stake-votes (implies (and (certificate-setp certs) (certificate-set-unequivocalp certs) (addressp prev) (<= (cardinality (cert-set->round-set certs)) 1)) (equal (committee-members-stake (cert-set->author-set (successors-loop certs prev)) commtt) (leader-stake-votes prev certs commtt))))
Theorem:
(defthm stake-of-successors-to-leader-stake-votes (implies (and (certificate-setp dag) (certificate-set-unequivocalp dag)) (equal (committee-members-stake (cert-set->author-set (successors cert dag)) commtt) (leader-stake-votes (certificate->author cert) (certs-with-round (1+ (certificate->round cert)) dag) commtt))))
Theorem:
(defthm validator-last-anchor-voters-p-of-commit-next (implies (and (last-blockchain-round-p systate) (ordered-blockchain-p systate) (unequivocal-dags-p systate) (commit-possiblep val systate) (addressp val) (in val1 (correct-addresses systate)) (validator-last-anchor-voters-p (get-validator-state val1 systate))) (validator-last-anchor-voters-p (get-validator-state val1 (commit-next val systate)))))
Theorem:
(defthm last-anchor-voters-p-of-commit-next (implies (and (last-anchor-voters-p systate) (last-blockchain-round-p systate) (ordered-blockchain-p systate) (unequivocal-dags-p systate) (commit-possiblep val systate) (addressp val)) (last-anchor-voters-p (commit-next val systate))))
Theorem:
(defthm last-anchor-voters-p-of-event-next (implies (and (last-anchor-voters-p systate) (system-committees-fault-tolerant-p systate) (last-blockchain-round-p systate) (ordered-blockchain-p systate) (no-self-endorsed-p systate) (signer-records-p systate) (signer-quorum-p systate) (unequivocal-signed-certs-p systate) (unequivocal-dags-p systate) (same-committees-p systate) (last-anchor-present-p systate) (event-possiblep event systate)) (last-anchor-voters-p (event-next event systate))))