# FALSE

Boolean constant FALSE

## Description

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.

## Examples

### Example 1

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

`(TRUE and (not FALSE)) or UNKNOWN`

### Example 2

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):`

### Example 3

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:`