src/HOL/Code_Generator.thy
changeset 22900 f8a7c10e1bd0
parent 22886 cdff6ef76009
child 22921 475ff421a6a3
equal deleted inserted replaced
22899:5ea718c68123 22900:f8a7c10e1bd0
    71 text {* Evaluation *}
    71 text {* Evaluation *}
    72 
    72 
    73 method_setup evaluation = {*
    73 method_setup evaluation = {*
    74 let
    74 let
    75 
    75 
    76 fun evaluation_tac i = Tactical.PRIMITIVE (Drule.fconv_rule
    76 fun evaluation_tac i = Tactical.PRIMITIVE (Conv.fconv_rule
    77   (Drule.goals_conv (equal i) Codegen.evaluation_conv));
    77   (Conv.goals_conv (equal i) Codegen.evaluation_conv));
    78 
    78 
    79 in Method.no_args (Method.SIMPLE_METHOD' (evaluation_tac THEN' rtac TrueI)) end
    79 in Method.no_args (Method.SIMPLE_METHOD' (evaluation_tac THEN' rtac TrueI)) end
    80 *} "solve goal by evaluation"
    80 *} "solve goal by evaluation"
    81 
    81 
    82 
    82 
   199 
   199 
   200 subsection {* Normalization by evaluation *}
   200 subsection {* Normalization by evaluation *}
   201 
   201 
   202 method_setup normalization = {*
   202 method_setup normalization = {*
   203 let
   203 let
   204   fun normalization_tac i = Tactical.PRIMITIVE (Drule.fconv_rule
   204   fun normalization_tac i = Tactical.PRIMITIVE (Conv.fconv_rule
   205     (Drule.goals_conv (equal i) (HOLogic.Trueprop_conv
   205     (Conv.goals_conv (equal i) (HOLogic.Trueprop_conv
   206       NBE.normalization_conv)));
   206       NBE.normalization_conv)));
   207 in
   207 in
   208   Method.no_args (Method.SIMPLE_METHOD' (normalization_tac THEN' resolve_tac [TrueI, refl]))
   208   Method.no_args (Method.SIMPLE_METHOD' (normalization_tac THEN' resolve_tac [TrueI, refl]))
   209 end
   209 end
   210 *} "solve goal by normalization"
   210 *} "solve goal by normalization"