0

I have seen functional-completeness (in regards to boolean functions) defined as:

A set X of truth-functions (of 2-valued logic) is functionally complete if and only if for each of the five defined classes, there is a member of X which does not belong to that class

With those 5 classes being:

Truth-Preserving

False-Preserving

Linear

Monotone

Self-Dual

So since | is functionally-complete, this means it is not any one of the 5 type of functions listed above, right?

But I am not quite seeing how it is not self-dual, it seems like it IS self-dual. Could someone go over the self-dual functions and show the sheffer stroke is not self-dual?

Tian Vlasic
  • 1,436

1 Answers1

2

A Boolean operator $f(x_1, \dotsc, x_n)$ is self-dual iff $ f(\neg x_1, \dotsc, \neg x_n) = \neg f(x_1, \dotsc, x_n)$.

In the case of the Sheffer stroke (NAND), $(p|q) \equiv \neg (p \land q) \equiv (\neg p \lor \neg q)$, so $(\neg p | \neg q) \equiv (p\lor q)$, whereas $\neg (p|q) \equiv (p \land q)$. As $\lor$ and $\land$ are distinct Boolean functions, $|$ isn't self-dual.

BrianO
  • 16,855
  • Ah, ok, I see. Thank you – Boolean_functions Feb 10 '16 at 02:12
  • You're welcome. Tips appreciated ;) – BrianO Feb 10 '16 at 02:18
  • Sorry, your post made a lot of sense and so I almost forgot where my original confusion came from. ...So it doesn't matter that the function would appear to be self-dual if both operands were P? I was thinking of it and asking myself this: If we had (P|P) when P is true, then the function is false. Now if the negation of the function when P is false = false, than it would be self-dual. And it does. Checking the self-dual property needs to be done in terms of 2 distinct variables? – Boolean_functions Feb 10 '16 at 02:22
  • Self dual means: invert the value of the inputs => output value is inverted. Thus, $f(0,0) = \neg f(1,1)$. For $f=|$, $f(0,0) = 1, f(1,1) = 0$, so it non-self-duality is seen here too. – BrianO Feb 10 '16 at 02:44
  • But, yes that's correct: checking the self-dual property has to be done with distinct variables. – BrianO Feb 10 '16 at 02:54
  • Ok now I see. Thanks again – Boolean_functions Feb 10 '16 at 02:57
  • You're welcome. Feel free to accept any of the answers you've received as the correct one, or upvote one of them, or something... – BrianO Feb 10 '16 at 03:09
  • Um Sheffer stroke isn't NOR, it's NAND https://en.wikipedia.org/wiki/Sheffer_stroke; and you've given the wrong definition for it: should be (p|q) ≡ ¬(p ˄ q). The equivalence you've given is for NOR/Peirce's arrow, although that's an unusual way to put it. – AntC Apr 14 '19 at 04:04
  • Good catch. It's easy to forget just which of NAND, NOR the "Sheffer stroke" is; they're duals of each other, and are the only truth-functionally-complete binary Boolean functions. – BrianO Apr 18 '19 at 19:33