KripkeStructures Module
This module implements functions for checking (bi)simulation relations of labeled transition systems (Kripke structures). It also computes quotients and products of Kripke structures.
Types
Type | Description |
This denotes the type of a Kripke structure. States are unsigned integers, and the labels are then given by a simple array of sets of strings, and the transition relation is a list of pairs of states (integers). Finally,the initial states are given as a set of states. |
Functions and values
Function or value | Description |
|
This function is meant to be called from cgi; it expects two Kripke structures given as name value pairs in the qscoll argument where the names are Kripke1 and Kripke2. The values are parsed by function ParseKripkeStructureExpl, and then the various simulation and bisimulation relations are computed in addition to the quotient structures to minimize the given Kripke structures.
|
Full Usage:
CheckBisimulation ostr prefix1 K1 prefix2 K2
Parameters:
TextWriter
prefix1 : string
K1 : KripkeStructureExpl
prefix2 : string
K2 : KripkeStructureExpl
Returns: bool * Set<int * int>
|
check whether K1 and K2 are bisimilar
|
Full Usage:
CheckSimulation ostr prefix1 K1 prefix2 K2
Parameters:
TextWriter
prefix1 : string
K1 : KripkeStructureExpl
prefix2 : string
K2 : KripkeStructureExpl
Returns: bool * Set<int * int>
|
check whether K2 simulates K1
|
|
Check whether each state has a unique label (this is required for making a symbolic representation of the Kripke structure).
|
Full Usage:
ComputeProduct k1 k2
Parameters:
KripkeStructureExpl
k2 : KripkeStructureExpl
Returns: KripkeStructureExpl
|
compute a product structure of given Kripke structures
|
Full Usage:
ComputeQuotient k sigma
Parameters:
KripkeStructureExpl
sigma : Set<int * int>
Returns: KripkeStructureExpl
|
compute a quotient structure by a given equivalence relation; the states are those states of an equivalence class with minimal index
|
Full Usage:
Kripke2Dot ostr statePrefix k
Parameters:
TextWriter
statePrefix : string
k : KripkeStructureExpl
|
write Kripke structure to a dot file
|
Full Usage:
MkInitialRel k1 k2
Parameters:
KripkeStructureExpl
k2 : KripkeStructureExpl
Returns: Set<int * int>
|
construct all pairs of states of the two structures having the same labels
|
|
parsing a Kripke structure from a string; the syntax is explained by the following example: vars a,b,c,d; init 0,1; labels 0:a,b; 1:b; 2:b,c; 3:c; 4:d; 5:c; transitions 0->1; 0->2; 1->3; 1->4; 2->5; 3->3; 4->4; 5->5;
|
Full Usage:
StateSet2String statePrefix s
Parameters:
string
s : Set<int>
Returns: string
|
|
|
This cgi-function is used to compute predecessor and successor states in a symbolic way by simply expanding the boolean quantifier into the disjunction/conjunction of the cofactors.
|
|
generate a symbolic description of the Kripke structure in DNF
|
Full Usage:
printSimDiagrams ostr prefix1 k1 prefix2 k2
Parameters:
TextWriter
prefix1 : string
k1 : KripkeStructureExpl
prefix2 : string
k2 : KripkeStructureExpl
|
prints the diagrams for iterating the simulation relations
|