equal
deleted
inserted
replaced
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); |