Skip to content

dsl4sc

dsl4sc is a domain-specific language, based on LDLf, for defining and verifying state transition models for event processing.

Command-line tools

rulessat

usage: rulessat <model>.dsl

rulessat solves the satisfiability of the input DSL4SC model included in <model>.dsl and returns either valid, satisfiable, or unsatisfiable.

See this manual for the detail.

rulesmc

usage: rulesmc -m <model>.dsl <property>.dsl

Given a model and a property in DSL4SC, rulesmc checks whether model ⊨ property (entailment) holds or not.
In case you need to examine if property can hold, that is, model ∧ property is satisfiable (reachability), invoke rulesmc with the --reachability option.

See this manual for the detail.

rules2scxml

usage: rules2scxml <model>.dsl

rules2scxml translates the input DSL4SC model into an equivalent UML statechart representation in the SCXML format.

As a remark, rules2scxml performs translation through several intermediate stages, at each of which translation can be terminated. Refer to this for the detail.

safeguard

usage: safeguard --spec <model>.dsl <code>.js

safeguard generate pre/post conditions from <model>.dsl for event-handlers defined in <code>.js, and insert them into the code.

Models in DSL4SC

Each model definition should conform to the DSL4SC grammar.

DSL4SC grammar (alt: html pdf)

Note that LDLf-related parts, namely ldl_formula and ldl_path, of the grammar is defined separetely elsewhere.

As a remark, there exists another simplified version of the grammar, called the DSL4SC core grammar, which is used internally by the tools listed above.

DSL4SC core grammar (alt: html pdf)