fact: Definition destruct_all (T : Type) : tactic := fun g=> l <- M.filter (fun '(@ahyp Th _ _) => r <- M.unify Th T UniCoq; M.ret (option_to_bool r)) =<< M.hyps; (fix f (l : mlist Hyp) : tactic := match l with | [m:] => idtac | ahyp x _ :m: l => bind (destruct x) (fun _ => f l) end) l g.
imports: Strings.String ssrmatching.ssrmatching Mtac2(Logic Datatypes List Utils Logic Sorts MTeleMatch) Strings.String NArith.BinNat NArith.BinNatDef