Skip to main content
Log in

Abstractions of data types

  • Original Article
  • Published:
Acta Informatica Aims and scope Submit manuscript

Abstract

The use of abstraction in the context of abstract data types, is investigated. Properties to be checked are formulas in a first order logic under Kleene's 3-valued interpretation. Abstractions are defined as pairs consisting of a congruence and a predicate interpretation. Three types of abstractions are considered,∀∀, ∀∃ and ∃0,1∀, and for each of them corresponding property preservation results are established. An abstraction refinement property is also obtained. It shows how one can pass from an existing abstraction to a (less) finer one. Finally, equationally specified abstractions in the context of equationally specified abstract data types are discussed and exemplified.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  1. Assmann, U., Weinhardt, M.: Interprocedural Heap Analysis for Parallelizing Imperative Programs, In: Giloi, W.K., Jähnichen, S., Shriver, B.D. (eds.) Programming Models for Massively Parallel Computers. IEEE Press, pp. 74–82 (1993)

  2. Ball, Th., Podelski, A., Rajamani, S.K.: Boolean and Cartesian Abstraction for Model Checking C Programs, Technical Report MSR-TR-2000-115, Microsoft Research (2000)

  3. Bidoit, M., Boisseau A.: Algebraic Abstractions. In: 15th Workshop on Algebraic Development Techniques WADT'01, Lecture Notes in Computer Science 2267, 21–47 (2001)

  4. Burch, J., Clarke, E., McMillan, K., Dill D.: Symbolic Model Checking: 1020 States and Beyond, In: Proceedings of the 5th Symposium on Logic in Computer Science (1990)

  5. Chase, D., Wegman, M., Zadeck F.: Analysis of Pointers and Structures, In: SIGPLAN Conference on Programming Languages, Design and Implementation, pp. 296–310 (1990)

  6. Clarke, E.M., Grumberg, O., Peled D.A.: Model Checking, MIT Press (2000)

  7. Clarke, E.M., Grumberg, O., Long, D.E.: Model Checking and Abstraction, ACM Transactions on Programming Languages and Systems, pp. 1512–1542 (1994)

  8. Cousot, P., Cousot, R.: Abstract Interpretation: a Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In: 4th ACM Symposium on Principles of Programming Languages, pp. 238–252 (1977)

  9. Dams, D.: Abstract Interpretation and Partial Refinement for Model Checking, Ph.D. Thesis, Technische Universität Eindhoven (1996)

  10. Dams, D., Gerth, R., Grumberg, O.: Abstract Interpretation of Reactive Systems, ACM Transactions on Programming Languages and Systems 19(2) (1997)

  11. Das, S., Dill, D.L., Park S.: Experience with Predicate Abstraction. In: Proceedings of the 11th International Conference on Computer Aided Verification CAV'99, Lecture Notes in Computer Science 1633, 160–171 (1999)

  12. Dill, D.L., Drexler, A.J., Hu, A.J., Yang, C.H.: Protocol Verification as a Hardware Design Aid. In: Proceedings of the IEEE International Conference on Computer Design: VLSI in Computers and Processors, pp. 522–525 (1992)

  13. Ehrig, H., Mahr, B.: Fundamentals of Algebraic Specification 1: Equations and Initial Semantics, Springer-Verlag (1985)

  14. Ehrig, H., Mahr, B.: Fundamentals of Algebraic Specification 2: Module Specifications and Constraints, Springer-Verlag (1990)

  15. Ehrig, H., Kreowski, H.-J.: Refinement and Implementation. In: Astesiano, E. et al. (eds.) Algebraic Foundations of Systems Specification, IFIP State-of-the-Art Report. Springer, pp. 201–242 (1999)

  16. Ginsberg, M.: Multivalued Logics. A Uniform Approach to Inference in Artificial Intelligence, Computational Intelligence 4, 265–316 (1988)

    Google Scholar 

  17. Graf, S., Saidi, H.: Construction of Abstract State Graphs with PVS. In: Proceedings of the 9th International Conference on Computer Aided Verification, Lecture Notes in Computer Science 1254, 72–83 (1997)

  18. The HOL System, Computer Laboratory, University of Cambridge, http://www.cl.cam.ac.uk/Research/HVG/HOL

  19. Holzmann, G.J.: A Practical Method for Verifying Event-driven Software. In: Proceedings of the 21st International Conference on Software Engineering ICSE'99, pp. 597–607 (1999)

  20. Holzmann, G.J.: The SPIN Model Checker. Primer and Reference Manual, Addison-Wesley (2003)

  21. Horwitz, S., Pfeiffer, P., Reps, T.: Dependence Analysis for Pointer Variables. In: SIGPLAN Conference on Programming Languages, Design and Implementation, pp. 28–40 (1989)

  22. Jones, N.D., Muchnick, S.: Flow Analysis and Optimization of Lisp-like Structures. In: Muchnick, S., Jones, N.D. (eds.) Program Flow Analysis: Theory and Applications, Prentice-Hall, pp. 102–131 (1981)

  23. Jones, N.D., Muchnick, S.: A Flexible Approach to Interprocedural Data Flow Analysis and Programs with Recursive Data Structures. In: Symposium on Principles of Programing Languages, pp. 66–74 (1982)

  24. Kurshan, R.P.: Computer-Aided Verification of Coordinating Processes: The Automata-Theoretic Approach. Princeton University Press (1994)

  25. Lamport, L.: A New Solution of the Dijkstra's Concurrent Problem, Communications of the ACM 17(8), 453–455 (1974)

    Article  Google Scholar 

  26. Larus, J., Hilfinger, P.: Detecting Conflicts Between Structure Accesses. In: SIGPLAN Conference on Programming Languages, Design and Implementation, pp. 21–34 (1988)

  27. Loeckx, J., Ehrich, H.-D., Wolf, M.: Algebraic Specification of Abstract Data Types. In: Abramsky, S., Gabbay, D.M., Maibaum, T.S.E. (eds.) Handbook of Logic in Computer Science, vol. 5, Clarendon Press, pp. 217–316 (2000)

  28. Manna, Z., Pnueli, A.: The Temporal logic of Reactive and Concurrent Systems. Specification, Springer-Verlag (1992)

  29. McMillan, K.: Verification of Infinite State Systems by Compositional Model Checking, Research Report, Cadence Berkeley Labs (1999)

  30. Meinke, K., Tucker, J.V.: Universal Algebra, In: Abramsky, S., Gabbay, D., Maibaum, T.S.E. (eds.) Handbook of Logic in Computer Science vol. 1, Oxford University Press, Oxford, pp. 189–411 (1993)

  31. Mitchell, J.: Foundations of Programming Languages, The MIT Press (1996)

  32. Nielson, F., Nielson, H.R., Hankin, Ch.: Principles of Program Analysis, Springer-Verlag (1999)

  33. Peled, D.A.: Software Reliability Methods, Springer-Verlag (2001)

  34. Plevyak, J., Chien, A., Karamcheti, V.: Analysis of Dynamic Structures for Efficient Parallel Execution. In: Banerjee, U., Gelernter, D., Nicolau, A., Padua, D.: (eds.) Languages and Compilers for Parallel Computing Lecture Notes in Computer Science 768, Springer-Verlag, pp. 37–57 (1993)

  35. The PVS Specification and Verification System, Computer Science Laboratory, SRI International, http://pvs.csl.sri.com

  36. Saidi, H.: Model Checking Guided Abstraction and Analysis, In: Proceedings of the 7th International Static Analysis Symposium (2000)

  37. Sagiv, M., Reps, Th., Wilhelm, R.: Solving Shape-Analysis Problems in Languages with Destructive Updating, ACM Transaction on Programming Languages and Systems, 20(1), 1–50 (1998)

    Article  Google Scholar 

  38. Sagiv, M., Reps, Th., Wilhelm, R.: Parametric Shape Analysis via 3-Valued Logic, ACM Transaction on Programming Languages and Systems, 24(3), 217–298 (2002)

    Article  Google Scholar 

  39. STeP: The Stanford Temporal Prover, http://www-step.stanford.edu

  40. Stransky, J.: A Lattice for Abstract Interpretation of Dynamic (Lisp-like) Structures, Information and Computation 101(1), 70–102 (1992)

    Article  Google Scholar 

  41. Wang, E.Y.-B.: Analysis of Recursive Types in an Imperative Language, Ph.D. Thesis, University of California, Berkeley (1994)

  42. Viser, W., Park, S., Penix, J.: Using Predicate Abstraction to Reduce Object-oriented Programs for Model Checking. In: Proceedings of the 3rd ACM Workshop on Formal Methods in Software Practice, Portland (Oregon), pp. 3–12 (2000)

  43. Visser, W., Park, S., Penix, J., Oh, P.: Abstracting Object-Oriented Programs for Model Checking, unpublished manuscript (2001)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ferucio Laurenţiu Ţiplea.

Additional information

On leave from the Department of Computer Science, “Al. I. Cuza” University, Iaşi 740083, Romania

The research reported in this paper was partially supported by the program ECO-NET 08112WJ/2004-2005 and by the National University Research Council of Romania, grants CNCSIS 632(28)/2004 and CNCSIS 632(50)/2005.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Ţiplea, F.L., Enea, C. Abstractions of data types. Acta Informatica 42, 639–671 (2006). https://doi.org/10.1007/s00236-006-0010-3

Download citation

  • Received:

  • Revised:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00236-006-0010-3

Keywords

Navigation