Kleene Algebra with Tests and the Static Analysis of Programs
نویسنده
چکیده
We propose a general framework for the static analysis of programs based on Kleene algebra with tests (KAT). We show how KAT can be used to statically verify compliance with safety policies specified by security automata. We prove soundness and completeness over relational interpretations. We illustrate the method on an example involving the correctness of a device driver.
منابع مشابه
Formalizing Static Analysis Techniques with Kleene Algebra
Static program analysis consists of compile-time techniques for determining properties of programs without actually running them [1–3]. Among the applications of static program analysis are the optimization by compilers of object code [4] and the detection of malicious code or code that might be maliciously exploited [5, 6]. The obvious relevance and (sometimes critical) importance of such appl...
متن کاملProgram Construction and Verification Components Based on Kleene Algebra
Variants of Kleene algebra support program construction and verification by algebraic reasoning. This entry provides a verification component for Hoare logic based on Kleene algebra with tests, verification components for weakest preconditions and strongest postconditions based on Kleene algebra with domain and a component for step-wise refinement based on refinement Kleene algebra with tests. ...
متن کاملA coalgebraic approach to Kleene algebra with tests
Kleene algebra with tests is an extension of Kleene algebra, the algebra of regular expressions, which can be used to reason about programs. We develop a coalgebraic theory of Kleene algebra with Tests, along the lines of the coalgebraic theory of regular expressions based on deterministic automata. Since the known automata-theoretic presentation of Kleene algebra with tests does not lend itsel...
متن کاملFeasibly Reducing KAT Equations to KA Equations
Kleene algebra (KA) is the algebra of regular events. Familiar examples of Kleene algebras include regular sets, relational algebras, and trace algebras. A Kleene algebra with tests (KAT) is a Kleene algebra with an embedded Boolean subalgebra. The addition of tests allows one to encode while programs as KAT terms, thus the equational theory of KAT can express (propositional) program equivalenc...
متن کاملKleene Algebra and Bytecode Verification
Most standard approaches to the static analysis of programs, such as the popular worklist method, are first-order methods that inductively annotate program points with abstract values. In [6] we introduced a second-order approach based on Kleene algebra. In this approach, the primary objects of interest are not the abstract data values, but the transfer functions that manipulate them. These ele...
متن کامل