Algebraic Conditions for Generating Accurate
Adjacency Arrays
Karia Dibert1,2 , Hayden Jansen1,2 , Jeremy Kepner1,2,3
1

MIT Lincoln Laboratory, Lexington, MA
MIT Mathematics Department, Cambridge, MA
3
MIT Computer Science & AI Laboratory, Cambridge, MA

arXiv:1510.05179v1 [cs.DB] 17 Oct 2015

2

Abstract—Data processing systems impose multiple views on
data as it is processed by the system. These views include spreadsheets, databases, matrices, and graphs. Associative arrays unify
and simplify these different approaches into a common twodimensional view of data. Graph construction, a fundamental
operation in the data processing pipeline, is typically done by
multiplying the incidence array representations of a graph,
Ein and Eout , to produce an adjacency matrix of the graph
that can be processed with a variety of machine learning
clustering techniques. This work focuses on establishing the
mathematical criteria to ensure that the matrix product E|out Ein
is the adjacency array of the graph. It will then be shown
that these criteria are also necessary and sufficient for the
remaining nonzero product of incidence arrays, E|in Eout to
be the adjacency matrices of the reversed graph. Algebraic
structures that comply with the criteria will be identified and
discussed.

I. I NTRODUCTION
As data moves through a processing system, it is viewed
from different perspectives by different parts of the system.
Data often are first parsed into a tabular spreadsheet form,
then ingested into database tables, analyzed with matrix
mathematics, and presented as graphs of relationships. Often,
the majority of time spent in building a data processing
system is in the interfaces between the various steps. These
interfaces require a conversion from one mathematical perspective on the data to another [4]. Fortunately, spreadsheets,
databases, matrices, and graphs share a common mathematical structure: they all use two-dimensional data structures
in which each data element can be specified with a triple
denoted by a row, column, and value. This structure is encompassed by the associative array. By using the associative
array as a common mathematical abstraction across all steps,
the construction time of a data processing system can be
reduced [4].
Associative arrays derive much of their power from their
ability to represent data intuitively in easily understandable
tables. Two properties of associative arrays in particular
are different from other two-dimensional arrangements of
data. First, each row label (or row key) and each column
label (or column key) in an array is unique and sortable,
thus allowing rows and columns to be queried efficiently.
Secondly, because associative arrays contain no rows or
This work is sponsored by the Assistant Secretary of Defense for Research
and Engineering under Air Force Contract #FA8721-05-C-0002. Opinions,
interpretations, recommendations and conclusions are those of the authors
and are not necessarily endorsed by the United States Government.

parse!
set of
bits

ingest!
spread
sheet

query!
database!

analyze!
matrix

graph

Fig. 1. The standard steps in a data processing system often require different
perspectives on the data. Associative arrays enable a common mathematical
perspective to be used across all the steps.

columns that are entirely empty, insertion, selection, and
deletion of data can be performed by element-wise addition,
element-wise multiplication, and array multiplication.
A. Definitions
Definition I.1. Associative Array. In [5], a 2-dimensional
associative array is defined as a map A : K1 ×K2 → V
from two finite, strict, totally ordered keysets to a value set
with a commutative semi-ring structure.
This paper will not assume a full commutative semi-ring
structure for the value set. It will be required only that the
value set V be closed under two binary operations and that
V contains the identity elements of these operations, denoted
0 and 1 respectively.
Associative arrays can represent graphs through both incidence arrays and adjacency arrays. The incidence arrays
Eout and Ein of a graph map directed edges to vertices in
the graph.
Definition I.2. Incidence Arrays. Suppose G is a (possibly
directed) weighted graph with edge set K and vertex set
Kout ∪ Kin where Kout is the set of vertices with positive
out degree and Kin is the set of vertices with positive in
degree.
Then we say that the associative arrays Eout : K×Kout →
V and Ein : K×Kin → V are the source incidence array
and target incidence array of G respectively if the following
are true for all k ∈ K and a ∈ Kout ∪ Kin :
1. Eout (k, a) 6= 0 if and only if edge k is directed outward
from vertex a
2. Ein (k, a) 6= 0 if and only if edge k is directed into
vertex a.
Unless otherwise specified, Eout and Ein denote fixed
source and target incidence arrays of a weighted, directed
graph G.

Definition I.3. Adjacency Array. Given a graph G with
vertex set K1 ∪ K2 , we say that an associative array A :
K1 ×K2 → V is an adjacency array of the graph G if, for
a, b ∈ K1 ∪ K2 , A(a, b) 6= 0 if and only if a is adjacent to b.
In a directed graph, this means that A(a, b) 6= 0 if and only
if there is an edge directed out of vertex a and into vertex b.

the identity elements of these operations, denoted 0 and 1
respectively?
M
Eout (k, x) ⊗ Ein (k, y) 6= 0 ⇐⇒

Incidence arrays are often readily obtained from raw data.
In many cases, an associative array representing a spreadsheet
or database table is already in the form of an incidence
array. In order to analyze a graph, it is often convenient to
represent the graph as an adjacency array. Constructing an
adjacency array from data stored in an incidence array via
array multiplication is one of the most common and important
steps in a data processing pipeline.
Multiplication of associative arrays is defined as in [5],
where for associative arrays A : K1 ×K2 → V , B :
K2 ×K3 → V , and C : K1 ×K3 L
→ V , the statement
C = A⊕.⊗B means that C(i, j) =
A(i, k) ⊗ B(k, j).

The conditions under which this statement is true will now
be established.

k∈K

The array product A⊕.⊗B will henceforth be denoted AB
for simplicity.
Given a graph G with vertex set Kin ∪ Kout and edge
set K, the construction of adjacency arrays for G relies on
the assumption that E|out Ein is an adjacency array of G.
This assumption is certainly true in the most common case
where the value set is composed of non-negative reals and the
operations ⊕ and ⊗ are arithmetic plus (+) and arithmetic
times (×) respectively. However, one hallmark of associative
arrays is their ability to contain as values non-traditional data.
For these value sets, ⊕ and ⊗ may be redefined to operate
on non-numerical values.
For example, [5] suggests the value set be the set of all
alphanumeric strings, with ⊕ = max() and ⊗ = min(). It
is not immediately apparent in this case whether E|out Ein
is an adjacency array of the graph whose set of vertices is
Kout ∪Kin . The focus of this paper is to determine the criteria
on the value set V and the operations ⊕ and ⊗ so that the
above assumption is always true.

k∈K

∃k ∈ K so that Eout (k, x) 6= 0 and Ein (k, y) 6= 0 (1)

II. C RITERIA
The criteria on the set V and the operations ⊕ and ⊗ such
that the above statement is true are:
1. V contains no non-trivial additive inverses:
@v, w ∈ V, v, w 6= 0 such that v⊕w =
0
2. V satisfies the zero product property:
∀a, b ∈ V, a, b 6= 0 ⇒ a ⊗ b 6= 0
3. Zero annihilates V
∀v ∈ V, v ⊗ 0 = 0 ⊗ v = 0
Theorem II.1. The above criteria are necessary, given (1).
Proof: Assume (1). This is equivalent to
M
Eout (k, x) ⊗ Ein (k, y) = 0 ⇐⇒
k∈K

@k ∈ K so that Eout (k, x) 6= 0 and Ein (k, y) 6= 0 (2)
which in turn is equivalent to
M
Eout (k, x) ⊗ Ein (k, y) = 0 ⇐⇒
k∈K

∀k ∈ K, Eout (k, x) = 0 or Ein (k, y) = 0 (3)
This expression may be split up into two conditional statements
M
Eout (k, x) ⊗ Ein (k, y) = 0 ⇒
k∈K

∀k ∈ K, Eout (k, x) = 0 or Ein (k, y) = 0 (4)

B. Problem Statement
Let G be a graph with source and target incidence arrays
Eout and Ein , respectively. An entry of E|out Ein , called
E|out Ein (x, y) for x ∈ Kout , and y ∈ Kin may be expressed
as
M
E|out Ein (x, y) =
Eout (k, x) ⊗ Ein (k, y)

and
∀k ∈ K, Eout (k, x) = 0 or Ein (k, y) = 0 ⇒
M
Eout (k, x) ⊗ Ein (k, y) = 0 (5)
k∈K

k∈K

For E|out Ein to be the adjacency array of G, the entry
E|out Ein (x, y) must be nonzero if and only if x is adjacent to
y, which is identical to saying that the entry must be nonzero
if and only if the following is true:
∃k ∈ K so that Eout (k, x) 6= 0 and Ein (k, y) 6= 0
Then, the problem ultimately becomes: Under what conditions is the following statement true for all graphs with edge
set K, vertex set Kout ∪ Kin , and weights in a set V that is
closed under two binary operations, ⊕ and ⊗, and contains

Lemma II.2. The first criterion, that V contain no nontrivial additive inverses, is necessary for (4).
Proof: Suppose there exist nonzero v, w ∈ V such that
v ⊕ w = 0, or that non-trivial additive inverses exist. Then
we may choose our graph G to have edge set {k1 , k2 } and
vertex set {a, b}, where both k1 , k2 start from a and end
at b. Then defining Eout (k1 , a) = v, Eout (k2 , a) = w, and
Ein (ki , b) = 1 give us proper source and target incidence
arrays for G. Moreover, we find
E|out Ein (b, a) = (v ⊗ 1) ⊕ (w ⊗ 1) = v ⊕ w = 0

which contradicts (4). Therefore, no such non-zero v and w
may be present in V , meaning it is necessary that V contain
no non-trivial additive inverses.
Lemma II.3. The second criterion, that V satisfies the zero
product property, is necessary for (4).
Proof: Suppose there exist nonzero v, w ∈ V such that
v ⊗ w = 0. Then we may choose our graph G to have edge
set {k} and vertex set {a}, with a single self-loop given by
k. Then defining Eout (k, a) = v and Ein (k, a) = w give us
source and target incidence arrays for G. Moreover, we find
E|out Ein (a, a) = Eout (k, a) ⊗ Ein (k, a) = v ⊗ w = 0
which contradicts (4). Therefore, no such v and w may be
present in V , so V satisfies the zero-product property.
Lemma II.4. The third criterion, that the additive identity
must annihilate V , is necessary for (5).
Proof: Suppose there exists non-zero v ∈ V such that
v ⊗ 0 6= 0 or 0 ⊗ v 6= 0. Suppose v ⊗ 0 6= 0. Then we
may choose our graph G to have edge set {k} and vertex
set {a, b}, with a single self-loop at a given by k. Then
defining Eout (k, a) = v = Ein (k, a) give us source and
target incidence arrays for G. Moreover, we find
E|out Ein (a, b) = Eout (k, a) ⊗ Ein (k, b) = v ⊗ 0 6= 0
which contradicts (5), and so we must have v ⊗ 0 = 0. By
considering E|out Ein (b, a), we can show that 0 ⊗ v = 0 as
well.
Theorem II.5. The above criteria are sufficient for (1).
Proof: Assume that zero is an annhilator, that there are
no non-trivial additive inverses in V , and that V satisfies the
zero-product property.
Nonexistence of non-trivial additive inverses and the zero
product property give
∃k ∈ K so that Eout (k, x) 6= 0 and Ein (k, y) 6= 0 ⇒
M
Eout (k, x) ⊗ Ein (k, y) 6= 0 (6)
k∈K

which is the contrapositive of (4). And, that zero is an
annihilator gives
∀k ∈ K, Eout (e, x) = 0 or Ein (e, y) = 0 ⇒
M
Eout (k, x) ⊗ Ein (k, y) = 0 (7)
k∈

which is (5). As (4) and (5) combine to form (1), it is
established that the conditions are sufficient for (1).
A. Corollary for Remaining Product
The remaining product of the incidence arrays that may
be nonzero is E|in Eout . The above requirements will now
be shown to be necessary and sufficient for the remaining
product to be the adjacency array of the reverse of the graph.

For the following corollaries, let G be a graph with incidence
matrices Eout and Ein .
Corollary II.6. The established requirements are necessary
and sufficient so that E|in Eout is the adjacency matrix of the
reverse of G.
Proof: Let R(G) denote the reverse of G, and let E out
and E in be source and target incidence arrays for R(G),
respectively. Recall that R(G) is defined to have the same
edge and vertex sets as G but changing the directions of the
edges, i.e. if an edge k leaves a vertex a in G, then it enters
a in R(G), and vice-a-versa. As such, Eout (k, a) 6= 0 if and
only if E in 6= 0, and likewise Ein (k, a) 6= 0 if and only if
E out 6= 0. As such, choosing Eout = E in and Ein = E out
give valid target and source incidence matrices for R(G),
respectively.
Then by II.5 we find that E |out E in = E|in Eout .
III. I MPLICATIONS AND F UTURE W ORK
It is now straightforward to identify algebraic structures
that comply with the established criteria. Notably, all semirings without additive inverses and which satisfy the zero
product property comply, such as N or R≥0 with the standard
addition and multiplication as well as any linearly-ordered
set with ⊕ and ⊗ given by max and min, respectively.
Some non-examples, however, include the max-plus algebra
or non-trivial Boolean algebras, which do not satisfy the
zero-product property, or rings, which except for the zero
ring have non-trivial additive inverses. Furthermore, the value
sets of associative arrays need not be defined exclusively
as semi-rings, as several semi-ring-like structures satisfy the
criteria. These structures may lack the properties of additive
or multiplicative commutativity, additive or multiplicative
associativity, or distributivity of multiplication over addition,
which are not necessary to ensure that the product of incidence arrays yields an adjacency array.
A. Note About Special Cases
The criteria guarantee an accurate adjacency array for any
dataset that satisfies them, regardless of value distribution
in the incidence arrays. However, if the incidence arrays
are known to possess a certain structure, it is possible to
circumvent some of the conditions and still always produce
adjacency arrays. For example, if each keyset of an undirected incidence array E is a list of documents and the
array entries are sets of words shared by documents, then
it is necessary that a word in E(i, j) and E(m, n) has to
be in E(i, n) and E(m, j). This structure means that when
multiplying E| E using ⊕ = ∪ and ⊗ = ∩, a nonempty
set will never be “multiplied” by (intersected with) a disjoint
nonempty set. This eliminates the need for the zero-product
property to be satisfied, as every multiplication of nonempty
sets is already guaranteed to produce a nonempty set. The
array produced will contain as entries a list of words shared
by those two documents.

B. Future Work
Though the criteria ensure that the product of incidence
arrays will be an adjacency array, they do not ensure that
certain matrix properties hold. For example, the property
(AB)| = B| A| may be violated under these criteria, as
(E|out Ein )| is not necessarily equal to E|in Eout . (For this
matrix transpose property to always hold, the operation ⊗
would have to be commutative.) Future work would involve
considering more matrix properties and assembling a stronger
set of conditions to ensure that these properties hold. This
would enable users to utilize such properties when performing analysis on data stored in associative arrays.
R EFERENCES
[1] M. Artin. Algebra, Prentice-Hall, 1991.
[2] D.S. Dummit and R.M. Foote. Abstract Algebra (3d ed.), Wiley, 2003.
[3] J.S. Golan. Semirings and their applications, Kluwer Academic Publishers, Dordrecht, 1999.
[4] J. Kepner, J. Chaidez, V. Gadepally, and H. Jansen. ”Associative Arrays: Unified Mathematics for Spreadsheets, Databases, Matrices, and
Graphs,” New England Database Summit, Jan 30, 2015, Cambridge,
MA
[5] J. Kepner and H. Jansen. Mathematics of Big Data: Spreadsheets,
Databases, Matrices, and Graphs, MIT Press, forthcoming, 2016.
[6] J. Kepner, ”Spreadsheets, Big Tables, and the Algebra of Associatve
Arrays,” MAA and AMS Joint Mathematics Meeting, Jan 4-7, 2012,
Boston, MA

