Solution (source code)

= Solution

Extract both <negations>, assume the <logical disjunction>, and use <disjunction elimination> to derive <logical falsity> in either case:
$$
\begin{array}{rll}
1&\neg P\land\neg Q&\text{premise}\\
2&\neg P&\land\text{-elim-L }1\\
3&\neg Q&\land\text{-elim-R }1\\
4&\vert\ P\lor Q&\text{assumption}\\
5&\vert\ \vert\ P&\text{first case assumption}\\
6&\vert\ \vert\ \bot&\neg\text{-elim }5,2\\
7&\vert\ \vert\ Q&\text{second case assumption}\\
8&\vert\ \vert\ \bot&\neg\text{-elim }7,3\\
9&\vert\ \bot&\lor\text{-elim }4,5\text{--}6,7\text{--}8\\
10&\neg(P\lor Q)&\neg\text{-intro }4\text{--}9
\end{array}
$$
The two case <subproofs> are siblings, not nested within one another. Therefore
$$
\boxed{\neg P\land\neg Q\ \vdash\ \neg(P\lor Q).}
$$