Hello Sympy Developers and Interested People!
First off, Thank you very much for your great effort and success - Sympy is an absolutely awesome piece of software!
I am using it for the better of 2 years now and did some fun stuff, but I still haven't really decided on a coherent way of writing equations. The problem is that Eq() is not an equation in the mathematical sense as the following examples should demonstrate:
t = S('t')
f = Function('f')(t)
g = Function('g')(t)
equation = Eq(f,g+1)
equation2 = equation-1
equation3 = equation.diff(t)
equation4 = equation.subs(equation) # this I can do with subs(*equation.args)
Having a symbolic comparison of terms seems useful to me, so I totally get equation and Eq and their meaning.
However, an equation class satsifying the mathematics for the above examples seems to be absent in sympy.
What I am proposing is to think of a way that equations are made a basic building block in mathematics and imho should be likewise in a mathematics tool.
That said, I know ways to do all of the above, but it is really not intuitive to have every expression in a "x-y=0" form.
I would think that next to nobody actually thinks like that. And the code is hard to subsitute, because you need to do
eq = g+1-f
eq.subs(f,eq+f)
or even worse looking use solve.
Another big thing is printing. Printing "x-y" is very hard to read and you need to explain this unconfort to any new user.
Having "x=y" would be just as everyone learns in maths.
Programmatically I don't think that a new equation class, or the changes to Eq() would be a huge deal.
But programming it myself and then using a non-standard for something as standard as an equation seems really bad practice.
What do you guys think about that?
Thanks again
Mike