fact: Fixpoint absConstructor {dom : list Type} : constructorType oldRep dom -> constructorType newRep dom := match dom return constructorType oldRep dom -> constructorType newRep dom with | nil => fun oldConstr => {nr | exists or', oldConstr ↝ or' /\ or' ≃ nr }%comp | cons d dom' => fun oldConstr t => @absConstructor dom' (oldConstr t) end.
imports: Fiat.Common Fiat.Computation Fiat.ADT.ADTSig Fiat.ADT.Core Fiat.ADTRefinement.Core Fiat.ADTRefinement.SetoidMorphisms Fiat.ADTRefinement.GeneralRefinements