  The multiplicity Schwartz-Zippel lemma asserts that over a field, a
low-degree polynomial cannot vanish with high multiplicity very often on a
sufficiently large product set. Since its discovery in a work of Dvir,
Kopparty, Saraf and Sudan [SIAM J. Comput., 2013], the lemma has found numerous
applications in both math and computer science; in particular, in the
definition and properties of multiplicity codes by Kopparty, Saraf and Yekhanin
[J. ACM, 2014].
  In this work, we show how to algorithmize the multiplicity Schwartz-Zippel
lemma for arbitrary product sets over any field. In other words, we give an
efficient algorithm for unique decoding of multivariate multiplicity codes from
half their minimum distance on arbitrary product sets over all fields.
Previously, such an algorithm was known either when the underlying product set
had a nice algebraic structure: for instance, was a subfield (by Kopparty [ToC,
2015]) or when the underlying field had large (or zero) characteristic, the
multiplicity parameter was sufficiently large and the multiplicity code had
distance bounded away from $1$ (Bhandari, Harsha, Kumar and Sudan [STOC 2021]).
In particular, even unique decoding of bivariate multiplicity codes with
multiplicity two from half their minimum distance was not known over arbitrary
product sets over any field.
  Our algorithm builds upon a result of Kim and Kopparty [ToC, 2017] who gave
an algorithmic version of the Schwartz-Zippel lemma (without multiplicities) or
equivalently, an efficient algorithm for unique decoding of Reed-Muller codes
over arbitrary product sets. We introduce a refined notion of distance based on
the multiplicity Schwartz-Zippel lemma and design a unique decoding algorithm
for this distance measure. On the way, we give an alternate analysis of
Forney's classical generalized minimum distance decoder that might be of
independent interest.
