Skip to content
/ popgen Public

A tool to create `Fast and Succinct Population Protocols for Presburger Arithmetic` based on the corresponding paper by Czerner et al.

Notifications You must be signed in to change notification settings

JoKurth/popgen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

popgen

A tool to create Fast and Succinct Population Protocols for Presburger Arithmetic based on the corresponding paper by Czerner et al.

Description

The tool takes a Presburger predicate as a String as its input and constructs a population protocol that computes exactly that predicate. The resulting predicate is printed to a given file in a format compatible to popsim such that it can be simulated by the same.

The underlying theoretical work by Czerner et al. can be found on arXiv and ScienceDirect.

System requirements

  • Haskell
  • cabal

Usage

The project is build using cabal. Thus, all cabal commands can be used. The most important ones are listed below:

  1. Building

    cabal build popgen [--ghc-options="-O2"]
    
  2. Execution (includes building)

    cabal run popgen [--ghc-options="-O2"]
    
  3. Installation (includes building)

    cabal install [--ghc-options="-O2"] [--installdir="path"] [--install-method=copy]
    
  4. Testing
    Be aware that running all provided tests requires a lot of time (>> 6h) and memory (>> 128 GB).

    cabal test test:tests --ghc-options="-main-is Tests.Tests" --test-show-details="always"
    

About

A tool to create `Fast and Succinct Population Protocols for Presburger Arithmetic` based on the corresponding paper by Czerner et al.

Resources

Stars

Watchers

Forks