# How do I know Mathematica is doing exact algebra?

I am looking for zeroes of the following polynomial:

-36 - 20 a1 a2 + 16 a2 b1 + a2^2 b1^2 + 16 a1 b2 - 20 b1 b2 - 2 a1 a2 b1 b2 + a1^2 b2^2

in the region

a1*a2 <= -5 && b1*b2 <= -5

Simple enough of a command

 Solve[8 + a2 b1 + a1 b2 + 2 Sqrt[-5 - a1 a2] Sqrt[-5 - b1 b2] == 0 && a1*a2 <= -5 && b1*b2 <= -5, {a1, a2, b1, b2}] Tells me that there is no solution.

How do I know that Mathematica is doing exact algebra (like using quadratic formula for a quadratic equation) rather than some numerical estimation? In the Solve documentation I find

"When expr involves only polynomial equations and inequalities over real or complex domains, then Solve can always in principle solve directly for vars."

I am just wondering if I can use Mathematica as "proof" that no zeroes exist in that region.

I am sorry if this is a silly question.

• Use Reduce. "The result of Reduce[expr, vars] always describes exactly the same mathematical set as expr." Commented Jan 16, 2022 at 19:02
• Off-topic, but one could rewrite the expression as -100 - 4 a1 a2 b1 b2 + (8 + a2 b1 + a1 b2)^2 - 20 (a1 a2 + b1 b2) and from there the inequalities guarantee positivity (the first tow terms sum to at least zero, next is a square hence nonnegative, last is at least 200). Commented Jan 17, 2022 at 21:29

You could try to solve the problem in a different way. E.g. by defining regions and check if there is an empty intersection:

r1 = ImplicitRegion[-36 - 20 a1 a2 + 16 a2 b1 + a2^2 b1^2 +
16 a1 b2 - 20 b1 b2 - 2 a1 a2 b1 b2 + a1^2 b2^2 == 0, {a1, a2, b1,
b2}];
r2 = ImplicitRegion[a1*a2 <= -5 && b1*b2 <= -5, {a1, a2, b1, b2}];

RegionIntersection[r1, r2];
(* EmptyRegion[4] *)


Of course, you could still argue that we do not know how MMA calculate the regions and that MMA may make the same error twice.

• r2 is not defined.. Commented Jan 16, 2022 at 18:19
• Sorry copy and past error. Corrected. Commented Jan 16, 2022 at 19:22

Reduce or Method->Reduce in Solve are powerful then only use Solve.

Reduce[{8 + a2 b1 + a1 b2 + 2 Sqrt[-5 - a1 a2] Sqrt[-5 - b1 b2] == 0,
a1*a2 <= -5, b1*b2 <= -5}, {a1, a2, b1, b2}]


False

• Change  b1*b2<=-5 to  b1+b2<=-5
Reduce[{8 + a2 b1 + a1 b2 + 2 Sqrt[-5 - a1 a2] Sqrt[-5 - b1 b2] == 0,
a1*a2 <= -5, b1 + b2 <= -5}, {a1, a2, b1, b2}]


a1 ∈ Reals && a1 != 0 && a2 == -(5/a1) && b1 <= (8 - 5 a1)/(a1 - a2) && b2 == (-8 - a2 b1)/a1

• Did you mean to say Reduce is more powerful than Solve? Commented Jan 17, 2022 at 1:15
• @2132123 Yes, and Reduce return False means that the there no solution in such equations. Commented Jan 17, 2022 at 1:45