Dear John, Lyle,
There is nothing simple about the interpretation of If-Then-Else constructions in ordinary language as they combine the equivocation between formal and material implication at the outset with the vacillation between exclusive and inclusive disjunction at the final Or-Else.
Nor is there anything straightforward about the implementation of If-Then-Else clauses in half-functional half-procedural programming languages like Pascal. In settings like that they do not render as pure boolean expressions but as boolean tests determining a choice between procedural branches. Multiply that by the diversity of evaluation strategies for boolean expressions, (complete | partial), (eager | greedy | lazy), etc., and the possibilities are legion. That is all well and good, those are just the choices that are out there, and we can work with anyone’s understanding of If-Then-Else as a boolean function so long as they give us their intended truth table so we don’t have to guess what they have in mind.
I’ll touch on If-Then-Else again when we turn to what I regard as the proper handling of Case Analysis in the systems of logical graphs evolving from the work of C.S. Peirce and Spencer Brown.
As it happens, I did once write out all 256 boolean functions on three variables in cactus syntax several years ago — pursuant to discussions in Stephen Wolfram’s New Kind of Science (NKS) Forum regarding Elementary Cellular Automaton Rules (ECARs), which are in effect just that set of boolean functions. I’ll have to dig up a passel of ancient links from the WayBack Machine, but see the following archive page for a hint of how it went.
To be continued …
- “Number of Boolean Functions Distinct under Complementation/Permutation”, A000370, N.J.A. Sloane (ed.), The On-Line Encyclopedia of Integer Sequences.
- “The If..then..else statement”, in Michaël Van Canneyt (May 2021), Free Pascal Reference Guide.