Definition of the invariant: the set of certificates signed by each correct validator is unequivocal.
Theorem:
(defthm unequivocal-signed-certs-p-necc (implies (unequivocal-signed-certs-p systate) (implies (in signer (correct-addresses systate)) (certificate-set-unequivocalp (signed-certs signer systate)))))
Theorem:
(defthm booleanp-of-unequivocal-signed-certs-p (b* ((yes/no (unequivocal-signed-certs-p systate))) (booleanp yes/no)) :rule-classes :rewrite)
Theorem:
(defthm unequivocal-signed-certs-p-of-system-state-fix-systate (equal (unequivocal-signed-certs-p (system-state-fix systate)) (unequivocal-signed-certs-p systate)))
Theorem:
(defthm unequivocal-signed-certs-p-system-state-equiv-congruence-on-systate (implies (system-state-equiv systate systate-equiv) (equal (unequivocal-signed-certs-p systate) (unequivocal-signed-certs-p systate-equiv))) :rule-classes :congruence)