src/FOLP/simpdata.ML
changeset 69593 3dda49e08b9d
parent 60774 6c28d8ed2488
child 74301 ffe269e74bdd
equal deleted inserted replaced
69592:a80d8ec6c998 69593:3dda49e08b9d
    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;