fact: Definition treduce (r : Reduction) : tactic := fun g=> match g with | Metavar Typeₛ T e=> let T' := reduce r T in e <- M.evar T'; mif M.cumul UniEvarconv g (Metavar Typeₛ T e) then M.ret [m:(m: tt, AnyMetavar Typeₛ _ e)] else M.failwith "treduce" | Metavar Propₛ T e=> let T' := reduce r T in e <- M.evar T'; mif M.cumul UniEvarconv g (Metavar Propₛ T e) then M.ret [m:(m: tt, AnyMetavar Propₛ _ e)] else M.failwith "treduce" end.
imports: Strings.String ssrmatching.ssrmatching Mtac2(Logic Datatypes List Utils Logic intf.Sorts) Strings.String NArith.BinNat NArith.BinNatDef