simplify - Program Simplification of Non-Ground Programs


The toolbox simplify provides a first a prototype for program simplification of non-ground disjunctive datalog programs with negation under the stable model semantic. The toolbox scans programs with respect to two potential replacements, G-SUBS, G-LSH and indicates which rules are applicable to those simplifications. Hereby,

Both replacement techniques are described in [E+06]. For a description of the implementations see Chapter 5.1 of [Traxler06], or [ETW06].


Download simpl-1.0.tar.gz and unpack it. You might need to change the variable $DLV in the perl scripts and This variable contains the location of your DLV system. Otherwise, make sure that the PATH variable of your command shell contains the location of your DLV system.



At the moment our toolbox consists of two scripts which take as input a program P in DLV syntax. Both scripts are called by the simplify shell-script. As an example take the file intro.dl. After calling it with

simplify intro.dl

on the command line it first outputs rules which apply for subsumption and then rules which apply for shifting:

Scanning for Rule Subsumption...
b(X) v b(a) :- edge (X,Y), node(X), node(a), not r(X), not g(a), not g(X).
[subsumbed by r(Y) v b(Y) v g(Y) :- node(Y).]

Scanning for Local Shifting...
r(Y) v b(Y) v g(Y) :- node(Y).

For the exact definitions of G-SUBS and G-LSH please see [E+06] or [T06].


The benchmarks reported in [ETW06] are the following collections:



Last update: 2006-04-27 by Stefan Woltran