# Revision history [back]

Operating as you did, I get the same results. Furthermore, I get:

sage: solve([eq1, eq2, eq3, eq4, D==0, x1==0], [x, y, z, D])
[]


This, IMHO, means that sage concludes that no valye of x, y, z, d allows you to conclude that x1==0, which is indeed true. What is more annoying is that

sage: solve([eq1, eq2, eq3, eq4, D==0, x1==0], [x, y, z, D, x1])


never returns (you have to interrupt Sage in order to get tyour prompt back). This may be a bug...

But to get your solutions while instantiating tour parameters, you can write:

sage: [[eq.subs([x1==0, y1==0, z1==0]) for eq in s] for s in S]
[[x == 1, y == 0, z == 20, D == 0], [x == 1, y == 0, z == 0, D == 0]]


which looks entirely reasonable...

IMNSHO, the cleaner way to solve your problem is:

sage: S0=solve([eq1, eq2, eq3, eq4],[x,y,z])
sage: [[eq.subs([x1==0, y1==0, z1==0, D==0]) for eq in s] for s in S0]


totally separating variables (x, y, z) and parameters (D is a parameter...).

HTH,