Set Bullet Behavior "Strict Subproofs".
Opaque upto.

Lemma make_shares_add : forall i i' d lasts lgood j shs (Hj : 0 <= j < Zlength lasts)
(Hi : Znth j lasts d = i) (Hgood : Znth j lgood false = true) (Hi' : i' <> i)
(Hlen : Zlength shs >= Zlength lasts),
exists shs1 shs2, make_shares shs (combine lgood lasts) i = shs1 ++ shs2 /\
make_shares shs (combine lgood (upd_Znth j lasts i')) i = shs1 ++ Znth j shs Tsh :: shs2.