Previous Page Next Page Contents

TRUE, FALSE, UNKNOWN -- Boolean constants

Introduction

MuPAD uses a three state logic with the Boolean constants TRUE, FALSE, and UNKNOWN.

Related Functions

_lazy_and, _lazy_or, and, bool, DOM_BOOL, if, is, not, or, repeat, while

Details

Example 1

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

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

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)
                                   TRUE

The function is evaluates symbolic Boolean expressions with properties:

>> assume(x > 2): is(x^2 > 4), is(x^3 < 0), is(x^4 > 17)
                           TRUE, FALSE, UNKNOWN
>> 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:
                                    521

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: Can't evaluate to boolean [if]
>> delete p:

Changes




Do you have questions or comments?


Copyright © SciFace Software GmbH & Co. KG 2000