THEOREM TRUE = \A x: (x \in {1, 2}) => (x \in {1, 2, 3})
in contrast to
THEOREM FALSE = \A x: (x \in {1, 2}) <=> (x \in {1, 2, 3})
which does not hold, because \E x: (x \in {1, 2, 3}) /\ ~ (x \in {1, 2})
(namely x = 3
).
The identifier x
could represent which room the system is in.
The value of the expression A <=> B
is defined for A \in BOOLEAN /\ B \in BOOLEAN
.
For non-Boolean values of A
and B
, the meaning of the operator <=>
is unspecified by TLA+.
With the moderate interpretation of Boolean operators, A <=> B
may be non-Boolean for non-Boolean A
, B
.
With the liberal interpretation, A <=> B
is Boolean-valued, though the value is unspecified for non-Boolean A
, B
.
Section 16.1.3 "Interpretations of Boolean Operators" on pages 296--297 and Section 1.1 "Propositional Logic" on pages 9--11 (in particular page 9) from [1] are the most relevant to what the operators <=>
and =>
mean.
[1] Leslie Lamport, "Specifying systems", Addison-Wesley, 2002