The Causal Calculator

The Causal Calculator (CCalc) is a system for representing commonsense knowledge about action and change. It implements a fragment of the causal logic described in the paper "Nonmonotonic causal theories" by Enrico Giunchiglia, Joohyung Lee, Vladimir Lifschitz, Norman McCain and Hudson Turner (Artificial Intelligence, Vol. 153, 2004, pp. 49-104). The original version of CCalc was part of Norman McCain's dissertation, Causality in commonsense reasoning about actions (University of Texas, 1997). Now the system is being maintained by Texas Action Group at Austin.

The semantics of the language of CCalc is related to default logic and logic programming. Computationally, CCalc uses ideas of satisfiability planning. (A related system, Cplus2ASP from Arizona State University, processes CCalc input using answer set solvers instead of SAT solvers.)

A later project, MAD, adds the capability to split action descriptions into modules, and allows action/fluent constants to be redefined during the process of "importing" a module.

CCalc at UT Austin

On the machines of the Department of Computer Sciences of the University of Texas at Austin, CCalc is installed in the /projects/tag/ccalc/ directory.

To execute SWI Prolog, use the command:

% swipl

For Sicstus Prolog, use the command:

% /stage/public/linux/bin/sicstus

How to Download CCalc

To run CCalc, you need either SICStus Prolog (version 3.7.1 or later) or SWI Prolog (version 5.6.49 or later).

Download the file


and unpack it using the commands

% gunzip ccalc-2.0r2.tar.gz

% tar -xvf ccalc-2.0r2.tar

CCalc 2.0 will be installed in directory ccalc created under your current directory.

Satisfiability solvers compiled for Linux and SunOS are provided with CCalc. If you will run CCalc under a different operating system, you may need to obtain or recompile the SAT solvers for your system. Please see the file README, in the ccalc directory after you unzip it, for instructions on how to do this.

On-line Tutorial

Examples of Action Domains Described in the Language of CCalc

If you liked CCalc then you may be also interested in systems


Questions? Send an e-mail to