fact: Definition unfold {A} (x : A) : tactic := fun g => match g with | Metavar Typeₛ gT _ => let gT' := dreduce (x) gT in ng <- M.evar gT'; exact ng g;; M.ret [m:(m: tt, AnyMetavar Typeₛ _ ng)] | Metavar Propₛ gT _ => let gT' := dreduce (x) gT in ng <- M.evar gT'; exact ng g;; M.ret [m:(m: tt, AnyMetavar Propₛ _ ng)] end.
imports: Strings.String ssrmatching.ssrmatching Mtac2(Logic Datatypes List Utils Logic Sorts MTeleMatch) Strings.String NArith.BinNat NArith.BinNatDef