Two non-forking blockchains calculate the same active committees, when they both do.
While same-active-committees-longer-shorter
takes care of the interesting case of our overall proof,
we need a proof for all cases, which we do here,
using lists-noforkp,
whose expansion splits into three cases.
The case of equal blockchains is trivial.
The other two cases are symmetric,
and handled by two firings of
same-active-committees-longer-shorter,
one with
Instead of
Theorem:
(defthm same-active-committees-when-nofork (implies (and (lists-noforkp blocks1 blocks2) (blocks-orderedp blocks1) (blocks-orderedp blocks2) (active-committee-at-round round blocks1) (active-committee-at-round round blocks2)) (equal (equal (active-committee-at-round round blocks1) (active-committee-at-round round blocks2)) t)))