fact: Definition refine_Constructors_invert {n} consSigs consDefs refined_consDefs (refine_cons : @refine_Constructors n consSigs consDefs refined_consDefs) : match consSigs in Vector.t _ n return forall consDefs refined_consDefs (refine_cons : @refine_Constructors n consSigs consDefs refined_consDefs), Prop with | Vector.nil => fun _ _ _ => True | Vector.cons consig _ consigs' => fun consDefs refined_consDefs refine_cons => refineConstructor AbsR (ilist_hd consDefs) (ilist_hd refined_consDefs) /\ refine_Constructors (ilist_tl consDefs) (ilist_tl refined_consDefs) end consDefs refined_consDefs refine_cons.
imports: Coq.Lists.List Fiat.Common Fiat.Common.ilist Fiat.Common.BoundedLookup Fiat.Common.IterateBoundedIndex Fiat.ADT.ADTSig Fiat.ADT.Core Fiat.ADTNotation.BuildADTSig Fiat.ADTNotation.BuildADT Fiat.ADTRefinement.Core Fiat.ADTRefinement.SetoidMorphisms Fiat.ADTRefinement.GeneralRefinements Fiat.ADTRefinement.GeneralBuildADTRefinements Fiat.ADTRefinement.Refinements.HoneRepresentation Fiat.ADTRefinement.BuildADTSetoidMorphisms