fact: Definition decompose_app_tactic {m : MTele} {A : Type} {B : A -> Type} {C : MTele_ConstT A m} {T: Type} (a : A) (t : T) : M (Unification -> MTele_sort (MTele_ConstMap (si:=Typeₛ) Propₛ (fun a : A => gtactic (B a)) C) -> gtactic (B a)) := ( '(mexistT _ m' T') <- MTele_of A T t; M.unify m m' UniCoq;; M.cumul UniCoq C t;; let x := fun uni f (g : goal gs_open) => @M.decompose_app' A (fun a => mlist (mprod (B a) (goal gs_any))) m uni a C (f g) in let y := fun uni f => x uni (mtele_convert' f) in M.ret y ).
imports: Mtac2(Base Datatypes List Sorts Specif MTele Tactics MFixDef MTeleMatchDef)