fact: Fixpoint DecomposePrei3list 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 -> Vector.t (Value av) n := match As in Vector.t _ n return forall (il : ilist3 (B := B) As), RepWrapperT av C As il -> i3list C il -> Vector.t (Value av) n with | Vector.nil => fun as' rWrap r => Vector.nil _ | Vector.cons a n' As' => fun as' rWrap r => let fWrap' := fst rWrap in Vector.cons _ (ADT (wrap (prim_fst r))) _ (DecomposePrei3list 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