Backing up Slicing: Verifying the Interprocedural Two-Phase Horwitz-Reps-Binkley Slicer
نویسنده
چکیده
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. After verifying static intraprocedural and dynamic slicing [3], we focus now on the sophisticated interprocedural two-phase Horwitz-RepsBinkley slicer [1], including summary edges which were added in [2]. Again, abstracting from concrete syntax we base our work on a graph representation of the program fulfilling certain structural and well-formedness properties. The framework is instantiated with a simple While language with procedures, showing its validity. 0.1 Auxiliary lemmas theory AuxLemmas imports Main begin Lemma concerning maps and @ lemma map-append-append-maps: assumes map:map f xs = ys@zs obtains xs ′ xs ′′ where map f xs ′ = ys and map f xs ′′ = zs and xs=xs ′@xs ′′ by (metis append-eq-conv-conj append-take-drop-id assms drop-map take-map that) Lemma concerning splitting of lists lemma path-split-general : assumes all :∀ zs. xs 6= ys@zs obtains j zs where xs = (take j ys)@zs and j < length ys and ∀ k > j . ∀ zs ′. xs 6= (take k ys)@zs ′ proof(atomize-elim) from 〈∀ zs. xs 6= ys@zs〉 show ∃ j zs. xs = take j ys @ zs ∧ j < length ys ∧ (∀ k>j . ∀ zs ′. xs 6= take k ys @ zs ′)
منابع مشابه
Improved interprocedural slicing algorithm
Horwitz, Reps, and Binkley (TOPLAS, 90) present an algorithm for interprocedural program slicing using a system dependence graph (SDG) representation of programs. In order to identify the set of statements in a slice their algorithm makes two traversals over the SDG; effectively traversing some edges twice. This paper presents a one pass algorithm which traverses each edge in the slice at most ...
متن کاملProving Information Flow Noninterference by Reusing a Machine-Checked Correctness Proof for Slicing
We present a machine-checked correctness proof for information flow noninterference based on interprocedural slicing. It reuses a correctness proof of the context-sensitive interprocedural slicing algorithm of Horwitz, Reps, and Binkley. The underlying slicing framework is modular in the programming language used; by instantiating this framework the correctness proofs hold for the respective la...
متن کاملInterprocedural Dataflow Analysis via Graph Reachability
This paper shows how a large class of interprocedural dataflow-analysis problems can be solved precisely in polynomial time. The only restrictions are that the set of dataflow facts is a finite set, and that the dataflow functions distribute over the confluence operator (either union or intersection). This class of problems includes—but is not limited to—the classical separable problems (also k...
متن کاملSlicing Pointers and Procedures (abstract)
Program slicing restricts attention the components of a program relevant to evaluation of one expression, the slicing criterion. Our slicer, which explicitly represents the store as an aggregate value is the rst to support arbitrary pointer manipulations and aggregate values, and is faster than more limited techniques. We also improve the asymptotic complexity of slicing in the presence of proc...
متن کاملPrecise Interprocedural Dataaow Analysis with Applications to Constant Propagation 1
This paper concerns interprocedural dataaow-analysis problems in which the dataaow information at a program point is represented by an environment (i.e., a mapping from symbols to values), and the eeect of a program operation is represented by a distributive environment transformer. We present an eecient dynamic-programming algorithm that produces precise solutions. The method is applied to sol...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- Archive of Formal Proofs
دوره 2009 شماره
صفحات -
تاریخ انتشار 2009