  In Deepak Dhar's model of abelian distributed processors, automata occupy the
vertices of a graph and communicate via the edges. We show that two simple
axioms ensure that the final output does not depend on the order in which the
automata process their inputs. A collection of automata obeying these axioms is
called an "abelian network". We prove a least action principle for abelian
networks. As an application, we show how abelian networks can solve certain
linear and nonlinear integer programs asynchronously.
  In most previously studied abelian networks, the input alphabet of each
automaton consists of a single letter; in contrast, we propose two non-unary
examples of abelian networks: "oil and water" and "abelian mobile agents".
