pascalpoizat / veca-haskell

:microscope: verification of component architectures (core)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

validation of component architectures (veca-haskell)

Build Status Code Coverage License Version
Waffle.io - Columns and their card count

Unstable API -- For the time being, it also includes elements relative to the refactoring and generalization of the FMT project from Java to Haskell.

This is the core engine of the VECA project.

  • for an overview of the VECA project features and objectives, see VECA project.

  • for the VECA DSL and its integration within the Eclipse IDE, see veca-ide.

1. Requirements

You will need a working Haskell environment, which can be obtained using Stack.
See here on how to install Stack (more detailed instructions if needed here).

Stack will setup an Haskell environment, including the GHC compiler, if it finds out you need to. But if you want you can also use Stack to install GHC globally (outside the scope of a project) using stack setup.

2. Binaries

For the time being, you have to build the veca-haskell executable from sources (see below).

3. Building veca-haskell-exe

Once you have cloned the repository, go into the directory and run:

stack build
stack install

This should compile veca-haskell-exe and put it in a default directory depending on your OS. You can use stack path --local-bin to find out which directory it is. Do not forget to put this directory in your command path.

4. Using veca-haskell-exe

To get a (basic) help run:

veca-haskell-exe -h

4.1 VECA JSON format

The VECA JSON format is not really intended for direct edition, rather use the VECA DSL plugin (see veca-ide) to generate it.

4.2 From VECA DSL to VECA JSON format

The VECA DSL plugin (see veca-ide) can be used to edit models in the VECA DSL and generate VECA JSON from them.

4.3 VECA to UPPAAL transformation

To transform a VECA model in JSON format into timed automata in XTA format for formal verification, run:

veca-haskell-exe transform /tmp/myModel

provided your model is /tmp/myModel.json, and you will get the timed automata in /tmp/myModel.xta. Please note that there is no .json suffix in the command above.

4.4 Formal verification

Formal verification can be achieved using the ITS-Tools or UPPAAL verification tools.

About

:microscope: verification of component architectures (core)

License:Apache License 2.0


Languages

Language:Haskell 100.0%