fact: Fixpoint flatten_forall_apply_of_unapply {t X} {struct t} : forall (f : flatten_forall (flattenT_unapply (fun _ : flattenT_sig t => X))) (x : flattenT_sig t), X := match t return forall (f : flatten_forall (flattenT_unapply (fun _ : flattenT_sig t => X))) (x : flattenT_sig t), X with | bottom => fun x _ => x | tele A B => fun f x => @flatten_forall_apply_of_unapply (B (projT1 x)) X (f (projT1 x)) (projT2 x) end.
imports: Fiat.Common.Coq__8_4__8_5__Compat Coq.Relations.Relation_Definitions Coq.Classes.Morphisms