5,839 bytes added
, 01:52, 19 May 2007
'''''Zeroth order logic''''' is a term in popular use among practitioners for the subject matter otherwise known as [[boolean function]]s, [[monadic logic|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 [[isomorphism]]s.
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.
{| align="center" border="1" cellpadding="4" cellspacing="0" style="background:lightcyan; font-weight:bold; text-align:center; width:90%"
|+ '''Table 1. Propositional Forms on Two Variables'''
|- style="background:paleturquoise"
! style="width:15%" | L<sub>1</sub>
! style="width:15%" | L<sub>2</sub>
! style="width:15%" | L<sub>3</sub>
! style="width:15%" | L<sub>4</sub>
! style="width:15%" | L<sub>5</sub>
! style="width:15%" | L<sub>6</sub>
|- style="background:paleturquoise"
|
| align="right" | x :
| 1 1 0 0
|
|
|
|- style="background:paleturquoise"
|
| align="right" | y :
| 1 0 1 0
|
|
|
|-
| f<sub>0</sub> || f<sub>0000</sub> || 0 0 0 0 || ( ) || false || 0
|-
| f<sub>1</sub> || f<sub>0001</sub> || 0 0 0 1 || (x)(y) || neither x nor y || ¬x ∧ ¬y
|-
| f<sub>2</sub> || f<sub>0010</sub> || 0 0 1 0 || (x) y || y and not x || ¬x ∧ y
|-
| f<sub>3</sub> || f<sub>0011</sub> || 0 0 1 1 || (x) || not x || ¬x
|-
| f<sub>4</sub> || f<sub>0100</sub> || 0 1 0 0 || x (y) || x and not y || x ∧ ¬y
|-
| f<sub>5</sub> || f<sub>0101</sub> || 0 1 0 1 || (y) || not y || ¬y
|-
| f<sub>6</sub> || f<sub>0110</sub> || 0 1 1 0 || (x, y) || x not equal to y || x ≠ y
|-
| f<sub>7</sub> || f<sub>0111</sub> || 0 1 1 1 || (x y) || not both x and y || ¬x ∨ ¬y
|-
| f<sub>8</sub> || f<sub>1000</sub> || 1 0 0 0 || x y || x and y || x ∧ y
|-
| f<sub>9</sub> || f<sub>1001</sub> || 1 0 0 1 || ((x, y)) || x equal to y || x = y
|-
| f<sub>10</sub> || f<sub>1010</sub> || 1 0 1 0 || y || y || y
|-
| f<sub>11</sub> || f<sub>1011</sub> || 1 0 1 1 || (x (y)) || not x without y || x → y
|-
| f<sub>12</sub> || f<sub>1100</sub> || 1 1 0 0 || x || x || x
|-
| f<sub>13</sub> || f<sub>1101</sub> || 1 1 0 1 || ((x) y) || not y without x || x ← y
|-
| f<sub>14</sub> || f<sub>1110</sub> || 1 1 1 0 || ((x)(y)) || x or y || x ∨ y
|-
| f<sub>15</sub> || f<sub>1111</sub> || 1 1 1 1 || (( )) || true || 1
|}
<br>
These six languages for the sixteen boolean functions are conveniently described in the following order:
* Language '''L<sub>3</sub>''' describes each boolean function ''f'' : '''B'''<sup>2</sup> → '''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 '''L<sub>2</sub>''' lists the sixteen functions in the form '''f<sub>i</sub>''', where the index '''i''' is a [[bit string]] formed from the sequence of boolean values in '''L<sub>3</sub>'''.
* Language '''L<sub>1</sub>''' notates the boolean functions '''f<sub>i</sub>''' with an index '''i''' that is the decimal equivalent of the binary numeral index in '''L<sub>2</sub>'''.
* Language '''L<sub>4</sub>''' 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 operator]]s'', the first few of which are given in the following variant notations:
: <math>\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}</math>
It may also be noted that <math>(x, y)\!</math> is the same function as <math>x + y\!</math> and <math>x \ne y</math>, and that the inclusive disjunctions indicated for <math>(x, y)\!</math> and for <math>(x, y, z)\!</math> may be replaced with exclusive disjunctions without affecting the meaning, because the terms disjoined are already disjoint. However, the function <math>(x, y, z)\!</math> is not the same thing as the function <math>x + y + z\!</math>.
* Language '''L<sub>5</sub>''' lists ordinary language expressions for the sixteen functions. Many other paraphrases are possible, but these afford a sample of the simplest equivalents.
* Language '''L<sub>6</sub>''' expresses the sixteen functions in one of several notations that are commonly used in formal logic.
==See also==
===Logical operators===
{|
| valign=top |
* [[Exclusive disjunction]]
* [[Logical conjunction]]
* [[Logical disjunction]]
* [[Logical equality]]
| valign=top |
* [[Logical implication]]
* [[Logical NAND]]
* [[Logical NNOR]]
* [[Logical negation|Negation]]
|}
===Related topics===
{|
| valign=top |
* [[Ampheck]]
* [[Boolean algebra]]
* [[Boolean algebra topics]]
* [[Boolean domain]]
* [[Boolean function]]
* [[Boolean logic]]
| valign=top |
* [[Boolean-valued function]]
* [[Entitative graph]]
* [[Existential graph]]
* [[First order logic]]
* [[Indicator function]]
* [[Logical graph]]
| valign=top |
* [[Logical value]]
* [[Minimal negation operator]]
* [[Monadic predicate calculus]]
* [[Operation (mathematics)|Operation]]
* [[Propositional calculus]]
* [[Truth table]]
|}