Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Sheffer stroke
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{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}} In [[Boolean function]]s and [[propositional calculus]], the '''Sheffer stroke''' denotes a [[logical operation]] that is equivalent to the [[logical negation|negation]] of the [[logical conjunction|conjunction]] operation, expressed in ordinary language as "not both". It is also called '''non-conjunction''', '''alternative denial''' (since it says in effect that at least one of its operands is false), or '''NAND''' ("not and").<ref name=":13">{{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=43}}</ref> In [[digital electronics]], it corresponds to the [[NAND gate]]. It is named after [[Henry Maurice Sheffer]] and written as <math>\mid</math> or as <math>\uparrow</math> or as <math>\overline{\wedge}</math> or as <math>Dpq</math> in [[Polish notation]] by [[Jan Łukasiewicz|Łukasiewicz]] (but not as ||, often used to represent [[logical disjunction|disjunction]]). 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 '''non-conjunction''' is a [[logical operation]] on two [[logical value]]s. It produces a value of true, if — and only if — at least one of the [[proposition]]s is false. ===Truth table=== The [[truth table]] of <math>A \uparrow B</math> is as follows. {{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 ---> |} ==See also== {{Div col|colwidth=30em}} * [[Boolean domain]] * [[CMOS]] * [[Gate equivalent]] (GE) * [[Logical graph]] * [[Minimal axioms for Boolean algebra]] * NAND [[flash memory]] * [[NAND logic]] * [[Peirce's law]] * [[Peirce arrow]] = NOR * [[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 connectives}} {{Common logical symbols}} [[Category:Logic gates|NAND gate]] [[Category:Logical connectives]] [[Category:Logic symbols]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:2-ary truth table
(
edit
)
Template:Citation
(
edit
)
Template:Citation needed
(
edit
)
Template:Cite book
(
edit
)
Template:Cite encyclopedia
(
edit
)
Template:Cite web
(
edit
)
Template:Common logical symbols
(
edit
)
Template:Div col
(
edit
)
Template:Div col end
(
edit
)
Template:Ill
(
edit
)
Template:Infobox logical connective
(
edit
)
Template:Logical connectives
(
edit
)
Template:Logical connectives sidebar
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Use dmy dates
(
edit
)
Template:Use list-defined references
(
edit
)
Template:Who
(
edit
)