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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Agrawal, H., Horgan, J.R.: Dynamic program slicing. In: Proc. of PLDI 1990, pp. 246–256. ACM Press, New York (1990)
Amtoft, T.: Slicing for modern program structures: a theory for eliminating irrelevant loops. Information Processig Letters 106(2), 45–51 (2008)
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)
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)
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)
Jhala, R., Majumdar, R.: Path slicing. In: Proc. of PLDI 2005, pp. 38–47. ACM Press, New York (2005)
Klein, G., Nipkow, T.: A Machine-Checked Model for a Java-Like Language, Virtual Machine and Compiler. ACM TOPLAS 28(4), 619–695 (2006)
Krinke, J.: Program slicing. Handbook of Software Engineering and Knowledge Engineering 3, 307–332 (2004)
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)
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)
Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis. Springer, Heidelberg (1999)
Nipkow, T., Paulson, L.C., Wenzel, M.T.: Isabelle/HOL. LNCS, vol. 2283. Springer, Heidelberg (2002)
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)
Reps, T., Yang, W.: The semantics of program slicing. Technical Report CS-TR-1988-777, University of Wisconsin-Madison (1988)
Tip, F.: A survey of program slicing techniques. Journal of Programming Languages 3(3), 121–189 (1995)
Ward, M., Zedan, H.: Slicing as a program transformation. ACM TOPLAS 29(2), 1–53 (2007)
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)
Weiser, M.: Program slices: formal, psychological, and practical investigations of an automatic program abstraction method. PhD thesis, University of Michigan (1979)
Wolfe, M.J.: High Performance Compilers for Parallel Computing. Addison-Wesley, Reading (1995)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)