Abstract

Applications in many areas of computing make discrete decisions under uncertainty, for reasons such as limited numerical precision in calculations and errors in sensor-derived inputs. As a result, individual decisions made by such programs may be nondeterministic, and lead to contradictory decisions at different points of an execution. This means that an otherwise correct program may execute along paths, that it would not follow under its ideal semantics, violating essential program invariants on the way. A program is said to be consistent if it does not suffer from this problem despite uncertainty in decisions.
In this paper, we present a sound, automatic program analysis for verifying that a program is consistent in this sense. Our analysis proves that each decision made along a program execution is consistent with the decisions made earlier in the execution. The proof is done by generating an invariant that abstracts the set of all decisions made along executions that end at a program location l, then verifying, using a fixpoint constraint-solver, that no contradiction can be derived when these decisions are combined with new decisions made at l.
We evaluate our analysis on a collection of programs implementing algorithms in computational geometry. Consistency is known to be a critical, frequently-violated, and thoroughly studied correctness property in geometry, but ours is the first attempt at automated verification of consistency of geometric algorithms. Our benchmark suite consists of implementations of convex hull computation, triangulation, and point location algorithms. On almost all examples that are not consistent (with two exceptions), our analysis is able to verify consistency within a few minutes.
Supplemental Material
- CGAL, Computational Geometry Algorithms Library. http://www.cgal.org.Google Scholar
- J. Bertrand and A. Miné. Apron: A library of numerical abstract domains for static analysis. In CAV, pages 661--667, 2009. Google Scholar
Digital Library
- François Bourdoncle. Abstract interpretation by dynamic partitioning. Journal of Functional Programming, 2(04):407--435, 1992.Google Scholar
Cross Ref
- S. Chaudhuri, S. Gulwani, and R. Lublinerman. Continuity analysis of programs. In POPL, pages 57--70, 2010. Google Scholar
Digital Library
- S. Chaudhuri, S. Gulwani, and R. Lublinerman. Continuity and robustness s of programs. Commun. ACM, 55(8):107--115, 2012. Google Scholar
Digital Library
- L. Chen, A. Miné, J. Wang, and P. Cousot. Interval polyhedra: An abstract domain to infer interval linear relationships. In SAS, 2009. Google Scholar
Digital Library
- M. De Berg, O. Cheong, and M. Van Kreveld. Computational geometry: algorithms and applications. Springer-Verlag, 2008. Google Scholar
Digital Library
- Mark de Berg, Marc van Kreveld, Mark Overmars, and Otfried Schwarzkopf. Computational Geometry: Algorithms and Applications. Springer-Verlag, 2000. Google Scholar
Digital Library
- S. Devadoss and J. O'Rourke. Discrete and Computational Geometry. Princeton University Press, 2011.Google Scholar
- S. Fortune. Stable maintenance of point set triangulations in two dimensions. In FOCS, pages 494--499, 1989. Google Scholar
Digital Library
- E. Goubault. Static analyses of the precision of floating-point operations. In SAS, pages 234--259, 2001. Google Scholar
Digital Library
- Ronald L. Graham. An efficient algorithm for determining the convex hull of a finite planar set. Inf. Process. Lett., 1(4):132--133, 1972.Google Scholar
Cross Ref
- J. Halpern. Reasoning about uncertainty. The MIT Press, 2003. Google Scholar
Digital Library
- K. Hoder, N. Bjørner, and L. de Moura. μZ - an efficient engine for fixed points with constraints. In CAV, 2011. Google Scholar
Digital Library
- C. Hoffmann, J. Hopcroft, and M. Karasick. Towards implementing robust geometric computations. In SoCG, pages 106--117, 1988. Google Scholar
Digital Library
- C. M. Hoffmann. The problems of accuracy and robustness in geometriccomputation. Computer, 22(3):31--39, 1989. Google Scholar
Digital Library
- D.E. Knuth. Axioms and Hulls (LNCS #606). Springer-Verlag, 1992.Google Scholar
- R. Majumdar, E. Render, and P. Tabuada. A theory of robust software synthesis. CoRR, abs/1108.3540, 2011.Google Scholar
- R. Majumdar and I. Saha. Symbolic robustness analysis. Real-Time Systems Symposium, IEEE International, 0:355--363, 2009. Google Scholar
Digital Library
- K. Mehlhorn. The reliable algorithmic software challenge RASC, pages 255--263. 2003. Google Scholar
Digital Library
- K. Mehlhorn and C. Yap. Robust geometric computation. http://cs.nyu.edu/≅yap/book/egc, 2011.Google Scholar
- D. Monniaux. The pitfalls of verifying floating-point computations. ACM Trans. Program. Lang. Syst., 30(3), 2008. Google Scholar
Digital Library
- George C. Necula, Scott McPeak, Shree Prakash Rahul, and Westley Weimer. CIL: Intermediate language and tools for analysis and transformation of C programs. In CC, pages 213--228, 2002. Google Scholar
Digital Library
- D. Pichardie and Y. Bertot. Formalizing convex hull algorithms. In TPHOLs, volume 2152 of LNCS, pages 346--361. Springer, 2001. Google Scholar
Digital Library
- J. Reed and B. Pierce. Distance makes the types grow stronger: A calculus for differential privacy. In ICFP, 2010. Google Scholar
Digital Library
- R. Shewchuk. Adaptive precision floating-point arithmetic and fast robust geometric predicates. Discrete & Computational Geometry, 18(3):305--363, 1997.Google Scholar
Cross Ref
Index Terms
Consistency analysis of decision-making programs
Recommendations
Consistency analysis of decision-making programs
POPL '14: Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming LanguagesApplications in many areas of computing make discrete decisions under uncertainty, for reasons such as limited numerical precision in calculations and errors in sensor-derived inputs. As a result, individual decisions made by such programs may be ...
Modeling Completeness versus Consistency Tradeoffs in Information Decision Contexts
Decision makers often confront the issue of whether to utilize information based on incomplete but consistent data or instead rely on complete but less consistent data. For a given decision context, this paper introduces a framework that permits the ...
A consistency and consensus based decision support model for group decision making with multiplicative preference relations
In group decision making (GDM) with multiplicative preference relations (also known as pairwise comparison matrices in the Analytical Hierarchy Process), to come to a meaningful and reliable solution, it is preferable to consider individual consistency ...







Comments