Logical NOR
Template:Short description Template:About Template:Redirect-distinguish Template:Redirect-distinguish-text Template:Use dmy dates Template:Use list-defined references Template:Infobox logical connective Template:Logical connectives sidebar Template:C. S. Peirce articles In Boolean logic, logical NOR,<ref name=":13">Template:Cite book</ref> non-disjunction, or joint denial<ref name=":13" /> is a truth-functional operator which produces a result that is the negation of logical or. That is, a sentence of the form (p NOR q) is true precisely when neither p nor q is true—i.e. when both p and q are false. It is logically equivalent to <math>\neg(p \lor q)</math> and <math>\neg p \land \neg q</math>, where the symbol <math>\neg</math> signifies logical negation, <math>\lor</math> signifies OR, and <math>\land</math> signifies AND.
Non-disjunction is usually denoted as <math>\downarrow</math> or <math>\overline{\vee}</math> or <math>X</math> (prefix) or <math>\operatorname{NOR}</math>.
As with its dual, the NAND operator (also known as the Sheffer stroke—symbolized as either <math>\uparrow</math>, <math>\mid</math> or <math>/</math>), NOR can be used by itself, without any other logical operator, to constitute a logical formal system (making NOR functionally complete).
The computer used in the spacecraft that first carried humans to the moon, the Apollo Guidance Computer, was constructed entirely using NOR gates with three inputs.<ref name="Hall_1996"/>
Definition
The NOR operation is a logical operation on two logical values, typically the values of two propositions, that produces a value of true if and only if both operands are false. In other words, it produces a value of false if and only if at least one operand is true.
Truth table
The truth table of <math>A \downarrow B</math> is as follows:
Logical equivalences
The logical NOR <math>\downarrow</math> is the negation of the disjunction:
| <math>P \downarrow Q</math> | <math>\Leftrightarrow</math> | <math>\neg (P \lor Q)</math> |
| <math>\Leftrightarrow</math> | <math>\neg</math> |
Alternative notations and names
Peirce is the first to show the functional completeness of non-disjunction while he doesn't publish his result.<ref name="peirce1880">Template:Cite encyclopedia</ref><ref name="peirce1902">Template:Cite encyclopedia</ref> Peirce used <math>\overline{\curlywedge}</math> for non-conjunction and <math>\curlywedge</math> for non-disjunction (in fact, what Peirce himself used is <math>\curlywedge</math> and he didn't introduce <math>\overline{\curlywedge}</math> while Peirce's editors made such disambiguated use).<ref name="peirce1902"/> Peirce called <math>\curlywedge</math> the Template:Visible anchor (from Ancient Greek Template:Lang, Template:Transliteration, "cutting both ways").<ref name="peirce1902"/>
In 1911, Template:Ill was the first to publish a description of both non-conjunction (using <math>\sim</math>, the Stamm hook), and non-disjunction (using <math>*</math>, the Stamm star), and showed their functional completeness.<ref name="Stamm_1911"/><ref>Template:Cite web</ref> Note that most uses in logical notation of <math>\sim</math> use this for negation.
In 1913, Sheffer described non-disjunction and showed its functional completeness. Sheffer used <math>\mid</math> for non-conjunction, and <math>\wedge</math> for non-disjunction.
In 1935, Webb described non-disjunction for <math>n</math>-valued logic, and use <math>\mid</math> for the operator. So some people call it Webb operator,<ref name="Webb_1935"/> Webb operation<ref name="Vasyukevich_2011"/> or Webb function.<ref name="Freimann-Renfro-Webb_2017"/>
In 1940, Quine also described non-disjunction and use <math>\downarrow</math> for the operator.<ref name="quine1940">Template:Cite book</ref> So some people call the operator Peirce arrow or Quine dagger.
In 1944, Church also described non-disjunction and use <math>\overline{\vee}</math> for the operator.<ref name="church1944">Template:Cite book</ref>
In 1954, Bocheński used <math>X</math> in <math>Xpq</math> for non-disjunction in Polish notation.<ref name="Bochenski1954">Template:Cite book</ref>
APL uses a glyph Template:Code that combines a Template:Code with a Template:Code.<ref>Nor, APL Wiki.</ref>
Properties
NOR is commutative but not associative, which means that <math>P \downarrow Q \leftrightarrow Q \downarrow P</math> but <math>(P \downarrow Q) \downarrow R \not\leftrightarrow P \downarrow (Q \downarrow R)</math>.<ref>Template:Cite book</ref>
Functional completeness
The logical NOR, taken by itself, is a functionally complete set of connectives.<ref name=":29">Template:Cite book</ref> This can be proved by first showing, with a truth table, that <math>\neg A</math> is truth-functionally equivalent to <math>A \downarrow A</math>.<ref name=":132">Template:Cite book</ref> Then, since <math>A \downarrow B</math> is truth-functionally equivalent to <math>\neg (A \lor B)</math>,<ref name=":132" /> and <math>A \lor B</math> is equivalent to <math>\neg(\neg A \land \neg B)</math>,<ref name=":132" /> the logical NOR suffices to define the set of connectives <math>\{\land, \lor, \neg\}</math>,<ref name=":132" /> which is shown to be truth-functionally complete by the Disjunctive Normal Form Theorem.<ref name=":132" />
This may also be seen from the fact that Logical NOR does not possess any of the five qualities (truth-preserving, false-preserving, linear, monotonic, self-dual) required to be absent from at least one member of a set of functionally complete operators.
Other Boolean operations in terms of the logical NOR
NOR has the interesting feature that all other logical operators can be expressed by interlaced NOR operations. The logical NAND operator also has this ability.
Expressed in terms of NOR <math>\downarrow</math>, the usual operators of propositional logic are:
See also
- Bitwise NOR
- Boolean algebra
- Boolean domain
- Boolean function
- Functional completeness
- NOR gate
- Propositional logic
- Sole sufficient operator
- Sheffer stroke as symbol for the logical NAND