Truth function: Difference between revisions

Content deleted Content added
Lead cleanup
Computer science: uppercase per direct link (Apollo Guidance Computer)
 
(38 intermediate revisions by 27 users not shown)
Line 1:
{{Short description|Function in logic}}
{{Logical connectives sidebar}}
<!-- :''"Truth functional" redirects here. For the truth functional conditional, see [[Material conditional]].''
IMHO by no means the material conditional may not be referred to or abbreviated as the adjective "truth functional", omitting a noun like "conditional" or "implication". Seems more like an internal link spamming rather than an appropriate dab hatnote. --Incnis Mrsi -->
In [[logic]], a '''truth function'''<ref>Roy T. Cook (2009). ''A Dictionary of Philosophical Logic'', p. 294: Truth Function. Edinburgh University Press.</ref> is a [[function (mathematics)|function]] that accepts [[truth value]]s as input and produces a truth value as output, i.e., the input and output are all truth values. The typical example is in [[Propositional calculus|propositional logic]], wherein a compound statement is constructed using individual statements connected by [[logical connective]]s; if the truth value of the compound statement is entirely determined by the truth value(s) of the constituent statement(s), the compound statement is called a '''truth function''', and any logical connectives used are said to be '''truth functional'''.<ref>Roy T. Cook (2009). ''A Dictionary of Philosophical Logic'', p. 295: Truth Functional. Edinburgh University Press.</ref>
 
In [[Classical logic|Classical propositional logic]] is, a '''truth-functional propositional logicfunction''',<ref>[http://www.iepRoy T.utm.edu/prop-log/ Cook Internet(2009). Encyclopedia''A Dictionary of Philosophy: PropositionalPhilosophical Logic]'', byp. Kevin294: CTruth Function. KlementEdinburgh University Press.</ref> inis a [[function (mathematics)|function]] that everyaccepts statement[[truth value]]s as input and produces a unique truth value as output. In other words: the input and output of a truth function are all truth values; a truth function will always hasoutput exactly one truth value, and inputting the same truth value(s) will always output the same truth value. The typical whichexample is eitherin true[[Propositional orcalculus|propositional falselogic]], andwherein everya logicalcompound connectivestatement is truthconstructed functionalusing (withindividual astatements correspondentconnected by [[truthlogical tableconnective]]s; if the truth value of the compound statement is entirely determined by the truth value(s), thusof everythe constituent statement(s), the compound statement is called a truth function, and any logical connectives used are said to be '''truth functional'''.<ref>Roy T. Cook (2009). ''A Dictionary of Philosophical Logic'', p. 47295: ClassicalTruth LogicFunctional. Edinburgh University Press.</ref> On the contrary, [[modal logic]] is non-truth-functional.
 
[[Classical logic|Classical propositional logic]] is a truth-functional logic,<ref>[http://www.iep.utm.edu/prop-log/ Internet Encyclopedia of Philosophy: Propositional Logic], by Kevin C. Klement</ref> in that every statement has exactly one truth value which is either true or false, and every logical connective is truth functional (with a correspondent [[truth table]]), thus every compound statement is a truth function.<ref>Roy T. Cook (2009). ''A Dictionary of Philosophical Logic'', p. 47: Classical Logic. Edinburgh University Press.</ref> On the other hand, [[modal logic]] is non-truth-functional.
==Overview==
 
A [[logical connective]] is truth-functional if the truth-value of a compound sentence is a function of the truth-value of its sub-sentences. A class of connectives is truth-functional if each of its members is. For example, the connective "''and''" is truth-functional since a sentence like "''Apples are fruits and carrots are vegetables''" is true ''[[if and only if|if, and only if]]'' each of its sub-sentences "''apples are fruits''" and "''carrots are vegetables''" is true, and it is false otherwise. Some connectives of a natural language, such as English, are not truth-functional.
== Overview ==
A [[logical connective]] is truth-functional if the truth-value of a compound sentence is a function of the truth-value of its sub-sentences. A class of connectives is truth-functional if each of its members is. For example, the connective "''and''" is truth-functional since a sentence like "''Apples are fruits and carrots are vegetables''" is true ''[[if and only if|if, and only if]],'' each of its sub-sentences "''apples are fruits''" and "''carrots are vegetables''" is true, and it is false otherwise. Some connectives of a natural language, such as English, are not truth-functional.
 
Connectives of the form "x ''believes that'' ..." are typical examples of connectives that are not truth-functional. If e.g. Mary mistakenly believes that Al Gore was President of the USA on April 20, 2000, but she does not believe that the moon is made of green cheese, then the sentence
Line 22 ⟶ 25:
== Table of binary truth functions ==
 
In two-valued logic, there are sixteen possible truth functions, also called [[Boolean function]]s, of two inputs ''P'' and ''Q''. Any of these functions corresponds to a truth table of a certain [[logical connective]] in classical logic, including several [[degeneracy (mathematics)|degenerate]] cases such as a function not depending on one or both of its arguments. Truth and falsehood isare denoted as 1 and 0, respectively, in the following truth tables, respectively, for sake of brevity.
 
{| style="margin:1em auto; border: none;"
<center>
{| style="border: none;"
|-
| {{logicalconnective
|main=Contradiction|also=/[[false (logic)|False]]
|notation=<math>\bot</math><br />"bottom"
|equivalents=''P'' &and; ¬''P''<br />O''pq''
|truthtable-00=0
|truthtable-01=0
Line 41 ⟶ 42:
|title=Tautology
|notation=<math>\top</math><br />"top"
|equivalents=''P'' &or; ¬''P''<br />V''pq''
|truthtable-00=1
|truthtable-01=1
Line 53 ⟶ 54:
|title=Proposition ''P''
|notation=''P''
|equivalents=''p''<br />I''pq''
|truthtable-00=0
|truthtable-01=0
Line 63 ⟶ 64:
|main=Negation
|title=Negation of ''P''
|notation=¬''P''<br />~''P''
|equivalents=N''p''<br />F''pq''
|truthtable-00=1
|truthtable-01=1
Line 76 ⟶ 77:
|title=Proposition ''Q''
|notation=''Q''
|equivalents=''q''<br />H''pq''
|truthtable-00=0
|truthtable-01=1
Line 86 ⟶ 87:
|main=Negation
|title=Negation of ''Q''
|notation=¬''Q''<br />~''Q''
|equivalents=N''q''<br />G''pq''
|truthtable-00=1
|truthtable-01=0
Line 98 ⟶ 99:
|main=Logical conjunction
|title=Conjunction
|notation=''P'' &and; ''Q''<br />''P'' & ''Q''<br />''P''&nbsp;'''·'''&nbsp;''Q''<br />''P''&nbsp;AND&nbsp;''Q''
|equivalents=''P'' ↛¬''Q'' <br /> ¬''P'' ↚ ''Q'' <br /> ¬''P'' &darr; ¬''Q''<br />K''pq''
|truthtable-00=0
|truthtable-01=0
Line 108 ⟶ 109:
|{{logicalconnective
|main=Sheffer stroke
|title=Non-conjunction/Alternative denial
|notation=''P'' ↑ ''Q''<br />''P'' &#124;{{pipe}} ''Q'' <br />''P''&nbsp;NAND&nbsp;''Q''
|equivalents=''P'' → ¬''Q'' <br /> ¬''P'' ← ''Q''<br />¬''P'' &or; ¬''Q''<br />D''pq''
|truthtable-00=1
|truthtable-01=1
Line 121 ⟶ 122:
|main=Logical disjunction
|title=Disjunction
|notation=''P'' &or; ''Q''<br />''P''&nbsp;OR&nbsp;''Q''
|equivalents=''P'' &larr; ¬''Q'' <br /> ¬''P'' → ''Q'' <br /> ¬''P'' ↑ ¬''Q''<br />¬(¬''P'' &and; ¬''Q'')<br />A''pq''
|truthtable-00=0
|truthtable-01=1
Line 131 ⟶ 132:
|{{logicalconnective
|main=Logical NOR
|title=Non-disjunction/Joint denial
|notation=''P'' ↓ ''Q''<br />''P''&nbsp;NOR&nbsp;''Q''
|equivalents=''P'' ↚ ¬''Q'' <br /> ¬''P'' ↛ ''Q'' <br /> ¬''P'' &and; ¬''Q''<br />X''pq''
|truthtable-00=1
|truthtable-01=0
Line 144 ⟶ 145:
|main=Material nonimplication
|title=Material nonimplication
|notation=''P'' ↛ ''Q'' <br /> ''P'' <math>\not\supset</math> ''Q''<br /> ''P'' <math>></math> ''Q''<br />''P''&nbsp;NIMPLY&nbsp;''Q''
|equivalents=''P'' &and; ¬''Q'' <br /> ¬''P'' ↓ ''Q'' <br /> ¬''P'' ↚ ¬''Q''<br />L''pq''
|truthtable-00=0
|truthtable-01=0
Line 155 ⟶ 156:
|main=Material conditional
|title=Material implication
|notation=''P'' → ''Q'' <br /> ''P'' &sup; ''Q'' <br /> ''P'' <math>\leq</math> ''Q''<br />''P''&nbsp;IMPLY&nbsp;''Q''
|equivalents=''P'' ↑ ¬''Q'' <br /> ¬''P'' &or; ''Q'' <br /> ¬''P'' ← ¬''Q''<br />C''pq''
|truthtable-00=1
|truthtable-01=1
Line 167 ⟶ 168:
|main=Converse nonimplication
|title=Converse nonimplication
|notation=''P'' ↚ ''Q'' <br /> ''P'' <math>\not\subset</math> ''Q'' <br /> ''P'' <math><</math> ''Q''
|equivalents=''P'' ↓ ¬''Q'' <br /> ¬''P'' &and; ''Q'' <br /> ¬''P'' ↛ ¬''Q''<br />M''pq''
|truthtable-00=0
|truthtable-01=1
Line 178 ⟶ 179:
|main=Converse implication
|title=Converse implication
|notation=''P'' &larr; ''Q'' <br /> ''P'' &sub; ''Q'' <br /> ''P'' <math>\geq</math> ''Q''
|equivalents=''P'' &or; ¬''Q'' <br /> ¬''P'' ↑ ''Q'' <br /> ¬''P'' → ¬''Q''<br />B''pq''
|truthtable-00=1
|truthtable-01=0
Line 189 ⟶ 190:
| {{logicalconnective
|main=Exclusive or
|title=Non-equivalence/Exclusive disjunction
|notation=''P'' ↮ ''Q'' <br /> ''P'' ≢ ''Q'' <br /> ''P'' ⨁ ''Q''<br />''P''&nbsp;XOR&nbsp;''Q''
|equivalents=''P'' {{eqv}} ¬''Q'' <br /> ¬''P'' {{eqv}} ''Q'' <br /> ¬''P'' ↮ ¬''Q''<br />J''pq''
|truthtable-00=0
|truthtable-01=1
Line 200 ⟶ 201:
|{{logicalconnective
|main=Logical biconditional
|title=Equivalence/Biconditional
|notation=''P'' {{eqv}} ''Q'' <br /> ''P'' ≡ ''Q''<br />''P''&nbsp;XNOR&nbsp;''Q''<br /> ''P''&nbsp;IFF&nbsp;''Q''
|equivalents=''P'' ↮ ¬''Q'' <br /> ¬''P'' ↮ ''Q'' <br /> ¬''P'' {{eqv}} ¬''Q''<br />E''pq''
|truthtable-00=1
|truthtable-01=0
Line 209 ⟶ 210:
|image=Venn1001.svg
}}
|-}
|}</center>
 
== Functional completeness ==
{{see alsoMain|Functional completeness}}
 
Because a function may be expressed as a [[composition of functions|composition]], a truth-functional logical calculus does not need to have dedicated symbols for all of the above-mentioned functions to be [[functional completeness|functionally complete]]. This is expressed in a [[propositional calculus]] as [[logical equivalence]] of certain compound statements. For example, classical logic has {{math|¬''P'' ∨ ''Q''}} equivalent to {{math|''P'' → ''Q''}}. The conditional operator "→" is therefore not necessary for a classical-based [[logical system]] if "¬" (not) and "∨" (or) are already in use.
Line 218 ⟶ 219:
A [[minimal element|minimal]] set of operators that can express every statement expressible in the [[propositional calculus]] is called a ''minimal functionally complete set''. A minimally complete set of operators is achieved by NAND alone {↑} and NOR alone {↓}.
 
The following are the minimal functionally complete sets of operators whose arities do not exceed 2:<ref name="Wernick">Wernick, William (1942) "Complete Sets of Logical Functions," ''Transactions of the American Mathematical Society 51'': 117&ndash;32117–32. In his list on the last page of the article, Wernick does not distinguish between ← and →, or between <math>\nleftarrow</math> and <math>\nrightarrow</math>.</ref>
;One element: {↑}, {↓}.
;Two elements: <math>\{\vee, \neg\}</math>, <math>\{\wedge, \neg\}</math>, <math>\{\to, \neg\}</math>, <math>\{\gets, \neg\}</math>, <math>\{\to, \bot\}</math>, <math>\{\gets, \bot\}</math>, <math>\{\to, \nleftrightarrow\}</math>, <math>\{\gets, \nleftrightarrow\}</math>, <math>\{\to, \nrightarrow\}</math>, <math>\{\to, \nleftarrow\}</math>, <math>\{\gets, \nrightarrow\}</math>, <math>\{\gets, \nleftarrow\}</math>, <math>\{\nrightarrow, \neg\}</math>, <math>\{\nleftarrow, \neg\}</math>, <math>\{\nrightarrow, \top\}</math>, <math>\{\nleftarrow, \top\}</math>, <math>\{\nrightarrow, \leftrightarrow\}</math>, <math>\{\nleftarrow, \leftrightarrow\}</math>.
;Three elements: <math>\{\lor, \leftrightarrow, \bot\}</math>, <math>\{\lor, \leftrightarrow, \nleftrightarrow\}</math>, <math>\{\lor, \nleftrightarrow, \top\}</math>, <math>\{\land, \leftrightarrow, \bot\}</math>, <math>\{\land, \leftrightarrow, \nleftrightarrow\}</math>, <math>\{\land, \nleftrightarrow, \top\}</math>.
 
== Algebraic properties ==
Some truth functions possess properties which may be expressed in the theorems containing the corresponding connective. Some of those properties that a binary truth function (or a corresponding logical connective) may have are:
 
*'''[[associativity]]''': Within an expression containing two or more of the same associative connectives in a row, the order of the operations does not matter as long as the sequence of the operands is not changed.
*'''[[commutativity]]''': The operands of the connective may be swapped without affecting the truth-value of the expression.
*'''[[distributivity]]''': A connective denoted by · distributes over another connective denoted by +, if ''a'' · (''b'' + ''c'') = (''a'' · ''b'') + (''a'' · ''c'') for all operands ''a'', ''b'', ''c''.
*'''[[idempotence]]''': Whenever the operands of the operation are the same, the connective gives the operand as the result. In other words, the operation is both truth-preserving and falsehood-preserving (see below).
*'''[[Absorption Law|absorption]]''': A pair of connectives <math>\land, \lor</math> satisfies the absorption law if <math>a\land(a\lor b)=a\lor(a\land b)=a</math> for all operands ''a'', ''b''.
 
A set of truth functions is [[functional completeness|functionally complete]] if and only if for each of the following five properties it contains at least one member lacking it:
*'''[[monotonic]]''': If ''f''(''a''<sub>1</sub>, ..., ''a''<sub>''n''</sub>) ≤ ''f''(''b''<sub>1</sub>, ..., ''b''<sub>''n''</sub>) for all ''a''<sub>1</sub>, ..., ''a''<sub>''n''</sub>, ''b''<sub>1</sub>, ..., ''b''<sub>''n''</sub> ∈ {0,1} such that ''a''<sub>1</sub> ≤ ''b''<sub>1</sub>, ''a''<sub>2</sub> ≤ ''b''<sub>2</sub>, ..., ''a''<sub>''n''</sub> ≤ ''b''<sub>''n''</sub>. E.g., <math>\vee, \wedge, \top, \bot</math>.
*'''[[affine transformation|affine]]''': For each variable, changing its value either always or never changes the truth-value of the operation, for all fixed values of all other variables. E.g., <math>\neg, \leftrightarrow</math>, <math>\not\leftrightarrow, \top, \bot</math>.
*'''self dual''': To read the truth-value assignments for the operation from top to bottom on its [[truth table]] is the same as taking the complement of reading it from bottom to top; in other words, ''f''(¬''a''<sub>1</sub>, ..., ¬''a''<sub>''n''</sub>) = ¬''f''(''a''<sub>1</sub>, ..., ''a''<sub>''n''</sub>). E.g., <math>\neg</math>.
*'''truth-preserving''': The interpretation under which all variables are assigned a [[truth value]] of ''true'' produces a truth value of ''true'' as a result of these operations. E.g., <math>\vee, \wedge, \top, \rightarrow, \leftrightarrow, \subset</math>. (see [[Validity (logic)|validity]])
*'''falsehood-preserving''': The interpretation under which all variables are assigned a [[truth value]] of ''false'' produces a truth value of ''false'' as a result of these operations. E.g., <math>\vee, \wedge, \nleftrightarrow, \bot, \not\subset, \not\supset</math>. (see [[Validity (logic)|validity]])
 
=== Arity ===
{{seeSee also|arity}}
 
A concrete function may be also referred to as an ''operator''. In two-valued logic there are 2 nullary operators (constants), 4 [[unary operation|unary operators]], 16 [[binary operation|binary operators]], 256 [[ternary operation|ternary operators]], and <math>2^{2^n}</math> ''n''-ary operators. In three-valued logic there are 3 nullary operators (constants), 27 [[unary operation|unary operators]], 19683 [[binary operation|binary operators]], 7625597484987 [[ternary operation|ternary operators]], and <math>3^{3^n}</math> ''n''-ary operators. In ''k''-valued logic, there are ''k'' nullary operators, <math>k^k</math> unary operators, <math>k^{k^2}</math> binary operators, <math>k^{k^3}</math> ternary operators, and <math>k^{k^n}</math> ''n''-ary operators. An ''n''-ary operator in ''k''-valued logic is a function from <math>\mathbb{Z}_k^n \to \mathbb{Z}_k</math>. Therefore, the number of such operators is <math>|\mathbb{Z}_k|^{|\mathbb{Z}_k^n|} = k^{k^n}</math>, which is how the above numbers were derived.
 
However, some of the operators of a particular arity are actually degenerate forms that perform a lower-arity operation on some of the inputs and ignoresignore the rest of the inputs. Out of the 256 ternary booleanBoolean operators cited above, <math>\binom{3}{2}\cdot 16 - \binom{3}{1}\cdot 4 + \binom{3}{0}\cdot 2</math> of them are such degenerate forms of binary or lower-arity operators, using the [[inclusion–exclusion principle]]. The ternary operator <math>f(x,y,z)=\lnot x</math> is one such operator which is actually a unary operator applied to one input, and ignoring the other two inputs.
 
[[Negation|"Not"]] is a [[unary operation|unary operator]], it takes a single term (¬''P''). The rest are [[binary operation|binary operators]], taking two terms to make a compound statement ({{math|''P'' &and; ''Q'', {{wrap}}''P'' &or; ''Q'', {{wrap}}''P'' → ''Q'', {{wrap}}''P'' ↔ ''Q''}}).
 
The set of logical operators {{math|&Omega;}} may be [[Partition of a set|partitionpartitioned]]ed into disjoint subsets as follows:
 
::: <math>\Omega = \Omega_0 \cup \Omega_1 \cup \ldots \cup \Omega_j \cup \ldots \cup \Omega_m \,.</math>
Line 260 ⟶ 261:
:::unary operators: <math>\Omega_1 = \{ \lnot \} </math>
 
:::binary operators: <math>\Omega_2 \subseteqsupset \{ \land, \lor, \rightarrow, \leftrightarrow \} </math>
 
== Principle of compositionality ==
 
Instead of using [[truth table]]s, logical connective symbols can be interpreted by means of an interpretation function and a functionally complete set of truth-functions (Gamut 1991), as detailed by the [[principle of compositionality]] of meaning.
Let ''{{mvar|I''}} be an interpretation function, let ''{{math|Φ'', ''Ψ''}} be any two sentences and let the truth function ''f''<sub>nand</sub> be defined as:
* ''f''<sub>nand</sub>(T,T) = F; ''f''<sub>nand</sub>(T,F) = ''f''<sub>nand</sub>(F,T) = ''f''<sub>nand</sub>(F,F) = T
 
Line 285 ⟶ 286:
| ''I''(&) {{=}} ''I''({{and}}) {{=}} ''f''<sub>and</sub>
| ''I''(''v'') {{=}} ''I''({{or-}}) {{=}} ''f''<sub>or</sub>
| ''I''(~''Φ'') {{=}} ''I''({{not}}''Φ'') {{=}} ''I''({{not}})(''I''(''Φ'')) {{=}} ''f''<sub>not</sub>(''I''(''Φ''))
| ''I''(''Φ''{{and}}''Ψ'') {{=}} ''I''({{and}})(''I''(''Φ''), ''I''(''Ψ'')) {{=}} ''f''<sub>and</sub>(''I''(''Φ''), ''I''(''Ψ''))
}}
etc.
Line 292 ⟶ 293:
Thus if ''S'' is a sentence that is a string of symbols consisting of logical symbols ''v''<sub>1</sub>...''v''<sub>''n''</sub> representing logical connectives, and non-logical symbols ''c''<sub>1</sub>...''c''<sub>''n''</sub>, then if and only if {{math|size=100%|''I''(''v''<sub>1</sub>)...''I''(''v''<sub>''n''</sub>)}} have been provided interpreting ''v''<sub>1</sub> to ''v''<sub>''n''</sub> by means of ''f''<sub>nand</sub> (or any other set of functional complete truth-functions) then the truth-value of {{tmath|I(s)}} is determined entirely by the truth-values of ''c''<sub>1</sub>...''c''<sub>''n''</sub>, i.e. of {{math|size=100%|''I''(''c''<sub>1</sub>)...''I''(''c''<sub>''n''</sub>)}}. In other words, as expected and required, ''S'' is true or false only under an interpretation of all its non-logical symbols.
 
==Computer scienceDefinition ==
 
Logical operators are implemented as [[logic gate]]s in [[digital circuit]]s. Practically all digital circuits (the major exception is [[DRAM]]) are built up from [[logical nand|NAND]], [[logical nor|NOR]], [[negation|NOT]], and [[logic gate|transmission gate]]s. NAND and NOR gates with 3 or more inputs rather than the usual 2 inputs are fairly common, although they are logically equivalent to a cascade of 2-input gates. All other operators are implemented by breaking them down into a logically equivalent combination of 2 or more of the above logic gates.
Using the functions defined above, we can give a formal definition of a proposition's truth function.<ref>{{Cite web |title=An Introduction to Mathematical Logic |url=https://store.doverpublications.com/products/9780486497853?srsltid=AfmBOoo9mFyD06QpIypwYtJnNn2CYOf-Ps2CCwMYl_IgAfLRwgeh7v1s |access-date=2025-02-20 |website=Dover Publications |language=en}}</ref>
 
Let ''PROP'' be the set of all propositional variables,
 
: <math> PROP = \{p_1,p_2,\dots\}</math>
 
We define a '''truth assignment''' to be any function <math>\phi:PROP\to \{T,F\}</math>. A truth assignment is therefore an association of each propositional variable with a particular truth value. This is effectively the same as a particular row of a proposition's truth table.
 
For a truth assignment, <math>\phi</math>, we define its '''extended truth assignment''', <math>\overline\phi</math>, as follows. This extends <math>\phi</math> to a new function <math>\overline \phi</math> which has ___domain equal to the set of all propositional formulas. The range of <math>\overline\phi</math> is still <math>\{T,F\}</math>.
 
# If <math>A \in PROP</math> then <math>\overline\phi(A) = \phi(A)</math>.
# If ''A'' and ''B'' are any propositional formulas, then
## <math>\overline\phi(\neg A) = f_{\text{not}} (\overline\phi(A))</math>.
## <math>\overline\phi(A\land B) = f_{\text{and}} (\overline\phi(A),\overline\phi(B))</math>.
## <math>\overline\phi(A\lor B) = f_{\text{or}} (\overline\phi(A),\overline\phi(B))</math>.
## <math>\overline\phi(A\to B) = \overline\phi(\neg A\lor B)</math>.
## <math>\overline\phi(A\leftrightarrow B) = \overline\phi((A\to B)\land (B\to A))</math>.
 
Finally, now that we have defined the extended truth assignment, we can use this to define the truth-function of a proposition. For a proposition, ''A'', its '''truth function''', <math>f_A</math>, has ___domain equal to the set of all truth assignments, and range equal to <math>\{T,F\}</math>.
 
It is defined, for each truth assignment <math>\phi</math>, by <math>f_A(\phi) = \overline\phi(A)</math>. The value given by <math>\overline\phi(A)</math> is the same as the one displayed in the final column of the truth table of ''A'', on the row identified with <math>\phi</math>.
 
== Computer science ==
Logical operators are implemented as [[logic gate]]s in [[digital circuit]]s. Practically all digital circuits (the major exception is [[DRAM]]) are built up from [[logical nandNAND|NAND]], [[logical norNOR|NOR]], [[negation|NOT]], and [[logic gate|transmission gategates]]s. NAND and NOR gates with 3 or more inputs rather than the usual 2 inputs are fairly common, although they are logically equivalent to a cascade of 2-input gates. All other operators are implemented by breaking them down into a logically equivalent combination of 2 or more of the above logic gates.
 
The "logical equivalence" of "NAND alone", "NOR alone", and "NOT and AND" is similar to [[Turing equivalence (theory of computation)|Turing equivalence]].
 
The fact that all truth functions can be expressed with NOR alone is demonstrated by the [[Apollo guidanceGuidance computerComputer]].
 
== See also ==
{{Portal|Philosophy|Psychology}}
{{Col-begin}}
{{div col|colwidth=22em}}
{{Col-break}}
* [[Bertrand Russell]] and [[Alfred North Whitehead]],<br />''[[Principia Mathematica]]'', 2nd edition
* [[Ludwig Wittgenstein]],<br />''[[Tractatus Logico-Philosophicus]]'', Proposition 5.101
* [[Bitwise operation]]
* [[Binary function]]
* [[Boolean ___domain]]
* [[Boolean function]]
* [[Boolean logic]]
* [[Boolean-valued function]]
* [[List of Boolean algebra topics]]
{{Col-break}}
* [[List of Boolean algebra topics]]
* [[Logical connective]]
* [[Logical constant]]
* [[Modal operator]]
* [[Propositional calculus]]
* [[Truth-functional propositional logic]]
{{Col-div col end}}
* [[Truth table]]
* [[Truth value]]s
{{Portal|Philosophy|Psychology}}
{{Col-end}}
 
== Notes ==
{{reflist}}
 
== References ==
*{{PlanetMath attribution|id=483|title=TruthFunction}}
 
== Further reading ==
* [[Józef Maria Bocheński]] (1959), ''A Précis of Mathematical Logic'', translated from the French and German versions by Otto Bird, Dordrecht, South Holland: D. Reidel.
* [[Alonzo Church]] (1944), ''Introduction to Mathematical Logic'', Princeton, NJ: Princeton University Press. See the Introduction for a history of the truth function concept.
{{Classical logic}}
Line 335 ⟶ 354:
 
[[Category:Mathematical logic]]
[[Category:Truth|FunctionLogical truth]]