-
bmc.h
- External header file
-
bmcInt.h
- Internal header file
-
bmcBmc.c
- High level functionalities layer
-
bmcCheck.c
- Some useful functions to check propositional formulae.
Temporary located into the bmc package
-
bmcCmd.c
- Bmc.Cmd module
-
bmcConv.c
- Convertion function of BE to corresponding BDD boolean
expression, and viceversa
-
bmcDimacs.c
- Dimacs format dumping functionalities
-
bmcFsm.c
- Members implementation of class Bmc_Fsm
-
bmcGen.c
- Bmc.Gen module
-
bmcInt.c
- Private interfaces implementation of package bmc
-
bmcModel.c
- Bmc.Model module
-
bmcPkg.c
- Bmc.Pkg module
-
bmcSat.c
- The bmc-sat gateway implementation file
-
bmcTableau.c
- Bmc.Tableau module
-
bmcTableauLTLformula.c
- Bmc.Tableau module
-
bmcTableauPLTLformula.c
- Bmc.TableauPLTL module
-
bmcTest.c
- Test routines for bmc package
-
bmcUtils.c
- Utilities for the bmc package
-
bmcVarsMgr.c
- Variables Manager for the bmc package
-
bmcWff.c
- Well Formed Formula manipulation routines
bmc.h
External header file
By: Roberto Cavada
bmcInt.h
Internal header file
By: Roberto Cavada
bmcBmc.c
High level functionalities layer
By: Roberto Cavada
User-commands directly use function defined in this module.
This is the highest level in the BMC API architecture.
bmcCheck.c
Some useful functions to check propositional formulae.
Temporary located into the bmc package
By: Roberto Cavada
-
Bmc_CheckFairnessListForPropositionalFormulae()
- Helper function to simplify calling to
'bmc_check_wff_list' for searching of propositional wff only.
Returns a new list of wffs which contains legal wffs only
-
Bmc_WffListMatchProperty()
- For each element belonging to a given list of wffs,
calls the given matching function. If function matches, calls given
answering function
-
Bmc_IsPropositionalFormula()
- Given a wff returns 1 if wff is a propositional formula,
zero (0) otherwise.
-
bmc_is_propositional_formula_aux()
- Useful wrapper for
Bmc_CheckFairnessListForPropositionalFormulae
-
bmc_check_if_wff_is_valid()
- private service for
Bmc_CheckFairnessListForPropositionalFormulae
-
bmc_add_valid_wff_to_list()
- private service for
Bmc_CheckFairnessListForPropositionalFormulae
bmcCmd.c
Bmc.Cmd module
By: Roberto Cavada
This module contains all the bmc commands implementation.
Options parsing and checking is performed here, than the high-level Bmc
layer is called
See AlsobmcPkg.c,
bmcBmc.c
-
Bmc_CommandBmcSetup()
- Initializes the bmc sub-system, and builds the model in
a Boolean Expression format
-
UsageBmcSetup()
- Usage string for Bmc_CommandBmcSetup
-
Bmc_CommandBmcSimulate()
- Bmc_CommandBmcSimulate generates a trace of the problem
represented from the simple path from 0 (zero) to k
-
UsageBmcSimulate()
- Usage string for UsageBmcSimulate
-
Bmc_CommandCheckLtlSpecBmc()
- Checks the given LTL specification, or all LTL
specifications in the properties database if no formula is given
-
UsageBmcCheckLtlSpec()
- Usage string for command check_ltlspec_bmc
-
Bmc_CommandCheckLtlSpecBmcOnePb()
- Checks the given LTL specification, or all LTL
specifications if no formula is given. Checking parameters are the problem
bound and the loopback values
-
UsageBmcCheckLtlSpecOnePb()
- Usage string for command check_ltlspec_bmc_onepb
-
Bmc_CommandGenLtlSpecBmcOnePb()
- Generates only one problem with fixed bound and
loopback, and dumps the problem to a dimacs file. The single problem
is dumped for the given LTL specification, or for all LTL
specifications if no formula is given
-
UsageBmcGenLtlSpecOnePb()
- Usage string for command gen_ltlspec_bmc_onepb
-
Bmc_CommandGenLtlSpecBmc()
- Generates length_max+1 problems iterating the problem
bound from zero to length_max, and dumps each problem to a dimacs file
-
UsageBmcGenLtlSpec()
- Usage string for command gen_ltlspec_bmc
-
Bmc_CommandGenInvarBmc()
- Generates and dumps the problem for the given
invariant or for all invariants if no formula is given. SAT solver is not
invoked.
-
UsageBmcGenInvar()
- Usage string for command gen_invar_bmc
-
Bmc_CommandCheckInvarBmc()
- Generates and solve the given invariant, or all
invariants if no formula is given
-
UsageBmcCheckInvar()
- Usage string for command check_invar_bmc
-
bmc_CommandsWith_k_l_OptionsHandling()
- Bmc commands options handling for commands with
-k and -l options
-
bmc_CommandsWithout_k_l_OptionsHandling()
- Bmc commands options handling for commands without
-k and -l options
bmcConv.c
Convertion function of BE to corresponding BDD boolean
expression, and viceversa
By: Alessandro Cimatti and Lorenzo Delana
This implementation is still depedent on the rbc package
-
Bmc_Conv_Be2Bexp()
- Given a be, constructs the corresponding boolean
expression
-
Bmc_Conv_Bexp2Be()
- Converts given boolean expression into
correspondent reduced boolean circuit
-
Bmc_Conv_BexpList2BeList()
- Converts given boolean expressions list
into correspondent reduced boolean circuits list
-
Be2bexpDfsData_push()
- Sets a node into the stack
-
Be2bexpDfsData_head()
- Be2bexpDfsData_head
-
Be2bexpDfsData_pop()
- Be2bexpDfsData_pop
-
Be2bexp_Set()
- Be2bexpSet
-
Be2bexp_First()
- Be2bexpFirst
-
Be2bexp_Back()
- Be2bexp_Back
-
Be2bexp_Last()
- Be2bexp_Last
bmcDimacs.c
Dimacs format dumping functionalities
By: Roberto Cavada
This module supplies services that dump a Bmc problem
into a file, in DIMACS format.
bmcFsm.c
Members implementation of class Bmc_Fsm
By: Roberto Cavada
-
Bmc_Fsm_CreateFromSexprFSM()
- Class Bmc_Fsm constructor
-
Bmc_Fsm_Create()
- Class Bmc-Fsm constructor
-
Bmc_Fsm_Delete()
- Class Bmc_Fsm destructor
-
Bmc_Fsm_Dup()
- Copy constructor for class Bmc_Fsm
-
Bmc_Fsm_GetInit()
- Returns the initial states stored in BE format into the
given fsm instance
-
Bmc_Fsm_GetInvar()
- Returns the invariants stored in BE format into the
given fsm instance
-
Bmc_Fsm_GetTrans()
- Returns the transition relation stored in BE format
into the given fsm instance
-
Bmc_Fsm_GetListOfFairness()
- Returns the list of fairness stored in BE format
into the given fsm instance
-
Bmc_Fsm_GetVarsManager()
- Returns the variables manager associated with the
given fsm instance
-
Bmc_Fsm_SetInit()
- Private service to set init states into the given fsm
-
Bmc_Fsm_SetInvar()
- Private service to set invar states into the given fsm
-
Bmc_Fsm_SetTrans()
- Private service to set the transition relation
into the given fsm
-
Bmc_Fsm_SetFairness()
- Private service to set the list of fairness into
the given fsm
bmcGen.c
Bmc.Gen module
By: Roberto Cavada
This module contains all the problems generation functions
See AlsobmcBmc.c,
bmcTableau.c,
bmcModel.c
-
Bmc_Gen_InvarProblem()
- Builds and returns the invariant problem of the
given propositional formula
-
Bmc_Gen_LtlProblem()
- Returns the LTL problem at length k with loopback l
(single loop, no loop and all loopbacks are allowed)
-
Bmc_Gen_InvarBaseStep()
- Returns the base step of the invariant construction
-
Bmc_Gen_InvarInductStep()
- Returns the induction step of the invariant construction
bmcInt.c
Private interfaces implementation of package bmc
By: Roberto Cavada
-
Bmc_GetTestTableau()
-
bmcModel.c
Bmc.Model module
By: Roberto Cavada
This module contains all the model-related operations
See AlsobmcGen.c,
bmcTableau.c,
bmcConv.c,
bmcVarMgr.c
-
Bmc_Model_GetInit0()
- Retrieves the init states from the given fsm, and
compiles them into a BE at time 0
-
Bmc_Model_GetInvarAtTime()
- Retrieves the invars from the given fsm, and
compiles them into a BE at the given time
-
Bmc_Model_GetUnrolling()
- Unrolls the transition relation from j to k, taking
into account of invars
-
Bmc_Model_GetPathNoInit()
- Returns the path for the model from 0 to k,
taking into account the invariants (and no init)
-
Bmc_Model_GetPathWithInit()
- Returns the path for the model from 0 to k,
taking into account initial conditions and invariants
-
Bmc_Model_GetFairness()
- Generates and returns an expression representing
all fairnesses in a conjunctioned form
bmcPkg.c
Bmc.Pkg module
By: Roberto Cavada
This module contains all the bmc package handling functions
-
Bmc_Init()
- Initializes the BMC model manager structure
-
Bmc_Quit()
- Frees all resources allocated for the BMC model manager
-
Bmc_AddCmd()
- Adds all bmc-related commands to the interactive shell
bmcSat.c
The bmc-sat gateway implementation file
By: Roberto Cavada
See Alsothe
sat
package
-
Bmc_Sat_SolveProblem()
- Calls the specified solver with the given problem,
and returns a sat result if there is any
-
Bmc_Sat_SolveInvarProblem()
- Calls the specified solver with the given invar problem,
and returns a sat result if there is any
-
Bmc_Problem_Create()
- Class Bmc_Problem constructor
-
Bmc_Problem_Delete()
- Bmc_Problem destructor
-
Bmc_Problem_GetBeProblem()
- Accessor method to retrieve the original problem in
BE format
-
Bmc_Problem_GetCnf()
- Returns the problem in CNF format
-
Bmc_SatTrace_Create()
- Class Bmc_SatTrace constructor
-
Bmc_SatTrace_Delete()
- Class Bmc_SatTrace destructor
-
Bmc_SatTrace_GetSymbModel()
- Returns the bdd-based symbolic model
-
Bmc_SatTrace_GetSymbModelInvar()
- As Bmc_SatTrace_GetSymbModel, but for invariants
-
bmc_sat_trace_calculateSymbModel()
- Private service for class Bmc_SatTrace methods
-
bmc_sat_trace_prop2symb()
- Private service for Bmc_SatTrace methods
bmcTableau.c
Bmc.Tableau module
By: Marco Benedetti, Roberto Cavada
This module contains all the tableau-related operations
See AlsobmcModel.c,
bmcConv.c,
bmcVarMgr.c
bmcTableau.c,
bmcTableauLTLformula.c,
bmcTableauPLTLformula.c,
bmcGen.c
-
Bmc_Tableau_GetNoLoop()
- Builds tableau without loop at time zero, taking into
account of fairness
-
Bmc_Tableau_GetSingleLoop()
- Builds tableau for all possible loops in [l, k], in
the particular case in which depth is 1. This function takes into account
of fairness
-
Bmc_Tableau_GetAllLoops()
- Builds tableau for all possible loops in [l, k[,
taking into account of fairness
-
Bmc_Tableau_GetAllLoopsDepth1()
- Builds tableau for all possible loops in [l, k], in
the particular case in which depth is 1. This function takes into account
of fairness
-
Bmc_TableauLTL_GetSingleLoopWithFairness()
- Builds the tableau at time zero. Loop is allowed,
fairness are taken into account
-
Bmc_TableauLTL_GetSingleLoop()
- Builds the tableau at time zero. Loop is allowed,
fairness are taken into account
-
Bmc_TableauLTL_GetNoLoop()
- Builds tableau without loop at time zero, taking into
account of fairness
-
Bmc_TableauLTL_GetAllLoops()
- Builds tableau for all possible loops in [l, k[,
taking into account of fairness
-
Bmc_TableauLTL_GetAllLoopsDepth1()
- Builds tableau for all possible loops in [l, k], in
the particular case in which depth is 1. This function takes into account
of fairness
-
Bmc_TableauPLTL_GetNoLoop()
- Returns the tableau for a PLTL formula on a bounded path
of length k, reasoning on fairness conditions as well.
-
Bmc_TableauPLTL_GetSingleLoop()
- Returns the tableau for a PLTL formula on a (k,l)-loop,
conjuncted with both fairness conditions and the loop
condition on time steps k and l.
-
Bmc_TableauPLTL_GetAllLoops()
- Returns the conjunction of the single-loop tableaux for
all possible (k,l)-loops for a fixed k. Each single-loop
tableau takes into account of both fairness constraints
and loop condition.
-
Bmc_TableauPLTL_GetAllLoopsDepth1()
- Builds tableau for all possible (k,l)-loops for a
fixed k, in the particular case depth==1.
This function takes into account of fairness.
-
Bmc_Tableau_GetLoopCondition()
- Builds a tableau that constraints state k to be equal to
state l. This is the condition for a path of length (k+1)
to represent a (k-l)loop (new semantics).
-
Bmc_Tableau_GetAllLoopsDisjunction()
- Builds the disjunction of all the loops conditions
for (k-l)-loops with l in [0, k[
-
isPureFuture()
- Checks wether a formula contains only future operators
bmcTableauLTLformula.c
Bmc.Tableau module
By: Roberto Cavada
This module contains all the operations related to the
construction of tableaux for LTL formulas
See AlsobmcGen.c,
bmcModel.c,
bmcConv.c,
bmcVarMgr.c
-
BmcInt_Tableau_GetAtTime()
- Given a wff expressed in ltl builds the model-independent
tableau at 'time' of a path formula bounded by [k, l]
-
bmc_tableauGetNextAtTime()
- Resolves the NEXT operator, building the tableau for
its argument
-
bmc_tableauGetEventuallyAtTime()
- Resolves the future operator, and builds a conjunctive
expression of tableaus, by iterating intime up to k in a different manner
depending on the [l, k] interval form
-
bmc_tableauGetGloballyAtTime()
- As bmc_tableauGetEventuallyAtTime, but builds a
conjunctioned expression in order to be able to assure a global constraint
-
bmc_tableauGetUntilAtTime()
- Builds an expression which evaluates the until operator
-
bmc_tableauGetReleasesAtTime()
- Builds an expression which evaluates the release
operator
-
bmc_tableauGetUntilAtTime_aux()
- auxiliary part of bmc_tableauGetUntilAtTime
-
bmc_tableauGetReleasesAtTime_aux()
- auxiliary part of bmc_tableauGetReleasesAtTime
bmcTableauPLTLformula.c
Bmc.TableauPLTL module
By: Marco Benedetti
Implements all the functions needed to build tableaux for
PLTL formulas.
See AlsobmcTableau.c,
bmcGen.c
-
()
-
-
()
-
-
Bmc_TableauPLTL_GetTableau()
- Builds the tableau for a PLTL formula.
-
Bmc_TableauPLTL_GetAllTimeTableau()
- Builds the conjunction of the tableaux for a PLTL formula
computed on every time instant along a (k,l)-loop.
-
getTableauAtTime()
- Builds the tableau for a PLTL formula "pltl_wff" at time
"time".
-
evaluateOn()
- Evaluates (either disjunctively or conjunctively) a PLTL
formula over an interval of time.
-
projectOntoMainDomain()
- Projects a (possibly open) interval [a,b
-
tau()
- Gives an upper bound on the past temporal horizon of a
PLTL formula.
bmcTest.c
Test routines for bmc package
By: Roberto Cavada, Marco Benedetti
-
Bmc_TestReset()
- Call this function to reset the test sub-package (into
the reset command for example)
-
Bmc_TestTableau()
- The first time Bmc_TestTableau is called in the current
session this function creates a smv file with a model and generates a random
ltl spec to test tableau. The following times it is called it appends a new
formula to the file.
-
UsageBmcTestTableau()
- Usage string for Bmc_TestTableau
-
Bmc_TestVarsMgr()
- Bmc_TestVarsMgr
-
bmc_test_mk_loopback_ltl()
- For each variable p in the set of state variables,
generates the global equivalence of p and X^(loop length), starting from
the loop start
-
bmc_test_gen_tableau()
- Given a WFF in NNF, converts it into a tableau
formula, then back to WFF_(k,l) and returns WFF -> WFF_(k,l)
-
bmc_test_gen_wff()
- Builds a random LTL WFF with specified
max depth and max connectives.
-
bmc_test_bexpr_output()
- Write to specified FILE stream given node_ptr
formula with specified output_type format. There are
follow formats: BMC_BEXP_OUTPUT_SMV, BMC_BEXP_OUTPUT_LB
bmcUtils.c
Utilities for the bmc package
By: Roberto Cavada
-
Bmc_Utils_ConvertLoopFromString()
- Given a string representing a loopback possible value,
returns the corresponding integer.
The (optional) parameter result will be assigned to SUCCESS if the conversion
has been successfully performed, otherwise to GENERIC_ERROR is the conversion
failed. If result is NULL, SUCCESS is the aspected value, and an assertion is
implicitly performed to check the conversion outcome.
-
Bmc_Utils_ConvertLoopFromInteger()
- Given an integer containing the inner representation
of the loopback value, returns as parameter the corresponding user-side
value as string
-
Bmc_Utils_IsNoLoopback()
- Returns true if l has the internally encoded "no loop"
value
-
Bmc_Utils_IsNoLoopbackString()
- Returns true if the given string represents the
no loopback value
-
Bmc_Utils_IsSingleLoopback()
- Returns true if the given loop value represents
a single (relative or absolute) loopback
-
Bmc_Utils_IsAllLoopbacks()
- Returns true if the given loop value represents
the "all possible loopbacks" semantic
-
Bmc_Utils_IsAllLoopbacksString()
- Returns true if the given string represents the
"all possible loops" value.
-
Bmc_Utils_GetNoLoopback()
- Returns the integer value which represents the
"no loop" semantic
-
Bmc_Utils_GetAllLoopbacks()
- Returns the integer value which represents the
"all loops" semantic
-
Bmc_Utils_GetAllLoopbacksString()
- Returns a constant string which represents the
"all loops" semantic.
-
Bmc_Utils_RelLoop2AbsLoop()
- Converts a relative loop value (wich can also be
an absolute loop value) to an absolute loop value
-
Bmc_Utils_Check_k_l()
- Checks the (k,l) couple. l must be absolute.
-
Bmc_Utils_GetSuccTime()
- Given time<=k and a [l, k] interval, returns next
time, or BMC_NO_LOOP if time is equal to k and there is no loop
-
Bmc_Utils_ExpandMacrosInFilename()
- Search into a given string any symbol which belongs to a
determined set of symbols, and expand each found symbol, finally returning
the resulting string
bmcVarsMgr.c
Variables Manager for the bmc package
By: Alessandro Cimatti and Lorenzo Delana
bmcWff.c
Well Formed Formula manipulation routines
By: Alessandro Cimatti and Lorenzo Delana
-
Bmc_Wff_MkTruth()
- Makes a truth WFF
-
Bmc_Wff_MkFalsity()
- Makes a false WFF
-
Bmc_Wff_MkNot()
- Makes a not WFF
-
Bmc_Wff_MkAnd()
- Makes an and WFF
-
Bmc_Wff_MkOr()
- Makes an or WFF
-
Bmc_Wff_MkImplies()
- Makes an implies WFF
-
Bmc_Wff_MkIff()
- Makes an iff WFF
-
Bmc_Wff_MkNext()
- Makes a next WFF
-
Bmc_Wff_MkXopNext()
- Applies op_next x times
-
Bmc_Wff_MkOpNext()
- Makes an op_next WFF
-
Bmc_Wff_MkOpPrec()
- Makes an op_next WFF
-
Bmc_Wff_MkOpNotPrecNot()
- Makes an op_next WFF
-
Bmc_Wff_MkGlobally()
- Makes a globally WFF
-
Bmc_Wff_MkHistorically()
- Makes a historically WFF
-
Bmc_Wff_MkEventually()
- Makes an eventually WFF
-
Bmc_Wff_MkOnce()
- Makes an once WFF
-
Bmc_Wff_MkUntil()
- Makes an until WFF
-
Bmc_Wff_MkSince()
- Makes an since WFF
-
Bmc_Wff_MkReleases()
- Makes a releases WFF
-
Bmc_Wff_MkTriggered()
- Makes a triggered WFF
-
Bmc_Wff_MkNnf()
- Makes the negative normal form of given WFF
-
Bmc_Wff_GetDepth()
- Returns the modal depth of the given formula
-
bmc_wff_mkBinary()
- Makes a binary WFF
-
bmc_wff_mkUnary()
- Makes a unary WFF
-
bmc_wff_mkConst()
- Makes a constant WFF
Last updated on 2002/07/03 13h:30