All Projects → jrclogic → SMCDEL

jrclogic / SMCDEL

Licence: GPL-2.0 license
A symbolic model checker for Dynamic Epistemic Logic.

Programming Languages

haskell
3896 projects
HTML
75241 projects
Yacc
648 projects
RPC
45 projects

Projects that are alternatives of or similar to SMCDEL

sym
A Mathematica package for generating symbolic models from data
Stars: ✭ 46 (+48.39%)
Mutual labels:  symbolic
illogical
A micro conditional javascript engine used to parse the raw logical and comparison expressions, evaluate the expression in the given data context, and provide access to a text form of the given expressions.
Stars: ✭ 16 (-48.39%)
Mutual labels:  logic
safe-control-gym
PyBullet CartPole and Quadrotor environments—with CasADi symbolic a priori dynamics—for learning-based control and RL
Stars: ✭ 272 (+777.42%)
Mutual labels:  symbolic
CSCv2
Version 2 of my Crazy Small CPU
Stars: ✭ 53 (+70.97%)
Mutual labels:  logic
awesome-philosophy
A curated list of awesome philosophy
Stars: ✭ 119 (+283.87%)
Mutual labels:  logic
ioBroker.linkeddevices
Create linked objects (datapoints) of your devices with a self-defined structure. This makes it possible to create a structure in ioBroker, where all objects are centralized, e.g. to be used in the vis or scripts.
Stars: ✭ 17 (-45.16%)
Mutual labels:  logic
Grakn
TypeDB: a strongly-typed database
Stars: ✭ 2,947 (+9406.45%)
Mutual labels:  logic
consistency
Implementation of models in our EMNLP 2019 paper: A Logic-Driven Framework for Consistency of Neural Models
Stars: ✭ 26 (-16.13%)
Mutual labels:  logic
tlaplus specs
Different TLA+ specifications, mostly for learning purposes
Stars: ✭ 25 (-19.35%)
Mutual labels:  model-checking
truth-table-generator
truth-table-generator is a tool that allows to generate a truth table
Stars: ✭ 47 (+51.61%)
Mutual labels:  logic
klever
Read-only mirror of the Klever Git repository
Stars: ✭ 18 (-41.94%)
Mutual labels:  model-checking
bloc
A predictable state management library that helps implement the BLoC design pattern
Stars: ✭ 12 (-61.29%)
Mutual labels:  logic
LPL-solutions
Solutions for the book "Language Proof and Logic".
Stars: ✭ 51 (+64.52%)
Mutual labels:  logic
theta
Generic, modular and configurable formal verification framework supporting various formalisms and algorithms
Stars: ✭ 34 (+9.68%)
Mutual labels:  model-checking
memalloy
Memory consistency modelling using Alloy
Stars: ✭ 23 (-25.81%)
Mutual labels:  model-checking
plutus-experimental-smart-contracts
Experimental Smart Contracts In Plutus.
Stars: ✭ 34 (+9.68%)
Mutual labels:  model-checking
awesome-rust-formalized-reasoning
An exhaustive list of all Rust resources regarding automated or semi-automated formalization efforts in any area, constructive mathematics, formal algorithms, and program verification.
Stars: ✭ 185 (+496.77%)
Mutual labels:  logic
switch
Switch is a small logic game that demonstrates usage of Pixar USD and Hydra on Windows.
Stars: ✭ 22 (-29.03%)
Mutual labels:  logic
Metatheory.jl
General purpose algebraic metaprogramming and symbolic computation library for the Julia programming language: E-Graphs & equality saturation, term rewriting and more.
Stars: ✭ 266 (+758.06%)
Mutual labels:  symbolic
Leo-III
An Automated Theorem Prover for Classical Higher-Order Logic with Henkin Semantics
Stars: ✭ 29 (-6.45%)
Mutual labels:  logic

SMCDEL

Release Hackage GitLab CI Test Coverage DOI

A symbolic model checker for Dynamic Epistemic Logic.

You can find a complete literate Haskell documentation in the file SMCDEL.pdf.

References

Johan van Benthem, Jan van Eijck, Malvin Gattinger, and Kaile Su: Symbolic Model Checking for Dynamic Epistemic Logic. In: Proceedings of The Fifth International Conference on Logic, Rationality and Interaction (LORI-V), 2015.

Johan van Benthem, Jan van Eijck, Malvin Gattinger, and Kaile Su: Symbolic Model Checking for Dynamic Epistemic Logic --- S5 and Beyond. Journal of Logic and Computation, 2017.

Malvin Gattinger: Towards Symbolic Factual Change in DEL. ESSLLI 2017 student session, 2017.

Malvin Gattinger: New Directions in Model Checking Dynamic Epistemic Logic. PhD thesis, ILLC, Amsterdam, 2018.

Online

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

Dependencies

On Debian, just do sudo apt install graphviz dot2tex.

Basic usage

  1. Use stack from https://www.stackage.org
  • stack build will compile everything. This might fail if one of the BDD packages written in C and C++ is missing. In this case, install those manually and then try stack build again.

  • stack install will put two executables smcdel and smcdel-web into ~/.local/bin which should be in your PATH variable.

  1. 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)
    
  2. 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.

  3. To use the web interface run smcdel-web and then open http://localhost:3000/index.html.

Advanced usage

To deal with more complex models and formulas, use SMCDEL as a Haskell module.

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

Used BDD packages

SMCDEL can be used with different BDD packages. To compile and run the benchmarks you will have to install all of them.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].