Actually, we don't really have any advanced logic built into the program, but we do have workarounds for some classic logic problems:
If and only if (shortened IIF) is a 'biconditional logical connective'. A specific element of a multiple choice !group! must be true ('selectied'), but all other elements of the same group must be false ('not selected').
You can create the functional equivalent if IFF by setting up each of the two conditions in separate If statements. You will need to assign a new value in the Ask table. Well call it !OnlyChoiceX!
<<*AskOptions*!GroupXYZ!Choice 1/Choice 2/Choice 3*>>
<<*If*!Choice 1!=”True” and !Choice 2!=”False” and !Choice 3!=”False”, !OnlyChoice1!=”True”,!OnlyChoice1!=”False”>>
<<*If*!Choice 1!=”False” and !Choice 2!=”True” and !Choice 3!=”False”, !OnlyChoice2!=”True”,!OnlyChoice2!=”False”>>
<<*If*!Choice 1!=”False” and !Choice 2!=”False” and !Choice 3!=”True”, !OnlyChoice3!=”True”,!OnlyChoice3!=”False”>>
(remember, Pathagoras will assign ‘hard values’ to selections made via Options. So when the individual choices made as line #1 is processed, the text of thechoice options are converted to groups, and assigned individual 'True' or 'False' values, depending upon if it was selected. Those individual values can in turn be used in Optional equations in the document body.
(letter body . . .)
<<*Optional*!OnlyChoice2!*This text displays when only Choice 2 is true, and the others are false>>
This works best when there are only 3 or 4 values that must be analyzed. If beyond that, the If statements (2 through 4 above) can be long and complicated to view.