source: vis_dev/vis-2.3/src/rob/Robust.h @ 19

Last change on this file since 19 was 19, checked in by cecile, 13 years ago

add rob

File size: 4.4 KB
Line 
1/**HFile***********************************************************************
2
3  FileName    [Robust.h]
4
5  PackageName [rob]
6
7  Synopsis    [Headers and strcutus for Robustness package.]
8
9  Author      [Souheib Baarir, Denis Poitrenaud,J.M Ilié ]
10
11  Copyright   [Copyright (c) 1994-1996 The Regents of the Univ. Paris VI].
12  All rights reserved.
13
14  Permission is hereby granted, without written agreement and without license
15  or royalty fees, to use, copy, modify, and distribute this software and its
16  documentation for any purpose, provided that the above copyright notice and
17  the following two paragraphs appear in all copies of this software.
18
19  IN NO EVENT SHALL THE UNIVERSITY OF PARIS VI BE LIABLE TO ANY PARTY FOR
20  DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
21  OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF
22  CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23
24  THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
25  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
26  FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS ON AN
27  "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO PROVIDE
28  MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.]
29
30******************************************************************************/
31
32
33
34#ifndef _ROB_H
35#define _ROB_H
36#include "../ntk/ntkInt.h"
37#include "../hrc/hrcInt.h"
38#include "../fsm/fsmInt.h"
39#include "../bmc/bmcInt.h"
40#include "../sat/sat.h"
41#include "../sat/satInt.h"
42
43typedef enum{ 
44  ecmd,
45  eofile,
46  earg,
47  enfile,
48  eicmd,
49  eiofile,
50  ercmd
51} type_err;
52
53// fonctions divers
54void     get_number_of_states     (Fsm_Fsm_t  *fsm, mdd_t* b, EpDouble* ep);
55array_t* determine_non_protected_registers(Fsm_Fsm_t  *fsm, FILE *f);
56mdd_t*   compute_error_states     (Fsm_Fsm_t  *fsm, mdd_t* reachable,
57                                   int verbosityLevel, int printStep,
58                                   FILE* protected);
59mdd_t*   error_states_us_ut(Fsm_Fsm_t  *fsm, mdd_t* reachable,
60                                   FILE* protected);
61void     compute_fair             (Fsm_Fsm_t  *fsm,int  verbosityLevel);
62Hrc_Node_t  * build_golden_faulty_compo(Hrc_Manager_t * hmgr,Hrc_Node_t  * rootNode,    Hrc_Model_t * newRootModel);
63
64
65int generateProtectFile(Hrc_Node_t * goldenNode, FILE *oFile,char *
66instanceName);
67
68// fonction d'évaluation de formules CTL
69mdd_t*   evaluate_EF              (Fsm_Fsm_t  *fsm, mdd_t *target,
70                                   mdd_t* fairS, int verbosityLevel);
71mdd_t*   evaluate_EG              (Fsm_Fsm_t  *fsm, mdd_t *invariant,
72                                   mdd_t* fairS,Fsm_Fairness_t * fairCond, 
73                                   int verbosityLevel);
74mdd_t*   evaluate_EU              (Fsm_Fsm_t  *fsm, mdd_t* inv, 
75                                   mdd_t *target,mdd_t* fairS, 
76                                   int verbosityLevel);
77mdd_t*   evaluate_AU              (Fsm_Fsm_t  *fsm, mdd_t* inv, 
78                                   mdd_t *target, mdd_t* fairS,
79                                   Fsm_Fairness_t * fairCond, 
80                                   int verbosityLevel);
81mdd_t*   evaluate                 (Fsm_Fsm_t  *fsm,FILE* ctlfile,
82                                   mdd_t* fairS,
83                                   Fsm_Fairness_t * fairCond, 
84                                   int verbosityLevel);
85mdd_t*  evaluate_Formula_AF_AF    (Fsm_Fsm_t  *fsm, mdd_t* Req,
86                                   mdd_t* forb,mdd_t* Safe,
87                                   int  verbosityLevel );
88mdd_t*  evaluate_Formula_AF_EF    (Fsm_Fsm_t  *fsm, mdd_t* Req,
89                                   mdd_t* forb,mdd_t* Safe,
90                                   int  verbosityLevel );
91mdd_t*  evaluate_Formula_EF_AF    (Fsm_Fsm_t  *fsm, mdd_t* Req,
92                                   mdd_t* forb,mdd_t* Safe,
93                                   int  verbosityLevel );
94mdd_t*  evaluate_Formula_EF_EF    (Fsm_Fsm_t  *fsm, mdd_t* Req,
95                                   mdd_t* forb,mdd_t* Safe,
96                                   int  verbosityLevel );
97void    callBmcRob                ( Ntk_Network_t   *network,
98                                    Ctlsp_Formula_t *ltlFormula,
99                                    array_t         *constraintArray,
100                                    BmcOption_t     *options);
101
102// fonctions d'acces
103mdd_t*   getForbidden              (Fsm_Fsm_t  *fsm);
104mdd_t*   getRequired               (Fsm_Fsm_t  *fsm);
105mdd_t*   getSafe                   (Fsm_Fsm_t  *fsm);
106mdd_t*   getInitial                (Fsm_Fsm_t  *fsm);
107mdd_t*   getReach                  (Fsm_Fsm_t  *fsm);
108mdd_t*   getReachOrg               (Fsm_Fsm_t  *fsm );
109
110// fonction d'affichage
111void     print_number_of_states   (char* msg, Fsm_Fsm_t  *fsm, mdd_t* b);
112void     print_variables_info     (Fsm_Fsm_t  *fsm);
113void     error_msg                (FILE* f, char* t, type_err e);
114void     conv_error_msg           (FILE* f, char* cmd, type_err e);
115void     mdd_FunctionPrintMain    (mdd_manager *mgr ,mdd_t *  top, 
116                                   char * macro_name, FILE * f);
117
118#endif /* _ROB_H */
Note: See TracBrowser for help on using the repository browser.