Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2535838.2535858acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
research-article

Consistency analysis of decision-making programs

Published: 08 January 2014 Publication History

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.

Supplementary Material

MP4 File (d3_left_t6.mp4)

References

[1]
CGAL, Computational Geometry Algorithms Library. http://www.cgal.org.
[2]
J. Bertrand and A. Miné. Apron: A library of numerical abstract domains for static analysis. In CAV, pages 661--667, 2009.
[3]
François Bourdoncle. Abstract interpretation by dynamic partitioning. Journal of Functional Programming, 2(04):407--435, 1992.
[4]
S. Chaudhuri, S. Gulwani, and R. Lublinerman. Continuity analysis of programs. In POPL, pages 57--70, 2010.
[5]
S. Chaudhuri, S. Gulwani, and R. Lublinerman. Continuity and robustness s of programs. Commun. ACM, 55(8):107--115, 2012.
[6]
L. Chen, A. Miné, J. Wang, and P. Cousot. Interval polyhedra: An abstract domain to infer interval linear relationships. In SAS, 2009.
[7]
M. De Berg, O. Cheong, and M. Van Kreveld. Computational geometry: algorithms and applications. Springer-Verlag, 2008.
[8]
Mark de Berg, Marc van Kreveld, Mark Overmars, and Otfried Schwarzkopf. Computational Geometry: Algorithms and Applications. Springer-Verlag, 2000.
[9]
S. Devadoss and J. O'Rourke. Discrete and Computational Geometry. Princeton University Press, 2011.
[10]
S. Fortune. Stable maintenance of point set triangulations in two dimensions. In FOCS, pages 494--499, 1989.
[11]
E. Goubault. Static analyses of the precision of floating-point operations. In SAS, pages 234--259, 2001.
[12]
Ronald L. Graham. An efficient algorithm for determining the convex hull of a finite planar set. Inf. Process. Lett., 1(4):132--133, 1972.
[13]
J. Halpern. Reasoning about uncertainty. The MIT Press, 2003.
[14]
K. Hoder, N. Bjørner, and L. de Moura. μZ - an efficient engine for fixed points with constraints. In CAV, 2011.
[15]
C. Hoffmann, J. Hopcroft, and M. Karasick. Towards implementing robust geometric computations. In SoCG, pages 106--117, 1988.
[16]
C. M. Hoffmann. The problems of accuracy and robustness in geometriccomputation. Computer, 22(3):31--39, 1989.
[17]
D.E. Knuth. Axioms and Hulls (LNCS #606). Springer-Verlag, 1992.
[18]
R. Majumdar, E. Render, and P. Tabuada. A theory of robust software synthesis. CoRR, abs/1108.3540, 2011.
[19]
R. Majumdar and I. Saha. Symbolic robustness analysis. Real-Time Systems Symposium, IEEE International, 0:355--363, 2009.
[20]
K. Mehlhorn. The reliable algorithmic software challenge RASC, pages 255--263. 2003.
[21]
K. Mehlhorn and C. Yap. Robust geometric computation. http://cs.nyu.edu/≅yap/book/egc, 2011.
[22]
D. Monniaux. The pitfalls of verifying floating-point computations. ACM Trans. Program. Lang. Syst., 30(3), 2008.
[23]
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.
[24]
D. Pichardie and Y. Bertot. Formalizing convex hull algorithms. In TPHOLs, volume 2152 of LNCS, pages 346--361. Springer, 2001.
[25]
J. Reed and B. Pierce. Distance makes the types grow stronger: A calculus for differential privacy. In ICFP, 2010.
[26]
R. Shewchuk. Adaptive precision floating-point arithmetic and fast robust geometric predicates. Discrete & Computational Geometry, 18(3):305--363, 1997.

Cited By

View all
  • (2019)Steering Interpolants Generation with Efficient Interpolation Abstraction Exploration2019 International Symposium on Theoretical Aspects of Software Engineering (TASE)10.1109/TASE.2019.00-11(113-120)Online publication date: Jul-2019
  • (2017)Rigorous floating-point mixed-precision tuningACM SIGPLAN Notices10.1145/3093333.300984652:1(300-315)Online publication date: 1-Jan-2017
  • (2017)Rigorous floating-point mixed-precision tuningProceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages10.1145/3009837.3009846(300-315)Online publication date: 1-Jan-2017
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
POPL '14: Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
January 2014
702 pages
ISBN:9781450325448
DOI:10.1145/2535838
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 08 January 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. consistency
  2. geometry
  3. program analysis
  4. robustness
  5. uncertainty

Qualifiers

  • Research-article

Conference

POPL '14
Sponsor:

Acceptance Rates

POPL '14 Paper Acceptance Rate 51 of 220 submissions, 23%;
Overall Acceptance Rate 824 of 4,130 submissions, 20%

Upcoming Conference

POPL '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)20
  • Downloads (Last 6 weeks)4
Reflects downloads up to 12 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2019)Steering Interpolants Generation with Efficient Interpolation Abstraction Exploration2019 International Symposium on Theoretical Aspects of Software Engineering (TASE)10.1109/TASE.2019.00-11(113-120)Online publication date: Jul-2019
  • (2017)Rigorous floating-point mixed-precision tuningACM SIGPLAN Notices10.1145/3093333.300984652:1(300-315)Online publication date: 1-Jan-2017
  • (2017)Rigorous floating-point mixed-precision tuningProceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages10.1145/3009837.3009846(300-315)Online publication date: 1-Jan-2017
  • (2016)Guiding Craig interpolation with domain-specific abstractionsActa Informatica10.1007/s00236-015-0236-z53:4(387-424)Online publication date: 1-Jun-2016
  • (2015)Practical Floating-Point Divergence DetectionRevised Selected Papers of the 28th International Workshop on Languages and Compilers for Parallel Computing - Volume 951910.1007/978-3-319-29778-1_17(271-286)Online publication date: 9-Sep-2015

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media