Definition of the invariant:
for each correct validator,
if the last committed round is not 0,
the last committed anchor has at least
Theorem:
(defthm last-anchor-voters-p-necc (implies (last-anchor-voters-p systate) (implies (in val (correct-addresses systate)) (validator-last-anchor-voters-p (get-validator-state val systate)))))
Theorem:
(defthm booleanp-of-last-anchor-voters-p (b* ((yes/no (last-anchor-voters-p systate))) (booleanp yes/no)) :rule-classes :rewrite)
Theorem:
(defthm last-anchor-voters-p-of-system-state-fix-systate (equal (last-anchor-voters-p (system-state-fix systate)) (last-anchor-voters-p systate)))
Theorem:
(defthm last-anchor-voters-p-system-state-equiv-congruence-on-systate (implies (system-state-equiv systate systate-equiv) (equal (last-anchor-voters-p systate) (last-anchor-voters-p systate-equiv))) :rule-classes :congruence)