fact: Fixpoint decode_list' {A : Type} {cache : Cache} (n : nat) (A_decode: nat -> CacheDecode -> (A * CacheDecode)) (cd : CacheDecode) {struct n} : (list A * CacheDecode) := match n return (nat -> CacheDecode -> (A * CacheDecode)) -> _ with | 0 => fun _ => ([ ], cd) | S n' => fun A_decode' => Let a := A_decode' 0 cd in Let a' := decode_list' n' (fun p => A_decode' (S p)) (snd a) in (fst a :: (fst a'), snd a') end A_decode.
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