open nat tactic
constant zeroadd (a : nat) : 0 + a = a

meta definition xrewrite (th_name : name) : tactic unit :=
do th ← mk_const th_name,
   rewrite_core semireducible tt tt occurrences.all ff th,
   try reflexivity

example (a : nat) : (0 + a) + (0 + a) + (0 + a) = a + a + a :=
by xrewrite `zeroadd
