# Revision history [back]

Sage implements booleans,and answers to a"logical" query either by True, which means that Sage can compute an equality, or False, meaning that Sage cannot compute this equality. This does not mean that the result is false, only that Sage cannot prove it.

Contrast this with Maxima:

(%i8) declare(x,real,y,real,z,real);

(%o8)                                done
(%i9) is(abs(x-y)+abs(y-z)>=abs(x-z));

(%o9)                               unknown


Maxima implements "trinary logicals", i. e. a logical value can be true (i. e. the result can be computed true), false(the result can be cimputed false) or unknown (the result cannot be computed).

HTH,

Sage implements booleans,and answers to a"logical" query either by True, which means that Sage can compute an equality, or False, meaning that Sage cannot compute this equality. This does not mean that the result is false, only that Sage cannot prove it.

Mathematica does the same:

sage: %%mathematica
....: P = Abs[x - y] + Abs[y - z] >= Abs[x - z]
....: Assuming[x \[Element] Reals && y \[Element] Reals && z \[Element] Reals, Re
....: duce[P]]
....:
Abs[x - y] + Abs[y - z] >= Abs[x - z]
Out= Abs[y - z] >= -Abs[x - y] + Abs[x - z]


Contrast this with Maxima:

(%i8) sage: %%maxima
....: declare(x,real,y,real,z,real);

(%o8)                                ....: is(abs(x-y)+abs(y-z)>=abs(x-z));
....:
done
(%i9) is(abs(x-y)+abs(y-z)>=abs(x-z));

(%o9)                               unknown


Maxima implements "trinary logicals", i. e. a logical value can be true (i. e. the result can be computed true), false(the result can be cimputed false) or unknown (the result cannot be computed).

HTH,