Before we begin we need a way to represent a graph as a bit string,
and graph properties as Boolean functions on that bit string if we
wish to apply Theorem
or any of its derivatives. When
representing graphs as bit strings it is helpful to restrict the types
of graphs we will consider.
A simple graph has no multiple edges or loops. The adjacency matrix
of a simple directed graph has
if and only if there
is a directed edge from vertex
to vertex
. Since
for all vertices
of a simple graph, we need only
bits to
represent such graphs with
vertices. For undirected graphs, the
adjacency matrix is symmetric across the diagonal. Thus we can
represent any undirected simple graph with a bit string of length
. A simple undirected graph is depicted in Figure
, its above-diagonal adjacency matrix representation can
be seen in Table
. Now that we can represent a graph
by its above diagonal adjacency matrix, graph properties are simply
Boolean functions on matrix representations.