Skip to content
/ kofola Public
forked from barbora4/COLA

Complementation and Inclusion Checking of Omega Automata

License

Notifications You must be signed in to change notification settings

VeriFIT/kofola

 
 

Repository files navigation

Kofola: Modular Complementation and Inclusion Checking for Omega Automata

build workflow

Kofola is an open source tool for an efficient complementation and inclusion checking of automata over infinite words (omega automata). Kofola has been built on top of SPOT and inspired by Seminator and COLA.

Requirements and dependencies

For a successful build of Kofola, cmake of version 3.16 (or higher) together with a C++ compiler with a support of C++-17 standard is required. Additional requirements include:

For Debian-like systems, Spot can be installed using the package libspot-dev. For building Spot from sources, download the recent version and run:

./configure

One can set the maximal number of colors for an automaton when configuring Spot with --enable-max-accsets=INT.

make
sudo make install

Building Kofola

Please run the following steps to compile Kofola after cloning this repo:

mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make

Then you will get an executable in build/src/kofola. Alternatively you can run make release in the root directory.

Basic usage

Kofola assumes input omega automata in HOA format. The following command translates general (nondeterministic) omega-automaton stored in file A.hoa into a complementary omega automaton and prints it to the standard output:

./kofola A.hoa --complement

Note that Kofola produces automata with a general accepting condition (different output type might be specified by --tba for transition-based Büchi automata or --tgba for transition-based generalized Büchi automata).

The following command then checks if the language specified by the omega automaton A.hoa is included in the language specified by B.hoa and prints the result to the standard output:

./kofola A.hoa B.hoa --inclusion

Additional parameters might be passed using --params, e.g., --params=merge_iwa=True. In order to get a program help, run

./kofola --help

Publications

Packages

No packages published

Languages

  • C++ 99.0%
  • Other 1.0%