Binary operation that is true if and only if both operands are false
In Boolean logic, logical NOR, non-disjunction, or joint denial 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 formula_1 and formula_2, where the symbol formula_3 signifies logical negation, formula_4 signifies OR, and formula_5 signifies AND.
Non-disjunction is usually denoted as formula_6 or formula_7 or formula_8 (prefix) or formula_9.
As with its dual, the NAND operator (also known as the Sheffer stroke—symbolized as either formula_10, formula_11 or formula_12), 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.
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 formula_13 is as follows:
Logical equivalences.
The logical NOR formula_6 is the negation of the disjunction:
Alternative notations and names.
Peirce is the first to show the functional completeness of non-disjunction while he doesn't publish his result. Peirce used formula_15 for non-conjunction and formula_16 for non-disjunction (in fact, what Peirce himself used is formula_16 and he didn't introduce formula_15 while Peirce's editors made such disambiguated use). Peirce called formula_16 the ;templatestyles src="Template:Visible anchor/styles.css" / ;ampheck (from Ancient Greek , , "cutting both ways").
In 1911, Stamm was the first to publish a description of both non-conjunction (using formula_20, the Stamm hook), and non-disjunction (using formula_21, the Stamm star), and showed their functional completeness. Note that most uses in logical notation of formula_20 use this for negation.
In 1913, Sheffer described non-disjunction and showed its functional completeness. Sheffer used formula_11 for non-conjunction, and formula_24 for non-disjunction.
In 1935, Webb described non-disjunction for formula_25-valued logic, and use formula_11 for the operator. So some people call it Webb operator, Webb operation or Webb function.
In 1940, Quine also described non-disjunction and use formula_6 for the operator. So some people call the operator Peirce arrow or Quine dagger.
In 1944, Church also described non-disjunction and use formula_7 for the operator.
In 1954, Bocheński used formula_8 in formula_30 for non-disjunction in Polish notation.
Properties.
NOR is commutative but not associative, which means that formula_31 but formula_32.
Functional completeness.
The logical NOR, taken by itself, is a functionally complete set of connectives. This can be proved by first showing, with a truth table, that formula_33 is truth-functionally equivalent to formula_34. Then, since formula_13 is truth-functionally equivalent to formula_36, and formula_37 is equivalent to formula_38, the logical NOR suffices to define the set of connectives formula_39, which is shown to be truth-functionally complete by the Disjunctive Normal Form Theorem.
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 formula_6, the usual operators of propositional logic are:
References.
 ;templatestyles src="Reflist/styles.css" / ;