src/Pure/raw_simplifier.ML
changeset 80711 043e5fd3ce32
parent 80710 82c0bfbaaa86
child 80712 05b16602a683
equal deleted inserted replaced
80710:82c0bfbaaa86 80711:043e5fd3ce32
    87   val prems_of: Proof.context -> thm list
    87   val prems_of: Proof.context -> thm list
    88   val add_simp: thm -> Proof.context -> Proof.context
    88   val add_simp: thm -> Proof.context -> Proof.context
    89   val del_simp: thm -> Proof.context -> Proof.context
    89   val del_simp: thm -> Proof.context -> Proof.context
    90   val flip_simp: thm -> Proof.context -> Proof.context
    90   val flip_simp: thm -> Proof.context -> Proof.context
    91   val init_simpset: thm list -> Proof.context -> Proof.context
    91   val init_simpset: thm list -> Proof.context -> Proof.context
       
    92   val mk_cong: Proof.context -> thm -> thm
    92   val add_eqcong: thm -> Proof.context -> Proof.context
    93   val add_eqcong: thm -> Proof.context -> Proof.context
    93   val del_eqcong: thm -> Proof.context -> Proof.context
    94   val del_eqcong: thm -> Proof.context -> Proof.context
    94   val add_cong: thm -> Proof.context -> Proof.context
    95   val add_cong: thm -> Proof.context -> Proof.context
    95   val del_cong: thm -> Proof.context -> Proof.context
    96   val del_cong: thm -> Proof.context -> Proof.context
    96   val mksimps: Proof.context -> thm -> thm list
    97   val mksimps: Proof.context -> thm -> thm list
   704   in
   705   in
   705     f = g andalso not (has_duplicates (op =) (xs @ ys)) andalso length xs = length ys andalso
   706     f = g andalso not (has_duplicates (op =) (xs @ ys)) andalso length xs = length ys andalso
   706     is_full_cong_prems prems (xs ~~ ys)
   707     is_full_cong_prems prems (xs ~~ ys)
   707   end;
   708   end;
   708 
   709 
       
   710 in
       
   711 
   709 fun mk_cong ctxt = #mk_cong (get_mk_rews ctxt) ctxt;
   712 fun mk_cong ctxt = #mk_cong (get_mk_rews ctxt) ctxt;
   710 
       
   711 in
       
   712 
   713 
   713 fun add_eqcong thm ctxt = ctxt |> map_simpset2
   714 fun add_eqcong thm ctxt = ctxt |> map_simpset2
   714   (fn (congs, procs, mk_rews, term_ord, subgoal_tac, loop_tacs, solvers) =>
   715   (fn (congs, procs, mk_rews, term_ord, subgoal_tac, loop_tacs, solvers) =>
   715     let
   716     let
   716       val (lhs, _) = Logic.dest_equals (Thm.concl_of thm)
   717       val (lhs, _) = Logic.dest_equals (Thm.concl_of thm)