# Does Solve give every solution?

When I run the following:

Solve[{
ac == anc, ac == acn, ac == ancn,
acn == anc, acn == ancn,
anc == ancn,
q1 + q2 + q3 + q4 == 1
}, {q1, q2, q3, q4}
]


I get the following output:

{{q1 -> 5/11, q2 -> 0, q3 -> -(34/11), q4 -> 40/11}}


This is fine as far as it goes. But I feel pretty confident that I have a proof that that there is a solution to the equations in which q1, q2, q3, and q4 are all greater than zero. But obviously the solution Mathematica gives has q2 == 0.

Interestingly, when I try to solve the following set of equations, which force q1-q4 to be greater than zero, Mathematica does not return the empty set but rather won't solve at all (I have let it run for a month with no output):

Solve[{
ac == anc, ac == acn, ac == ancn,
acn == anc, acn == ancn,
anc == ancn,
q1 + q2 + q3 + q4 == 1,
q1 > 0, q2 > 0, q3 > 0, q4 > 0
}, {q1, q2, q3, q4}
]


So, when Mathematica solves the first set of equations, can I be 100% confident that it is returning every possible solution?

-
Is there a link between ac, anc, ... and the qs ? –  b.gatessucks Nov 19 '12 at 14:43
It appears that variables ac, anc, ancn are related somehow and you haven't explained your problem sufficiently. However you could add this option to Solve : MaxExtraConditions -> All. –  Artes Nov 19 '12 at 14:51
The Solve doc page says: "Solve gives generic solutions only. Solutions that are valid only when continuous parameters satisfy equations are removed." Try Reduce instead to get all solutions. –  Sjoerd C. de Vries Nov 19 '12 at 15:12