Dissecting Widening: Separating Termination from Information. Gange, G., Navas, J. A., Schachte, P., Søndergaard, H., & Stuckey, P. J. In Proceedings of the 17th Asian Symposium on Programming Languages and Systems, volume 11893, of Lecture Notes in Computer Science, pages 95–114, 2019. Springer.
doi  abstract   bibtex   
Widening ensures or accelerates convergence of a program analysis, and sometimes contributes a guarantee of soundness that would otherwise be absent. In this paper we propose a generalised view of widening, in which widening operates on values that are not necessarily elements of the given abstract domain, although they must be in a correspondence, the details of which we spell out. We show that the new view generalizes the traditional view, and that at least three distinct advantages flow from the generalization. First, it gives a handle on ``compositional safety'', the problem of creating widening operators for product domains. Second, it adds a degree of flexibility, allowing us to define variants of widening, such as delayed widening, without resorting to intrusive surgery on an underlying fixpoint engine. Third, it adds a degree of robustness, by making it difficult for an analysis implementor to make certain subtle (syntactic vs semantic) category mistakes. The paper supports these claims with examples. Our proposal has been implemented in a state-of-the-art abstract interpreter, and we briefly report on the changes that the revised view necessitated.
@InProceedings{Gan-Nav-Sch-Son-Stu_APLAS19,
  author    = {Graeme Gange and 
		Jorge A. Navas and 
		Peter Schachte and 
		Harald S{\o}ndergaard and 
		Peter J. Stuckey},
  title     = {Dissecting Widening: Separating Termination from Information},
  editor    = {A. W. Lin},
  booktitle = {Proceedings of the 17th Asian Symposium on Programming 
		Languages and Systems},
  series    = {Lecture Notes in Computer Science},
  volume    = {11893},
  pages     = {95--114},
  publisher = {Springer},
  year      = {2019},
  doi       = {10.1007/978-3-030-34175-6_6},
  abstract  = {Widening ensures or accelerates convergence of a program 
		analysis, and sometimes contributes a guarantee of soundness 
		that would otherwise be absent. In this paper we propose a 
		generalised view of widening, in which widening operates on 
		values that are not necessarily elements of the given abstract
		domain, although they must be in a correspondence, the details
		of which we spell out. We show that the new view generalizes 
		the traditional view, and that at least three distinct 
		advantages flow from the generalization. First, it gives a 
		handle on ``compositional safety'', the problem of creating 
		widening operators for product domains. Second, it adds a 
		degree of flexibility, allowing us to define variants of 
		widening, such as delayed widening, without resorting to 
		intrusive surgery on an underlying fixpoint engine.  Third, 
		it adds a degree of robustness, by making it difficult for
		an analysis implementor to make certain subtle (syntactic vs 
		semantic) category mistakes. The paper supports these claims 
		with examples. Our proposal has been implemented in a 
		state-of-the-art abstract interpreter, and we briefly report 
		on the changes that the revised view necessitated.},
  keywords  = {Fixed points, Abstract domains, Abstract interpretation, Widening},
}

Downloads: 0