  We present ZERO, a modular and extensible C++ library interfacing
Mathematical Programming and Game Theory. ZERO provides a comprehensive toolkit
of modeling interfaces and algorithms for Reciprocally Bilinear Games (RBGs),
i.e., simultaneous non-cooperative games where each player solves a
mathematical program with a linear objective in the player's variable and
bilinear in its opponents' variables. This class of games generalizes the
classical problems of Operations Research to a multi-agent setting. ZERO
modular structure gives users all the elementary ingredients to design new
game-theoretic models and algorithms for RBGs, and find their Nash equilibria.
The library provides additional extended support for integer non-convexities,
linear bilevel problems, and linear equilibrium problems with equilibrium
constraints. We provide an overview of the software's key components and
showcase a Knapsack Game, i.e., a game where each player solves a binary
knapsack problem. Aiming to boost practical methodological contributions at the
interplay of Mathematical Programming and Game Theory, we release ZERO as
open-source software. Source code, documentation and examples are available at
www.getzero.one.
