proposition: Lemma ByteString_enqueue_padding_eq : forall a b, padding (ByteString_enqueue a b) = NPeano.modulo (S (padding b)) 8.
proof: Proof. intros. rewrite padding_eq_mod_8. unfold length_ByteString. rewrite <- Nat.add_mod_idemp_r, mult_comm, NPeano.Nat.mod_mul, <- plus_n_O by omega. destruct b; simpl. destruct padding0 as [ | [ | [ | [ | [ | [ | [ | [ | ?] ] ] ] ] ] ] ]; simpl; try omega. reflexivity. Qed.
imports: Fiat.Common.Coq__8_4__8_5__Compat Bedrock.Word Coq.ZArith.ZArith Coq.NArith.NArith Coq.Arith.Arith Coq.Numbers.Natural.Peano.NPeano Coq.Logic.Eqdep_dec Fiat.Narcissus.Common.Specs Fiat.Narcissus.BinLib.Core Fiat.Narcissus.Formats.ByteBuffer Coq.Strings.String Coq.Vectors.Vector Fiat.Narcissus.Formats.WordOpt Fiat.Common.Equality List