fact: Fixpoint GetBytesAt {n : nat} (idx : nat) (m : nat) : AlignedDecodeM (word (m * 8)) n := match m return AlignedDecodeM (word (m * 8)) n with | 0 => ReturnAlignedDecodeM WO | S m' => BindAlignedDecodeM (GetByteAt idx) (fun w => BindAlignedDecodeM (GetBytesAt (S idx) m') (fun w' => ReturnAlignedDecodeM ( eq_rect _ _ (Core.append_word w' w) _ (plus_comm_transparent (m' * 8) 8)))) end.
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.BinLib.AlignedByteString