Total stake of a set of validators with respect to a committee.
(committee-validators-stake vals commtt) → stake
The validators may or may not be members of the committee. We add up the stake of the validators who are members, while the validators who are not members contribute 0 stake.
Function:
(defun committee-validators-stake (vals commtt) (declare (xargs :guard (and (address-setp vals) (committeep commtt)))) (let ((__function__ 'committee-validators-stake)) (declare (ignorable __function__)) (committee-members-stake (intersect (address-set-fix vals) (committee-members commtt)) commtt)))
Theorem:
(defthm natp-of-committee-validators-stake (b* ((stake (committee-validators-stake vals commtt))) (natp stake)) :rule-classes :rewrite)
Theorem:
(defthm committee-validators-stake-of-address-set-fix-vals (equal (committee-validators-stake (address-set-fix vals) commtt) (committee-validators-stake vals commtt)))
Theorem:
(defthm committee-validators-stake-address-set-equiv-congruence-on-vals (implies (address-set-equiv vals vals-equiv) (equal (committee-validators-stake vals commtt) (committee-validators-stake vals-equiv commtt))) :rule-classes :congruence)
Theorem:
(defthm committee-validators-stake-of-committee-fix-commtt (equal (committee-validators-stake vals (committee-fix commtt)) (committee-validators-stake vals commtt)))
Theorem:
(defthm committee-validators-stake-committee-equiv-congruence-on-commtt (implies (committee-equiv commtt commtt-equiv) (equal (committee-validators-stake vals commtt) (committee-validators-stake vals commtt-equiv))) :rule-classes :congruence)