fact: Fixpoint Decomposei3list av {n} {A} {B} {C} {As : Vector.t A n} {struct As} : forall (il : ilist3 (B := B) As), RepWrapperT av C As il -> i3list C il -> list {T : _ & prod (NameTag av T) (Comp T)} := match As return forall (il : ilist3 (B := B) As), RepWrapperT av C As il -> i3list C il -> list {T : _ & prod (NameTag av T) (Comp T)} with | Vector.nil => fun as' rWrap r => nil | Vector.cons a n' As' => fun as' rWrap r => let fWrap' := fst rWrap in cons (existT _ _ (NTSome (nthRepName n'), ret (prim_fst r))) (Decomposei3list As' (prim_snd as') (snd rWrap) (prim_snd r)) end.
imports: Fiat.Common.Coq__8_4__8_5__Compat Fiat.ADT.Core Bedrock.Platform.Facade.DFModule Fiat.ADTNotation Bedrock.Platform.Facade.CompileUnit2 Fiat.Common.i3list Fiat.Common.ilist3 CertifiedExtraction.Core CertifiedExtraction.FacadeUtils CertifiedExtraction.StringMapUtils CertifiedExtraction.Extraction.Internal CertifiedExtraction.Extraction.Extraction