Set Bullet Behavior "Strict Subproofs".
Opaque upto.

Lemma make_shares_join : forall i d lasts lgood shs sh0 j sh1 sh2
(Hlen : Zlength shs >= Zlength lasts)
(Hsh1 : sepalg_list.list_join sh0 shs sh1)
(Hsh2 : sepalg_list.list_join sh0 (make_shares shs (combine lgood lasts) i) sh2)
(Hin : 0 <= j < Zlength shs) (Hj : Znth j lasts d = i),
exists sh', sepalg.join sh2 (Znth j shs Tsh) sh'.