1 | initial version |

Well... Run :

```
reset()
var("x, y, z, a")
Eqs=[x-y+a*z==a, a+a*y-z==-1, x+y+z==2]
S1=solve(Eqs, (x, y, z))
```

Then :

```
sage: S1
[[x == (2*a - 1)/(a - 2), y == -(a^2 - a + 1)/(a^2 - a - 2), z == (a^2 - 4*a - 2)/(a^2 - a - 2)]]
```

The problem arises from the presence of the parameter $a$ in the *denominator* of the elements of the solution(s). Collect them :

```
sage: Dens=set(flatten([[u.rhs().denominator() for u in s] for s in S1])) ; Dens
{a^2 - a - 2, a - 2}
```

We can now solve for $a$ each of these denominators, giving us a list of problematic values :

```
sage: PV=set(flatten([u.solve(a) for u in Dens])) ; PV
{a == 2, a == -1}
```

(Note : your "resolution by hand" seems to be erroneous...)

We can substitute each of these problematic values for a in the system :

```
sage: {u: [v.subs(u) for v in Eqs] for u in PV}
{a == 2: [x - y + 2*z == 2, 2*y - z + 2 == -1, x + y + z == 2],
a == -1: [x - y - z == -1, -y - z - 1 == -1, x + y + z == 2]}
```

and try to solve the substituted system in each case :

```
sage: {u: solve([v.subs(u) for v in Eqs], (x, y, z)) for u in PV}
{a == 2: [], a == -1: []}
```

In both cases, the system is impossible...

Neither Sympy, Giac, Fricas nor Mathematica seem to check the validity of the solution of this system ; it seems to be a general weakness of CASes, which do not check the conditions of existence of the expressions...

HTH,

2 | No.2 Revision |

Well... Run :

```
reset()
var("x, y, z, a")
Eqs=[x-y+a*z==a, a+a*y-z==-1, x+y+z==2]
S1=solve(Eqs, (x, y, z))
```

Then :

```
sage: S1
[[x == (2*a - 1)/(a - 2), y == -(a^2 - a + 1)/(a^2 - a - 2), z == (a^2 - 4*a - 2)/(a^2 - a - 2)]]
```

~~The problem arises from the presence of the parameter $a$ in the ~~*denominator* of the elements of the solution(s). Collect them :

```
sage: Dens=set(flatten([[u.rhs().denominator() for u in s] for s in S1])) ; Dens
{a^2 - a - 2, a - 2}
```

We can now solve for $a$ each of these denominators, giving us a list of problematic values :

```
sage: PV=set(flatten([u.solve(a) for u in Dens])) ; PV
{a == 2, a == -1}
```

(Note : your "resolution by hand" seems to be erroneous...)

Check :

```
sage: [[bool(u.subs(s)) for u in Eqs] for s in S1]
[[True, True, True]]
```

The problem arises from the presence of the parameter $a$ in the *denominator* of the elements of the solution(s). Collect these denominators :

```
sage: Dens=set(flatten([[u.rhs().denominator() for u in s] for s in S1])) ; Dens
{a^2 - a - 2, a - 2}
```

We can now solve for $a$ each of these denominators, giving us a list of problematic values :

```
sage: PV=set(flatten([u.solve(a) for u in Dens])) ; PV
{a == 2, a == -1}
```

We can substitute each of these problematic values for a in the system :

```
sage: {u: [v.subs(u) for v in Eqs] for u in PV}
{a == 2: [x - y + 2*z == 2, 2*y - z + 2 == -1, x + y + z == 2],
a == -1: [x - y - z == -1, -y - z - 1 == -1, x + y + z == 2]}
```

and try to solve the substituted system in each case :

```
sage: {u: solve([v.subs(u) for v in Eqs], (x, y, z)) for u in PV}
{a == 2: [], a == -1: []}
```

In both cases, the system is impossible...

Neither Sympy, Giac, Fricas nor Mathematica seem to check the validity of the solution of this system ; it seems to be a general weakness of CASes, which do not check the conditions of existence of the expressions...

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.