src/Provers/Arith/cancel_numerals.ML
changeset 59498 50b60f501b05
parent 58838 59203adfc33f
child 59530 2a20354c0877
equal deleted inserted replaced
59497:0c5cd369a643 59498:50b60f501b05
    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, resolve_tac [Data.bal_add1] 1,
    95            [Data.trans_tac reshape, resolve_tac ctxt [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, resolve_tac [Data.bal_add2] 1,
   100            [Data.trans_tac reshape, resolve_tac ctxt [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