## Logical States

To more adequately describe the logical states that can arise in an active structure, five logical states are used, only four of which can be propagated through the network. The five logical states are:

NYK Not Yet Known
The network must be explored further to determine the logical state. This state is not propagated.

TRUE

1) A Numeric variable assumes the logical state of TRUE when a single value is returned for it, as in X = 75.
2) A logical variable can be TRUE or FALSE.
3) A list or string which has only one value has a logical state of TRUE together with its value.
FALSE
The logical expression:
`	TRUE  EQV  FALSE          `

has a logical state of FALSE.

The FALSE logical state is also used to indicate that numeric, string, list and object variable have alternative values. That is, the variable X in the statement

X IN {1..10}

would have a logical state of FALSE and a value of 0..10.

UKE UnKnowablE
There is not sufficient information to determine the logical state.  The state is also used to propagate Bayesian values (0.01 indicating close to FALSE, 0.99 indicating close to TRUE) and to indicate nonexistence of structure doing the signalling. "The man had no legs" is not implemented by removing the structure relevant to legs, instead the structure signals a state indicating that it is dark - it does not exist for the purposes of current processing.

ERROR
A logical error occurred, i.e. TRUE implies FALSE. This state will usually only be encountered during a check for consistency, or for errors such as divide by zero.

States except NYK may be tested for in IF...THEN... structures, UKE and ERROR requiring an IDENT function. Bayesian logical values require a BAYES operator to turn them into numbers, or vice versa.

The TWOSTATE function can be used to convert from Orion's five logical states to the states of Boolean logic.

Technical Papers