fact: Definition cut (U : Type) : tactic := fun g => match g with | Metavar Propₛ T _ => ut <- M.evar (U -> T); u <- M.evar U; exact (ut u) g;; M.ret [m:(m: tt,AnyMetavar Propₛ _ ut)| (m: tt,AnyMetavar Typeₛ _ u)] | Metavar Typeₛ T _ => ut <- M.evar (U -> T); u <- M.evar U; exact (ut u) g;; M.ret [m:(m: tt,AnyMetavar Typeₛ _ ut)| (m: tt,AnyMetavar Typeₛ _ u)] end.
imports: Strings.String ssrmatching.ssrmatching Mtac2(Logic Datatypes List Utils Logic Sorts MTeleMatch) Strings.String NArith.BinNat NArith.BinNatDef