about /  proxdd /  abagraph /  grapharg /  experiments


The code has been tested using SICStus Prolog (4.2+) and Yap Prolog (6.2+), on Linux. (Yap Prolog is freely available from here.) To use the optional visualization of solutions, you also need graphviz.


Download the source: proxdd.tar.gz. Unzip and untar it somewhere. Make sure the BASH proxdd script from 'scripts/' is somewhere in your PATH. Edit three variables at the top of the script to point to the right places.


If you've followed the directions for the script, above, you can do either:

where '' is the name of a Prolog source file for the ABA framework. Alternatively, you can go to the 'code/' directory, load prolog, and just do:

Basic Usage

Once proxdd is loaded, you can (re)load a source file (named '') using:

To find a derivation for the sentence 's', do:

The solution will be printed on screen, and 'X' bound to an internal representation of it. Printed on screen is the defence set (DEF), culprits (CUL), set of arguments (ARG), and the attack relation between arguments (ATT).


prints some usage information.


Current values of options are displayed by:

To print the derivation steps during a call to sxdd/2, use:

To hide the derivation steps (default), use:

To output the solutions, as found, to a '.dot' file for visualization with graphviz, use:

To set not to print, use:

To use AB-dispute derivations, do:

To use GB-dispute derivations, do:

To change strategies, use:

StratList has the form: [T,PA,OA,PS,OS,PR].

turn choice (T):

argument choice (proponent PA, and opponent OA):

sentence choice (proponent PS, and opponent OS):

proponent rule choice (PR):


The source file is included in the distribution. A query of 'sxdd(p, X)' writes the solution to screen:

DEF: [a]
CUL: [c]
ARG: [1:([a], [] -> p),6:([c], [] -> q),7:([a], [] -> u),8:([c], [d] -> q),9:([c], [e] -> q)]
ATT: [1-0,6-1,7-6,8-1,9-1]

When visualized using graphviz, this is:
dot solution
Proponent arguments shaded blue; finished Opponent arguments shaded grey; unfinished (non-empty unmarked support) Opponent arguments shaded white. Defence set green. Culprits yellow. Attacks in red.