fact: Fixpoint asPiE ps {struct ps} : forall (F : _) (G : forall x : (forall U, asFunc ps U -> U), F x), asPi ps F := match ps as ps return forall F : (forall U : Type, asFunc ps U -> U) -> Type, (forall x : forall U : Type, asFunc ps U -> U, F x) -> asPi ps F with | nil => fun _ G => G _ | p :: ps => fun _ G => fun x => asPiE _ _ (fun x' => G _) end.
imports: Coq.Lists.List ExtLib.Data.Member ExtLib.Data.HList ExtLib.Generic.Func