How to calculate a symbol from its immediate node

Say we already have define

a = mx.sym.Variable('a')
b = mx.sym.Variable('b')
c = a+b # name is _plus0_output
d = c/2

and we could calculate c with

c.eval(a=mx.nd.array([2.0]),b=mx.nd.array([3.0]))

or

d.get_internals().eval(a=mx.nd.array([2.0]),b=mx.nd.array([3.0]))

to get both c and d.

but how could I calculate d only via c?
sometimes I’d like to use synthetic c to check if the model is robust and in this case I could not get a and b.
I’d like to have something like

d.eval(_plus0_output=mx.nd.array([2.5]))

Is it possible?