void 
Compile_CheckProgram(
  node_ptr  procs, 
  node_ptr  spec_expr, 
  node_ptr  ltlspec_expr, 
  node_ptr  invar_expr, 
  node_ptr  justice_expr, 
  node_ptr  compassion_expr 
)
The main routine performing all the check on the read model.
First it loops on the body of processes to verify that there are no multiple assignments and circular definitions.
Then performs circularity checks on the list of SPECS, LTL SPECS, INVARIANT SPECS, FAIRNESS constraints.
The last operation performed consists in detecting multiple assignments between different modules.


int 
Compile_CheckWff(
  node_ptr  wff, 
  node_ptr  context 
)
It analizes a formula on the basis of its arguments and operators and returns 0 if the formula is ok, 1 otherwise

See Also check_wff_recur

void 
Compile_End(
    
)
Shut down the compile package


void 
Compile_FlattenHierarchy(
  Encoding_ptr  senc, 
  node_ptr  root_name, the ATOM representing the module at
the top of the hierarchy.
  node_ptr  name, the name of the module at the top of the hierarchy.
  node_ptr * trans, the list of TRANS actually recognized
  node_ptr * init, the list of INIT actually recognized
  node_ptr * invar, the list of INVAR actually recognized
  node_ptr * spec, the list of SPEC actually recognized
  node_ptr * compute, the list of COMPUTE actually recognized
  node_ptr * ltl_spec, the list of LTLSPEC actually recognized
  node_ptr * invar_spec, the list of INVARSPEC actually recognized
  node_ptr * justice, the list of JUSTICE actually recognized
  node_ptr * compassion, the list of COMPASSION actually recognized
  node_ptr * procs, the list of processes actually recognized
  node_ptr  actual the actual module arguments
)
Traverses the module hierarchy and extracts the information needed to compile the automaton. The hierarchy of modules is flattened, the variables are contextualized, the various parts of the model read in are extracted (i.e. the formulae to be verified, the initial expressions, ...)...
Moreover all these informations are flattened.

Side Effects None

See Also compileFlattenHierarchy

node_ptr 
Compile_FlattenSexpExpandDefine(
  const Encoding_ptr  senc, 
  node_ptr  sexp, 
  node_ptr  context 
)
Flattens an expression and expands defined symbols.

See Also Flatten_GetDefinition

node_ptr 
Compile_FlattenSexp(
  const Encoding_ptr  senc, 
  node_ptr  sexp, 
  node_ptr  context 
)
Builds the flattened version of an expression. It does not expand defined symbols with the corresponding body.

See Also Flatten_GetDefinition

void 
Compile_FlattenTableau(
  Encoding_ptr  senc, 
  node_ptr  root_name, the ATOM representing the module at the top of the hierarchy.
  node_ptr  name, the name of the module at the top of the hierarchy.
  node_ptr * trans, the list of TRANS actually recognized
  node_ptr * init, the list of INIT actually recognized
  node_ptr * invar, the list of INVAR actually recognized
  node_ptr * spec, the list of SPEC actually recognized
  node_ptr * compute, the list of COMPUTE actually recognized
  node_ptr * ltl_spec, the list of LTLSPEC actually recognized
  node_ptr * invar_spec, the list of INVARSPEC actually recognized
  node_ptr * justice, the list of JUSTICE actually recognized
  node_ptr * compassion, the list of COMPASSION actually recognized
  node_ptr * procs, the list of processes actually recognized
  node_ptr  actual the actual module arguments
)
Traverses the module tableau and extracts the information needed to compile the automaton. The tableau of modules is flattened, the variables are contextualized, the various parts of the model read in are extracted (i.e. the formulae to be verified, the initial expressions, ...)...
Moreover all these informations are flattened.

Side Effects None

See Also Compile_FlattenHierarchy compileFlattenHierarchy

void 
Compile_InitializeBuildModel(
    
)
Checks correctness of the NuSMV progrma if not yet checked. Initializes the build model if not yet initialized.

Side Effects required

See Also optional

void 
Compile_Init(
    
)
Initializes the compile package.


int 
Compile_WriteFlattenBool(
  const Encoding_ptr  senc, 
  FILE* out, 
  SexpFsm_ptr  fsm, 
  cmp_struct_ptr  s 
)
[Prints on the specified file the flatten version of an SMV model.


int 
Compile_WriteFlatten(
  const Encoding_ptr  senc, 
  FILE* out, 
  cmp_struct_ptr  s 
)
[Prints on the specified file the flatten version of an SMV model.


NodeList_ptr 
Compile_get_expression_dependencies(
  const Encoding_ptr  senc, 
  Expr_ptr  expression 
)
Calls Formula_GetDependencies to get the set of variables which appear in the expression. This is then converted to the type NodeList_ptr and returned. It is the responsibility of the caller to destroy the NodeList object

Side Effects NodeList object created


boolean 
Compile_is_input_variable_formula(
  const Encoding_ptr  senc, 
  node_ptr  n 
)
Returns true if the given formula contains input variable, false otherwise.


void 
compile_create_flat_model(
    
)
Initializes the fsm builder if needed, and creates the master scalar fsm only if required


Expr_ptr 
compile_flatten_resolve_name_recur(
  Expr_ptr  n, 
  node_ptr  context 
)
Performs the recursive step of CompileFlatten_resolve_name.

See Also CompileFlatten_resolve_name

Last updated on 2004/08/06 15h:40