Abstract
This paper concerns mechanisms for maintaining the value of an instrumentation predicate (a.k.a. derived predicate or view), defined via a logical formula over core predicates, in response to changes in the values of the core predicates. It presents an algorithm for transforming the instrumentation predicate’s defining formula into a predicate-maintenance formula that captures what the instrumentation predicate’s new value should be.
This technique applies to program-analysis problems in which the semantics of statements is expressed using logical formulas that describe changes to corepredicate values, and provides a way to reflect those changes in the values of the instrumentation predicates.
Supported by ONR contract N00014-01-1-0796 and by the A. von Humboldt Foundation.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
S.B. Akers, Jr. On a theory of Boolean functions. J. Soc. Indust. Appl. Math., 7(4):487–498, December 1959.
T. Ball, R. Majumdar, T. Millstein, and S.K. Rajamani. Automatic predicate abstraction of C programs. In Conf. on Prog. Lang. Design and Impl., NewYork, NY, 2001. ACM Press.
P. Cousot and R. Cousot. Systematic design of program analysis frameworks. In Symp. on Princ. of Prog. Lang., pages 269–282, NewYork, NY, 1979. ACM Press.
S. Das, D.L. Dill, and S. Park. Experience with predicate abstraction. In Proc. Computer-Aided Verif., pages 160–171. Springer-Verlag, July 1999.
G. Dong and J. Su. Incremental and decremental evaluation of transitive closure by first-order queries. Inf. and Comp., 120:101–106, 1995.
G. Dong and J. Su. Incremental maintenance of recursive views using relational calculus/SQL. SIGMOD Record, 29(1):44–51, 2000.
S. Graf and H. Saïdi. Construction of abstract state graphs with PVS. In Proc. Computer-Aided Verif., pages 72–83, June 1997.
A. Gupta and I.S. Mumick, editors. Materialized Views: Techniques, Implementations, and Applications. The M.I.T. Press, Cambridge, MA, 1999.
T. Lev-Ami, T. Reps, M. Sagiv, and R. Wilhelm. Putting static analysis towork for verification: A case study. In Int. Symp. on Software Testing and Analysis, pages 26–38, 2000.
T. Lev-Ami and M. Sagiv. TVLA: A system for implementing static analyses. In Static Analysis Symp., pages 280–301, 2000.
Y.A. Liu, S.D. Stoller, and T. Teitelbaum. Discovering auxiliary information for incremental computation. In Symp. on Princ. of Prog. Lang., pages 157–170, January 1996.
Y.A. Liu and T. Teitelbaum. Systematic derivation of incremental programs. Sci. of Comp. Program., 24:1–39, 1995.
K.L. McMillan. Verification of infinite state systems by compositional model checking. In CHARME, pages 219–234, 1999.
A. Møller and M.I. Schwartzbach. The pointer assertion logic engine. In Conf. on Prog. Lang. Design and Impl., pages 221–231, 2001.
R. Paige and S. Koenig. Finite differencing of computable expressions. Trans. on Prog. Lang. and Syst., 4(3):402–454, July 1982.
S. Patnaik and N. Immerman. Dyn-FO: A parallel, dynamic complexity class. J. Comput. Syst. Sci., 55(2):199–209, October 1997.
M. Sagiv, T. Reps, and R. Wilhelm. Parametric shape analysis via 3-valued logic. Trans. on Prog. Lang. and Syst., 24(3):217–298, 2002.
M. Sharir. Some observations concerning formal differentiation of set theoretic expressions. Trans. on Prog. Lang. and Syst., 4(2):196–225, April 1982.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Reps, T., Sagiv, M., Loginov, A. (2003). Finite Differencing of Logical Formulas for Static Analysis. In: Degano, P. (eds) Programming Languages and Systems. ESOP 2003. Lecture Notes in Computer Science, vol 2618. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-36575-3_26
Download citation
DOI: https://doi.org/10.1007/3-540-36575-3_26
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-00886-6
Online ISBN: 978-3-540-36575-4
eBook Packages: Springer Book Archive