NuSMV/code/nusmv/core/prop/Prop.h File Reference

#include "nusmv/core/fsm/FsmBuilder.h"
#include "nusmv/core/wff/ExprMgr.h"
#include "nusmv/core/set/set.h"
#include "nusmv/core/fsm/sexp/SexpFsm.h"
#include "nusmv/core/fsm/sexp/BoolSexpFsm.h"
#include "nusmv/core/fsm/bdd/BddFsm.h"
#include "nusmv/core/fsm/be/BeFsm.h"
#include "nusmv/core/utils/object.h"
#include "nusmv/core/utils/utils.h"
#include "nusmv/core/utils/OStream.h"

Go to the source code of this file.

Defines

#define PROP(self)   ((Prop_ptr) self)
 To cast and check instances of class Prop.
#define PROP_CHECK_INSTANCE(self)   (nusmv_assert(PROP(self) != PROP(NULL)))
#define PROP_COMPUTE_STRING   "Quantitative"
#define PROP_CTL_STRING   "CTL"
#define PROP_FALSE_STRING   "False"
#define PROP_INVAR_STRING   "Invar"
#define PROP_LTL_STRING   "LTL"
#define PROP_NOSTATUS_STRING   "NoStatus"
#define PROP_NOTYPE_STRING   "NoType"
#define PROP_NUMBER_STRING   "Number"
#define PROP_PSL_STRING   "PSL"
#define PROP_TRUE_STRING   "True"
#define PROP_UNCHECKED_STRING   "Unchecked"

Typedefs

typedef enum _Prop_PrintFmt Prop_PrintFmt
typedef struct Prop_TAG * Prop_ptr
typedef enum _Prop_Status Prop_Status
typedef enum _Prop_Type Prop_Type
typedef enum _PropDb_PrintFmt PropDb_PrintFmt

Enumerations

enum  _Prop_PrintFmt {
  PROP_PRINT_FMT_FORMULA, PROP_PRINT_FMT_FORMULA_TRUNC, PROP_PRINT_FMT_INDEX, PROP_PRINT_FMT_NAME,
  PROP_PRINT_FMT_DEFAULT = PROP_PRINT_FMT_FORMULA
}
enum  _Prop_Status {
  Prop_NoStatus, Prop_Unchecked, Prop_True, Prop_False,
  Prop_Number, Prop_Error
}
 

Public interface of class 'Prop'.

More...
enum  _Prop_Type {
  Prop_Prop_Type_First = 100, Prop_NoType, Prop_Ctl, Prop_Ltl,
  Prop_Psl, Prop_Invar, Prop_Compute, Prop_CompId,
  Prop_Prop_Type_Last
}
 

Enumerates the different types of a specification.

More...
enum  _PropDb_PrintFmt { PROPDB_PRINT_FMT_TABULAR, PROPDB_PRINT_FMT_DEFAULT = PROPDB_PRINT_FMT_TABULAR, PROPDB_PRINT_FMT_XML }
 

Format used when printing.

More...

Functions

void Prop_apply_coi_for_bdd (const NuSMVEnv_ptr env, Prop_ptr self)
 Applies cone of influence to the given property.
void Prop_apply_coi_for_bmc (const NuSMVEnv_ptr env, Prop_ptr self)
 Applies cone of influence to the given property.
void Prop_apply_coi_for_scalar (const NuSMVEnv_ptr env, Prop_ptr self)
 Applies cone of influence to the given property.
BddFsm_ptr Prop_compute_ground_bdd_fsm (const NuSMVEnv_ptr env, const Prop_ptr self)
 Computes ground bdd fsm for property \"self\".
BeFsm_ptr Prop_compute_ground_be_fsm (const NuSMVEnv_ptr env, const Prop_ptr self)
 Computes ground be fsm for property \"self\".
SexpFsm_ptr Prop_compute_ground_sexp_fsm (const NuSMVEnv_ptr env, const Prop_ptr self)
 Computes ground scalar sexp fsm for property \"self\".
Prop_ptr Prop_copy (Prop_ptr input)
 The Prop class copier.
boolean Prop_needs_rewriting (SymbTable_ptr st, const Prop_ptr self)
void Prop_set_environment_fsms (const NuSMVEnv_ptr env, Prop_ptr prop)
 Sets the FSMs in the property from the environment.
Set_t Prop_set_from_formula_list (NuSMVEnv_ptr env, node_ptr list, Prop_Type type)
 Utils function that builds a set of properties out of a cons list of formulae.
short int PropType_to_node_type (const Prop_Type type)
const char * PropType_to_parsing_string (const Prop_Type type)
 Returns the parsing type given the property type.
const char * PropType_to_string (const Prop_Type type)
 Returns the a string associated to a property type.

Define Documentation

#define PROP ( self   )     ((Prop_ptr) self)

To cast and check instances of class Prop.

These macros must be used respectively to cast and to check instances of class Prop

#define PROP_CHECK_INSTANCE ( self   )     (nusmv_assert(PROP(self) != PROP(NULL)))
Todo:
Missing synopsis
Todo:
Missing description
#define PROP_COMPUTE_STRING   "Quantitative"
Todo:
Missing synopsis
Todo:
Missing description
#define PROP_CTL_STRING   "CTL"
Todo:
Missing synopsis
Todo:
Missing description
#define PROP_FALSE_STRING   "False"
Todo:
Missing synopsis
Todo:
Missing description
#define PROP_INVAR_STRING   "Invar"
Todo:
Missing synopsis
Todo:
Missing description
#define PROP_LTL_STRING   "LTL"
Todo:
Missing synopsis
Todo:
Missing description
#define PROP_NOSTATUS_STRING   "NoStatus"
Todo:
Missing synopsis
Todo:
Missing description
#define PROP_NOTYPE_STRING   "NoType"
Todo:
Missing synopsis
Todo:
Missing description
#define PROP_NUMBER_STRING   "Number"
Todo:
Missing synopsis
Todo:
Missing description
#define PROP_PSL_STRING   "PSL"
Todo:
Missing synopsis
Todo:
Missing description
#define PROP_TRUE_STRING   "True"
Todo:
Missing synopsis
Todo:
Missing description
#define PROP_UNCHECKED_STRING   "Unchecked"
Todo:
Missing synopsis
Todo:
Missing description

Typedef Documentation

typedef struct Prop_TAG* Prop_ptr
typedef enum _Prop_Status Prop_Status
typedef enum _Prop_Type Prop_Type

Enumeration Type Documentation

Enumerator:
PROP_PRINT_FMT_FORMULA 
PROP_PRINT_FMT_FORMULA_TRUNC 
PROP_PRINT_FMT_INDEX 
PROP_PRINT_FMT_NAME 
PROP_PRINT_FMT_DEFAULT 

Public interface of class 'Prop'.

Author:
Roberto Cavada This file is responsible of manipulate all the informations associated to a given property, i.e. the kind of property, the property itself, its cone of influence, if the property is not satisfied the associated copunter-example, the associated FSM in different formats (flatten sexp, flatten boolean sexp, bdd, and BE).

The status of a property The status of a property, i.e. If it is checked, unchecked, satisifed or unsatisfied.

See also:
optional
Enumerator:
Prop_NoStatus 
Prop_Unchecked 
Prop_True 
Prop_False 
Prop_Number 
Prop_Error 
enum _Prop_Type

Enumerates the different types of a specification.

Enumerates the different types of a specification

Enumerator:
Prop_Prop_Type_First 
Prop_NoType 
Prop_Ctl 
Prop_Ltl 
Prop_Psl 
Prop_Invar 
Prop_Compute 
Prop_CompId 
Prop_Prop_Type_Last 

Format used when printing.

Enumerator:
PROPDB_PRINT_FMT_TABULAR 
PROPDB_PRINT_FMT_DEFAULT 
PROPDB_PRINT_FMT_XML 

Function Documentation

void Prop_apply_coi_for_bdd ( const NuSMVEnv_ptr  env,
Prop_ptr  self 
)

Applies cone of influence to the given property.

The COI is applied only for BDD-based model checking. To apply for BMC, use Prop_apply_coi_for_bmc. If psl2core is false, then the PSL property is only expanded to remove forall, otherwise it is converted into LTL.

Internal FSMs are computed

void Prop_apply_coi_for_bmc ( const NuSMVEnv_ptr  env,
Prop_ptr  self 
)

Applies cone of influence to the given property.

The COI is applied only for BMC-based model checking. To apply for BDD, use Prop_apply_coi_for_bdd. This method creates a new layer for those determinization vars that derives from the booleanization of the fsm deriving from the property cone. That layer will be committed to the BoolEnc and BeEnc encodings only, not to the BddEnc. The newly created layer will be assigned to a name that depends on the property number within the database DbProp. If psl2core is false, then the PSL property is only expanded to remove forall, otherwise it is converted into LTL.

Internal FSMs are computed

void Prop_apply_coi_for_scalar ( const NuSMVEnv_ptr  env,
Prop_ptr  self 
)

Applies cone of influence to the given property.

The COI is applied only on the scalar FSM

Internal Scalar FSM is computed

BddFsm_ptr Prop_compute_ground_bdd_fsm ( const NuSMVEnv_ptr  env,
const Prop_ptr  self 
)

Computes ground bdd fsm for property \"self\".

Ground bdd fsm is computed (taking COI into account if needed) and registered into self.

BeFsm_ptr Prop_compute_ground_be_fsm ( const NuSMVEnv_ptr  env,
const Prop_ptr  self 
)

Computes ground be fsm for property \"self\".

Ground be fsm is computed (taking COI into account if needed) and registered into self.

SexpFsm_ptr Prop_compute_ground_sexp_fsm ( const NuSMVEnv_ptr  env,
const Prop_ptr  self 
)

Computes ground scalar sexp fsm for property \"self\".

Ground sexp fsm is computed (taking COI into account if needed) and registered into self.

Prop_ptr Prop_copy ( Prop_ptr  input  ) 

The Prop class copier.

Note for developers: we do not take an env in input because the fms copy functions do not take it. In order to have copy to another environment we need to extend also those copiers

See also:
Prop_destroy
boolean Prop_needs_rewriting ( SymbTable_ptr  st,
const Prop_ptr  self 
)
Todo:
Missing synopsis
Todo:
Missing description
void Prop_set_environment_fsms ( const NuSMVEnv_ptr  env,
Prop_ptr  prop 
)

Sets the FSMs in the property from the environment.

Sets the FSMs in the property from the environment

Set_t Prop_set_from_formula_list ( NuSMVEnv_ptr  env,
node_ptr  list,
Prop_Type  type 
)

Utils function that builds a set of properties out of a cons list of formulae.

The set must be freed by the caller

short int PropType_to_node_type ( const Prop_Type  type  ) 
const char* PropType_to_parsing_string ( const Prop_Type  type  ) 

Returns the parsing type given the property type.

Returns the parsing type given the property type. The returned string must NOT be freed.

const char* PropType_to_string ( const Prop_Type  type  ) 

Returns the a string associated to a property type.

Returns the string corresponding to a property type for printing it. Returned string must NOT be deleted

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines

Generated on 14 Oct 2015 for NuSMV Developers Manual by  doxygen 1.6.1