How to Run the Verification Examples using the DMC System

SICStus Prolog must be installed.

1. Download the DMC system;

2. Download the dmc_patch.pl file (needed to run the liveness examples)

and place it in the "dmc" directory;

3. Run sicstus (from the "dmc" directory);

4. Load the DMC system by typing:

| ?- [demo].

5. Load the dmc_patch.pl file by typing:

| ?- [dmc_patch].

6. Load an example by typing:

| ?- ld(<filename>).

The verification examples should be stored in the "examples" directory

7. Run the DMC system by typing one of the following commands:

| ?- vn. %for safety properties (without abstraction)

| ?- va. %for safety properties (with abstraction)

| ?- ln. %for liveness properties (without abstraction)

| ?- lw. %for liveness properties (with abstraction)

| ?- ti. %to check whether a property holds (after completion of vn, va, ln, or lw)

| ?- ptime_ms(<command>). %to compute the running time of <command>.


More details on the DMC system can be found on the DMC page.


%------------- Example ------------------


[maurizio@proietti ~]$ cd dmc

[maurizio@proietti dmc]$ sicstus

SICStus 3.12.8 (x86-linux-glibc2.3): Tue May 8 13:30:29 CEST 2007


| ?- [demo].

% consulting /home/maurizio/DMC/dmc/demo.pl...

| ?- ld(bakery2_safety_DMC).

% consulting /home/maurizio/DMC/dmc/tmp/input_clp...

% consulted /home/maurizio/DMC/dmc/tmp/input_clp in module user, 0 msec 1776 bytes

yes

| ?- vn.

yes


| ?- ti.


Property satisfied

yes


| ?- ptime_ms(vn).


Execution time 20ms

yes

| ?- va.

yes

| ?- ptime_ms(va).


Execution time 50ms

yes

| ?- ti.


Property satisfied

yes

| ?-