Content deleted Content added
m →Implementations: png --> svg |
mNo edit summary |
||
(395 intermediate revisions by more than 100 users not shown) | |||
Line 1:
{{short description|Logical operation}}
{{use dmy dates|date=May 2023|cs1-dates=y}}
{{use list-defined references|date=May 2023}}
{{Infobox logical connective
| title = Sheffer stroke
| other titles = NAND
| wikifunction = Z10243
| Venn diagram = Venn1110.svg
| definition = <math>\overline{x \cdot y}</math>
| truth table = <math>(0111)</math>
| logic gate = NAND_ANSI.svg
| DNF = <math>\overline{x} + \overline{y}</math>
| CNF = <math>\overline{x} + \overline{y}</math>
| Zhegalkin = <math>1 \oplus xy</math>
| 0-preserving = no
| 1-preserving = no
| monotone = no
| affine = no
| self-dual = no
}}
{{Logical connectives sidebar}}
Its [[duality (mathematics)|dual]] is the [[logical NOR|NOR operator]] (also known as the [[Peirce arrow]], [[Quine dagger]] or [[Webb operator]]). Like its dual, NAND can be used by itself, without any other logical operator, to constitute a logical [[formal system]] (making NAND [[functionally complete]]). This property makes the [[NAND gate]] crucial to modern [[digital electronics]], including its use in [[computer processor]] design.
==Definition==
The '''
===Truth table===
The [[truth table]] of
{{2-ary truth table|1|1|1|0|<math>A \uparrow B</math>}}
===Logical equivalences===
The Sheffer stroke of <math>P</math> and <math>Q</math> is the negation of their conjunction
{| style="text-align: center; border: 1px solid darkgray;"
|-
| <math>P \uparrow Q</math>
|   <math>\Leftrightarrow</math>  
| <math>\neg (P \land Q)</math>
|-
| [[File:Venn1110.svg|50px]]
|   <math>\Leftrightarrow</math>  
| <math>\neg</math> [[File:Venn0001.svg|50px]]
|}
By [[De Morgan's laws]], this is also equivalent to the disjunction of the negations of <math>P</math> and <math>Q</math>
{| style="text-align: center; border: 1px solid darkgray;"
|-
| <math>P \uparrow Q</math>
|   <math>\Leftrightarrow</math>  
| <math>\neg P</math>
| <math>\lor</math>
| <math>\neg Q</math>
|-
| [[File:Venn1110.svg|50px]]
|   <math>\Leftrightarrow</math>  
| [[File:Venn1010.svg|50px]]
| <math>\lor</math>
| [[File:Venn1100.svg|50px]]
|}
==Alternative notations and names==
[[Charles Sanders Peirce|Peirce]] was the first to show the functional completeness of non-conjunction (representing this as <math>\overline{\curlywedge}</math>) but didn't publish his result.<ref name="peirce1880">{{cite encyclopedia |last1=Peirce |first1=C. S. |title=A Boolian Algebra with One Constant |encyclopedia=Collected Papers of Charles Sanders Peirce, Volume IV The Simplest Mathematics |editor1-last=Hartshorne |editor1-first=C. |editor2-last=Weiss |editor2-first=P. |orig-date=1880 |date=1933 |pages=13–18 |___location=Massachusetts |publisher=Harvard University Press}}</ref><ref name="peirce1902">{{cite encyclopedia |last1=Peirce |first1=C. S. |title=The Simplest Mathematics |encyclopedia=Collected Papers of Charles Sanders Peirce, Volume IV The Simplest Mathematics |editor1-last=Hartshorne |editor1-first=C. |editor2-last=Weiss |editor2-first=P. |orig-date=1902 |date=1933 |pages=189–262 |___location=Massachusetts |publisher=Harvard University Press}}</ref> Peirce's editor added <math>\overline{\curlywedge}</math>) for non-disjunction.<ref name="peirce1902"/>
In 1911, {{ill|Stamm|pl|Edward Bronisław Stamm}} was the first to publish a proof of the completeness of non-conjunction, representing this with <math>\sim</math> (the '''Stamm hook''')<ref name="zach2023">{{cite web |last1=Zach |first1=R. |title=Sheffer stroke before Sheffer: Edward Stamm |url=https://richardzach.org/2023/02/sheffer-stroke-before-sheffer-edward-stamm/ |date=18 February 2023|access-date=2 July 2023}}</ref> and non-disjunction in print at the first time and showed their functional completeness.<ref name="Stamm_1911"/>
In 1913, [[Henry Maurice Sheffer|Sheffer]] described non-disjunction using <math>\mid</math> and showed its functional completeness. Sheffer also used <math>\wedge</math> for non-disjunction.<ref name="zach2023" /> Many people, beginning with [[Jean Nicod|Nicod]] in 1917, and followed by [[Alfred North Whitehead|Whitehead]], [[Bertrand Russell|Russell]] and many others{{Who|date=May 2025}}, mistakenly thought Sheffer had described non-conjunction using <math>\mid</math>, naming this symbol the Sheffer stroke.{{Citation needed|date=May 2025}}
In 1928, [[David Hilbert|Hilbert]] and [[Wilhelm Ackermann|Ackermann]] described non-conjunction with the operator <math>/</math>.<ref name="hilbert-ackermann1928">{{cite book |last1=Hilbert |first1=D. |last2=Ackermann |first2=W. |title=Grundzügen der theoretischen Logik |edition=1 |date=1928 |publisher=Verlag von Julius Springer |___location=Berlin |page=9 |language=German}}</ref><ref name="hilbert-ackermann1950">{{cite book |last1=Hilbert |first1=D. |last2=Ackermann |first2=W. |editor1-last=Luce |editor1-first=R. E. |translator1-last=Hammond |translator1-first=L. M. |translator2-last=Leckie |translator2-first=G. G. |translator3-last=Steinhardt |translator3-first=F. |title=Principles of Mathematical Logic |date=1950 |publisher=Chelsea Publishing Company |___location=New York |page=11}}</ref>
In 1929, [[Jan Łukasiewicz|Łukasiewicz]] used <math>D</math> in <math>Dpq</math> for non-conjunction in his [[Polish notation]].<ref name="lukasiewicz1929">{{cite book |last1=Łukasiewicz |first1=J. |title=Elementy logiki matematycznej |orig-date=1929|date=1958 |___location=Warszawa |publisher=Państwowe Wydawnictwo Naukowe |edition=2 |language=Polish}}</ref>
An alternative notation for non-conjunction is <math>\uparrow</math>. It is not clear who first introduced this notation, although the corresponding <math>\downarrow</math> for non-disjunction was used by Quine in 1940.<ref name="quine1940">{{cite book |last1=Quine |first1=W. V |title=Mathematical Logic |date=1981 |orig-date=1940 |publisher=Harvard University Press |___location=Cambridge, London, New York, New Rochelle, Melbourne and Sydney |edition=Revised |page=45}}</ref>
==History==
The stroke is named after [[Henry Maurice Sheffer]], who in 1913 published a paper in the ''[[Transactions of the American Mathematical Society]]''<ref name="Sheffer_1913"/> providing an axiomatization of [[Boolean algebra (structure)|Boolean algebra]]s using the stroke, and proved its equivalence to a standard formulation thereof by [[Edward Vermilye Huntington|Huntington]] employing the familiar operators of [[propositional logic]] ([[logical conjunction|AND]], [[logical disjunction|OR]], [[negation|NOT]]). Because of self-[[duality (order theory)|duality]] of Boolean algebras, Sheffer's axioms are equally valid for either of the NAND or NOR operations in place of the stroke. Sheffer interpreted the stroke as a sign for nondisjunction ([[logical NOR|NOR]]) in his paper, mentioning non-conjunction only in a footnote and without a special sign for it. It was [[Jean Nicod]] who first used the stroke as a sign for non-conjunction (NAND) in a paper of 1917 and which has since become current practice.<ref name="Nicod_1917"/><ref name="Church_1956"/> Russell and Whitehead used the Sheffer stroke in the 1927 second edition of ''[[Principia Mathematica]]'' and suggested it as a replacement for the "OR" and "NOT" operations of the first edition.
[[Charles Sanders Peirce]] (1880) had discovered the [[functional completeness]] of NAND or NOR more than 30 years earlier, using the term ''[[ampheck]]'' (for 'cutting both ways'), but he never published his finding. Two years before Sheffer, {{ill|Edward Stamm|pl|Edward Bronisław Stamm}} also described the NAND and NOR operators and showed that the other Boolean operations could be expressed by it.<ref name="Stamm_1911"/>
==Properties==
NAND is commutative but not associative, which means that <math>P \uparrow Q \leftrightarrow Q \uparrow P</math> but <math>(P \uparrow Q) \uparrow R \not\leftrightarrow P \uparrow (Q \uparrow R)</math>.<ref>{{Cite book |last=Rao |first=G. Shanker |url=https://books.google.com/books?id=M-5m_EdvxuIC |title=Mathematical Foundations of Computer Science |date=2006 |publisher=I. K. International Pvt Ltd |isbn=978-81-88237-49-4 |pages=21 |language=en}}</ref>
===Functional completeness===
The Sheffer stroke, taken by itself, is a [[Functional completeness|functionally complete]] set of connectives.<ref name=":18">{{Cite web |last=Weisstein |first=Eric W. |title=Propositional Calculus |url=https://mathworld.wolfram.com/ |access-date=2024-03-22 |website=mathworld.wolfram.com |language=en}}</ref><ref name=":2">{{Citation |last=Franks |first=Curtis |title=Propositional Logic |date=2023 |editor-last=Zalta |editor-first=Edward N. |url=https://plato.stanford.edu/archives/fall2023/entries/logic-propositional/ |access-date=2024-03-22 |edition=Fall 2023 |publisher=Metaphysics Research Lab, Stanford University |editor2-last=Nodelman |editor2-first=Uri |encyclopedia=The Stanford Encyclopedia of Philosophy}}</ref> This can be seen from the fact that NAND does not possess any of the following five properties, each of which is required to be absent from, and the absence of all of which is sufficient for, at least one member of a set of [[functionally complete]] operators: truth-preservation, falsity-preservation, [[affine transformation|linearity]], [[monotonic]]ity, [[self-duality]]. (An operator is truth-preserving if its value is truth whenever all of its arguments are truth-, or falsity-preserving if its value is falsity whenever all of its arguments are falsity.)<ref>{{cite book | url=https://dokumen.pub/qdownload/the-two-valued-iterative-systems-of-mathematical-logic-am-5-volume-5-9781400882366.html | isbn=9781400882366 | doi=10.1515/9781400882366 | author=Emil Leon Post | title=The Two-Valued Iterative Systems of Mathematical Logic | ___location=Princeton | publisher=Princeton University Press | series=Annals of Mathematics studies | volume=5 | date=1941 }}</ref>
It can also be proved by first showing, with a [[truth table]], that <math>\neg A</math> is truth-functionally equivalent to <math>A \uparrow A</math>.<ref name=":132">{{Cite book |last=Howson |first=Colin |title=Logic with trees: an introduction to symbolic logic |date=1997 |publisher=Routledge |isbn=978-0-415-13342-5 |___location=London; New York |pages=41–43}}</ref> Then, since <math>A \uparrow B</math> is truth-functionally equivalent to <math>\neg (A \land 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 Sheffer stroke 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" />
==Other Boolean operations in terms of the Sheffer stroke==
Expressed in terms of NAND <math>\uparrow</math>, the usual operators of propositional logic are:
{|
|-
|<!--- not --->
{| style="text-align: center; border: 1px solid darkgray;"
|-
|<math>\neg P</math>
| <math>\Leftrightarrow</math>
|<math>P</math>
|<math>\uparrow</math>
|<math>P</math>
|-
|[[File:Venn10.svg|36px]]
| <math>\Leftrightarrow</math>
|[[File:Venn01.svg|36px]]
|<math>\uparrow</math>
|[[File:Venn01.svg|36px]]
|}<!--- end not--->
|
|<!--- arrow --->
{| style="text-align: center; border: 1px solid darkgray;"
|-
|<math>P \rightarrow Q</math>
| <math>\Leftrightarrow</math>
|<math>~P</math>
|<math>\uparrow</math>
|<math>(Q \uparrow Q)</math>
| <math>\Leftrightarrow</math>
|<math>~P</math>
|<math>\uparrow</math>
|<math>(P \uparrow Q)</math>
|-
|[[File:Venn1011.svg|50px]]
| <math>\Leftrightarrow</math>
|[[File:Venn0101.svg|50px]]
|<math>\uparrow</math>
|[[File:Venn1100.svg|50px]]
| <math>\Leftrightarrow</math>
|[[File:Venn0101.svg|50px]]
|<math>\uparrow</math>
|[[File:Venn1110.svg|50px]]
|}<!--- end arrow --->
|
|<!--- bi-arrow/equivalence --->
{| style="text-align: center; border: 1px solid darkgray;"
|-
|<math>P \leftrightarrow Q</math>
| <math>\Leftrightarrow</math>
|<math>(P \uparrow Q)</math>
|<math>\uparrow</math>
|<math>((P \uparrow P) \uparrow (Q \uparrow Q))</math>
|-
|[[File:Venn1001.svg|50px]]
| <math>\Leftrightarrow</math>
|[[File:Venn1110.svg|50px]]
|<math>\uparrow</math>
|[[File:Venn0111.svg|50px]]
|}<!--- end bi-arrow/equivalence --->
|-
|
|-
|<!--- and --->
{| style="text-align: center; border: 1px solid darkgray;"
|-
|<math>P \land Q</math>
| <math>\Leftrightarrow</math>
|<math>(P \uparrow Q)</math>
|<math>\uparrow</math>
|<math>(P \uparrow Q)</math>
|-
|[[File:Venn0001.svg|50px]]
| <math>\Leftrightarrow</math>
|[[File:Venn1110.svg|50px]]
|<math>\uparrow</math>
|[[File:Venn1110.svg|50px]]
|}<!--- end and --->
|
|<!--- or --->
{| style="text-align: center; border: 1px solid darkgray;"
|-
|<math>P \lor Q</math>
| <math>\Leftrightarrow</math>
|<math>(P \uparrow P)</math>
|<math>\uparrow</math>
|<math>(Q \uparrow Q)</math>
|-
|[[File:Venn0111.svg|50px]]
| <math>\Leftrightarrow</math>
|[[File:Venn1010.svg|50px]]
|<math>\uparrow</math>
|[[File:Venn1100.svg|50px]]
|}<!--- end or --->
|}
==
{{Div col|colwidth=30em}}
* [[Boolean ___domain]]
* [[CMOS]]
* [[
* [[Logical graph]]
* [[Minimal axioms for Boolean algebra]]
* NAND [[
* [[
* [[Peirce's law]]
* [[Peirce arrow
* [[Sole sufficient operator]]
{{div col end}}
==References==
{{reflist|refs=
<ref name="Stamm_1911">{{cite journal |author-first=Edward Bronisław |author-last=Stamm |author-link=:pl:Edward Bronisław Stamm |journal=[[Monatshefte für Mathematik und Physik]] |title=Beitrag zur Algebra der Logik |language=de |volume=22 |issue=1 |date=1911 |doi=10.1007/BF01742795 |pages=137–149|s2cid=119816758 }}</ref>
<ref name="Sheffer_1913">{{cite journal |author-first=Henry Maurice |author-last=Sheffer |author-link=Henry Maurice Sheffer |date=1913 |title=A set of five independent postulates for Boolean algebras, with application to logical constants |journal=[[Transactions of the American Mathematical Society]] |volume=14 |issue=4 |jstor=1988701 |doi=10.2307/1988701 |doi-access=free |pages=481–488}}</ref>
<ref name="Church_1956">{{cite book |author-last=Church |author-first=Alonzo |author-link=Alonzo Church |title=Introduction to mathematical logic |volume=1 |date=1956 |publisher=[[Princeton University Press]] |page=134}}</ref>
<ref name="Nicod_1917">{{cite journal |author-last=Nicod |author-first=Jean George Pierre |author-link=Jean George Pierre Nicod |date=1917 |title=A Reduction in the Number of Primitive Propositions of Logic |journal=[[Proceedings of the Cambridge Philosophical Society]] |volume=19 |pages=32–41}}</ref>
}}
==Further reading==
* {{cite book |author-first1=Józef Maria |author-last1=Bocheński |author-link1=Józef Maria Bocheński |date=1960 |title=Precis of Mathematical Logic |author-first2=Albert Heinrich |author-last2=Menne |author-link2=:de:Albert Heinrich Menne |edition=revised |translator-first=Otto |translator-last=Bird |publisher=[[D. Reidel]] |publication-place=Dordrecht, South Holland, Netherlands}} (NB. Edited and translated from the French and German editions: [[Précis de logique mathématique]])
* {{cite book |chapter=A Boolian<!-- sic! --> Algebra with One Constant |author-first=Charles Sanders |author-last=Peirce |author-link=Charles Sanders Peirce |orig-date=1880 |title=Collected Papers of Charles Sanders Peirce |title-link=Charles Sanders Peirce bibliography#CP |volume=4 |pages=12–20 |publication-place=Cambridge |publisher=[[Harvard University Press]] |editor-first1=Charles |editor-last1=Hartshorne |editor-link1=Charles Hartshorne |editor-first2=Paul |editor-last2=Weiss |editor-link2=Paul Weiss (philosopher) |date=1931–1935}}
==External links==
* [https://iep.utm.edu/sheffers/ Sheffer stroke] article in the ''[[Internet Encyclopedia of Philosophy]]''
* http://hyperphysics.phy-astr.gsu.edu/hbase/electronic/nand.html
* [http://www.sccs.swarthmore.edu/users/06/adem/engin/e77vlsi/lab3/ Implementations of 2- and 4-input NAND gates]
* [https://web.archive.org/web/20090526075041/http://projecteuclid.org/DPubS?verb=Display&version=1.0&service=UI&handle=euclid.pja/1195520940&page=record Proofs of some axioms by Stroke function by Yasuo Setô] @ [http://projecteuclid.org Project Euclid]
{{Logical
{{Common logical symbols}}
[[Category:Logic gates|NAND gate]]
[[Category:Logical connectives]]
[[Category:Logic symbols]]
|