equal
deleted
inserted
replaced
208 val flexflex_tac = PRIMSEQ flexflex_rule; |
208 val flexflex_tac = PRIMSEQ flexflex_rule; |
209 |
209 |
210 |
210 |
211 (*Remove duplicate subgoals. By Mark Staples*) |
211 (*Remove duplicate subgoals. By Mark Staples*) |
212 local |
212 local |
213 fun cterm_aconv (a,b) = #t (rep_cterm a) aconv #t (rep_cterm b); |
213 fun cterm_aconv (a,b) = term_of a aconv term_of b; |
214 in |
214 in |
215 fun distinct_subgoals_tac state = |
215 fun distinct_subgoals_tac state = |
216 let val (frozth,thawfn) = freeze_thaw state |
216 let val (frozth,thawfn) = freeze_thaw state |
217 val froz_prems = cprems_of frozth |
217 val froz_prems = cprems_of frozth |
218 val assumed = implies_elim_list frozth (map assume froz_prems) |
218 val assumed = implies_elim_list frozth (map assume froz_prems) |