Logical NOR

From Vero - Wikipedia
Revision as of 09:41, 23 April 2025 by 185.118.40.1 (talk) (Alternative notations and names: APL notation)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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:

Template:2-ary truth table

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:

<math>\neg P</math>     <math>\Leftrightarrow</math>     <math>P \downarrow P</math>
<math>\neg</math>     <math>\Leftrightarrow</math>    
   
<math>P \rightarrow Q</math>     <math>\Leftrightarrow</math>     <math>\Big( (P \downarrow P) \downarrow Q \Big)</math> <math>\downarrow</math> <math>\Big( (P \downarrow P) \downarrow Q \Big)</math>
    <math>\Leftrightarrow</math>     <math>\downarrow</math>
 
<math>P \land Q</math>     <math>\Leftrightarrow</math>     <math>(P \downarrow P)</math> <math>\downarrow</math> <math>(Q \downarrow Q)</math>
    <math>\Leftrightarrow</math>     <math>\downarrow</math>
   
<math>P \lor Q</math>     <math>\Leftrightarrow</math>     <math>(P \downarrow Q)</math> <math>\downarrow</math> <math>(P \downarrow Q)</math>
    <math>\Leftrightarrow</math>     <math>\downarrow</math>

See also

References

Template:Reflist

Template:Logical connectives