## Documentation Center |

Boolean constant TRUE

MuPAD^{®} uses a three state logic with the Boolean constants `TRUE`, `FALSE`,
and `UNKNOWN`.

The Boolean constants `TRUE`, `FALSE`, `UNKNOWN` are
of domain type `DOM_BOOL`.

See and, or, not for the logical rules of the MuPAD three state logic.

Boolean constants are returned by system functions such as `bool` and `is`. These functions
evaluate Boolean expressions such as equations and inequalities.

The Boolean constants may be combined via `and`, `or`, and `not`:

(TRUE and (not FALSE)) or UNKNOWN

The function `bool` serves
for reducing Boolean expressions such as equations or inequalities
to one of the Boolean constants:

bool(x = x and 2 < 3 and 3 <> 4 or UNKNOWN)

The function `is` evaluates
symbolic Boolean expressions with properties:

assume(x > 2): is(x^2 > 4), is(x^3 < 0), is(x^4 > 17)

unassume(x):

Boolean constants occur in the conditional part of program control
structures such as `if`, `repeat`, or `while` statements. The
following loop searches for the smallest Mersenne prime larger than 500 (see `numlib::mersenne` for
details). The function `isprime` returns `TRUE` if
its argument is a prime, and `FALSE` otherwise. Once
a Mersenne prime is found, the `while`-loop is interrupted by the `break` statement:

p := 500: while TRUE do p := nextprime(p + 1): if isprime(2^p - 1) then print(p); break; end_if; end_while:

Note that the conditional part of `if`, `repeat`, and `while` statements must evaluate to `TRUE` or `FALSE`.
Any other value leads to an error:

if UNKNOWN then "true" else "false" end_if

Error: Cannot evaluate to Boolean. [if]

delete p:

Was this topic helpful?