The current display program in maxima does not know the
underlying model. For example, consider
'diff(y,x) which displays as
dy
----
dx
and (dy)*(dx)^(-1)
which displays the same way, at least with the default
setting for display of derivatives. There is no backward mapping.
Placing a mvc abstraction on top of the "displa" program
is not going to help, especially. A rather different program
(e.g. like the one in commercial macsyma now) might both display and
"know the underlying model". But that is not in maxima now.
I would be pleased to see such a program, but only if it deals
with large expressions -- not just the toy "one line" display.
The makings of such a program are available in the nformat and
dimension programs in the maxima source. To make this work one
needs to enrich the representation so that the internal encoding
of maxima expressions persists in the recursive nest of rectangular
boxes computed by the dimension program. Someone who starts with
a blank piece of paper to write this program -- or bases it on MathML --
should do so only after considering the existing material. At
least that's my opinion.
RJF