Conversion checking with e-graphs
neg_is_unique : [x: t, y: t, eq: x + y == zero] -> y == neg[x]; neg_is_unique = [x, y, _] ↦ { nx = neg[x]; R.plus.assoc[nx, x, y]; R.plus.unit[nx]; R.plus.unit[y]; R.plus.comm[nx, zero]; R.plus.comm[y, zero]; R.plus.isinv[x]; R.plus.comm[x, nx]; %dump "neg_is_unique.svg"; @refl };