Skip to main content

Formalizing a Framework for Dynamic Slicing of Program Dependence Graphs in Isabelle/HOL

  • Conference paper
Theorem Proving in Higher Order Logics (TPHOLs 2008)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 5170))

Included in the following conference series:

Abstract

Slicing is a widely-used technique with applications in e.g. compiler technology and software security. Thus verification of algorithms in these areas is often based on the correctness of slicing, which should ideally be proven independent of concrete programming languages and with the help of well-known verifying techniques such as proof assistants. As a first step in this direction, this contribution presents a framework for dynamic slicing based on control flow and program dependence graphs and machine checked in Isabelle/HOL. Abstracting from concrete syntax we base the framework on a graph representation of the program fulfilling certain structural and well-formedness properties.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. Agrawal, H., Horgan, J.R.: Dynamic program slicing. In: Proc. of PLDI 1990, pp. 246–256. ACM Press, New York (1990)

    Google Scholar 

  2. Amtoft, T.: Slicing for modern program structures: a theory for eliminating irrelevant loops. Information Processig Letters 106(2), 45–51 (2008)

    Article  MathSciNet  MATH  Google Scholar 

  3. Ballarin, C.: Locales and locale expressions in Isabelle/Isar. In: Berardi, S., Coppo, M., Damiani, F. (eds.) TYPES 2003. LNCS, vol. 3085, pp. 34–50. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  4. Blech, J.O., Gesellensetter, L., Glesner, S.: Formal verification of dead code elimination in Isabelle/HOL. In: Proc. of SEFM 2005, pp. 200–209. IEEE Computer Society Press, Los Alamitos (2005)

    Google Scholar 

  5. Gouranton, V., Métayer, D.L.: Dynamic slicing: a generic analysis based on a natural semantics format. Journal of Logic and Computation 9(6), 835–871 (1999)

    Article  MathSciNet  MATH  Google Scholar 

  6. Jhala, R., Majumdar, R.: Path slicing. In: Proc. of PLDI 2005, pp. 38–47. ACM Press, New York (2005)

    Google Scholar 

  7. Klein, G., Nipkow, T.: A Machine-Checked Model for a Java-Like Language, Virtual Machine and Compiler. ACM TOPLAS 28(4), 619–695 (2006)

    Article  Google Scholar 

  8. Krinke, J.: Program slicing. Handbook of Software Engineering and Knowledge Engineering 3, 307–332 (2004)

    Google Scholar 

  9. Lammich, P., Müller-Olm, M.: Precise fixpoint-based analysis of programs with thread-creation and procedures. In: Caires, L., Vasconcelos, V.T. (eds.) CONCUR. LNCS, vol. 4703, pp. 287–302. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  10. Leroy, X.: Formal certification of a compiler back-end or: programming a compiler with a proof assistant. In: Proc. of POPL 2006, pp. 42–54. ACM Press, New York (2006)

    Google Scholar 

  11. Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis. Springer, Heidelberg (1999)

    Book  MATH  Google Scholar 

  12. Nipkow, T., Paulson, L.C., Wenzel, M.T.: Isabelle/HOL. LNCS, vol. 2283. Springer, Heidelberg (2002)

    MATH  Google Scholar 

  13. Ranganath, V.P., Amtoft, T., Banerjee, A., Hatcliff, J., Dwyer, M.B.: A new foundation for control dependence and slicing for modern program structures. ACM TOPLAS 29(5), 27 (2007)

    Article  MATH  Google Scholar 

  14. Reps, T., Yang, W.: The semantics of program slicing. Technical Report CS-TR-1988-777, University of Wisconsin-Madison (1988)

    Google Scholar 

  15. Tip, F.: A survey of program slicing techniques. Journal of Programming Languages 3(3), 121–189 (1995)

    Google Scholar 

  16. Ward, M., Zedan, H.: Slicing as a program transformation. ACM TOPLAS 29(2), 1–53 (2007)

    Article  Google Scholar 

  17. Wasserrab, D., Nipkow, T., Snelting, G., Tip, F.: An operational semantics and type safety proof for multiple inheritance in C++. In: Proc. of OOPSLA 2006, pp. 345–362. ACM Press, New York (2006)

    Google Scholar 

  18. Weiser, M.: Program slices: formal, psychological, and practical investigations of an automatic program abstraction method. PhD thesis, University of Michigan (1979)

    Google Scholar 

  19. Wolfe, M.J.: High Performance Compilers for Parallel Computing. Addison-Wesley, Reading (1995)

    MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Wasserrab, D., Lochbihler, A. (2008). Formalizing a Framework for Dynamic Slicing of Program Dependence Graphs in Isabelle/HOL. In: Mohamed, O.A., Muñoz, C., Tahar, S. (eds) Theorem Proving in Higher Order Logics. TPHOLs 2008. Lecture Notes in Computer Science, vol 5170. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-71067-7_24

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-71067-7_24

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-71065-3

  • Online ISBN: 978-3-540-71067-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics