15 |
15 |
16 |
16 |
17 (* Conversion into rewrite rules *) |
17 (* Conversion into rewrite rules *) |
18 |
18 |
19 fun mk_eq th = case Thm.concl_of th of |
19 fun mk_eq th = case Thm.concl_of th of |
20 _ $ (Const (@{const_name iff}, _) $ _ $ _) $ _ => th |
20 _ $ (Const (\<^const_name>\<open>iff\<close>, _) $ _ $ _) $ _ => th |
21 | _ $ (Const (@{const_name eq}, _) $ _ $ _) $ _ => th |
21 | _ $ (Const (\<^const_name>\<open>eq\<close>, _) $ _ $ _) $ _ => th |
22 | _ $ (Const (@{const_name Not}, _) $ _) $ _ => th RS @{thm not_P_imp_P_iff_F} |
22 | _ $ (Const (\<^const_name>\<open>Not\<close>, _) $ _) $ _ => th RS @{thm not_P_imp_P_iff_F} |
23 | _ => make_iff_T th; |
23 | _ => make_iff_T th; |
24 |
24 |
25 |
25 |
26 val mksimps_pairs = |
26 val mksimps_pairs = |
27 [(@{const_name imp}, [@{thm mp}]), |
27 [(\<^const_name>\<open>imp\<close>, [@{thm mp}]), |
28 (@{const_name conj}, [@{thm conjunct1}, @{thm conjunct2}]), |
28 (\<^const_name>\<open>conj\<close>, [@{thm conjunct1}, @{thm conjunct2}]), |
29 (@{const_name "All"}, [@{thm spec}]), |
29 (\<^const_name>\<open>All\<close>, [@{thm spec}]), |
30 (@{const_name True}, []), |
30 (\<^const_name>\<open>True\<close>, []), |
31 (@{const_name False}, [])]; |
31 (\<^const_name>\<open>False\<close>, [])]; |
32 |
32 |
33 fun mk_atomize pairs = |
33 fun mk_atomize pairs = |
34 let fun atoms th = |
34 let fun atoms th = |
35 (case Thm.concl_of th of |
35 (case Thm.concl_of th of |
36 Const ("Trueprop", _) $ p => |
36 Const ("Trueprop", _) $ p => |
76 |
76 |
77 open FOLP_Simp; |
77 open FOLP_Simp; |
78 |
78 |
79 val auto_ss = empty_ss setauto (fn ctxt => ares_tac ctxt @{thms TrueI}); |
79 val auto_ss = empty_ss setauto (fn ctxt => ares_tac ctxt @{thms TrueI}); |
80 |
80 |
81 val IFOLP_ss = auto_ss addcongs FOLP_congs |> fold (addrew @{context}) IFOLP_rews; |
81 val IFOLP_ss = auto_ss addcongs FOLP_congs |> fold (addrew \<^context>) IFOLP_rews; |
82 |
82 |
83 |
83 |
84 val FOLP_rews = IFOLP_rews @ @{thms cla_rews}; |
84 val FOLP_rews = IFOLP_rews @ @{thms cla_rews}; |
85 |
85 |
86 val FOLP_ss = auto_ss addcongs FOLP_congs |> fold (addrew @{context}) FOLP_rews; |
86 val FOLP_ss = auto_ss addcongs FOLP_congs |> fold (addrew \<^context>) FOLP_rews; |