proposition: Lemma length_padding_ByteString_into_queue_eq : forall bs, length_ByteString bs = length_ByteString (queue_into_ByteString (ByteString_into_queue bs)).
proof: Proof. destruct bs; unfold queue_into_ByteString, ByteString_into_queue; unfold length_ByteString at 1; simpl padding; simpl byteString. rewrite fold_left_app. rewrite length_padding_ByteString_into_queue_eq'. rewrite length_wordToQueue; f_equal. rewrite <- length_ByteString_into_queue'. induction (ByteString_into_queue' byteString0); simpl. reflexivity. rewrite length_padding_ByteString_into_queue_eq'. rewrite IHb, length_padding_ByteString_into_queue_eq'. unfold length_ByteString; simpl; omega. 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