Definition asZ (x : bool) : Z := if x then 1 else 0.

Lemma testbit_shiftl_8:
forall a0 a1 a2 a3 a4 a5 a6 a7,
forall i,
Z.testbit (Z.shiftl (Z.b2z a0) 0 + Z.shiftl (Z.b2z a1) 1
+ Z.shiftl (Z.b2z a2) 2 + Z.shiftl (Z.b2z a3) 3
+ Z.shiftl (Z.b2z a4) 4 + Z.shiftl (Z.b2z a5) 5
+ Z.shiftl (Z.b2z a6) 6 + Z.shiftl (Z.b2z a7) 7)  i=
Z.testbit (Z.shiftl (Z.b2z a0) 0) i ||
Z.testbit (Z.shiftl (Z.b2z a1) 1) i ||
Z.testbit (Z.shiftl (Z.b2z a2) 2) i ||
Z.testbit (Z.shiftl (Z.b2z a3) 3) i ||
Z.testbit (Z.shiftl (Z.b2z a4) 4) i ||
Z.testbit (Z.shiftl (Z.b2z a5) 5) i ||
Z.testbit (Z.shiftl (Z.b2z a6) 6) i ||
Z.testbit (Z.shiftl (Z.b2z a7) 7) i.