src/Pure/meta_simplifier.ML
changeset 19618 9050a3b01e62
parent 19502 369cde91963d
child 19798 94f12468bbba
equal deleted inserted replaced
19617:7cb4b67d4b97 19618:9050a3b01e62
  1098           | SOME eqn =>
  1098           | SOME eqn =>
  1099             let
  1099             let
  1100               val prem' = rhs_of eqn;
  1100               val prem' = rhs_of eqn;
  1101               val tprems = map term_of prems;
  1101               val tprems = map term_of prems;
  1102               val i = 1 + Library.foldl Int.max (~1, map (fn p =>
  1102               val i = 1 + Library.foldl Int.max (~1, map (fn p =>
  1103                 find_index_eq p tprems) (#hyps (rep_thm eqn)));
  1103                 find_index (fn q => q aconv p) tprems) (#hyps (rep_thm eqn)));
  1104               val (rrs', asm') = rules_of_prem ss prem'
  1104               val (rrs', asm') = rules_of_prem ss prem'
  1105             in mut_impc prems concl rrss asms (prem' :: prems')
  1105             in mut_impc prems concl rrss asms (prem' :: prems')
  1106               (rrs' :: rrss') (asm' :: asms') (SOME (foldr (disch true)
  1106               (rrs' :: rrss') (asm' :: asms') (SOME (foldr (disch true)
  1107                 (Drule.imp_cong_rule eqn (reflexive (Drule.list_implies
  1107                 (Drule.imp_cong_rule eqn (reflexive (Drule.list_implies
  1108                   (Library.drop (i, prems), concl)))) (Library.take (i, prems))) :: eqns) ss (length prems') ~1
  1108                   (Library.drop (i, prems), concl)))) (Library.take (i, prems))) :: eqns) ss (length prems') ~1