equal
deleted
inserted
replaced
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 |