src/Pure/drule.ML
changeset 9418 96973ec6fda4
parent 9288 06a55195741b
child 9455 f23722b4fbe7
equal deleted inserted replaced
9417:c4f7c959eaee 9418:96973ec6fda4
    85 
    85 
    86 signature DRULE =
    86 signature DRULE =
    87 sig
    87 sig
    88   include BASIC_DRULE
    88   include BASIC_DRULE
    89   val compose_single    : thm * int * thm -> thm
    89   val compose_single    : thm * int * thm -> thm
       
    90   val merge_rules	: thm list * thm list -> thm list
    90   val triv_goal         : thm
    91   val triv_goal         : thm
    91   val rev_triv_goal     : thm
    92   val rev_triv_goal     : thm
    92   val freeze_all        : thm -> thm
    93   val freeze_all        : thm -> thm
    93   val mk_triv_goal      : cterm -> thm
    94   val mk_triv_goal      : cterm -> thm
    94   val mk_cgoal          : cterm -> cterm
    95   val mk_cgoal          : cterm -> cterm
   372 
   373 
   373 (** theorem equality **)
   374 (** theorem equality **)
   374 
   375 
   375 (*Do the two theorems have the same signature?*)
   376 (*Do the two theorems have the same signature?*)
   376 fun eq_thm_sg (th1,th2) = Sign.eq_sg(#sign(rep_thm th1), #sign(rep_thm th2));
   377 fun eq_thm_sg (th1,th2) = Sign.eq_sg(#sign(rep_thm th1), #sign(rep_thm th2));
       
   378 fun merge_rules (ths1, ths2) = Library.generic_merge Thm.eq_thm I I ths1 ths2;
   377 
   379 
   378 (*Useful "distance" function for BEST_FIRST*)
   380 (*Useful "distance" function for BEST_FIRST*)
   379 val size_of_thm = size_of_term o #prop o rep_thm;
   381 val size_of_thm = size_of_term o #prop o rep_thm;
   380 
   382 
   381 
   383