RAIRO - Theoretical Informatics and Applications

Research Article

Deciding inclusion of set constants over infinite non-strict data structures

Manfred Schmidt-Schaussa1, David Sabela1 and Marko Schütza2

a1 Institut für Informatik, Johann Wolfgang Goethe-Universität, Postfach 11 19 32, 60054 Frankfurt, Germany; schauss@ki.informatik.uni-frankfurt.de

a2 Dept. of Mathematics and Computing Science, University of the South Pacific, Suva, Fiji Islands; schutz_m@usp.ac.fj

Abstract

Various static analyses of functional programming languages that permit infinite data structures make use of set constants like Top, Inf, and Bot, denoting all terms, all lists not eventually ending in Nil, and all non-terminating programs, respectively. We use a set language that permits union, constructors and recursive definition of set constants with a greatest fixpoint semantics in the set of all, also infinite, computable trees, where all term constructors are non-strict. This paper proves decidability, in particular DEXPTIME-completeness, of inclusion of co-inductively defined sets by using algorithms and results from tree automata and set constraints. The test for set inclusion is required by certain strictness analysis algorithms in lazy functional programming languages and could also be the basis for further set-based analyses.

(Received September 14 2005)

(Accepted September 21 2006)

(Online publication July 18 2007)

Key Words:

  • Functional programming languages;
  • lambda calculus;
  • strictness analysis;
  • set constraints;
  • tree automata

Mathematics Subject Classification:

  • 68N18;
  • 03B40;
  • 68Q25;
  • 68Q45
Metrics