308,410 research outputs found
On Model-Checking Higher-Order Effectful Programs (Long Version)
Model-checking is one of the most powerful techniques for verifying systems
and programs, which since the pioneering results by Knapik et al., Ong, and
Kobayashi, is known to be applicable to functional programs with higher-order
types against properties expressed by formulas of monadic second-order logic.
What happens when the program in question, in addition to higher-order
functions, also exhibits algebraic effects such as probabilistic choice or
global store? The results in the literature range from those, mostly positive,
about nondeterministic effects, to those about probabilistic effects, in the
presence of which even mere reachability becomes undecidable. This work takes a
fresh and general look at the problem, first of all showing that there is an
elegant and natural way of viewing higher-order programs producing algebraic
effects as ordinary higher-order recursion schemes. We then move on to consider
effect handlers, showing that in their presence the model checking problem is
bound to be undecidable in the general case, while it stays decidable when
handlers have a simple syntactic form, still sufficient to capture so-called
generic effects. Along the way we hint at how a general specification language
could look like, this way justifying some of the results in the literature, and
deriving new ones
On the Termination Problem for Probabilistic Higher-Order Recursive Programs
In the last two decades, there has been much progress on model checking of
both probabilistic systems and higher-order programs. In spite of the emergence
of higher-order probabilistic programming languages, not much has been done to
combine those two approaches. In this paper, we initiate a study on the
probabilistic higher-order model checking problem, by giving some first
theoretical and experimental results. As a first step towards our goal, we
introduce PHORS, a probabilistic extension of higher-order recursion schemes
(HORS), as a model of probabilistic higher-order programs. The model of PHORS
may alternatively be viewed as a higher-order extension of recursive Markov
chains. We then investigate the probabilistic termination problem -- or,
equivalently, the probabilistic reachability problem. We prove that almost sure
termination of order-2 PHORS is undecidable. We also provide a fixpoint
characterization of the termination probability of PHORS, and develop a sound
(but possibly incomplete) procedure for approximately computing the termination
probability. We have implemented the procedure for order-2 PHORSs, and
confirmed that the procedure works well through preliminary experiments that
are reported at the end of the article
Symbolic Backwards-Reachability Analysis for Higher-Order Pushdown Systems
Higher-order pushdown systems (PDSs) generalise pushdown systems through the
use of higher-order stacks, that is, a nested "stack of stacks" structure.
These systems may be used to model higher-order programs and are closely
related to the Caucal hierarchy of infinite graphs and safe higher-order
recursion schemes.
We consider the backwards-reachability problem over higher-order Alternating
PDSs (APDSs), a generalisation of higher-order PDSs. This builds on and extends
previous work on pushdown systems and context-free higher-order processes in a
non-trivial manner. In particular, we show that the set of configurations from
which a regular set of higher-order APDS configurations is reachable is regular
and computable in n-EXPTIME. In fact, the problem is n-EXPTIME-complete.
We show that this work has several applications in the verification of
higher-order PDSs, such as linear-time model-checking, alternation-free
mu-calculus model-checking and the computation of winning regions of
reachability games
Streett Automata Model Checking of Higher-Order Recursion Schemes
We propose a practical algorithm for Streett automata model checking of higher-order recursion schemes (HORS), which checks whether the tree generated by a given HORS is accepted by a given Streett automaton. The Streett automata model checking of HORS is useful in the context of liveness verification of higher-order functional programs. The previous approach to Streett automata model checking converted Streett automata to parity automata and then invoked a parity tree automata model checker. We show through experiments that our direct approach outperforms the previous approach. Besides being able to directly deal with Streett automata, our algorithm is the first practical Streett or parity automata model checking algorithm that runs in time polynomial in the size of HORS, assuming that the other parameters are fixed. Previous practical fixed-parameter polynomial time algorithms for HORS could only deal with the class of trivial tree automata. We have confirmed through experiments that (a parity automata version of) our model checker outperforms previous parity automata model checkers for HORS
The Complexity of Model Checking (Collapsible) Higher-Order Pushdown Systems
We study (collapsible) higher-order pushdown systems --- theoretically robust and well-studied models of higher-order programs --- along with their natural subclass called (collapsible) higher-order basic process algebras. We provide a comprehensive analysis of the model checking complexity of a range of both branching-time and linear-time temporal logics. We obtain tight bounds on data, expression, and combined-complexity for both (collapsible) higher-order pushdown systems and (collapsible) higher-order basic process algebra. At order-, results range from polynomial to -exponential time. Finally, we study (collapsible) higher-order basic process algebras as graph generators and show that they are almost as powerful as (collapsible) higher-order pushdown systems up to MSO interpretations
Untyped Recursion Schemes and Infinite Intersection Types
Abstract. A new framework for higher-order program verification has been recently proposed, in which higher-order functional programs are modelled as higher-order recursion schemes and then model-checked. As recursion schemes are essentially terms of the simply-typed lambda-calculus with recursion and tree constructors, however, it was not clear how the new framework applies to programs written in languages with more advanced type systems. To circumvent the limitation, this paper introduces an untyped version of recursion schemes and develops an in-finite intersection type system that is equivalent to the model checking of untyped recursion schemes, so that the model checking can be re-duced to type checking as in recent work by Kobayashi and Ong for typed recursion schemes. The type system is undecidable but we can obtain decidable subsets of the type system by restricting the shapes of intersection types, yielding a sound (but incomplete in general) model checking algorithm.
- …