Application of A-Prolog to Digital Circuits

The A-Circuit  system was built to gain experience in using A-Prolog for development of  knowledge intensive systems.

The system allows the user to describe a combinational digital circuit with delays and to perform the following tasks:

The system is provenly correct, easily expandable and modifiable.
It is based on the SMODELS program which computes stable models of logic programs.

A quick tutorial for the system can be found in A-Circuit Tutorial

Details of the system can be found in Related Publications.


To use the system, first download the distribution file of the  A-Circuit system by clicking on ACircuit.tar.gz.

The next step is to uncompress this file and complete the installation by executing:
                % gunzip ACircuit.tar.gz
                % tar -xf ACircuit.tar
                % cd ACircuit
                % ./configure
                % make install [as root !]

NOTE: ACircuit is a Java application and JDK 1.1.8 or later is required in order to run it.

UPDATE (08/02/02): you can now use our ACircuit automated installer. Just download acircuit_install.jar and put it in a directory of your choice. After the installation process is over, you can safely remove the installer.

Run the installer by typing:

java -jar acircuit_install.jar

If another version of ACircuit is already installed in the directory where you plan to install the new version, please be sure to remove the following files before you start the installation process:
share/ACircuit      (THE WHOLE DIRECTORY)

Before using A-Circuit make sure that Lparse and Smodels programs are installed in your system.
If you need to install these programs:

  1. download Lparse and issue the following commands:
    % gunzip lparse-<version>.tar.gz
    % tar -xf lparse-<version>.tar

    where <version> is the version of LParse that you downloaded.
    In order to configure, compile and install LParse, follow the instructions in its manual.

  1. download Smodels and type in:
    % gunzip smodels-<version>.tar.gz
    % tar -xf smodels-<version>.tar

    where <version> is the version of Smodels that you downloaded.
    In order to compile and install Smodels, follow the instructions in its manual.

Running A-Circuit

A-Circuit can be run by executing:

% /usr/local/bin/ACircuit [in case the default installation path was used]
For a complete example on how to use the system, refer to A-Circuit Tutorial.
Please send us your questions and comments.

Related Links


Related Publications

M. Balduccini, M. Gelfond and M. Nogueira. A-Prolog as a tool for declarative programming. Submitted for publication. (.ps, .ps.gz)

M. Balduccini, M. Gelfond and M. Nogueira. Reasoning About Digital Circuits in A-Prolog. Technical Report. The University of Texas at El Paso and Texas Tech. University, 2000.

To learn more about answer set semantics and answer set programming see:

M. Gelfond and V. Lifschitz, The Stable Model Semantics for Logic Programs, in: Proceedings of the 5th International Conference on Logic Programming, pp. 1070-1080, 1988.

M. Gelfond and V. Lifschitz, Classical Negation in Logic Programs and Disjunctive Databases, in: New Generation Computing, 9(3/4):365-386, 1991.

V. Marek and M. Truszczynski, Stable models and an alternative logic programming paradigm, in: The Logic Programming Paradigm: a 25-Year Perspective, 1999.

I. Niemela, Logic Programs with Stable Model Semantics as a Constraint Programming Paradigm, in: Proceedings of the Workshop on Computational Aspects of Nonmonotonic Reasoning, pp. 72-79, 1998.


We thank the developers of Smodels (Illka Niemela, Patrick Simons and their research group at the Helsinki University of Technology) for allowing us to use their programs.

Web master: Marcello Balduccini
Last modified: 04/01/00