4 research outputs found
Strong Invariants Are Hard: On the Hardness of Strongest Polynomial Invariants for (Probabilistic) Programs
We show that computing the strongest polynomial invariant for single-path
loops with polynomial assignments is at least as hard as the Skolem problem, a
famous problem whose decidability has been open for almost a century. While the
strongest polynomial invariants are computable for affine loops, for polynomial
loops the problem remained wide open. As an intermediate result of independent
interest, we prove that reachability for discrete polynomial dynamical systems
is Skolem-hard as well. Furthermore, we generalize the notion of invariant
ideals and introduce moment invariant ideals for probabilistic programs. With
this tool, we further show that the strongest polynomial moment invariant is
(i) uncomputable, for probabilistic loops with branching statements, and (ii)
Skolem-hard to compute for polynomial probabilistic loops without branching
statements. Finally, we identify a class of probabilistic loops for which the
strongest polynomial moment invariant is computable and provide an algorithm
for it
Templates and Recurrences: Better Together
This paper is the confluence of two streams of ideas in the literature on
generating numerical invariants, namely: (1) template-based methods, and (2)
recurrence-based methods. A template-based method begins with a template that
contains unknown quantities, and finds invariants that match the template by
extracting and solving constraints on the unknowns. A disadvantage of
template-based methods is that they require fixing the set of terms that may
appear in an invariant in advance. This disadvantage is particularly prominent
for non-linear invariant generation, because the user must supply maximum
degrees on polynomials, bases for exponents, etc. On the other hand,
recurrence-based methods are able to find sophisticated non-linear mathematical
relations, including polynomials, exponentials, and logarithms, because such
relations arise as the solutions to recurrences. However, a disadvantage of
past recurrence-based invariant-generation methods is that they are primarily
loop-based analyses: they use recurrences to relate the pre-state and
post-state of a loop, so it is not obvious how to apply them to a recursive
procedure, especially if the procedure is non-linearly recursive (e.g., a
tree-traversal algorithm). In this paper, we combine these two approaches and
obtain a technique that uses templates in which the unknowns are functions
rather than numbers, and the constraints on the unknowns are recurrences. The
technique synthesizes invariants involving polynomials, exponentials, and
logarithms, even in the presence of arbitrary control-flow, including any
combination of loops, branches, and (possibly non-linear) recursion. For
instance, it is able to show that (i) the time taken by merge-sort is , and (ii) the time taken by Strassen's algorithm is
.Comment: 20 pages, 3 figure