CHIA (CHecker for Incompete Automata) is a prototype tool realized as a Java 7 stand-alone application.
The tool has been developed as a proof of concepts and does not aim to compete with state of the art model checking tools.
It provides a command-line shell which allows the developer to
-
load the models, the claims, the constraints and the replacements of interest,
-
check the incomplete models against the corresponding claims,
-
whenever the claim is possibly satisfied it is possible to compute the constraint for the unspecified parts,
-
check the replacement against the corresponding constraints.
The tool is developed as a Maven
multi-module project. It is composed by different modules which encapsulate different parts of the CHIA logic. The core of the framework is the CHIAFramework
Module.
The CHIA javadoc is available at https://claudiomenghi.github.io/CHIA/
To install CHIA:
- download the CHIA.jar file from the releases page
- run
java -jar CHIA.jar
By running the java -jar CHIA.jar
command the shell of CHIA is executed. The user interacts with the tool using a set of commands.
####General purpose commands The general purpose commands include the commands which are used to switch the modality and to additional assistance commands:
-
list
(list
): lists all commands with no prefix; -
help command
(help command
): shows the info related with the command; -
exit
: exits the CHIA framework -
automata
(aut
): enters the automata mode -
replacement
(rep
): enters the replacement mode
The automata commands can be used in the automata mode when a IBA (BA) is considered against the corresponding claim
-
loadModel modelFilePath
(lm modelFilePath
): is used to load the model from an XML file. The XML file must match the IBA.xsd. It requires the parametermodelFilePath
, i.e., the path of the file that contains the model to be checked. -
displayModel
(dispm
): is used to display the model into the console. -
loadProperty propertyFilePath
(lp propertyFilePath
): is used to load the property from an XML file. The XML file must match the BA.xsd. It requires the parameterpropertyFilePath
, i.e., the path of the file that contains the property -
displayProperty
(dispp
): is used to display the property into the console. -
loadLTLProperty LTLProperty
(lpLTL LTLProperty
): it is used to load the property from an LTL formulaLTLProperty
is the LTL formula that represents the property. The LTL formula can be created starting from a set of propositional symbols, i.e., true, false any lowercase string, a set of boolean operators, i.e., ! (negation), -> (implication), <-> (equivalence), ^ (and), v (or), and a set of temporal operators, [] (always) <> (eventually), U (until), R (realease) (Spin syntax : V), X (next). -
check
(ck
): is used to check the model against the specified claim. Before running the model checking procedure it is necessary to load the model and the claim to be considered. The check command can be performed with the optional parameter -
computeConstraint
(cc
): is used to compute the constraint corresponding to the model and the specified claim.. -
saveConstraint constraintFilePath
(sc constraintFilePath
): is used to save the constraint in an XML file. The parameterconstraintFilePath
is the path of the file where the constraint must be saved -
displayConstraint
(dispc
): is used to display the constraint into the console.
The automata commands can be used in the replacement mode when a Replacement (BA) is considered against the constraint or a specific sub-property.
-
loadConstraint constraintFilePath
(lc constraintFilePath
): is used to load the constraint from an XML file. The XML file must match theConstraint.xsd
. It requires the parameterconstraintFilePath
, i.e., the path of the file that contains the constraint to be considered; -
displayConstraint
(dispc
): is used to display the constraint into the console; -
loadReplacement replacementFilePath
(lr replacementFilePath
): is used to load the replacement from an XML file. The XML file must mach theReplacement.xsd
. The parameterreplacementFilePath
is the path of the file that contains the replacement to be considered; -
displayReplacement
(dispr
): is used to display the replacement into the console. -
check
(ck
): is used to check the replacement against the corresponding sub-property.