1 | initial version |
No this is not a bug. It's just a name clash. It's documented that the notation
u(t)= ...
binds t to a symbolic variable as well as binds u to the right hand side.
As far as sage is concerned you could have a symbolic function with print name u as well as a symbolic variable with print name u. However, maxima does not support that, so you'd run into problems pretty quickly. It also doesn't add to clarity for the human reader:
sage: function('g')
g
sage: G=SR.var('g')
sage: g(G)
g(g)
sage: diff(g(G),G)
D[0](g)(g)