Integrating lists, multisets, and sets in a logic programming framework.


The first order theories of lists, bags, compact-lists (i.e., lists where the number of contiguous occurrences of each element is immaterial), and sets are introduced via axioms. Such axiomatizations are shown to be espe- cially suitable for the integration with free functor symbols governed by the classical Clark’s axioms in the context of Constraint Logic Programming. Adaptations of the extensionality principle to the various theories taken into account is then exploited in the design of unification algorithms for the con- sidered data structures. All the theories presented can be combined provid- ing frameworks to deal with several of the proposed data structures simoul- taneously. The unification algorithms proposed can be combined (merged) as well to produce engines for such combination theories.