1 | initial version |

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,

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.