81,283 research outputs found
Data optimizations for constraint automata
Constraint automata (CA) constitute a coordination model based on finite
automata on infinite words. Originally introduced for modeling of coordinators,
an interesting new application of CAs is implementing coordinators (i.e.,
compiling CAs into executable code). Such an approach guarantees
correctness-by-construction and can even yield code that outperforms
hand-crafted code. The extent to which these two potential advantages
materialize depends on the smartness of CA-compilers and the existence of
proofs of their correctness.
Every transition in a CA is labeled by a "data constraint" that specifies an
atomic data-flow between coordinated processes as a first-order formula. At
run-time, compiler-generated code must handle data constraints as efficiently
as possible. In this paper, we present, and prove the correctness of two
optimization techniques for CA-compilers related to handling of data
constraints: a reduction to eliminate redundant variables and a translation
from (declarative) data constraints to (imperative) data commands expressed in
a small sequential language. Through experiments, we show that these
optimization techniques can have a positive impact on performance of generated
executable code
Linear Temporal Logic and Propositional Schemata, Back and Forth (extended version)
This paper relates the well-known Linear Temporal Logic with the logic of
propositional schemata introduced by the authors. We prove that LTL is
equivalent to a class of schemata in the sense that polynomial-time reductions
exist from one logic to the other. Some consequences about complexity are
given. We report about first experiments and the consequences about possible
improvements in existing implementations are analyzed.Comment: Extended version of a paper submitted at TIME 2011: contains proofs,
additional examples & figures, additional comparison between classical
LTL/schemata algorithms up to the provided translations, and an example of
how to do model checking with schemata; 36 pages, 8 figure
The Small-Is-Very-Small Principle
The central result of this paper is the small-is-very-small principle for
restricted sequential theories. The principle says roughly that whenever the
given theory shows that a property has a small witness, i.e. a witness in every
definable cut, then it shows that the property has a very small witness: i.e. a
witness below a given standard number.
We draw various consequences from the central result. For example (in rough
formulations): (i) Every restricted, recursively enumerable sequential theory
has a finitely axiomatized extension that is conservative w.r.t. formulas of
complexity . (ii) Every sequential model has, for any , an extension
that is elementary for formulas of complexity , in which the
intersection of all definable cuts is the natural numbers. (iii) We have
reflection for -sentences with sufficiently small witness in any
consistent restricted theory . (iv) Suppose is recursively enumerable
and sequential. Suppose further that every recursively enumerable and
sequential that locally inteprets , globally interprets . Then,
is mutually globally interpretable with a finitely axiomatized sequential
theory.
The paper contains some careful groundwork developing partial satisfaction
predicates in sequential theories for the complexity measure depth of
quantifier alternations
On Role Logic
We present role logic, a notation for describing properties of relational
structures in shape analysis, databases, and knowledge bases. We construct role
logic using the ideas of de Bruijn's notation for lambda calculus, an encoding
of first-order logic in lambda calculus, and a simple rule for implicit
arguments of unary and binary predicates. The unrestricted version of role
logic has the expressive power of first-order logic with transitive closure.
Using a syntactic restriction on role logic formulas, we identify a natural
fragment RL^2 of role logic. We show that the RL^2 fragment has the same
expressive power as two-variable logic with counting C^2 and is therefore
decidable. We present a translation of an imperative language into the
decidable fragment RL^2, which allows compositional verification of programs
that manipulate relational structures. In addition, we show how RL^2 encodes
boolean shape analysis constraints and an expressive description logic.Comment: 20 pages. Our later SAS 2004 result builds on this wor
Descriptive Complexity of Deterministic Polylogarithmic Time and Space
We propose logical characterizations of problems solvable in deterministic
polylogarithmic time (PolylogTime) and polylogarithmic space (PolylogSpace). We
introduce a novel two-sorted logic that separates the elements of the input
domain from the bit positions needed to address these elements. We prove that
the inflationary and partial fixed point vartiants of this logic capture
PolylogTime and PolylogSpace, respectively. In the course of proving that our
logic indeed captures PolylogTime on finite ordered structures, we introduce a
variant of random-access Turing machines that can access the relations and
functions of a structure directly. We investigate whether an explicit predicate
for the ordering of the domain is needed in our PolylogTime logic. Finally, we
present the open problem of finding an exact characterization of
order-invariant queries in PolylogTime.Comment: Submitted to the Journal of Computer and System Science
Software Model Checking with Explicit Scheduler and Symbolic Threads
In many practical application domains, the software is organized into a set
of threads, whose activation is exclusive and controlled by a cooperative
scheduling policy: threads execute, without any interruption, until they either
terminate or yield the control explicitly to the scheduler. The formal
verification of such software poses significant challenges. On the one side,
each thread may have infinite state space, and might call for abstraction. On
the other side, the scheduling policy is often important for correctness, and
an approach based on abstracting the scheduler may result in loss of precision
and false positives. Unfortunately, the translation of the problem into a
purely sequential software model checking problem turns out to be highly
inefficient for the available technologies. We propose a software model
checking technique that exploits the intrinsic structure of these programs.
Each thread is translated into a separate sequential program and explored
symbolically with lazy abstraction, while the overall verification is
orchestrated by the direct execution of the scheduler. The approach is
optimized by filtering the exploration of the scheduler with the integration of
partial-order reduction. The technique, called ESST (Explicit Scheduler,
Symbolic Threads) has been implemented and experimentally evaluated on a
significant set of benchmarks. The results demonstrate that ESST technique is
way more effective than software model checking applied to the sequentialized
programs, and that partial-order reduction can lead to further performance
improvements.Comment: 40 pages, 10 figures, accepted for publication in journal of logical
methods in computer scienc
- …