Nothing Special   »   [go: up one dir, main page]

skip to main content
10.5555/2032305.2032327guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Smoothing a program soundly and robustly

Published: 14 July 2011 Publication History

Abstract

We study the foundations of smooth interpretation, a recently-proposed program approximation scheme that facilitates the use of local numerical search techniques (e.g., gradient descent) in program analysis and synthesis. While the popular techniques for local optimization works well only on relatively smooth functions, functions encoded by real-world programs are infested with discontinuities and local irregular features. Smooth interpretation attenuates such features by taking the convolution of the program with a Gaussian function, effectively replacing discontinuous switches in the program by continuous transitions. In doing so, it extends to programs the notion of Gaussian smoothing, a popular signal-processing technique used to filter noise and discontinuities from signals.
Exact Gaussian smoothing of programs is undecidable, so algorithmic implementations of smooth interpretation must necessarily be approximate. In this paper, we characterize the approximations carried out by such algorithms. First, we identify three correctness properties-- soundness, robustness, and β-robustness--that an approximate smooth interpreter should satisfy. In particular, a smooth interpreter is sound if it computes an abstraction of a program's "smoothed" semantics, and robust if it has arbitrary-order derivatives in the input variables at every point in its input space. Second, we describe the design of an approximate smooth interpreter that provably satisfies these properties. The interpreter combines program abstraction using a new domain with symbolic calculation of convolution.

References

[1]
Burnim, J., Juvekar, S., Sen, K.: Wise: Automated test generation for worst-case complexity. In: ICSE, pp. 463-473 (2009).
[2]
Chaudhuri, S., Gulwani, S., Lublinerman, R.: Continuity analysis of programs. In: POPL (2010).
[3]
Chaudhuri, S., Gulwani, S., Lublinerman, R., Navidpour, S.: Proving programs robust (2011).
[4]
Chaudhuri, S., Solar-Lezama, A.: Smooth interpretation. In: PLDI (2010).
[5]
Chen, L., Miné, A., Wang, J., Cousot, P.: Interval polyhedra: An abstract domain to infer interval linear relationships. In: Palsberg, J., Su, Z. (eds.) SAS 2009. LNCS, vol. 5673, pp. 309-325. Springer, Heidelberg (2009).
[6]
Chen, L., Miné, A., Wang, J., Cousot, P.: An abstract domain to discover interval linear equalities. In: Barthe, G., Hermenegildo, M. (eds.) VMCAI 2010. LNCS, vol. 5944, pp. 112-128. Springer, Heidelberg (2010).
[7]
Chen, X.: Convergence of the BFGS method for LC convex constrained optimization. SIAM J. Control and Optim. 14, 2063 (1996).
[8]
Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: POPL (1977).
[9]
DeMillo, R., Lipton, R.: Defining software by continuous, smooth functions. IEEE Transactions on Software Engineering 17(4), 383-384 (1991).
[10]
Hager, W.W., Zhang, H.: A survey of nonlinear conjugate gradient methods. Pacific Journal of Optimization 2(1), 35-58 (2006).
[11]
Nesterov, Y.: Smooth minimization of non-smooth functions. Mathematical Programming 103(1), 127-152 (2005).
[12]
Russ, J.: The image processing handbook. CRC Press, Boca Raton (2007).

Cited By

View all
  • (2014)Bridging boolean and quantitative synthesis using smoothed proof searchACM SIGPLAN Notices10.1145/2578855.253585949:1(207-220)Online publication date: 8-Jan-2014
  • (2014)Bridging boolean and quantitative synthesis using smoothed proof searchProceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages10.1145/2535838.2535859(207-220)Online publication date: 11-Jan-2014
  • (2013)Static analysis for probabilistic programsACM SIGPLAN Notices10.1145/2499370.246217948:6(447-458)Online publication date: 16-Jun-2013
  • Show More Cited By
  1. Smoothing a program soundly and robustly

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image Guide Proceedings
    CAV'11: Proceedings of the 23rd international conference on Computer aided verification
    July 2011
    762 pages
    ISBN:9783642221095

    Sponsors

    • Fujitsu
    • Google Inc.
    • Microsoft Research: Microsoft Research
    • Intel: Intel
    • IBM: IBM

    Publisher

    Springer-Verlag

    Berlin, Heidelberg

    Publication History

    Published: 14 July 2011

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 12 Feb 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2014)Bridging boolean and quantitative synthesis using smoothed proof searchACM SIGPLAN Notices10.1145/2578855.253585949:1(207-220)Online publication date: 8-Jan-2014
    • (2014)Bridging boolean and quantitative synthesis using smoothed proof searchProceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages10.1145/2535838.2535859(207-220)Online publication date: 11-Jan-2014
    • (2013)Static analysis for probabilistic programsACM SIGPLAN Notices10.1145/2499370.246217948:6(447-458)Online publication date: 16-Jun-2013
    • (2013)Static analysis for probabilistic programsProceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/2491956.2462179(447-458)Online publication date: 16-Jun-2013
    • (2012)Continuity and robustness of programsCommunications of the ACM10.1145/2240236.224026255:8(107-115)Online publication date: 1-Aug-2012
    • (2012)Randomized accuracy-aware program transformations for efficient approximate computationsProceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages10.1145/2103656.2103710(441-454)Online publication date: 25-Jan-2012
    • (2012)Randomized accuracy-aware program transformations for efficient approximate computationsACM SIGPLAN Notices10.1145/2103621.210371047:1(441-454)Online publication date: 25-Jan-2012
    • (2012)EULERProceedings of the 24th international conference on Computer Aided Verification10.1007/978-3-642-31424-7_57(732-737)Online publication date: 7-Jul-2012

    View Options

    View options

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media