Skip to content

adalrsjr1/dsl-ltl-patterns

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DSL for LTL properties

This project aims to facilitate writing LTL properties by abstracting the classical LTL notation.

The DSL created is based on spec patterns project (or web archive.

You can find the usage examples in tests folder.

Example

void testBoundedContext() {
  assert new PropertyParser().create {
                              boundedExistence "P"
                              occurs 2
                              justAfter "Q"
  }.toString() == "<>Q -> (!Q U (Q & (!P W (P W (!P W (P W []!P))))))"
}

Labeled Transition System (LTS)

This project also includes a framework to transform the DSLs into an automaton to execute check trances.

The implementation is based on Spot and requires its installation as the dependency of the project.

Internally, the framework compiles the DSL into LTL and then transform it to HOAF format. The Spot parses this data structure and creates an automaton. The automata move according to the inputs. More details about the automata creation here

The factory can be updated to create Büchi automata to check messages on the fly, as a monitor, or logged.

You can change this mode by updating the factory to use the statement ltl2tgba --monitor.

About

A DSL to write Temporal Logic Formulae easily

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published