jrclogic / SMCDEL

A symbolic model checker for Dynamic Epistemic Logic.
https://w4eg.de/malvin/illc/smcdelweb
GNU General Public License v2.0
41 stars 9 forks source link
epistemic-logic haskell logic model-checking symbolic

SMCDEL

Release Hackage GitLab CI Test Coverage DOI

A symbolic model checker for Dynamic Epistemic Logic.

Online

You can try SMCDEL online here: https://w4eg.de/malvin/illc/smcdelweb/

Basic usage

1) Use stack from https://www.stackage.org

2) Create a text file MuddyShort.smcdel.txt which describes the knowledge structure and the formulas you want to check for truth or validity:

```
-- Three Muddy Children in SMCDEL
VARS 1,2,3
LAW  Top
OBS  alice: 2,3
     bob:   1,3
     carol: 1,2
WHERE?
  [ ! (1|2|3) ] alice knows whether 1
VALID?
  [ ! (1|2|3) ]
  [ ! ((~ (alice knows whether 1)) & (~ (bob knows whether 2)) & (~ (carol knows whether 3))) ]
  [ ! ((~ (alice knows whether 1)) & (~ (bob knows whether 2)) & (~ (carol knows whether 3))) ]
  (alice,bob,carol) comknow that (1 & 2 & 3)
```

3) Run smcdel MuddyShort.smcdel.txt resulting in:

```
>> smcdel MuddyShort.smcdel.txt
SMCDEL 1.0 by Malvin Gattinger -- https://github.com/jrclogic/SMCDEL

At which states is ... true?
[]
[1]

Is ... valid on the given structure?
True
```

More example files are in the folder [Examples](https://github.com/jrclogic/SMCDEL/tree/master/Examples).

4) To also build and install the web interface, run stack install --flag smcdel:web Then you can run smcdel-web and open http://localhost:3000.

Advanced usage

The executables only provide model checking for S5 with public announcements. For K and to define more complex models and updates, SMCDEL should be used as a Haskell library. Please refer to the Haddock documentation for each module.

Examples can be found in the folders src/SMCDEL/Examples and bench.

Dependencies: To get all visualisation functions working, graphviz, dot2tex and some LaTeX packages should be installed. On Debian, please do sudo apt install graphviz dot2tex libtinfo5 texlive-latex-base poppler-utils preview-latex-style texlive-pstricks.

Used BDD packages

SMCDEL uses different BDD packages.

References

Main reference for the theory behind the implementation, also containing benchmarks:

Additional publications: