I was trying to see if it's possible to define predicate P as TRUE only for value 1 and 2 and FALSE implicitly for any other value. Of course, none of the options below worked.
Is the any way to do this?
THEOREM TestFunction ==
ASSUME
NEW S,
NEW P \in [S -> BOOLEAN],
\* \A s \in S : P[s] = IF s \in {1, 2} THEN TRUE ELSE FALSE
\* P = (1 :> TRUE @@ 2 :> TRUE)
P[1], P[2]
PROVE
P[3] => FALSE
PROOF
OBVIOUS