(** Applying HypsubstFun to generate hyp_subst_tac **) structure Hypsubst_Data = struct structure Simplifier = Simplifier val dest_eq = FOLogic.dest_eq val dest_Trueprop = FOLogic.dest_Trueprop val dest_imp = FOLogic.dest_imp val eq_reflection = thm "eq_reflection" val rev_eq_reflection = thm "meta_eq_to_obj_eq" val imp_intr = thm "impI" val rev_mp = thm "rev_mp" val subst = thm "subst" val sym = thm "sym" val thin_refl = thm "thin_refl" end; structure Hypsubst = HypsubstFun(Hypsubst_Data); open Hypsubst;