# Run with SageMath's Python. The letter m denotes the parameter mu.
import numberdb.sage as numberdb
from sage.rings.integer_ring import ZZ
from sage.rings.rational_field import QQ
from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing
R = PolynomialRing(QQ, names=('x', 'm'))
Z = PolynomialRing(ZZ, names=('x', 'm'))
x, m = R.gens()
def umemura(n):
if n < 0 or n != int(n):
raise ValueError('n must be a nonnegative integer')
previous = current = R.one()
for k in range(int(n)):
d = current.derivative(x)
numerator = (x+m)*current**2 - x*(current*d.derivative(x)-d**2) - current*d
following, remainder = numerator.quo_rem(previous)
assert remainder == 0
previous, current = current, following
return Z(current)
polynomials = {n: umemura(n) for n in range(6)}
umemura(6) # Compute the next polynomial with the same normalization.
Computed exactly in $\mathbb{Z}[x,m]$ by the defining recurrence, with a zero-remainder check at every monic division. All six entries were independently reconstructed from the coefficient expansion of $(1+t)^m\exp(xt)$ and its Wronskian determinant, evaluated by the Leibniz formula over $\mathbb{Q}[x,m]$.
The five explicit polynomials in [2], Table 1, agree coefficient by coefficient. Degree, monicity, integrality, parity under simultaneous sign reversal, the $m=0$ and $m=1$ specializations, the recurrence, the parameter-shift identity in [1], Remark 5.4, and the rational Painlevé III identity were checked exactly for every stored index. The recurrence and parameter-shift checks at $n=5$ use an independently computed $S_6$. Controls include known nonzero and zero determinants and deliberately altered polynomials. The independent checks were repeated on values read back from the database. The program agrees at every stored index and at $n=6$. All coefficients are exact, with no numerical argument rounding.