10 research outputs found
Synthesis of a simple self-stabilizing system
With the increasing importance of distributed systems as a computing
paradigm, a systematic approach to their design is needed. Although the area of
formal verification has made enormous advances towards this goal, the resulting
functionalities are limited to detecting problems in a particular design. By
means of a classical example, we illustrate a simple template-based approach to
computer-aided design of distributed systems based on leveraging the well-known
technique of bounded model checking to the synthesis setting.Comment: In Proceedings SYNT 2014, arXiv:1407.493
Propagators and Solvers for the Algebra of Modular Systems
To appear in the proceedings of LPAR 21.
Solving complex problems can involve non-trivial combinations of distinct
knowledge bases and problem solvers. The Algebra of Modular Systems is a
knowledge representation framework that provides a method for formally
specifying such systems in purely semantic terms. Formally, an expression of
the algebra defines a class of structures. Many expressive formalism used in
practice solve the model expansion task, where a structure is given on the
input and an expansion of this structure in the defined class of structures is
searched (this practice overcomes the common undecidability problem for
expressive logics). In this paper, we construct a solver for the model
expansion task for a complex modular systems from an expression in the algebra
and black-box propagators or solvers for the primitive modules. To this end, we
define a general notion of propagators equipped with an explanation mechanism,
an extension of the alge- bra to propagators, and a lazy conflict-driven
learning algorithm. The result is a framework for seamlessly combining solving
technology from different domains to produce a solver for a combined system.Comment: To appear in the proceedings of LPAR 2
Understanding and Extending Incremental Determinization for 2QBF
Incremental determinization is a recently proposed algorithm for solving
quantified Boolean formulas with one quantifier alternation. In this paper, we
formalize incremental determinization as a set of inference rules to help
understand the design space of similar algorithms. We then present additional
inference rules that extend incremental determinization in two ways. The first
extension integrates the popular CEGAR principle and the second extension
allows us to analyze different cases in isolation. The experimental evaluation
demonstrates that the extensions significantly improve the performance
Program sketching
Sketching is a synthesis methodology that aims to bridge the gap between a programmer’s high-level insights about a problem and the computer’s ability to manage low-level details. In sketching, the programmer uses a partial program, a sketch, to describe the desired implementation strategy, and leaves the low-level details of the implementation to an automated synthesis procedure. In order to generate an implementation from the programmer provided sketch, the synthesizer uses counterexample-guided inductive synthesis (CEGIS). Inductive synthesis refers to the process of generating candidate implementations from concrete examples of correct or incorrect behavior. CEGIS combines a SAT-based inductive synthesizer with an automated validation procedure, a bounded model-checker, that checks whether the candidate implementation produced by inductive synthesis is indeed correct and to produce new counterexamples. The result is a synthesis procedure that is able to handle complex problems from a variety of domains including ciphers, scientific programs, and even concurrent data-structures
Compositional approach to design of digital circuits
PhD ThesisIn this work we explore compositional methods for design of digital circuits with
the aim of improving existing methodoligies for desigh reuse. We address compositionality
techniques looking from both structural and behavioural perspectives.
First we consider the existing method of handshake circuit optimisation via control
path resynthesis using Petri nets, an approach using structural composition. In
that approach labelled Petri net parallel composition plays an important role and
we introduce an improvement to the parallel composition algorithm, reducing the
number of redundant places in the resulting Petri net representations. The proposed
algorithm applies to labelled Petri nets in general and can be applied outside of the
handshake circuit optimisation use case.
Next we look at the conditional partial order graph (CPOG) formalism, an approach
that allows for a convenient representation of systems consisting of multiple
alternative system behaviours, a phenomenon we call behavioural composition. We
generalise the notion of CPOG and identify an algebraic structure on a more general
notion of parameterised graph. This allows us to do equivalence-preserving manipulation
of graphs in symbolic form, which simplifies specification and reasoning about
systems defined in this way, as displayed by two case studies.
As a third contribution we build upon the previous work of CPOG synthesis used
to generate binary encoding of microcontroller instruction sets and design the corresponding
instruction decoder logic. The proposed CPOG synthesis technique solves
the optimisation problem for the general case, reducing it to Boolean satisfiability
problem and uses existing SAT solving tools to obtain the result.This work was
supported by a studentship from Newcastle University EECE school, EPSRC grant
EP/G037809/1 (VERDAD) and EPSRC grant EP/K001698/1 (UNCOVER).
i
Computer Aided Verification
This open access two-volume set LNCS 10980 and 10981 constitutes the refereed proceedings of the 30th International Conference on Computer Aided Verification, CAV 2018, held in Oxford, UK, in July 2018. The 52 full and 13 tool papers presented together with 3 invited papers and 2 tutorials were carefully reviewed and selected from 215 submissions. The papers cover a wide range of topics and techniques, from algorithmic and logical foundations of verification to practical applications in distributed, networked, cyber-physical, and autonomous systems. They are organized in topical sections on model checking, program analysis using polyhedra, synthesis, learning, runtime verification, hybrid and timed systems, tools, probabilistic systems, static analysis, theory and security, SAT, SMT and decisions procedures, concurrency, and CPS, hardware, industrial applications
A Comparative Study of 2QBF Algorithms
Abstract. 2QBF is the problem of evaluating a Quantified Boolean Formula (QBF) with two levels of quantification. Many practical problems in sequential verification can be formulated as instances of 2QBF. Techniques that are not applicable to general QBF evaluation may be useful for 2QBF evaluation. In particular, decision order in search based algorithms may not obey quantification order for 2QBF evaluation algorithms. Different branching strategies in search based algorithms together with a resolution based method are described and compared. Experimental results on both random benchmarks and 2QBFs formulated from sequential circuit state space diameter problems are analyzed. Experiments show solvers specially tuned for 2QBF can be more efficient than similar general QBF solvers.