109 research outputs found
Strong Induction in Hardware Model Checking
Symbolic Model checking is a widely used technique for automated verification of both hardware and software systems. Unbounded SAT-based Symbolic Model Checking (SMC) algorithms are very popular in hardware verification. The principle of strong induction is one of the first techniques for SMC. While elegant and simple to apply, properties as such can rarely be proven using strong induction and when they can be strengthened, there is no effective strategy to guess the depth of induction. It has been mostly displaced by techniques that compute inductive strengthenings based on interpolation and property directed reachability (PDR). In this thesis, we prove that strong induction is more concise than induction. We then present kAvy, an SMC algorithm that effectively uses strong induction to guide interpolation and PDR-style incremental inductive invariant construction. Unlike pure strong induction, kAvy uses PDR-style generalization to compute and strengthen an inductive trace. Unlike pure PDR, kAvy uses relative strong induction to construct an inductive invariant. The depth of induction is adjusted dynamically by minimizing a proof of unsatisfiability. We have implemented kAvy within the Avy Model Checker and evaluated it on HWMCC instances. Our results show that kAvy is more effective than both Avy and PDR, and that using strong induction leads to faster running time and solving more instances. Further, on a class of benchmarks, called shift, kAvy is orders of magnitude faster than Avy, PDR and pure strong induction
CadiBack: Extracting Backbones with CaDiCaL
The backbone of a satisfiable formula is the set of literals that are true in all its satisfying assignments. Backbone computation can improve a wide range of SAT-based applications, such as verification, fault localization and product configuration. In this tool paper, we introduce a new backbone extraction tool called CadiBack. It takes advantage of unique features available in our state-of-the-art SAT solver CaDiCaL including transparent inprocessing and single clause assumptions, which have not been evaluated in this context before. In addition, CaDiCaL is enhanced with an improved algorithm to support model rotation by utilizing watched literal data structures. In our comprehensive experiments with a large number of benchmarks, CadiBack solves 60% more instances than the state-of-the-art backbone extraction tool MiniBones. Our tool is thoroughly tested with fuzzing, internal correctness checking and cross-checking on a large benchmark set. It is publicly available as open source, well documented and easy to extend
Incomplete SMT techniques for solving non-linear formulas over the integers
We present new methods for solving the Satisfiability Modulo Theories problem over the theory of QuantifierFree Non-linear Integer Arithmetic, SMT(QF-NIA), which consists of deciding the satisfiability of ground formulas with integer polynomial constraints. Following previous work, we propose to solve SMT(QF-NIA)
instances by reducing them to linear arithmetic: non-linear monomials are linearized by abstracting them
with fresh variables and by performing case splitting on integer variables with finite domain. For variables
that do not have a finite domain, we can artificially introduce one by imposing a lower and an upper bound
and iteratively enlarge it until a solution is found (or the procedure times out).
The key for the success of the approach is to determine, at each iteration, which domains have to be
enlarged. Previously, unsatisfiable cores were used to identify the domains to be changed, but no clue was
obtained as to how large the new domains should be. Here, we explain two novel ways to guide this process by
analyzing solutions to optimization problems: (i) to minimize the number of violated artificial domain bounds,
solved via a Max-SMT solver, and (ii) to minimize the distance with respect to the artificial domains, solved
via an Optimization Modulo Theories (OMT) solver. Using this SMT-based optimization technology allows
smoothly extending the method to also solve Max-SMT problems over non-linear integer arithmetic. Finally,
we leverage the resulting Max-SMT(QF-NIA) techniques to solve ∃∀ formulas in a fragment of quantified
non-linear arithmetic that appears commonly in verification and synthesis applications.Peer ReviewedPostprint (author's final draft
Proceedings of the 21st Conference on Formal Methods in Computer-Aided Design – FMCAD 2021
The Conference on Formal Methods in Computer-Aided Design (FMCAD) is an annual conference on the theory and applications of formal methods in hardware and system verification. FMCAD provides a leading forum to researchers in academia and industry for presenting and discussing groundbreaking methods, technologies, theoretical results, and tools for reasoning formally about computing systems. FMCAD covers formal aspects of computer-aided system design including verification, specification, synthesis, and testing
Finding Inductive Loop Invariants using Large Language Models
Loop invariants are fundamental to reasoning about programs with loops. They
establish properties about a given loop's behavior. When they additionally are
inductive, they become useful for the task of formal verification that seeks to
establish strong mathematical guarantees about program's runtime behavior. The
inductiveness ensures that the invariants can be checked locally without
consulting the entire program, thus are indispensable artifacts in a formal
proof of correctness. Finding inductive loop invariants is an undecidable
problem, and despite a long history of research towards practical solutions, it
remains far from a solved problem. This paper investigates the capabilities of
the Large Language Models (LLMs) in offering a new solution towards this old,
yet important problem. To that end, we first curate a dataset of verification
problems on programs with loops. Next, we design a prompt for exploiting LLMs,
obtaining inductive loop invariants, that are checked for correctness using
sound symbolic tools. Finally, we explore the effectiveness of using an
efficient combination of a symbolic tool and an LLM on our dataset and compare
it against a purely symbolic baseline. Our results demonstrate that LLMs can
help improve the state-of-the-art in automated program verification
Design and Optimisation of the FlyFast Front-end for Attribute-based Coordination
Collective Adaptive Systems (CAS) consist of a large number of interacting
objects. The design of such systems requires scalable analysis tools and
methods, which have necessarily to rely on some form of approximation of the
system's actual behaviour. Promising techniques are those based on mean-field
approximation. The FlyFast model-checker uses an on-the-fly algorithm for
bounded PCTL model-checking of selected individual(s) in the context of very
large populations whose global behaviour is approximated using deterministic
limit mean-field techniques. Recently, a front-end for FlyFast has been
proposed which provides a modelling language, PiFF in the sequel, for the
Predicate-based Interaction for FlyFast. In this paper we present details of
PiFF design and an approach to state-space reduction based on probabilistic
bisimulation for inhomogeneous DTMCs.Comment: In Proceedings QAPL 2017, arXiv:1707.0366
- …