We refer the user to the new Github page (http://github.com/azreasoners/Cplus2ASP) for up-to-date installation instructions.

Cplus2ASP v3.1

Translating and solving CCalc action descriptions using answer set solvers

Info and Guides:

Examples and Features:


Cplus2ASP is a system designed to perform a modular translation of action descriptions written for CCalc into answer set programs. The current work comprises a suite of tools that translate CCalc action descriptions, solve the translated ASP programs, and produce answer sets similar to the models output by CCalc. If you're unfamiliar with CCalc, it's an implementation of the action language C+ (an extension of causal logic) that is very useful for describing and reasoning about time- and state-based domains using relatively intuitive syntax. For more information, check out the CCalc website using the link in the side bar. Our goal is to combine the user-friendliness of the CCalc language with the speed of modern answer set solvers to capture the best of both worlds.

The Cplus2ASP system consists of the following items:


The main orchestrator program of the tool chain acts as a unified interface that accepts all input and options, automatically handling the process of calling the programs below in the right order with the correct configurations. While it is possible to manually call each part of the tool chain separately, we highly recommend letting this system handle the details of organizing and executing the software tool chain.

Cplus2ASP is highly configurable, allowing the tools in the toolchain to be turned off or be substituted for other tools, although compatibility among customly selected toolchain components is not recommened. In addition, Cplus2ASP provides a number of pre-configured running modes, which are detailed below.

Incremental - The default running mode. Utilizes a translation to incremental ASP in order to allow an incremental ASP solver to effeciently iterate over all possible steps.
Reactive - This is under development.
Static (auto)- Uses the static translation used by previous version of Cplus2ASP. Automatically iterates and resolves for all requested steps until a valid plan is found.
Static (manual)- Similar to Static (auto) except that it allows the user to specify the steps to attempt to solve for.


This is the automated translator module for Cplus2ASP. It accepts normal CCalc files as input and translates them into F2LP input. Currently this part of the software tool chain is a prototype, and as such lacks support for some of the more advanced features of CCalc. See the release notes for known limitations of the program.


To allow greater flexibility for the translated programs, we use F2LP as the target language of translation. F2LP supports the use of first-order formulas in its rules, transforming them into equivalent ASP code. A guide to F2LP's syntax and usage can be found on the F2LP web page (the link in the side bar will take you there).

Cplus2ASP v3.1 requires F2LP version 1.4 or higher in order to use the default translation method. If a previous version of F2LP is available the program can still run in static compatibility mode (accessed with the --mode=static-auto argument).


The target language for F2LP is compatible with clingo3. Since the input syntax for clingo3 and clingo4 is not the same we have used this module to translate clingo3 code to clingo4 compatible code.


Cplus2ASP v3.1 has replaced Clingo/iClingo/oClingo system with Clingo 4 as the default ASP grounder/solver suite..

Clingo is an ASP grounder & solver suites produced as part of the Potsdam Answer Set Solving Collection (Potassco) intended to provide higly-optimized static, incremental, and online ASP reasoning and are used by default in the Cplus2ASP respective operating modes.


as2transition is a tool designed to take output of a translated CCalc action description from Clingo (& some other popular answer set solvers) and transform it into a human-readable format similar to the output of CCalc. Using this tool on translated answer sets is almost a must for any non-trivial action description, as anything larger than a simple example will produce answer sets that, while readable, will not be easy to quickly parse and analyze.

To supplement the aforementioned files and tools, the following items may help make translating and working with CCalc action descriptions easier:

Sample Domains

We've collected "benchmark" problems from CCalc for the purposes of testing and demonstration, and we've made them available as a helpful reference. The Examples link in the sidebar will take you to the page where we've archived all of the examples, including sample domains from the seminal CCalc paper "Nonmonotonic Causal Theories", medium-sized domains called the Zoo World and Traffic World, and a couple of other custom examples we've created or adapted into the language of CCalc. These sample files can be used directly, as they have been set up to be compatible with the translator (Cplus2ASP.bin) as well as the rest of the tool chain.

Contact Information

Cplus2ASP v3.1 is maintained by Samidh Talsania (stalsani <at> asu <dot> edu) Joohyung Lee (joolee <at> asu <dot> edu).

Cplus2ASP v2 is maintained by Joseph Babb (jbabb1 <at> asu <dot> edu) Joohyung Lee (joolee <at> asu <dot> edu).

Cplus2ASP v1 was created by Joohyung Lee and Michael Casolary (Michael <dot> Casolary <at> asu <dot> edu).

Feel free to contact us with any questions, comments, or feedback.

Copyright (C) 2010-2013 - Joseph Babb, Michael Cassolary, and Joohyung Lee.

{ jbabb1, Michael.Casolary, joolee } <at> asu <dot> edu.

This work was partially supported by the National Science Foundation under Grant IIS-0916116.