Abstract
An abstraction is a property-preserving contraction of a program’s model into a smaller one that is suitable for automated analysis. An abstraction must be sound, and ideally, complete. Soundness and completeness arguments are intimately connected to the abstraction process, and approaches based on homomorphisms and Galois connections are commonly employed to define abstractions and prove their soundness and completeness. This paper develops Mycroft and Jones’s proprosal that an abstraction should be stated as a form of structure-preserving binary relation. Mycroft-Jones-style relations are defined, developed, and employed in characterizations of the homomorphism and Galois-connection approaches to abstraction.
Supported by NSF CCR-9970679, INT-9981558, ITR-0085949, and ITR-0086154.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
A. Aho, R. Sethi, and J. Ullman. Compilers: Principles, Techniques, and Tools. Addison Wesley, 1986.
E. Clarke, O. Grumberg, S. Jha, Y. Lu, and H. Veith. Counterexample-guided abstraction refinement. In Proc. Computer-Aided Verification 2000, Lecture Notes in Computer Science. Springer, 2000.
E. Clarke, O. Grumberg, and D. Peled. Model Checking. MIT Press, 1999.
E.M. Clarke, O. Grumberg, and D.E. Long. Verification tools for finite-state concurrent systems. In J.W. deBakker, W.-P. deRoever, and G. Rozenberg, editors, A Decade of Concurrency: Reflections and Perspectives, number 803 in Lecture Notes in Computer Science, pages 124–175. Springer, 1993.
E.M. Clarke, O. Grumberg, and D.E. Long. Model checking and abstraction. ACM Transactions on Programming Languages and Systems, 16(5):1512–1542, 1994.
P. Cousot, editor. Static Analysis, 8th International Symposium. Lecture Notes in Computer Science 2126, Springer, Berlin, 2001.
P. Cousot and R. Cousot. Abstract interpretation: a unified lattice model for static analysis of programs. In Proc. 4th ACM Symp. on Principles of Programming Languages, pages 238–252. ACM Press, 1977.
P. Cousot and R. Cousot. Systematic design of program analysis frameworks. In Proc. 6th ACM Symp. on Principles of Programming Languages, pages 269–282. ACM Press, 1979.
P. Cousot and R. Cousot. Abstract interpretation frameworks. Journal of Logic and Computation, 2(4):511–547, 1992.
P. Cousot and R. Cousot. Higher-order abstract interpretation. In Proc. IEEE Int’l. Conf. Programming Languages. IEEE Press, 1994.
P. Cousot and R. Cousot. Systematic design of program transformations by abstract interpretation. In Proc. 29th ACM Symp. on Principles of Prog. Languages. ACM Press, 2002.
D. Dams, R. Gerth, and O. Grumberg. Abstract interpretation of reactive systems. ACM TOPLAS, 19:253–291, 1997.
C. Gunter. Semantics of Programming Languages. MIT Press, Cambridge, MA, 1992.
D. Harel. Statecharts: a visual formalization for complex systems. Science of Computer Programming, 8, 1987.
J. Hartmanis and R. Streans. Pair algebras and their application to automata theory. Information and Control, 7:485–507, 1964.
M. Hecht. Flow Analysis of Computer Programs. Elsevier, 1977.
N. Jones and F. TNielson. Abstract interpretation: a semantics-based tool for program analysis. In S. Abramsky, D. Gabbay, and T. Maibaum, editors, Handbook of Logic in Computer Science, Vol. 4, pages 527–636. Oxford Univ. Press, 1995.
D. Lacey, N.D. Jones, E. Van Wyk, and C. Frederiksen. Proving correctness of compiler optimizations by temporal logic. In Proc. 29th ACM Symp. on Principles of Prog. Languages. ACM Press, 2002.
C. Loiseaux, S. Graf, J. Sifakis, A. Bouajjani, and S. Bensalem. Property preserving abstractions for the verification of concurrent systems. Formal Methods in System Design, 6:11–44, 1995.
C. McGowan. An inductive proof technique for interpreter equivalence. In R. Rustin, editor, Formal Semantics of Programming Languages, pages 139–148. Prentice-Hall, 1972.
A. Melton, G. Strecker, and D. Schmidt. Galois connections and computer science applications. In Category Theory and Computer Programming, pages 299–312. Lecture Notes in Computer Science 240, Springer-Verlag, 1985.
R. Milner. A Calculus of Communicating Systems. Springer-Verlag, Lecture Notes in Computer Science 92, 1980.
R. Milner. Communication and Concurrency. Prentice-Hall, 1989.
J.C. Mitchell. Foundations for Programming Languages. The MIT Press, Cambridge, Massachusetts, 1996.
M. Müller-Olm, D.A. Schmidt, and B. Steffen. Model checking: A tutorial introduction. In G. Filé and A. Cortesi, editors, Proc. 6th Static Analysis Symposium. Springer LNCS, 1999.
A. Mycroft and N.D. Jones. A relational framework for abstract interpretation. In Programs as Data Objects, pages 156–171. Lecture Notes in Computer Science 217, Springer-Verlag, 1985.
F. Nielson. Two-level semantics and abstract interpretation. Theoretical Computer Science, 69(2):117–242, 1989.
F. Nielson and H. R. Nielson. Two-Level Functional Languages. Cambridge University Press, 1992.
F. Nielson, H.R. Nielson, and C. Hankin. Principles of Program Analysis. Springer Verlag, 1999.
D. Park. Concurrency and automata in infinite strings. Lecture Notes in Computer Science 104, pages 167–183. Springer, 1981.
G. D. Plotkin. Lambda-definability in the full type hierarchy. In J. Seldin and J. Hindley, editors, To H. B. Curry: Essays on Combinatory Logic, Lambda Calculus and Formalism, pages 363–374. Academic Press, 1980.
J. Reynolds. Types, abstraction, and parametric polymorphism. In R.E.A. Mason, editor, Information Processing’ 83, pages 513–523. North-Holland, Amsterdam, 1983.
D.A. Schmidt. Natural-semantics-based abstract interpretation. In A. Mycroft, editor, Static Analysis Symposium, number 983 in Lecture Notes in Computer Science, pages 1–18. Springer-Verlag, 1995.
D.A._Schmidt. Data-flow analysis is model checking of abstract interpretations. In Proc. 25th ACM Symp. on Principles of Prog. Languages. ACM Press, 1998.
D.A. Schmidt. Binary relations for abstraction and refinement. Workshop on Refinement and Abstraction, Amagasaki, Japan, Nov. 1999. Elsevier Electronic Notes in Computer Science, to appear.
D.A. Schmidt and B. Steffen. Data-flow analysis as model checking of abstract interpretations. In G. Levi, editor, Proc. 5th Static Analysis Symposium. Springer LNCS 1503, 1998.
B. Steffen. Generating data-flow analysis algorithms for modal specifications. Science of Computer Programming, 21:115–139, 1993.
B. Steffen. Property-oriented expansion. In R. Cousot and D. Schmidt, editors, Static Analysis Symposium: SAS’96, volume 1145 of Lecture Notes in Computer Science, pages 22–41. Springer-Verlag, 1996.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Schmidt, D.A. (2002). Structure-Preserving Binary Relations for Program Abstraction. In: Mogensen, T.Æ., Schmidt, D.A., Sudborough, I.H. (eds) The Essence of Computation. Lecture Notes in Computer Science, vol 2566. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-36377-7_12
Download citation
DOI: https://doi.org/10.1007/3-540-36377-7_12
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-00326-7
Online ISBN: 978-3-540-36377-4
eBook Packages: Springer Book Archive