Results 1  10
of
13
Automated Soundness Proofs for Dataflow Analyses and Transformations Via Local Rules
 In Proc. of the 32nd Symposium on Principles of Programming Languages
, 2005
"... We present Rhodium, a new language for writing compiler optimizations that can be automatically proved sound. Unlike our previous work on Cobalt, Rhodium expresses optimizations using explicit dataflow facts manipulated by local propagation and transformation rules. This new style allows Rhodium opt ..."
Abstract

Cited by 78 (8 self)
 Add to MetaCart
(Show Context)
We present Rhodium, a new language for writing compiler optimizations that can be automatically proved sound. Unlike our previous work on Cobalt, Rhodium expresses optimizations using explicit dataflow facts manipulated by local propagation and transformation rules. This new style allows Rhodium optimizations to be mutually recursively defined, to be automatically composed, to be interpreted in both flowsensitive andinsensitive ways, and to be applied interprocedurally given a separate contextsensitivity strategy, all while retaining soundness. Rhodium also supports infinite analysis domains while guaranteeing termination of analysis. We have implemented a soundness checker for Rhodium and have specified and automatically proven the soundness of all of Cobalt’s optimizations plus a variety of optimizations not expressible in Cobalt, including Andersen’s pointsto analysis, arithmeticinvariant detection, loopinductionvariable strength reduction, and redundant array load elimination. Categories and Subject Descriptors: D.2.4 [Software
Automated reasoning in Kleene algebra
 CADE 2007, LNCS 4603
, 2007
"... Abstract. It has often been claimed that model checking, special purpose automated deduction or interactive theorem proving are needed for formal program development. We demonstrate that offtheshelf automated proof and counterexample search is an interesting alternative if combined with the right ..."
Abstract

Cited by 26 (11 self)
 Add to MetaCart
(Show Context)
Abstract. It has often been claimed that model checking, special purpose automated deduction or interactive theorem proving are needed for formal program development. We demonstrate that offtheshelf automated proof and counterexample search is an interesting alternative if combined with the right domain model. We implement variants of Kleene algebras axiomatically in Prover9/Mace4 and perform proof experiments about Hoare, dynamic, temporal logics, concurrency control and termination analysis. They confirm that a simple automated analysis of some important program properties is possible. Particular benefits of this novel approach include “soft ” model checking in a firstorder setting, crosstheory reasoning between standard formalisms and full automation of some (co)inductive arguments. Kleene algebras might therefore provide lightweight formal methods with heavyweight automation. 1
Kleene algebras with tests and the static analysis of programs
, 2003
"... 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 illust ..."
Abstract

Cited by 10 (1 self)
 Add to MetaCart
(Show Context)
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. 1
http://urn.kb.se/resolve?urn=urn:nbn:se:uu:diva207378 Program Analysis and Verification based on Kleene Algebra in Isabelle/HOL
"... N.B. When citing this work, cite the original published paper. Permanent link to this version: ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
(Show Context)
N.B. When citing this work, cite the original published paper. Permanent link to this version:
KAT and PHL in Coq
"... In this article we describe an implementation of Kleene algebra with tests (KAT) in the Coq theorem prover. KAT is an equational system that has been successfully applied in program verification and, in particular, it subsumes the propositional Hoare logic (PHL). We also present an PHL encoding in K ..."
Abstract
 Add to MetaCart
In this article we describe an implementation of Kleene algebra with tests (KAT) in the Coq theorem prover. KAT is an equational system that has been successfully applied in program verification and, in particular, it subsumes the propositional Hoare logic (PHL). We also present an PHL encoding in KAT, by deriving its deduction rules as theorems of KAT. Some examples of simple program's formal correctness are given. This work is part of a study of the feasibility of using KAT in the automatic production of certificates in the context of (sourcelevel) ProofCarryingCode (PCC).
Synchronous Kleene AlgebraI
"... The work presented here investigates the combination of Kleene algebra with the synchrony model of concurrency from Milner’s SCCS calculus. The resulting algebraic structure is called synchronous Kleene algebra. Models are given in terms of sets of synchronous strings and finite automata accepting s ..."
Abstract
 Add to MetaCart
The work presented here investigates the combination of Kleene algebra with the synchrony model of concurrency from Milner’s SCCS calculus. The resulting algebraic structure is called synchronous Kleene algebra. Models are given in terms of sets of synchronous strings and finite automata accepting synchronous strings. The extension of synchronous Kleene algebra with Boolean tests is presented together with models on sets of guarded synchronous strings and the associated automata on guarded synchronous strings. Completeness w.r.t. the standard interpretations is given for each of the two new formalisms. Decidability follows from completeness. Kleene algebra with synchrony should be included in the class of true concurrency models. In this direction, a comparison with Mazurkiewicz traces is made which yields their incomparability with synchronous Kleene algebras (one cannot simulate the other). On the other hand, we isolate a class of pomsets which captures exactly synchronous Kleene algebras. We present an application to Hoarelike reasoning about parallel programs in the style of synchrony. Key words: Universal algebra, Kleene algebra, Boolean tests, synchrony, SCCS calculus,
Automated Soundness Proofsfor Dataflow Analyses and Transformations via Local Rules
"... ..."
(Show Context)
Using Probabilistic Kleene Algebra pKA for Protocol Verification
"... We propose a method for verification of probabilistic distributed systems in which a variation of Kozen’s Kleene Algebra with Tests [11] is used to take account of the wellknown interaction of probability and “adversarial ” scheduling [17]. We describe pKA, a probabilistic Kleenestyle algebra, bas ..."
Abstract
 Add to MetaCart
(Show Context)
We propose a method for verification of probabilistic distributed systems in which a variation of Kozen’s Kleene Algebra with Tests [11] is used to take account of the wellknown interaction of probability and “adversarial ” scheduling [17]. We describe pKA, a probabilistic Kleenestyle algebra, based on a widely accepted model of probabilistic/demonic computation [7,25,17]. Our technical aim is to express probabilistic versions of Cohen’s separation theorems[4]. Separation theorems simplify reasoning about distributed systems, where with purely algebraic reasoning they can reduce complicated interleaving behaviour to “separated ” behaviours each of which can be analysed on its own. Until now that has not been possible for probabilistic distributed systems. We present two case studies. The first treats a simple voting mechanism in the algebraic style, and the second — based on Rabin’s Mutual exclusion with bounded waiting [12] — is one where verification problems have already occurred: the original presentation was later shown to have subtle flaws [24]. It motivates our interest in algebras, where assumptions relating probability and secrecy are clearly exposed and, in some cases, can be given simple characterisations in spite of their intricacy. Finally we show how the algebraic proofs for these theorems can be automated using a modification of Kozen and AboulHosn’s KATML [3].
A formal semantics for Gaia liveness rules and expressions
"... Abstract: The Gaia methodology is a development methodology for multiagent systems that uses the concept of roles to define behaviour. Gaia uses liveness expressions, which are expressions written in a formal syntax that are used to define the ongoing behaviour of a role; and liveness rules, which ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract: The Gaia methodology is a development methodology for multiagent systems that uses the concept of roles to define behaviour. Gaia uses liveness expressions, which are expressions written in a formal syntax that are used to define the ongoing behaviour of a role; and liveness rules, which are expressions specifying the behaviour of roles relative to each other in a system. However, while the syntax is formal, a formal semantics has not been defined, and there is no theory for how to reason about and manipulate these expressions. In this paper, we present a formal semantics for liveness rules and expressions, and discuss our work in developing axioms about them. We also discuss the introduction of a new operator for defining the complement of expressions; that is, the behaviour that falls outside of the liveness expression. This provides more flexibility when reasoning about and manipulating these expressions.
Equivalence
, 2012
"... This work presents a mechanically verified implementation of an algorithm for deciding the (in)equivalence of Kleene algebra with tests (KAT) terms. This mechanization was carried out in the Coq proof assistant. The algorithm decides KAT terms equivalence through an iterated process of testing the ..."
Abstract
 Add to MetaCart
This work presents a mechanically verified implementation of an algorithm for deciding the (in)equivalence of Kleene algebra with tests (KAT) terms. This mechanization was carried out in the Coq proof assistant. The algorithm decides KAT terms equivalence through an iterated process of testing the equivalence of their partial derivatives. It is a purely syntactical decision procedure and so, it does not construct the underlying automata. The motivation for this work comes from the possibility of using KAT encoding of propositional Hoare logic for reasoning about the partial correctness of imperative programs. 1