Check if the set of committed certificates of a validator is the causal history of its last committed anchor.
(validator-committed-redundant-p vstate) → yes/no
Function:
(defun validator-committed-redundant-p (vstate) (declare (xargs :guard (validator-statep vstate))) (declare (xargs :guard (or (equal (validator-state->last vstate) 0) (last-anchor vstate)))) (let ((__function__ 'validator-committed-redundant-p)) (declare (ignorable __function__)) (equal (validator-state->committed vstate) (if (equal (validator-state->last vstate) 0) nil (certificate-causal-history (last-anchor vstate) (validator-state->dag vstate))))))
Theorem:
(defthm booleanp-of-validator-committed-redundant-p (b* ((yes/no (validator-committed-redundant-p vstate))) (booleanp yes/no)) :rule-classes :rewrite)
Theorem:
(defthm validator-committed-redundant-p-of-validator-state-fix-vstate (equal (validator-committed-redundant-p (validator-state-fix vstate)) (validator-committed-redundant-p vstate)))
Theorem:
(defthm validator-committed-redundant-p-validator-state-equiv-congruence-on-vstate (implies (validator-state-equiv vstate vstate-equiv) (equal (validator-committed-redundant-p vstate) (validator-committed-redundant-p vstate-equiv))) :rule-classes :congruence)