- Principles, p1
- Applications, p1
- Examples, p2
- Manual Pages, p3
- Contact, p3
Manual Pages
Description
The SMI library provides an interface to access finite models builded from Networks of Extended Automata. The models are represented symbolically using Decision Diagrams(DDs). The SMI implements functions to handle model state sets and model transitions. The SMI library use exactly one of the following DD implementation at time :
- BMDDs - Binary Multivalued Decision Diagrams (local)
- Cudds - Colorado University Decision Diagram
- TiGeR - TiGeR Binary Decision Diagrams
- Bdds - Binary Decision Diagrams (local)
We have been developped two applications using the SMI libraries : evaluator which evaluate mu-calculus formulae on the model and mmg which generate the minimal model w.r.t. some bisimulations. The SMI libraries and the applications are available for SunOS and HP-UX platforms.
Synopsis
- evaluator [smi-options] [eval-option] name[.exp] [name2]
- mmg [smi-options] [mmg-options] name[.exp]
The name denotes the use of the followings files to build the symbolic model representation :
- name.exp- :- model definition
- name.types - :- model types
- name.order- :- model variables order
The name2 denote an optionally mu-calculus formula file.
The smi-options available are :
- -stat print various statistics during computation (not a default option)
- -mem n allocate n MB of memory for DDs (default n = 8 )
- -vars v use at maximum v DD variables (default v = 48 )
- -sift enable the DD variables automatic reordering (not a default option)
- -sim use the simultaneous composition of automata (not a default option)
- -front frontier strategy for the computation of reachable states (not a default option)
- -noreach not compute the reachable states (not a default option)
The eval-options might be one of the following :
- -eval formula backward evaluation (default option)
- -path extract an execution path to a satisfying state (not a default option)
- -inv simple invariant checking (not a default option)
For the mmg-options see Aldebaran manual page.
Syntax for Extended Automata
The extended automata are described using the following context-free grammar :
Ext-Aut | : := | [Var-Decl-List] [Ctrl-Thread-List] |
Var-Decl-List | : := | Var-Decl-List Var-Decl |
Ctrl-Thread-List | : := | Ctrl-Thread-List Ctrl-Thread |
Variable declarations
Var-Decl | : := | Var-List ’ :’ Type-Name |
Var-List | : := | Var-List ’,’ Var-Name |Var-Name |
Control threads
Ctrl-Thread | : := | Thread-Descr [Thread-Trans-List] |
Thread-Descr | : := | ’des’ ’(’ Init-State ’,’ Trans-Number ’,’States-Number ’)’ |
Thread-Trans-List | : := | Thread-Trans-List Thread-Trans |
Thread transitions
Thread-Trans | : := | ’(’ Start-State ’,’ [Guard] [Action] [Assign] ’,’ Final-State ’)’ |
Guard | : := | ’[’ Bool-Expr ’]’ |
Action | : := | ’send’ Gate-Name [Out-Expr-List] |
’receive’ Gate-Name [In-Var-List] | ||
’i’ | ||
Out-Expr-List | : := | Out-Expr-List ’ !’ Expr |
In-Var-List | : := | In-Var-List ’ ?’ Var-Name |
Assign | : := | Var-Name ’ :=’ Expr |
Assign Assign | Assign ’ ;’ Assign | ’{’ Assign ’}’ |
Expressions
Expr | : := | Bool-Expr | Nat-Expr | Enum-Expr |
Bool-Expr | : := | Var-Name | ’ ’ Bool-Expr |
Bool-Expr Bool-Op Bool-Expr | Enum-Expr Rel-Op Enum-Expr | Nat-Expr Rel-Op Nat-Expr | ||
Nat-Expr | : := | Var-Name | Nat-Number | Nat-Expr Nat-Op Nat-Expr |
Enum-Expr | : := | Var-Name | Enum-Item-Name | Enum-Op Enum-Expr |
Operators
Bool-Op | : := | ’\/’ ’/\’ ’=>’ ’<=>’ |
Rel-Op | : := | ’=’ ’<=’ ’>=’ ’>’ ’<’ ’<>’ |
Nat-Op | : := | ’+’ ’-’ ’*’ ’/’ ’%’ |
Enum-Op | : := | ’succ’ ’pred’ |
Syntax for Data Types
Type-Defs | : := | [Nat-Def] [Enum-Def-List] |
Nat-Def | : := | ’nat’ ’{’ Nat-Range ’}’ |
Nat-Range | : := | Nat-Number |
Enum-Def-List | : := | Enum-Def-List Enum-Def |
Enum-Def | : := | ’enum’ Enum-Name ’{’ Enum-Item-List ’}’ |
Enum-Item-List | : := | Enum-Item-List ’,’ Enum-Item-Name| Enum-Item-Name ’,’ Enum-Item-Name |
Enum-Name | : := | Identifier |
Enum-Item-Name | : := | Identifier |
Syntax for Variable Ordering
The variables and thread control states order used to build the symbolic model can be specified using an external file, which must respect the following syntax :
Order | : := | [ Order-Item-List ] |
Order-Item-List | : := | Order-Item-List Order-Item |
Order-Item | : := | Aut-Name ’ :’ Var-Name | Aut-Name ’ :’ Thread-Id |
Aut-Name | : := | Identifier |
Var-Name | : := | Identifier |
Thread-Id | : := | Nat-Number |
Contact
For more information, contact Marius Dorel Bozga