5,366 research outputs found
The Design of the Fifth Answer Set Programming Competition
Answer Set Programming (ASP) is a well-established paradigm of declarative
programming that has been developed in the field of logic programming and
nonmonotonic reasoning. Advances in ASP solving technology are customarily
assessed in competition events, as it happens for other closely-related
problem-solving technologies like SAT/SMT, QBF, Planning and Scheduling. ASP
Competitions are (usually) biennial events; however, the Fifth ASP Competition
departs from tradition, in order to join the FLoC Olympic Games at the Vienna
Summer of Logic 2014, which is expected to be the largest event in the history
of logic. This edition of the ASP Competition series is jointly organized by
the University of Calabria (Italy), the Aalto University (Finland), and the
University of Genova (Italy), and is affiliated with the 30th International
Conference on Logic Programming (ICLP 2014). It features a completely
re-designed setup, with novelties involving the design of tracks, the scoring
schema, and the adherence to a fixed modeling language in order to push the
adoption of the ASP-Core-2 standard. Benchmark domains are taken from past
editions, and best system packages submitted in 2013 are compared with new
versions and solvers.
To appear in Theory and Practice of Logic Programming (TPLP).Comment: 10 page
On Counterexample Guided Quantifier Instantiation for Synthesis in CVC4
We introduce the first program synthesis engine implemented inside an SMT
solver. We present an approach that extracts solution functions from
unsatisfiability proofs of the negated form of synthesis conjectures. We also
discuss novel counterexample-guided techniques for quantifier instantiation
that we use to make finding such proofs practically feasible. A particularly
important class of specifications are single-invocation properties, for which
we present a dedicated algorithm. To support syntax restrictions on generated
solutions, our approach can transform a solution found without restrictions
into the desired syntactic form. As an alternative, we show how to use
evaluation function axioms to embed syntactic restrictions into constraints
over algebraic datatypes, and then use an algebraic datatype decision procedure
to drive synthesis. Our experimental evaluation on syntax-guided synthesis
benchmarks shows that our implementation in the CVC4 SMT solver is competitive
with state-of-the-art tools for synthesis
Proving termination through conditional termination
We present a constraint-based method for proving conditional termination of integer programs. Building on this, we construct a framework to prove (unconditional) program termination using a powerful mechanism to combine conditional termination proofs. Our key insight is that a conditional termination proof shows termination for a subset of program execution states which do not need to be considered in the remaining analysis. This facilitates more effective termination as well as non-termination analyses, and allows handling loops with different execution phases naturally. Moreover, our method can deal with sequences of loops compositionally. In an empirical evaluation, we show that our implementation VeryMax outperforms state-of-the-art tools on a range of standard benchmarks.Peer ReviewedPostprint (author's final draft
SMT-based Model Checking for Recursive Programs
We present an SMT-based symbolic model checking algorithm for safety
verification of recursive programs. The algorithm is modular and analyzes
procedures individually. Unlike other SMT-based approaches, it maintains both
"over-" and "under-approximations" of procedure summaries. Under-approximations
are used to analyze procedure calls without inlining. Over-approximations are
used to block infeasible counterexamples and detect convergence to a proof. We
show that for programs and properties over a decidable theory, the algorithm is
guaranteed to find a counterexample, if one exists. However, efficiency depends
on an oracle for quantifier elimination (QE). For Boolean Programs, the
algorithm is a polynomial decision procedure, matching the worst-case bounds of
the best BDD-based algorithms. For Linear Arithmetic (integers and rationals),
we give an efficient instantiation of the algorithm by applying QE "lazily". We
use existing interpolation techniques to over-approximate QE and introduce
"Model Based Projection" to under-approximate QE. Empirical evaluation on
SV-COMP benchmarks shows that our algorithm improves significantly on the
state-of-the-art.Comment: originally published as part of the proceedings of CAV 2014; fixed
typos, better wording at some place
- …