= Solution
Each parenthesized pair in the given <Boolean function> tests equality of two input <bits>:
$$
(a\lor\neg c)\land(\neg a\lor c)=(a\land c)\lor(\neg a\land\neg c).
$$
This is <logical equivalence>, or the two-input <XNOR gate> function. Thus $z$ is one whenever either input pair agrees. Generate the four complemented inputs with four <inverters>, and define the following <NAND gate> outputs:
$$
\begin{aligned}
u_1&=\operatorname{NAND}(a,c),&u_2&=\operatorname{NAND}(\neg a,\neg c),\\
u_3&=\operatorname{NAND}(b,d),&u_4&=\operatorname{NAND}(\neg b,\neg d).
\end{aligned}
$$
Feed these four outputs into a single four-input <NAND gate>. <De Morgan's laws> give
$$
\boxed{z=\operatorname{NAND}(u_1,u_2,u_3,u_4)
=ac\lor\neg a\neg c\lor bd\lor\neg b\neg d.}
$$
Here juxtaposition denotes <logical conjunction>. The construction uses only <inverters>, two-input <NAND gates> and one four-input <NAND gate>, as required.
Back to article page