Theta is a generic, modular and configurable model checking framework developed at the Critical Systems Research Group of Budapest University of Technology and Economics, aiming to support the design and evaluation of abstraction refinement-based algorithms for the reachability analysis of various formalisms. The main distinguishing characteristic of Theta is its architecture that allows the definition of input formalisms with higher level language front-ends, and the combination of various abstract domains, interpreters, and strategies for abstraction and refinement. Theta can both serve as a model checking backend, and also includes ready-to-use, stand-alone tools.
Tools are concrete instantiations of the framework to solve a certain problem using the built-in algorithms. Currently, the following tools are available (follow the links for more information).
theta-cfa-cli: Reachability checking of error locations in Control Flow Automata (CFA) using CEGAR-based algorithms.
theta-sts-cli: Verification of safety properties in Symbolic Transition Systems (STS) using CEGAR-based algorithms.
theta-xta-cli: Verification of Uppaal timed automata (XTA).theta-xsts-cli: Verification of safety properties in eXtended Symbolic Transition Systems (XSTS) using CEGAR-based algorithms.
theta-xcfa-cli: Reachability checking of error locations in eXtended Control Flow Automata (XCFA) using CEGAR-based algorithms. The CFA formalism is extended with procedures and processes, able to support multithreaded analysis and also several optimization passes. Right now it is mainly used to check both single and multithreaded C programs.
c-frontend module of Theta is capable of parsing C programs and transforming them into a formalism independent, in-memory representation. The xcfa-cli is able to convert this representation into an XCFA.To use Theta as a standalone tool, see the following deployments:
*-cli subprojects.jar filesTo use Theta as a library, see Maven Central.
Theta can be divided into the following four layers.
core project (e.g., expressions and statements) and each formalism has its own project.
Currently, the following formalisms are supported: (extended) symbolic transition systems (sts / xsts), (extended) control-flow automata (cfa / xcfa) and timed automata (xta).analysis project (e.g., CEGAR loop) and the formalism-specific modules (e.g., the interpreters) are implemented in separate analysis projects (with suffix -analysis) for each formalism.solver that supports incremental solving, unsat cores, and the generation of binary and sequence interpolants.
Currently, the interface is implemented by the Z3 SMT solver in the project solver-z3, but it can easily be extended with new solvers.-cli suffix.The table below shows the architecture and the projects. Each project contains a README.md in its root directory describing its purpose in more detail.
| Common | CFA | STS | XTA | XSTS | XCFA | |
|---|---|---|---|---|---|---|
| Tools | solver-smtlib-cli | cfa-cli | sts-cli | xta-cli | xsts-cli | xcfa-cli |
| Analyses | analysis | cfa-analysis | sts-analysis | xta-analysis | xsts-analysis | xcfa-analysis |
| Formalisms | core, common | cfa | sts | xta | xsts | xcfa |
| SMT solvers | solver, solver-z3, solver-smtlib |
If you want to extend Theta and build your own algorithms and tools, then take look at doc/Development.md.
If you want to read more, take a look at our list of publications. A good starting point is our tool paper and slides/talk presented at FMCAD 2017. Furthermore, our paper in the Journal of Automated Reasoning is a good overview of the algorithms in Theta.
To cite Theta as a tool, please use the following paper.
@inproceedings{theta-fmcad2017,
author = {T\'oth, Tam\'as and Hajdu, \'{A}kos and V\"or\"os, Andr\'as and Micskei, Zolt\'an and Majzik, Istv\'an},
year = {2017},
title = {Theta: a Framework for Abstraction Refinement-Based Model Checking},
booktitle = {Proceedings of the 17th Conference on Formal Methods in Computer-Aided Design},
isbn = {978-0-9835678-7-5},
editor = {Stewart, Daryl and Weissenbacher, Georg},
pages = {176--179},
doi = {10.23919/FMCAD.2017.8102257},
}
Supporters of the Theta project are listed below.
Content type
Image
Digest
sha256:5ce32a503…
Size
312.9 MB
Last updated
3 days ago
docker pull ftsrg/theta-sts-cli:6.29.3