Software aspects of strategic defense systems
Communications of the ACM
Continuity in software systems
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
Static Analyses of the Precision of Floating-Point Operations
SAS '01 Proceedings of the 8th International Symposium on Static Analysis
Automatic Differentiation: Applications, Theory, and Implementations (Lecture Notes in Computational Science and Engineering)
Regression Verification: Proving the Equivalence of Similar Programs
CAV '09 Proceedings of the 21st International Conference on Computer Aided Verification
Interval Polyhedra: An Abstract Domain to Infer Interval Linear Relationships
SAS '09 Proceedings of the 16th International Symposium on Static Analysis
RTSS '09 Proceedings of the 2009 30th IEEE Real-Time Systems Symposium
Continuity analysis of programs
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
TACAS'08/ETAPS'08 Proceedings of the Theory and practice of software, 14th international conference on Tools and algorithms for the construction and analysis of systems
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
The reachability-bound problem
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Distance makes the types grow stronger: a calculus for differential privacy
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
Smoothing a program soundly and robustly
CAV'11 Proceedings of the 23rd international conference on Computer aided verification
Testing and Reconstruction of Lipschitz Functions with Applications to Data Privacy
FOCS '11 Proceedings of the 2011 IEEE 52nd Annual Symposium on Foundations of Computer Science
Model checking of hybrid systems: from reachability towards stability
HSCC'06 Proceedings of the 9th international conference on Hybrid Systems: computation and control
Randomized accuracy-aware program transformations for efficient approximate computations
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
Quantitative timed simulation functions and refinement metrics for real-time systems
Proceedings of the 16th international conference on Hybrid systems: computation and control
Probabilistic relational verification for cryptographic implementations
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Consistency analysis of decision-making programs
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
LICS '13 Proceedings of the 2013 28th Annual ACM/IEEE Symposium on Logic in Computer Science
Hi-index | 48.22 |
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.