ltl.c
LTL model checking.
ltlAutomaton.c
Translate LTL formula to the Buechi Automaton.
ltlCompose.c
Write the Buechi automaton into a file.
ltlMinimize.c
Buechi automaton minimization.
ltlSet.c
Set/Pair/Cover Manipulation functions used in the ltl package.
ltlTableau.c
Expand the LTL Formula by applying the Tableau Rules.
ltlUtil.c
Utilities for LTL model checker

ltl.c

LTL model checking.

By: Chao Wang

Ltl_Init()
Initializes the Ltl package.
Ltl_End()
Ends the Ltl package.
Ltl_McFormulaToAutomaton()
Translate the LTL formula into a Buechi automaton.
Ltl_McAutomatonToNetwork()
Translate the Buechi automaton into a network.
Ltl_FormulaStaticSemanticCheckOnNetwork()
Perform static semantic check of ltl formula on network.
LtlMcFormulaToAutomaton()
Translate the LTL formula to a Buechi automaton.
LtlFsmLoadFairness()
Load the Fairness Constraint for the compFsm.
LtlMcOptionAlloc()
Alloc Memory for LtlMcOption_t.
LtlMcOptionFree()
Free LtlMcOption_t, and close the ltl formula file.
CommandLtlMc()
Check LTL formulae given in file are modeled by flattened network
CommandLtl2Aut()
Translate LTL formulae given in file into Buechi automata
ParseLtlMcOptions()
Parse the user input for command "ltl_model_check."
ParseLtlTestOptions()
Parse the user input for command "ltl_to_aut".
LtlMcAtomicFormulaCheckSemantics()
Perform simple static semantic checks on formula.
TimeOutHandle()
Handle function for timeout.
ShuffleMddIdsToTop()
Move the mdd variables to the top most.

ltlAutomaton.c

Translate LTL formula to the Buechi Automaton.

By: Chao Wang

Ltl_AutomatonCreate()
Allocate the automaton data structure.
Ltl_AutomatonFree()
Free the automaton data structure.
Ltl_AutomatonNodeCreate()
Allocate the automaton node data structure.
Ltl_AutomatonNodeFree()
Free the automaton node data structure.
Ltl_AutomatonNodePrint()
Print the automaton node.
Ltl_AutomatonPrint()
Print the automaton.
LtlAutomatonGeneration()
Generate the Buechi automaton from the formula.
LtlAutomatonSetIsFair()
Return 1 if the given set belongs to a fair set.
HasToBeStored()
Return 1 iff the elementary formula need to be stored.
Contradiction()
Return 1 iff there is there is a contradition so far.
Redundant()
Return 1 iff the given formula is redundant.
SI()
Test if the given formula is synatically implied by the existing set (product term).
AutomatonComputeFair()
Put the node into the fairset if it contains a until formula.
AutomatonCreateFairList()
Convert the fair sets of the tableau into the fair set in the automaton.
AutomatonAssignNext()
Generate the next-formulae set.
AutomatonSetCreate()
Create the set representation of the given formula.
AutomatonBuildCover()
Build the cover for a given set 'toCover'.
AutomatonBuildCover_Aux()
Recursively construct the cover.

ltlCompose.c

Write the Buechi automaton into a file.

By: Chao Wang

Ltl_AutomatonToDot()
Translate the Automaton into Dot format.
Ltl_AutomatonToBlifMv()
Translate the automaton to a BlifMv file.
Ltl_AutomatonToVerilog()
Translate the automaton to Verilog file.
Ltl_AutomatonToSmv()
Translate the automaton to SMV file.
AutomatonGetInputNames()
Return a array of all the inputnames of the automaton.
AutomatonCountSelector()
Return the upper bound number of nondeterministic selectors.
AutomatonComputeInitState()
Determine if "Init" state is necessary.
AutomatonLabelGetCubes()
Given a composite label, return a list of label (each of which is a cube.
GetCubes_Aux()
Given a index in A->tableau->labelTable, return a list of label (each of which is a cube.
StringNormalize()
Given a string, do the following replacement.
AutomatonVtxLabelToBlifMv()
Create the "label" signal in blif_mv format and print out.
VtxLabelToBlifMv_Aux()
Create the "label" signal in blif_mv format and print out.

ltlMinimize.c

Buechi automaton minimization.

By: Chao Wang

Ltl_AutomatonMinimizeByIOCompatible()
Minimize the Automaton using I/O Compatiblility and Dominance.
Ltl_AutomatonMinimizeByDirectSimulation()
Minimize the Automaton using Direct Simulation.
Ltl_AutomatonAddFairStates()
Mark trivial SCCs as Fair states
Ltl_AutomatonMaximizeByDirectSimulation()
Maximize the Automaton using Direct Simulation.
Ltl_AutomatonMinimizeByReverseSimulation()
Minimize the Automaton using Reverse Simulation.
Ltl_AutomatonMinimizeByPrune()
Remove states that cannot reach any fair SCC and perform other simplifications (simplify fair sets).
Ltl_AutomatonComputeSCC()
Compute the SCCs of the Automaton.
Ltl_AutomatonIsWeak()
Return 1 if if the automaton is 'WEAK'
Ltl_AutomatonGetStrength()
Return the strength of the automaton.
Ltl_AutomatonCreateQuotient()
Return the Quotient graph for the given partition.
Ltl_AutomatonVtxGetNodeIdx()
Return the node index associated with the given vertex.
LtlAutomatonVertexGetLabels()
Return the automaton node label set associated with the vertex.
AutomatonPickInputCandidate()
Return the input-compatible candidates.
AutomatonPickOutputCandidate()
Return the output-compatible candidates.
AutomatonVertexGetPreImg()
Return the pre-image of the given vertex in the hash table.
AutomatonVertexGetImg()
Return the image of the given vertex in the hash table.
AutomatonVertexHasSelfLoop()
Return 1 iff the given vertex has a self-loop.
AutomatonPfairEquivQfair()
Return 1 iff the following statement in the automaton holds: For each fair set, both states are in it or none of them (unless they are 'dontcare' states)
AutomatonPfairImplyQfair()
Return 1 iff the following statement in the automaton holds: For each fair set, if 'state' is in it, 'otherstate' must also in it. (unless they are 'dontcare' states)
StTableDelete()
If 'item' is in the hash table, Delete it and return the real key; Otherwise, return 0.
StTableAppend()
Append the tbl2 to tbl1 and return tbl1.
StTableRestrict()
Remove from tbl1 all the items that are not in tbl2.
StTableSubtract()
Remove from tbl1 all the items that are in tbl2.
StTableIsEqual()
Return 1 if tbl1 and tbl2 have the same items except those also in 'dontcare'. 'dontcare' can be a null pointer.
StTableInclude()
Return 1 if 'larger' include every items in 'small' except those also in 'dontcare'. Notice that 'dontcare' can be a null pointer.
StTableIsDisjoint()
Return 1 if the two tables shares nothing except those items also in 'dontcare'. Notice that 'dontcare' can be a null pointer.
StTableIsFair()
Return 1 if the given tables intersect every tables in the list.
AutomatonPartitionIsClique()
Return 1 if the given table forms a clique (for each state, there are edges to all the states in the set).
AutomatonPartitionLabelLUB()
Find the Least Upper Bound of the labels of a set of states, and Return a hash table of states that satisfy this 'LUB'. Return null if the hash table is empty.
AutomatonPartitionLabelGLB()
Find the Greatest Lower Bound of the labels of a set of states, and Return a hash table of A state that satisfy this 'GLB'. Return null if the hash table is empty.
AutomatonQuotientVertexGetClass()
Return the partition component (a st_table) associated with the given vertex in the Quotient graph.
AutomatonVtxGetNodeIdx()
Return the node index associated with the given vertex.

ltlSet.c

Set/Pair/Cover Manipulation functions used in the ltl package.

By: Chao Wang

LtlSetNew()
Allocate the set data structure.
LtlSetFree()
Free the data structure associated with 'set'.
LtlSetCopy()
Allocate the new set and copy the content of the given set.
LtlSetAssign()
Assign the content of 'from' to set 'to'.
LtlSetEqual()
Return 1 if the two sets have the same content.
LtlSetCardinality()
Return how many bit is set to 1 in the given set.
LtlSetCompareCardinality()
Return -1/0/+1 when 's1' has more/equal/less cardinality than 's2'.
LtlSetIsContradictory()
Return 1 iff the set contains both 'F' and '!F'.
LtlSetInclude()
Return 1 iff 'large' includes 'small'.
LtlSetOR()
Union the two sets 'from1' and 'from2', and assign to set 'to'.
LtlSetClear()
Clear all bits in the set.
LtlSetSetElt()
Set the bit indicated by 'index'.
LtlSetClearElt()
Clear the bit indicated by 'index'.
LtlSetGetElt()
Return the value of the bit indicated by 'index'.
LtlSetIsEmpty()
Return 1 if the set is empty.
LtlSetIsInList()
Return the set in the list that matches the given set.
LtlSetToLabelSet()
Transform the given set to the label set and return it.
LtlSetPrint()
Print all the 'elementary formulae' contained in the set.
LtlSetPrintIndex()
Print all index that are set in the set.
LtlPairNew()
Allocate the data struture for 'pair'.
LtlPairFree()
Free the LtlPair_t data struture.
LtlPairHash()
Return a hash key for the given pair.
LtlPairCompare()
Return -1/0/+1 when the key1 is greater/equal/less than key2.
LtlPairPrint()
Print the pair as index pair.
LtlCoverPrintIndex()
Print the cover as a set of index.
LtlCoverCompleteSum()
Return the 'Complete Sum' of the cover by iterated consensus.
LtlSetConsensus()
Return the consensus of two given set (product terms).
LtlCoverCofactor()
Return the cofactor of the cover with respect to the set.
LtlCoverIsTautology()
Return 1 if the given cover is tautology.
LtlCoverIsImpliedBy()
Return 1 if the given cover is implied BY the set.
LtlCoverPrimeAndIrredundant()
Boolean minimization of the given cover.
LtlCoverGetSuperCube()
Return the supercube of a cover.
LtlSetModelCheckFormulae()
Return the supercube of a cover.

ltlTableau.c

Expand the LTL Formula by applying the Tableau Rules.

By: Chao Wang

LtlTableauGenerateTableau()
Generate the 'Tableau' sturcture for the LTL->AUT problem. It first computes the NNF of the input formula, then create the alpha/beta entry table for both the input formula and its negation according the tableau rules, and finally compute the list of 'Until formulae'.
LtlTableauCreate()
Allocate the data structure of tableau.
LtlTableauFree()
Free the tableau data structure.
LtlTableauPrint()
Print the content of the tableau.
LtlTableauGetUniqueXFormula()
Return the unique formula 'X F' in the tableu by giving 'F'.
TableauClearMarks()
Clear the marks of all the formula in the tableau.
TableauRules()
Fill out the Alpha-Beta entry table recursively.
HashNextFormulae()
Hash the formula 'X F' and its negation in the unique tableau.
TableauLoadUntilSubFormulae()
Put all the Until sub-formulae in a list.

ltlUtil.c

Utilities for LTL model checker

By: Chao Wang


Last updated on 20050519 00h50