arrow
Return

Continuity and Robustness of Programs

delete2012-08-01
delete48
PRE
AI
S
Swarat Chaudhuri *
S
Sumit Gulwani
R
Roberto Lublinerman
DOI:10.1145/2240236.2240262delete
deleteOriginal
deleteOriginal request for help
deleteShare
deleteSave
Abstract

Abstract

En 中文
Computer scientists have long believed that software is different from physical systems in one fundamental way: while the latter have continuous dynamics, the former do not. In this paper, we argue that notions of continuity from mathematical analysis are relevant and interesting even for software. First, we demonstrate that many everyday programs are continuous (i.e., arbitrarily small changes to their inputs only cause arbitrarily small changes to their outputs) or Lipschitz continuous (i.e., when their inputs change, their outputs change at most proportionally). Second, we give an mostly-automatic framework for verifying that a program is continuous or Lipschitz, showing that traditional, discrete approaches to proving programs correct can be extended to reason about these properties. An immediate application of our analysis is in reasoning about the robustness of programs that execute on uncertain inputs. In the longer run, it raises hopes for a toolkit for reasoning about programs that freely combines logical and analytical mathematics.
Keywords:
REACHABILITY
AI Summary

AI Summary

Key information extracted from the uploaded paper, including a brief overview, abstract, background, key highlights, visual analysis, and future outlook.

Journal

Communications of the ACM cover
Communications of the ACM
IF:
12.2
Papers:
1.2W
Citations:
3.7W

Organization

R
Rice University
Scholars:
1.4W
Papers: 1.2W
Citations: 2.6W
P
pennsylvania commonwealth system of higher education (pcshe)
Scholars:
12.9W
Papers: 11.7W
Citations: 177
M
Microsoft
Scholars:
3.0K
Papers: 2.7K
Citations: 7
researcher View more organizations