1 | initial version |

This is NOT a 'real' answer - achrzesz had the real idea. Maybe he should post it for credit. This is just it in Sage.

```
sage: (x,y,z,w) = var('x,y,z,w')
sage: solve([12*(y*z) + 6*(y+x) +2 -4*x*y -2*(w+x) == 0,y==y], x,y,z,w)
[[x == r6, y == r7, z == r8, w == -(2*r6 - 3)*r7 + 6*r7*r8 + 2*r6 + 1]]
```

You may ask why we need the dummy equation `y==y`

. See this Trac ticket.

This does *not* answer the question of how to treat this as a non-linear Diophantine equation. I seem to recall that this is undecidable, but maybe I'm misinterpreting your question. You can always just do something really naive like loop through all integers. I don't know that we have anything more efficient that that for integers.

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.