src/HOL/Nominal/nominal_inductive.ML
changeset 38715 6513ea67d95d
parent 38558 32ad17fe2b9c
child 38795 848be46708dc
equal deleted inserted replaced
38714:31da698fc4e5 38715:6513ea67d95d
    38   (Drule.strip_imp_concl (cprop_of perm_boolI))));
    38   (Drule.strip_imp_concl (cprop_of perm_boolI))));
    39 
    39 
    40 fun mk_perm_bool pi th = th RS Drule.cterm_instantiate
    40 fun mk_perm_bool pi th = th RS Drule.cterm_instantiate
    41   [(perm_boolI_pi, pi)] perm_boolI;
    41   [(perm_boolI_pi, pi)] perm_boolI;
    42 
    42 
    43 fun mk_perm_bool_simproc names = Simplifier.simproc_i
    43 fun mk_perm_bool_simproc names = Simplifier.simproc_global_i
    44   (theory_of_thm perm_bool) "perm_bool" [@{term "perm pi x"}] (fn thy => fn ss =>
    44   (theory_of_thm perm_bool) "perm_bool" [@{term "perm pi x"}] (fn thy => fn ss =>
    45     fn Const ("Nominal.perm", _) $ _ $ t =>
    45     fn Const ("Nominal.perm", _) $ _ $ t =>
    46          if member (op =) names (the_default "" (try (head_of #> dest_Const #> fst) t))
    46          if member (op =) names (the_default "" (try (head_of #> dest_Const #> fst) t))
    47          then SOME perm_bool else NONE
    47          then SOME perm_bool else NONE
    48      | _ => NONE);
    48      | _ => NONE);