and
The built-in function and
accepts one or more sentence expression values and returns a sentence which links each argument sentence using the &
connective.
Syntax
and([sentence argument expression], ...)
Behavior
and
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 every 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:
and(arg0, arg1)
Evaluates to the following verified sentence:
*X*Y(~X in Y | ~Y in X) & ~^X(X in X)
Additionally, the following expression:
and(arg0, <:^X^Y(X in Y & Y in X)>, <:^E*X(~X in E)>)
Evaluates to the following unverified sentence:
*X*Y(~X in Y | Y in X) & ^X^Y(X in Y & Y in X) & ^E*X(~X in E)