Prop_Ptr
Prop_Alloc(
)
- Allocate a property. If no more room is
available then a call to numsv_exit is performed. All the
fields of the prop structure are initialized to either NULL or the
corresponding default type (e.g. Prop_NoType for property type).
void
Prop_BuildFsm(
Prop_Ptr prop,
node_ptr vars,
node_ptr fair_expr,
add_ptr assumption
)
- Fills all the FSM fields, with the exception of the RBC
fsm, of a property. If vars corresponds to all the system variables
then the whole system is computed, otherwise only the FSM
corresponding to the variables specified will be included in then
model (e.g. cone of influence).
void
Prop_BuildMasterProp(
node_ptr vars,
node_ptr fair_expr,
add_ptr assumption
)
- Fills all the FSM fields of the master property,
with the exception of the RBC fsm, of a property. If vars
corresponds to all the system variables then the whole system is
computed, otherwise only the FSM corresponding to the variables
specified will be included in then model (e.g. cone of influence).
int
Prop_CheckType(
Prop_Ptr property,
Prop_Type type
)
- Checks if a property in the database is of a given type.
If the type is correct, value 0 is returned, otherwise an error message
is emitted and value 1 is returned.
Prop_Ptr
Prop_CreatePropPartial(
int index,
node_ptr prop,
Prop_Type type
)
- Creates a property structure filling only the
property and property type fields
void
Prop_DbPrintAllStatusType(
FILE * file,
Prop_Type type,
Prop_Status status
)
- Prints on the given file stream all the property
stored in the DB of properties whose type and status match the
requested ones.
void
Prop_DbPrintAllStatus(
FILE * file,
Prop_Status status
)
- Prints on the given file stream all the property
stored in the DB of properties whose status match the requested one.
void
Prop_DbPrintAllType(
FILE * file,
Prop_Type type
)
- Prints on the given file stream all the property
stored in the DB of properties whose type match the requested one.
void
Prop_DbPrintAll(
FILE * file
)
- Prints on the given file stream all the property
stored in the DB of properties.
void
Prop_DbVerifyAllTypeCompute(
)
- The DB of properties is searched for a property
of type COMPUTE, and all the unchecked COMPUTE properties found will be
submitted to model checking.
void
Prop_DbVerifyAllTypeCtl(
)
- The DB of properties is searched for a property
of type CTL, and all the unchecked CTL properties found will be
submitted to model checking.
void
Prop_DbVerifyAllTypeInvar(
)
- The DB of properties is searched for a property
of type INVAR, and all the unchecked INVAR properties found will be
submitted to model checking.
void
Prop_DbVerifyAllTypeLtl(
)
- The DB of properties is searched for a property
of type LTL, and all the unchecked LTL properties found will be
submitted to model checking.
void
Prop_DbVerifyAllType(
Prop_Type type
)
- The DB of properties is searched for a property
of the given type. All the found properties are then verified
calling the appropriate model checking algorithm. Properties already
checked will be ignored.
int
Prop_Db_Add(
Prop_Ptr p
)
- Insert a property in the DB of properties. It
returns 1 if out of memory.
Prop_Ptr
Prop_Db_GetLast(
)
- Returns the last entered property in the DB of properties.
Prop_Ptr
Prop_Db_GetNum(
int num
)
- Returns the property whose unique identifier is
provided in input.last entered property in the DB of properties.
lsList
Prop_Db_GetPropsOfType(
const Prop_Type type
)
- Given a property type returns the list of properties
of that type currently located into the property database
int
Prop_Db_GetSize(
)
- Returns the size (i.e. the number of entries)
stored in the DB of properties.
void
Prop_Db_Init(
)
- Initializes the DB of properties to an empty DB
int
Prop_Db_PropCreateAndAdd(
node_ptr prop,
Prop_Type type
)
- Given a formula and its type, a property is
created and stored in the DB of properties. It returns either -1 in
case of failure, or the index of the inserted property.
int
Prop_Db_PropParseAndAdd(
const char* str,
const Prop_Type type
)
- Parses and creates a property of a given type from
a string. If the formula is correct, it is added to the
property database and its index is returned.
Otherwise, -1 is returned.
Valid types are Prop_Ctl, Prop_Ltl, Prop_Invar and Prop_Compute.
int
Prop_Db_PropParseFromArgAndAdd(
int argc,
char ** argv,
const Prop_Type type
)
- Parses and creates a property of a given type from
an arg structure. If the formula is correct, it is added to the
property database and its index is returned.
Otherwise, -1 is returned.
Valid types are Prop_Ctl, Prop_Ltl, Prop_Invar and Prop_Compute.
void
Prop_Db_Quit(
)
- Disposes the DB of properties
void
Prop_Db_VerifyAll(
)
- All the properties stored in the database not
yet verified will be verified. The properties are verified following
the order CTL/COMPUTE/LTL/INVAR.
void
Prop_Db_VerifyPropIndex(
int prop
)
- The DB of properties is searched for a property
whose unique identifier match the identifier provided and then if
such a property exists it will be verified calling the appropriate
model checking algorithm. If the property was checked before, then
the property is not checked again.
void
Prop_Db_VerifyProp(
Prop_Ptr prop
)
- Depending the property, different model checking
algorithms are called. The status of the property is updated
accordingly to the result of the verification process.
const char *
Prop_DecodeStatus(
Prop_Status t
)
- Returns the string corresponding to a property
status for printing it.
const char *
Prop_DecodeType(
Prop_Type t
)
- Returns the string corresponding to a property
type for printing it.
void
Prop_Destroy(
Prop_Ptr p
)
- Destroy the elements of a property
void
Prop_End(
)
- Quit the prop package
void
Prop_FillPropDb(
node_ptr ctlspec,
node_ptr computespec,
node_ptr ltlspec,
node_ptr invarspec
)
- Given for each kind of property a list of
respective fomulae, this function is responsible to fill the DB with
them.
void
Prop_Free(
Prop_Ptr n
)
- Free a property. Notice that before freeing the
property all the elements of the property that needs to be freed
will be automatically freed.
Fsm_BddPtr
Prop_GetBddFsm(
Prop_Ptr p
)
- Resturns the boolean FSM in BDD associated to
the property.
Fsm_SexpPtr
Prop_GetBoolFsm(
Prop_Ptr p
)
- Resturns the boolean FSM in sexp associated to
the property.
Set_t
Prop_GetCone(
Prop_Ptr p
)
- If the cone of influence of a property has been
computed, this function returns it.
int
Prop_GetIndex(
Prop_Ptr p
)
- Returns the unique identifier of a property. It
is used in the database of property to identify properties.
int
Prop_GetNumber(
Prop_Ptr p
)
- For COMPUTE properties returns the number
resulting from the evaluation of the property.
int
Prop_GetPropIdxFromString(
const char* idx
)
- Gets the index of a property form a string.
If the string does not contain a valid index, an error message is emitted
and -1 is returned.
node_ptr
Prop_GetProp(
Prop_Ptr p
)
- Returns the property stored in the prop
Fsm_RbcPtr
Prop_GetRbcFsm(
Prop_Ptr p
)
- Resturns the boolean FSM in RBC associated to
the property.
Fsm_SexpPtr
Prop_GetScalarFsm(
Prop_Ptr p
)
- Resturns the scalar FSM in sexp associated to
the property.
Prop_Status
Prop_GetStatus(
Prop_Ptr p
)
- Returns the status of the property
int
Prop_GetTrace(
Prop_Ptr p
)
- For unsatisfied properties, the trace number of
the asscociated counterexample is returned.
Prop_Type
Prop_GetType(
Prop_Ptr p
)
- Returns the property kind of the stroed
property, i.e. CTL, LTL, ...
void
Prop_InitPropMaster(
)
- Crates the master prop to store the whole FSM
void
Prop_Init(
)
- Initialize the prop package
Fsm_BddPtr
Prop_MasterGetBddFsm(
)
- Returns the boolean FSM in BDD stored in the master prop
Fsm_SexpPtr
Prop_MasterGetBoolFsm(
)
- Returns the boolean FSM in sexp stored in the master prop
Fsm_RbcPtr
Prop_MasterGetRbcFsm(
)
- Returns the boolean FSM in RBC stored in the master prop
Fsm_SexpPtr
Prop_MasterGetScalarFsm(
)
- Returns the scalar FSM stored in the master prop
void
Prop_MasterSetBddFsm(
Fsm_BddPtr fsm
)
- Set the boolean FSM in BDD of the master prop
void
Prop_MasterSetBoolFsm(
Fsm_SexpPtr fsm
)
- Set the boolean FSM in sexp of the master prop
void
Prop_MasterSetRbcFsm(
Fsm_RbcPtr fsm
)
- Set the boolean FSM in RBC of the master prop
void
Prop_MasterSetScalarFsm(
Fsm_SexpPtr fsm
)
- Set the scalar FSM of the master prop
void
Prop_PrintPropHeader(
FILE * file
)
- optional
int
Prop_PrintPropNum(
FILE * file,
int num
)
- Prints on the given file stream the property
whose unique identifier is specified
void
Prop_PrintProp(
FILE * file,
Prop_Ptr prop
)
- Prints a property on the specified FILE
stream. Some of the information stored in the property structure are
printed out (e.g. property, property kind, property status, ...).
void
Prop_QuitPropMaster(
)
- Free the master prop
void
Prop_SetBddFsm(
Prop_Ptr p,
Fsm_BddPtr fsm
)
- Sets the boolean FSM in BDD associated to the property.
void
Prop_SetBoolFsm(
Prop_Ptr p,
Fsm_SexpPtr f
)
- Sets the boolean FSM in sexp associated to the property.
void
Prop_SetCone(
Prop_Ptr p,
Set_t c
)
- Stores the cone of influence of the property
void
Prop_SetFsmToMaster(
Prop_Ptr prop
)
- Copies the FSM informations stored in the master
prop into the corresponding fields of the given prop structure.
void
Prop_SetIndex(
Prop_Ptr p,
int index
)
- Sets the unique identifier of a property
void
Prop_SetNumberInfinte(
Prop_Ptr p
)
- Sets the to INFINITE the number resulting from the
evaluation of the property.
void
Prop_SetNumber(
Prop_Ptr p,
int n
)
- Sets the number resulting from the
evaluation of the property.
void
Prop_SetProp(
Prop_Ptr p,
node_ptr e
)
- Stores the property in the prop structure.
void
Prop_SetRbcFsm(
Prop_Ptr p,
Fsm_RbcPtr fsm
)
- Sets the boolean FSM in RBC associated to the property.
void
Prop_SetScalarFsm(
Prop_Ptr p,
Fsm_SexpPtr f
)
- Sets the scalar FSM in sexp associated to the property.
void
Prop_SetStatus(
Prop_Ptr p,
Prop_Status s
)
- Sets the status of the property
void
Prop_SetTrace(
Prop_Ptr p,
int t
)
- Sets the trace number for an unsatisfied property.
void
Prop_SetType(
Prop_Ptr p,
Prop_Type t
)
- Stores the property type.