src/Pure/tactic.ML
changeset 16666 9a987b59ecab
parent 16425 2427be27cc60
child 16809 8ca51a846576
equal deleted inserted replaced
16665:b75568de32c6 16666:9a987b59ecab
   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)