As
earthquake says above, all
boolean expressions can be implemented with the nand function alone. The following should help illustrate this concept. The nand function is indicated by the | character, often called the
Sheffer stroke.
Consider A|A
A A|A
----------
T F
F T
Thus, A|A is equivalent to ¬A.
Now to find the ∧ (and) function
A B A|B (A|B)|(A|B)
--------------------------------
F F T F
F T T F
T F T F
T T F T
So we have (A|B)|(A|B)
equivalent to A ∧ B (A and B)
From this point, we can achieve the
disjunction (
or) function as A∨B is equivalent to ¬(¬A∧¬B).
Therefore, A∨B can be represented in nand terms as
((A|A)|(B|B))|((A|A)|(B|B))|((A|A)|(B|B))|((A|A)|(B|B))
Simple!
Furthermore,
A→B (if A then B) is equivalent to
((A|(B|B))|(A|(B|B)))|((A|(B|B))|(A|(B|B)))
If you don't have a
headache yet,
A↔B (A
if and only if B) is equivalent to
(((A|B)|(A|B))|(((A|B)|(A|B))|((A|B)|(A|B)))))|(((A|B)|(A|B))|(((A|B)|(A|B))|((A|B)|(A|B)))))
|
((((A|B)|(A|B))|(((A|B)|(A|B))|((A|B)|(A|B))))|(((A|B)|(A|B))|(((A|B)|(A|B))|((A|B)|(A|B)))))
Sorry if i made a
mistake in that last one, but i
applaud you for picking it out.