or

The built-in function or accepts one or more sentence expression values and returns a sentence which links each argument sentence using the | connective.

Syntax

or([sentence argument expression], ...)

Behavior

or accepts one or more argument expressions. If any argument expression does not evaluate to a sentence expression value or any argument sentence has unbound objects or predicates, then an error is raised. Otherwise, the output is a sentence composed of each argument sentence joined in order using the | connective.

The output sentence value is verified if at least one argument sentence value is verified.

Examples

If in is a relation, arg0 stores the verified sentence:

*X*Y(~X in Y | ~Y in X)

And arg1 stores the verified sentence:

~^X(X in X)

Then the following expression:

or(arg0, arg1)

Evaluates to the following verified sentence:

*X*Y(~X in Y | ~Y in X) | ~^X(X in X)

Additionally, the following expression:

or(arg0, <:^X^Y(X in Y & Y in X)>, <:^E*X(~X in E)>)

Evaluates to the following verified sentence:

*X*Y(~X in Y | Y in X) | ^X^Y(X in Y & Y in X) | ^E*X(~X in E)