1 | initial version |

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,

2 | No.2 Revision |

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[3]= 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,

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.