src/Provers/Arith/cancel_numerals.ML
changeset 58838 59203adfc33f
parent 54565 63e4474fd0ed
child 59498 50b60f501b05
equal deleted inserted replaced
58837:e84d900cd287 58838:59203adfc33f
    90           (t', Data.mk_bal (newshape(n1,terms1'), newshape(n2,terms2')))
    90           (t', Data.mk_bal (newshape(n1,terms1'), newshape(n2,terms2')))
    91   in
    91   in
    92     Option.map (export o Data.simplify_meta_eq ctxt)
    92     Option.map (export o Data.simplify_meta_eq ctxt)
    93       (if n2 <= n1 then
    93       (if n2 <= n1 then
    94          Data.prove_conv
    94          Data.prove_conv
    95            [Data.trans_tac reshape, rtac Data.bal_add1 1,
    95            [Data.trans_tac reshape, resolve_tac [Data.bal_add1] 1,
    96             Data.numeral_simp_tac ctxt] ctxt prems
    96             Data.numeral_simp_tac ctxt] ctxt prems
    97            (t', Data.mk_bal (newshape(n1-n2,terms1'), Data.mk_sum T terms2'))
    97            (t', Data.mk_bal (newshape(n1-n2,terms1'), Data.mk_sum T terms2'))
    98        else
    98        else
    99          Data.prove_conv
    99          Data.prove_conv
   100            [Data.trans_tac reshape, rtac Data.bal_add2 1,
   100            [Data.trans_tac reshape, resolve_tac [Data.bal_add2] 1,
   101             Data.numeral_simp_tac ctxt] ctxt prems
   101             Data.numeral_simp_tac ctxt] ctxt prems
   102            (t', Data.mk_bal (Data.mk_sum T terms1', newshape(n2-n1,terms2'))))
   102            (t', Data.mk_bal (Data.mk_sum T terms1', newshape(n2-n1,terms2'))))
   103   end
   103   end
   104   (* FIXME avoid handling of generic exceptions *)
   104   (* FIXME avoid handling of generic exceptions *)
   105   handle TERM _ => NONE
   105   handle TERM _ => NONE