Module Promelaast


module Promelaast: sig .. end
The abstract tree of promela representation. Such tree is used by promela parser/lexer before its translation into Data_for_ltl module.


type condition =
| POr of condition * condition (*Logical OR*)
| PAnd of condition * condition (*Logical AND*)
| PNot of condition (*Logical NOT*)
| PCall of string (*Predicate modelling the call of an operation*)
| PReturn of string (*Predicate modelling the return of an operation*)
| PCallOrReturn of string (*Predicate modelling the call or the return of an operation*)
| PTrue (*Logical constant TRUE*)
| PFalse (*Logical constant FALSE*)
| PIndexedExp of string (*Variable introduced during ltl pre-process. It correponds to an expression lmanaged by the Data_for_ltl module.*)
Promela parsed abstract syntax trees

type state = {
   name : string; (*State name*)
   mutable acceptation : Bool3.bool3; (*True iff state is an acceptation state*)
   mutable init : Bool3.bool3; (*True iff state is an initial state*)
   mutable nums : int; (*Numerical ID of the state*)
}
Internal representation of a State from the Buchi automata.

type trans = {
   start : state; (*Starting state of the transition*)
   stop : state; (*Ending state of the transition*)
   cross : condition; (*Cross condition of the transition*)
   mutable numt : int; (*Numerical ID of the transition*)
}
Internal representation of a transition from the Buchi automata.
type buchautomata = state list * trans list 
Internal representation of a Buchi automata : a list of states and a list of transitions.

type funcStatus =
| Call
| Return
An operation can have two status: currently calling or returning.