\tikzstyle{branch}=[fill,shape=circle,minimum size=3pt,inner sep=0pt] \begin{tikzpicture}[label distance=2mm] \node (a) at (0,0) {$a$}; \node (b) at (0,-1) {$b$}; \node (c) at (0,-2) {$c$}; \node (z) at (6,-1) {$z$}; \node (am) at (1,0) {}; \node (bm) at (1,-1) {}; \node[and gate US, draw, logic gate inputs=nn] at ($(2,-.5)$) (and1) {\tiny AND}; \node[or gate US, draw, logic gate inputs=nn] at ($(4,-1)$) (or1) {\tiny OR}; \node (and1m) at (3,-.5) {}; \node (c1m) at (3,-2) {}; \draw (a.east) -| (am.center) |- (and1.input 1); \draw (b.east) |- (bm.center) |- (and1.input 2); \draw (and1.output) |- (and1m.center) node[above] {$y$} |- (or1.input 1); \draw (c.east) |- (c1m.center) |- (or1.input 2); \draw (or1.output) -- (z); \end{tikzpicture} The inputs are denoted by $a$, $b$, and $c$ and the output is denoted by $z$. We assign temporary variable names to the inner wires; in this case we use $y$. Using these variables, we can create the propositional formula over the inputs and the output. % \begin{equation*} \begin{split} z & = y \lor c \\ & = (a \land b) \lor c \end{split} \end{equation*}