  Answer set programming (ASP) is a logic programming paradigm that can be used
to solve complex combinatorial search problems. Aggregates are an ASP construct
that plays an important role in many applications. Defining a satisfactory
semantics of aggregates turned out to be a difficult problem, and in this paper
we propose a new approach, based on an analogy between aggregates and
propositional connectives. First, we extend the definition of an answer
set/stable model to cover arbitrary propositional theories; then we define
aggregates on top of them both as primitive constructs and as abbreviations for
formulas. Our definition of an aggregate combines expressiveness and
simplicity, and it inherits many theorems about programs with nested
expressions, such as theorems about strong equivalence and splitting.
