Proving programs robust

@inproceedings{Chaudhuri2011ProvingPR,
  title={Proving programs robust},
  author={Swarat Chaudhuri and Sumit Gulwani and Roberto Lublinerman and S. Mohammad Navidpour},
  booktitle={ESEC/FSE '11},
  year={2011}
}
We present a program analysis for verifying quantitative robustness properties of programs, stated generally as: "If the inputs of a program are perturbed by an arbitrary amount epsilon, then its outputs change at most by (K . epsilon), where K can depend on the size of the input but not its value." Robustness properties generalize the analytic notion of continuity---e.g., while the function ex is continuous, it is not robust. Our problem is to verify the robustness of a function P that is… 

Figures and Tables from this paper

Non-local Robustness Analysis via Rewriting Techniques: Abstract at the Quantities in Formal Methods
TLDR
This paper proposes a method for proving a while-loop always returns finite precision values close to the exact values and shows the applicability of the method on two standard algorithms: the CORDIC computation of the cosine and Dijkstra’s shortest path algorithm.
Continuity and robustness of programs
TLDR
It is argued that notions of continuity from mathematical analysis are relevant and interesting even for software, and an mostly-automatic framework for verifying that a program is continuous or Lipschitz is given.
Robustness Analysis of Floating-Point Programs by Self-Composition
TLDR
This paper proposes to leverage the idea of self-composition to transform the robustness analysis problem into a reachability problem, which enables the use of standard reachability analysis techniques such as software model checking and symbolic execution for robustnessAnalysis.
Robustness Analysis of Finite Precision Implementations
TLDR
A new abstract-interpretation based error analysis of finite precision implementations is proposed, which is sound in presence of unstable tests, by bounding the discontinuity error for path divergences and gives a tractable analysis implemented in the FLUCTUAT analyzer.
Verifying safety and accuracy of approximate parallel programs via canonical sequentialization
TLDR
To the best of the knowledge, Parallely is the first system designed to analyze parallel approximate programs and automatically and efficiently proves type safety, reliability, and accuracy properties of the approximate benchmarks.
Logical reasoning for approximate and unreliable computation
TLDR
This thesis presents the first general programming systems for precisely verifying and reasoning about the programs that result from transformation, compilation, and runtime techniques, and presents a programming language and program logic for verifying worstcase properties of a transformed program.
F L ] 3 J un 2 01 5 Lipschitz Robustness of Timed I / O Systems
TLDR
This work studies the behavior of such timed I/O systems in the presence of uncertain inputs and formalizes their robustness using the analytic notion of Lipschitz continuity, the first study of robustness of systems that are both timed as well as reactive (I/O).
Lipschitz Robustness of Timed I/O Systems
TLDR
The first study of robustness of systems that are both timed as well as reactive I/O systems in the presence of uncertain inputs is presented, and it is shown that K-robustness of timed transducers can be decided in polynomial space under certain conditions.
Lipschitz Robustness of Finite-state Transducers
TLDR
This work investigates the problem of checking if a finite-state transducer is robust to uncertainty in its input, and identifies a class of functional transducers, which admits a polynomial time automata-theoretic decision procedure for K-robustness.
A non-local method for robustness analysis of floating point programs
TLDR
This work proposes a method for proving the robustness of a while-loop and shows the applicability of the method on two standard algorithms: the CORDIC computation of the cosine and Dijkstra's shortest path algorithm.
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 34 REFERENCES
Symbolic Robustness Analysis
TLDR
An algorithm and a tool are presented to characterize the robustness of a control software implementation, based on symbolic execution and non-linear optimization, and computes the maximum difference in program outputs over all program paths when a program input is perturbed.
Continuity analysis of programs
TLDR
An analysis is presented to automatically determine if a program represents a continuous function, or equivalently, if infinitesimal changes to its inputs can only cause infiniteimalChanges to its outputs, and to identify appropriate ``synchronization points'' between executions and their perturbed counterparts.
Systematic testing for control applications
  • R. Majumdar, I. Saha, Zilong Wang
  • Computer Science
    Eighth ACM/IEEE International Conference on Formal Methods and Models for Codesign (MEMOCODE 2010)
  • 2010
TLDR
This work demonstrates how a concolic execution tool can be modified to automatically analyze controller implementations and produce test cases achieving a coverage goal, and verify robustness of an implementation under input uncertainties.
Probabilistically Accurate Program Transformations
The standard approach to program transformation involves the use of discrete logical reasoning to prove that the transformation does not change the observable semantics of the program. We propose a
Cyber Physical Systems: Design Challenges
  • Edward A. Lee
  • Computer Science
    2008 11th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC)
  • 2008
TLDR
It is concluded that it will not be sufficient to improve design processes, raise the level of abstraction, or verify designs that are built on today's abstractions to realize the full potential of cyber-Physical Systems.
Continuity in software systems
TLDR
The role of continuity in engineering, particularly in testing and certifying artifacts, is examined, then the analogous software situations are considered and the ways in which software is intrinsically unlike other engineered objects are considered.
Interval Polyhedra: An Abstract Domain to Infer Interval Linear Relationships
TLDR
This work introduces a new numerical abstract domain, so-called interval polyhedra (itvPol), to infer and propagate interval linear constraints over program variables, and is the first application of interval linear algebra to static analysis.
Automatic differentiation : applications, theory, and implementations
TLDR
Automatic Differentiation: A Tool for Variational Data Assimilation and Adjoint Sensitivity Analysis for Flood Modeling.
An Abstract Domain to Discover Interval Linear Equalities
We introduce a new abstract domain, namely the domain of Interval Linear Equalities (itvLinEqs), which generalizes the affine equality domain with interval coefficients by leveraging results from
The formal semantics of programming languages - an introduction
  • G. Winskel
  • Computer Science
    Foundation of computing series
  • 1993
TLDR
The Formal Semantics of Programming Languages" provides the basic mathematical techniques necessary for those who are beginning a study of semantics and logics of programming languages, including the vital area of concurrency.
...
1
2
3
4
...