Negative Ternary Set-Sharing

  • Authors:
  • Eric Trias;Jorge Navas;Elena S. Ackley;Stephanie Forrest;M. Hermenegildo

  • Affiliations:
  • University of New Mexico, USA and Air Force Institute of Technology, USA;University of New Mexico, USA;University of New Mexico, USA;University of New Mexico, USA;University of New Mexico, USA and Technical U. of Madrid (Spain) and IMDEA-Software,

  • Venue:
  • ICLP '08 Proceedings of the 24th International Conference on Logic Programming
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

The Set-Sharing domain has been widely used to infer at compile-time interesting properties of logic programs such as occurs-check reduction, automatic parallelization, and finite-tree analysis. However, performing abstract unification in this domain requires a closure operation that increases the number of sharing groups exponentially. Much attention has been given to mitigating this key inefficiency in this otherwise very useful domain. In this paper we present a novel approach to Set-Sharing: we define a new representation that leverages the complement (or negative) sharing relationships of the original sharing set, without loss of accuracy. Intuitively, given an abstract state $sh_{\mathcal{V}}$ over the finite set of variables of interest $\mathcal{V}$, its negative representation is $\wp(\mathcal{V}) \setminus sh_{\mathcal{V}}$. Using this encoding during analysis dramatically reduces the number of elements that need to be represented in the abstract states and during abstract unification as the cardinality of the original set grows toward $2^{|\mathcal{V}|}$. To further compress the number of elements, we express the set-sharing relationships through a set of ternary strings that compacts the representation by eliminating redundancies among the sharing sets. Our experiments show that our approach can compress the number of relationships, reducing significantly the memory usage and running time of all abstract operations, including abstract unification.