src/HOL/Analysis/measurable.ML
changeset 78801 42ae6e0ecfd4
parent 78800 0b3700d31758
child 81954 6f2bcdfa9a19
equal deleted inserted replaced
78800:0b3700d31758 78801:42ae6e0ecfd4
    20   val get_dest : Context.generic -> thm list
    20   val get_dest : Context.generic -> thm list
    21   val get_cong : Context.generic -> thm list
    21   val get_cong : Context.generic -> thm list
    22 
    22 
    23   val measurable_tac : Proof.context -> thm list -> tactic
    23   val measurable_tac : Proof.context -> thm list -> tactic
    24 
    24 
    25   val simproc : Simplifier.proc
    25   val proc : Simplifier.proc
    26 
    26 
    27   val add_preprocessor : string -> preprocessor -> Context.generic -> Context.generic
    27   val add_preprocessor : string -> preprocessor -> Context.generic -> Context.generic
    28   val del_preprocessor : string -> Context.generic -> Context.generic
    28   val del_preprocessor : string -> Context.generic -> Context.generic
    29   val add_local_cong : thm -> Proof.context -> Proof.context
    29   val add_local_cong : thm -> Proof.context -> Proof.context
    30 
    30 
    31   val prepare_facts : Proof.context -> thm list -> (thm list * Proof.context)
    31   val prepare_facts : Proof.context -> thm list -> (thm list * Proof.context)
    32 end ;
    32 end
    33 
    33 
    34 structure Measurable : MEASURABLE =
    34 structure Measurable : MEASURABLE =
    35 struct
    35 struct
    36 
    36 
    37 type preprocessor = thm -> Proof.context -> thm list * Proof.context
    37 type preprocessor = thm -> Proof.context -> thm list * Proof.context
   254       ORELSE' (CHANGED o sets_cong_tac)
   254       ORELSE' (CHANGED o sets_cong_tac)
   255       ORELSE' (K (debug_tac ctxt (K "backtrack") no_tac))
   255       ORELSE' (K (debug_tac ctxt (K "backtrack") no_tac))
   256 
   256 
   257   in debug_tac ctxt (K "start") (REPEAT (single_step_tac 1)) end;
   257   in debug_tac ctxt (K "start") (REPEAT (single_step_tac 1)) end;
   258 
   258 
   259 fun simproc ctxt redex =
   259 fun proc ctxt redex =
   260   let
   260   let
   261     val t = HOLogic.mk_Trueprop (Thm.term_of redex);
   261     val t = HOLogic.mk_Trueprop (Thm.term_of redex);
   262     fun tac {context = ctxt, prems = _ } =
   262     fun tac {context = ctxt, prems = _ } =
   263       SOLVE (measurable_tac ctxt (Simplifier.prems_of ctxt));
   263       SOLVE (measurable_tac ctxt (Simplifier.prems_of ctxt));
   264   in \<^try>\<open>Goal.prove ctxt [] [] t tac RS @{thm Eq_TrueI}\<close> end;
   264   in \<^try>\<open>Goal.prove ctxt [] [] t tac RS @{thm Eq_TrueI}\<close> end;