src/Provers/Arith/combine_numerals.ML
changeset 59498 50b60f501b05
parent 58838 59203adfc33f
child 59530 2a20354c0877
equal deleted inserted replaced
59497:0c5cd369a643 59498:50b60f501b05
    81       else Data.prove_conv [Data.norm_tac ctxt] ctxt
    81       else Data.prove_conv [Data.norm_tac ctxt] ctxt
    82         (t', Data.mk_sum T ([Data.mk_coeff (m, u), Data.mk_coeff (n, u)] @ terms))
    82         (t', Data.mk_sum T ([Data.mk_coeff (m, u), Data.mk_coeff (n, u)] @ terms))
    83   in
    83   in
    84     Option.map (export o Data.simplify_meta_eq ctxt)
    84     Option.map (export o Data.simplify_meta_eq ctxt)
    85       (Data.prove_conv
    85       (Data.prove_conv
    86          [Data.trans_tac reshape, resolve_tac [Data.left_distrib] 1,
    86          [Data.trans_tac reshape, resolve_tac ctxt [Data.left_distrib] 1,
    87           Data.numeral_simp_tac ctxt] ctxt
    87           Data.numeral_simp_tac ctxt] ctxt
    88          (t', Data.mk_sum T (Data.mk_coeff(Data.add(m,n), u) :: terms)))
    88          (t', Data.mk_sum T (Data.mk_coeff(Data.add(m,n), u) :: terms)))
    89   end
    89   end
    90   (* FIXME avoid handling of generic exceptions *)
    90   (* FIXME avoid handling of generic exceptions *)
    91   handle TERM _ => NONE
    91   handle TERM _ => NONE