Zeroth order logic
Zeroth order logic is a term in popular use among practitioners for the subject matter otherwise known as boolean functions, monadic predicate logic, propositional calculus, or sentential calculus. One of the advantages of this terminology is that it institutes a higher level of abstraction in which the more inessential differences between these various subjects can be subsumed under the pertinent isomorphisms.
By way of initial orientation, Table 1 lists equivalent expressions for the sixteen functions of concrete type X × Y → B and abstract type B × B → B in a number of different languages for zeroth order logic.
L1 | L2 | L3 | L4 | L5 | L6 |
---|---|---|---|---|---|
x : | 1 1 0 0 | ||||
y : | 1 0 1 0 | ||||
f0 | f0000 | 0 0 0 0 | ( ) | false | 0 |
f1 | f0001 | 0 0 0 1 | (x)(y) | neither x nor y | ¬x ∧ ¬y |
f2 | f0010 | 0 0 1 0 | (x) y | y and not x | ¬x ∧ y |
f3 | f0011 | 0 0 1 1 | (x) | not x | ¬x |
f4 | f0100 | 0 1 0 0 | x (y) | x and not y | x ∧ ¬y |
f5 | f0101 | 0 1 0 1 | (y) | not y | ¬y |
f6 | f0110 | 0 1 1 0 | (x, y) | x not equal to y | x ≠ y |
f7 | f0111 | 0 1 1 1 | (x y) | not both x and y | ¬x ∨ ¬y |
f8 | f1000 | 1 0 0 0 | x y | x and y | x ∧ y |
f9 | f1001 | 1 0 0 1 | ((x, y)) | x equal to y | x = y |
f10 | f1010 | 1 0 1 0 | y | y | y |
f11 | f1011 | 1 0 1 1 | (x (y)) | not x without y | x → y |
f12 | f1100 | 1 1 0 0 | x | x | x |
f13 | f1101 | 1 1 0 1 | ((x) y) | not y without x | x ← y |
f14 | f1110 | 1 1 1 0 | ((x)(y)) | x or y | x ∨ y |
f15 | f1111 | 1 1 1 1 | (( )) | true | 1 |
These six languages for the sixteen boolean functions are conveniently described in the following order:
- Language L3 describes each boolean function f : B2 → B by means of the sequence of four boolean values (f(1,1), f(1,0), f(0,1), f(0,0)). Such a sequence, perhaps in another order, and perhaps with the logical values F and T instead of the boolean values 0 and 1, respectively, would normally be displayed as a column in a truth table.
- Language L2 lists the sixteen functions in the form fi, where the index i is a bit string formed from the sequence of boolean values in L3.
- Language L1 notates the boolean functions fi with an index i that is the decimal equivalent of the binary numeral index in L2.
- Language L4 expresses the sixteen functions in terms of logical conjunction, indicated by concatenating function names or proposition expressions in the manner of products, plus the family of minimal negation operators, the first few of which are given in the following variant notations:
\[\begin{matrix} (\ ) & = & 0 & = & \mbox{false} \\ (x) & = & \tilde{x} & = & x' \\ (x, y) & = & \tilde{x}y \lor x\tilde{y} & = & x'y \lor xy' \\ (x, y, z) & = & \tilde{x}yz \lor x\tilde{y}z \lor xy\tilde{z} & = & x'yz \lor xy'z \lor xyz' \end{matrix}\]
It may also be noted that \((x, y)\!\) is the same function as \(x + y\!\) and \(x \ne y\), and that the inclusive disjunctions indicated for \((x, y)\!\) and for \((x, y, z)\!\) may be replaced with exclusive disjunctions without affecting the meaning, because the terms disjoined are already disjoint. However, the function \((x, y, z)\!\) is not the same thing as the function \(x + y + z\!\).
- Language L5 lists ordinary language expressions for the sixteen functions. Many other paraphrases are possible, but these afford a sample of the simplest equivalents.
- Language L6 expresses the sixteen functions in one of several notations that are commonly used in formal logic.