iff
The built-in function iff
accepts two sentence expression values, each of which are converse implications, and returns the a sentence with a top-level biconditional connective.
Syntax
iff([sentence argument expression], [sentence argument expression])
Behavior
Each argument must evaluate to a sentence expression value with no unbound objects or predicates. Both arguments must evaluate to a sentence of the form A -> B
for some sentences A
and B
, otherwise an error is raised. If the first argument is of the form A -> B
and the second argument is of the form C -> D
, the verifier checks that A
is trivially equivalent to D
and that B
is trivially equivalent to C
. If not, an error is raised. The output is the sentence A <-> B
.
The output sentence expression value is verified if both arguments are verified.
Examples
If A
, B
, and C
are objects and in
is a relation, then the output of the following expression:
iff(<: A in C -> B in C>, <: B in C -> A in C>)
Is the unverified sentence value:
A in C <-> B in C
If arg0
is a variable storing the verified sentence value B in C -> A in C
and arg1
is a variable storing the verified sentence value A in C -> B in C
, then the expression:
iff(arg0, arg1)
Returns the verified sentence value:
B in C <-> A in C