  In this paper, we propose a variant of Answer Set Programming (ASP) with
evaluable functions that extends their application to sets of objects,
something that allows a fully logical treatment of aggregates. Formally, we
start from the syntax of First Order Logic with equality and the semantics of
Quantified Equilibrium Logic with evaluable functions (QELF). Then, we proceed
to incorporate a new kind of logical term, intensional set (a construct
commonly used to denote the set of objects characterised by a given formula),
and to extend QELF semantics for this new type of expression. In our extended
approach, intensional sets can be arbitrarily used as predicate or function
arguments or even nested inside other intensional sets, just as regular
first-order logical terms. As a result, aggregates can be naturally formed by
the application of some evaluable function (count, sum, maximum, etc) to a set
of objects expressed as an intensional set. This approach has several
advantages. First, while other semantics for aggregates depend on some
syntactic transformation (either via a reduct or a formula translation), the
QELF interpretation treats them as regular evaluable functions, providing a
compositional semantics and avoiding any kind of syntactic restriction. Second,
aggregates can be explicitly defined now within the logical language by the
simple addition of formulas that fix their meaning in terms of multiple
applications of some (commutative and associative) binary operation. For
instance, we can use recursive rules to define sum in terms of integer
addition. Last, but not least, we prove that the semantics we obtain for
aggregates coincides with the one defined by Gelfond and Zhang for the Alog
language, when we restrict to that syntactic fragment. (Under consideration for
acceptance in TPLP)
