fact: Definition simpl_in_all : tactic := fun g => l <- M.fold_right (fun (hyp : Hyp) hyps => let (A, x, ot) := hyp in let A := rsimpl A in M.ret (@ahyp A x ot :m: hyps) ) [m:] =<< M.hyps; match g with | Metavar Propₛ T e' => let T := rsimpl T in e <- M.Cevar T l; mif M.unify e' e UniMatchNoRed then M.ret [m:(m: tt,AnyMetavar Propₛ _ e)] else M.failwith "simpl_in_all: Prop" | Metavar Typeₛ T e' => let T := rsimpl T in e <- M.Cevar T l; mif M.unify e' e UniMatchNoRed then M.ret [m:(m: tt,AnyMetavar Typeₛ _ e)] else M.failwith "simpl_in_all: Type" end.
imports: Strings.String ssrmatching.ssrmatching Mtac2(Logic Datatypes List Utils Logic Sorts MTeleMatch) Strings.String NArith.BinNat NArith.BinNatDef