fourier_elim does not always return empty set as emptyset



Fourier elimination is only defined on sets of  linear  inequations. But Maxima's Fourier code has a preprocessor that is able to convert some
nonlinear inequations to linear inequations (it doesn't try all that hard). The pre-processor is unable to convert [x^2 < y , x^2 > y] to
a linear form--in this case it simply returns the inequations unchanged.  If you view Fourier elimination as a simplification, this behavior is consistent
with other Maxima simplification functions--when no simplification is found, the input is returned. Programatically, this means that a calling
function may need to check if Fourier elimination returns a triangularized systems of inequations--and that's not all that convenient.

If your code calls Fourier elimination inside some code, I would suggest that it checks that the inputs are all linear inequations. If the inputs aren't
linear, it's unlikely that Fouier elimination will return a triangularized systems of inequations.

--Barton (author of fourier_elimination)

________________________________
From: maxima-bounces at math.utexas.edu [maxima-bounces at math.utexas.edu] on behalf of Cary Cherng [ccherng at gmail.com]
Sent: Tuesday, March 05, 2013 19:19
To: maxima at math.utexas.edu
Subject: fourier_elim does not always return empty set as emptyset

(%i1) load(fourier_elim);
(%i2) fourier_elim([x^2 < y , x^2 > y],[x,y]);
                                  2            2
(%o2)                    [- (y - x ) > 0, y - x  > 0]

The empty set should be displayed as emptset not  [- (y - x ) > 0, y - x  > 0].

Is this a bug in fourier_elim or a limitation in the underlying algorithm?