How Nonlinear Residues Are Made to Disappear

Binding variables that appear in nonlinear residues will reduce the complexity of the nonlinear expressions and eventually results in linear expressions:

     clp(q) ?- {exp(X+Y+1,2) = 3*X*X+Y*Y}.
     
     clpq:{Y*2-X^2*2+Y*X*2+X*2+1=0}
     

Equating X and Y collapses the expression completely and even determines the values of the two variables:

     clp(q) ?- {exp(X+Y+1,2) = 3*X*X+Y*Y}, X=Y.
     
     X = -1/4,
     Y = -1/4