Naive Solving of Non-linear Constraints

In this paper we study a naive and incomplete algorithm for solving systems of non-linear constraints. These constraints are expressed with variables ranging over reals, rational constants, the operations ,+ , and the relations , > ,= ,6 By solving as ystemS we understand: rst, deciding whether S has at least one solution; second, computing the set of equations of the form x = constant which are entailed by S. The preliminary phase of the naive algorithm consists of introducing intermediate variables for splitting S into two subsystems, a linear one and a non-linear one containing only constraints of the form z = x y ,w herex, y and z are variables. The naive algorithm itself will repeat two actions until it reaches a stable system or a linear part that has no solution. The rst action is to solve the linear part of S. The second action is to consider the equations of the form x = constant that are entailed by the linear part of S and to replace each variable x by the corresponding constant in the right-hand sides of the non-linear equations . We show that the naive algorithm turns out to be complete in the following nonstandard structure for reals: multiplication is modied by regarding the product of two irrational numbers as an element ! which is outside of the domain of the reals. The operations are extended by taking ! as the value as soon as one of the arguments is !. An exception to this principle is made for multiplication by zero, which always produces zero. All the relations, the = relation included, are considered to be satised as soon as one of their arguments is !. Rational numbers are kept as constants and variables are not allowed to take the value !.