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