-
[show abstract]
[hide abstract]
ABSTRACT: In previous work, we presented a symbolic execution method which starts with
a concrete model of the program but progressively abstracts away details only
when these are known to be irrelevant using interpolation. In this paper, we
extend the technique to handle unbounded loops. The central idea is to
progressively discover the strongest invariants through a process of loop
unrolling. The key feature of this technique, called the minimax algorithm, is
intelligent backtracking which directs the search for the next invariant. We
then present an analysis of the main differences between our symbolic execution
method and mainstream techniques mainly based on abstract refinement (CEGAR).
Finally, we evaluate our technique against available state-of-the-art systems.
03/2011;
-
Automated Technology for Verification and Analysis - 8th International Symposium, ATVA 2010, Singapore, September 21-24, 2010. Proceedings; 01/2010
-
[show abstract]
[hide abstract]
ABSTRACT: We consider the problem of exploring the search tree of a CLP goal in pursuit of a target property. Essential to such a process
is a method of tabling to prevent duplicate exploration. Typically, only actually traversed goals are memoed in the table.
In this paper we present a method where, upon the successful traversal of a subgoal, a generalization of the subgoal is memoed. This enlarges the record of already traversed goals, thus providing more pruning in the subsequent
search process. The key feature is that the abstraction computed is guaranteed not to give rise to a spurious path that might
violate the target property.
A driving application area is the use of CLP to model the behavior of other programs. We demonstrate the performance of our
method on a benchmark of program verfication problems.
09/2009: pages 454-469;
-
Principles and Practice of Constraint Programming - CP 2009, 15th International Conference, CP 2009, Lisbon, Portugal, September 20-24, 2009, Proceedings; 01/2009
-
FM 2009: Formal Methods, Second World Congress, Eindhoven, The Netherlands, November 2-6, 2009. Proceedings; 01/2009
-
[show abstract]
[hide abstract]
ABSTRACT: Recursively defined properties are ubiquitous. We present a proof method for establishing entailment
G \models H\mathcal{G} \models \mathcal{H}
of such properties
G\mathcal{G}
and
H\mathcal{H}
over a set of common variables. The main contribution is a particular proof rule based intuitively upon the concept of coinduction. This rule allows the inductive step of assuming that an entailment holds during the proof the entailment. In general, the
proof method is based on an unfolding (and no folding) algorithm that reduces recursive definitions to a point where only
constraint solving is necessary. The constraint-based proof obligation is then discharged with available solvers. The algorithm
executes the proof by a search-based method which automatically discovers the opportunity of applying induction instead of
the user having to specify some induction schema, and which does not require any base case.
09/2008: pages 493-508;
-
Principles and Practice of Constraint Programming, 14th International Conference, CP 2008, Sydney, Australia, September 14-18, 2008. Proceedings; 01/2008
-
Proceedings of the Twenty-Third AAAI Conference on Artificial Intelligence, AAAI 2008, Chicago, Illinois, USA, July 13-17, 2008; 01/2008
-
31st Annual International Computer Software and Applications Conference (COMPSAC 2007), 24-27 July 2007, Beijing, China; 01/2007
-
Proceedings of the ISCA 19th International Conference on Parallel and Distributed Computing Systems, September 20-11, 2006, San Francisco, California, USA; 01/2006
-
Verification, Model Checking, and Abstract Interpretation, 7th International Conference, VMCAI 2006, Charleston, SC, USA, January 8-10, 2006, Proceedings; 01/2006
-
Verification, Model Checking, and Abstract Interpretation, 7th International Conference, VMCAI 2006, Charleston, SC, USA, January 8-10, 2006, Proceedings; 01/2006
-
[show abstract]
[hide abstract]
ABSTRACT: We present an implementation of symbolic reachability analysis with the features of compositionality, and intermittent abstraction, in the sense of pefrorming approximation only at selected program points, if at all. The key advantages of compositionality
are well known, while those of intermittent abstraction are that the abstract domain required to ensure convergence of the
algorithm can be minimized, and that the cost of performing abstractions, now being intermittent, is reduced.
We start by formulating the problem in CLP, and first obtain compositionality. We then address two key efficiency challenges.
The first is that reasoning is required about the strongest-postcondition operator associated with an arbitrarily long program
fragment. This essentially means dealing with constraints over an unbounded number of variables describing the states between
the start and end of the program fragment at hand. This is addressed by using the variable elimination or projection mechanism
that is implicit in CLP systems. The second challenge is termination, that is, to determine which subgoals are redundant.
We address this by a novel formulation of memoization called coinductive tabling.
We finally evaluate the method experimentally. At one extreme, where abstraction is performed at every step, we compare against
a model checker. At the other extreme, where no abstraction is performed, we compare against a program verifier. Of course,
our method provides for the middle ground, with a flexible combination of abstraction and Hoare-style reasoning with predicate
transformers and loop-invariants.
12/2005: pages 17-32;
-
[show abstract]
[hide abstract]
ABSTRACT: Constraint Logic Programming has been successful as a programming language, and more recently, as a model of executable specifications.
There have been numerous works which use CLP to model programs and which use an adaptation of the CLP proof system for proving
certain properties, for example, the XMC system [3] uses SLG resolution on alternation-free μ-calculus formulas, and the work on deductive model checking [1] model for CTL properties on transition systems represented
as CLP rules. These, amongst other works, cover a limited class of programs and use specialized proof methods. In our work,
we present a systematic method to model a general class of programs, and provide adaptations of the CLP proof systems in order
to provide a systematic and general proof method.
10/2005: pages 412-413;
-
Logic Programming, 21st International Conference, ICLP 2005, Sitges, Spain, October 2-5, 2005, Proceedings; 01/2005
-
10th International Conference on Engineering of Complex Computer Systems (ICECCS 2005), 16-20 June 2005, Shanghai, China; 01/2005
-
[show abstract]
[hide abstract]
ABSTRACT: We present a framework for the parallelization of depth-first combinatorial search algorithms on a network of computers. Our architecture is based on work stealing and uses a small number of primitives which allow the processors (which we call workers) to obtain new work and to communicate to other workers. These primitives are a minimal imposition and integrate easily with constraint programming systems. The main contribution is an adaptive architecture which allows workers to incrementally join and leave and has good scaling properties as the number of workers increases. We show analytically that near linear-time speedup is possible for a large number of workers and the condition under which linear speedup is expected. Our empirical results illustrate that near-linear speedup for backtrack search is achieved for up to 61 workers, and suggest that near-linear speedup is possible with even more workers. The experiments also demonstrate where departures from linearity can occur for small problems and where the parallelism can itself affect the search as in branch and bound.
05/2004;
-
Proceedings of the 2004 ACM Symposium on Applied Computing (SAC), Nicosia, Cyprus, March 14-17, 2004; 01/2004
-
16th IEEE International Conference on Tools with Artificial Intelligence (ICTAI 2004), 15-17 November 2004, Boca Raton, FL, USA; 01/2004
-
Proceedings of the 25th IEEE Real-Time Systems Symposium (RTSS 2004), 5-8 December 2004, Lisbon, Portugal; 01/2004