\chapter{Auxiliary Libraries}
The Yosys source distribution contains some auxiliary libraries that are bundled
with Yosys.
\section{SHA1}
The files in {\tt libs/sha1/} provide a public domain SHA1 implementation written
by Steve Reid, Bruce Guenter, and Volker Grabsch. It is used for generating
unique names when specializing parameterized modules.
\section{BigInt}
The files in {\tt libs/bigint/} provide a library for performing arithmetic with
arbitrary length integers. It is written by Matt McCutchen \citeweblink{bigint}.
The BigInt library is used for evaluating constant expressions, e.g.~using the {\tt
ConstEval} class provided in {\tt kernel/consteval.h}.
\section{SubCircuit}
\label{sec:SubCircuit}
The files in {\tt libs/subcircuit} provide a library for solving the subcircuit
isomorphism problem. It is written by Clifford Wolf and based on the Ullmann
Subgraph Isomorphism Algorithm \cite{UllmannSubgraphIsomorphism}. It is used by
the {\tt extract} pass (see {\tt help extract} or Sec.~\ref{cmd:extract}).
\section{ezSAT}
The files in {\tt libs/ezsat} provide a library for simplifying generating CNF
formulas for SAT solvers. It also contains bindings of MiniSAT. The ezSAT
library is written by Clifford Wolf. It is used by the {\tt sat} pass (see
{\tt help sat} or Sec.~\ref{cmd:sat}).