157 research outputs found
Algebraic Principles for Rely-Guarantee Style Concurrency Verification Tools
We provide simple equational principles for deriving rely-guarantee-style
inference rules and refinement laws based on idempotent semirings. We link the
algebraic layer with concrete models of programs based on languages and
execution traces. We have implemented the approach in Isabelle/HOL as a
lightweight concurrency verification tool that supports reasoning about the
control and data flow of concurrent programs with shared variables at different
levels of abstraction. This is illustrated on two simple verification examples
Symbolic Algorithms for Language Equivalence and Kleene Algebra with Tests
We first propose algorithms for checking language equivalence of finite
automata over a large alphabet. We use symbolic automata, where the transition
function is compactly represented using a (multi-terminal) binary decision
diagrams (BDD). The key idea consists in computing a bisimulation by exploring
reachable pairs symbolically, so as to avoid redundancies. This idea can be
combined with already existing optimisations, and we show in particular a nice
integration with the disjoint sets forest data-structure from Hopcroft and
Karp's standard algorithm. Then we consider Kleene algebra with tests (KAT), an
algebraic theory that can be used for verification in various domains ranging
from compiler optimisation to network programming analysis. This theory is
decidable by reduction to language equivalence of automata on guarded strings,
a particular kind of automata that have exponentially large alphabets. We
propose several methods allowing to construct symbolic automata out of KAT
expressions, based either on Brzozowski's derivatives or standard automata
constructions. All in all, this results in efficient algorithms for deciding
equivalence of KAT expressions
Applying Formal Methods to Networking: Theory, Techniques and Applications
Despite its great importance, modern network infrastructure is remarkable for
the lack of rigor in its engineering. The Internet which began as a research
experiment was never designed to handle the users and applications it hosts
today. The lack of formalization of the Internet architecture meant limited
abstractions and modularity, especially for the control and management planes,
thus requiring for every new need a new protocol built from scratch. This led
to an unwieldy ossified Internet architecture resistant to any attempts at
formal verification, and an Internet culture where expediency and pragmatism
are favored over formal correctness. Fortunately, recent work in the space of
clean slate Internet design---especially, the software defined networking (SDN)
paradigm---offers the Internet community another chance to develop the right
kind of architecture and abstractions. This has also led to a great resurgence
in interest of applying formal methods to specification, verification, and
synthesis of networking protocols and applications. In this paper, we present a
self-contained tutorial of the formidable amount of work that has been done in
formal methods, and present a survey of its applications to networking.Comment: 30 pages, submitted to IEEE Communications Surveys and Tutorial
Partial derivative automata formalized in Coq
In this paper we present a computer assisted proof of the correctness of a partial derivative automata construction from a regular expression within the Coq proof assistant. This proof is part of a for- malization of Kleene algebra and regular languages in Coq towards their usage in program certification.Fundação para a Ciência e Tecnologia (FCT)
Program POSI, RESCUE (PTDC/EIA/65862/2006), SFRH/BD/33233/2007
Formal Analysis of Concurrent Programs
In this thesis, extensions of Kleene algebras are used to develop algebras for rely-guarantee style reasoning about concurrent programs. In addition to these algebras, detailed denotational models are implemented in the interactive theorem prover Isabelle/HOL. Formal soundness proofs link the algebras to their models. This follows a general algebraic approach for developing correct by construction verification tools within Isabelle. In this approach, algebras provide inference rules and abstract principles for reasoning about the control flow of programs, while the concrete models provide laws for reasoning about data flow. This yields a rapid, lightweight approach for the construction of verification and refinement tools. These tools are used to construct a popular example from the literature, via refinement, within the context of a general-purpose interactive theorem proving environment
An Elementary Proof of the FMP for Kleene Algebra
Kleene Algebra (KA) is a useful tool for proving that two programs are
equivalent by reasoning equationally. Because it abstracts from the meaning of
primitive programs, KA's equational theory is decidable, so it integrates well
with interactive theorem provers. This raises the question: which equations can
we (not) prove using the laws of KA? Moreover, which models of KA are complete,
in the sense that they satisfy exactly the provable equations? Kozen (1994)
answered these questions by characterizing KA in terms of its language model.
Concretely, equivalences provable in KA are exactly those that hold for regular
expressions.
Pratt (1980) observed that KA is complete w.r.t. relational models, i.e.,
that its provable equations are those that hold for any relational
interpretation. A less known result due to Palka (2005) says that finite models
are complete for KA, i.e., that provable equivalences coincide with equations
satisfied by all finite KAs. Phrased contrapositively, the latter is a finite
model property (FMP): any unprovable equation is falsified by a finite KA.
These results can be argued using Kozen's theorem, but the implication is
mutual: given that KA is complete w.r.t. finite (resp. relational) models,
Palka's (resp. Pratt's) arguments show that it is complete w.r.t. the language
model.
We embark on a study of the different complete models of KA, and the
connections between them. This yields a fourth result subsuming those of Palka
and Pratt, namely that KA is complete w.r.t. finite relational models. Next, we
put an algebraic spin on Palka's techniques, which yield an elementary proof of
the finite model property, and by extension, of Kozen's and Pratt's theorems.
In contrast with earlier approaches, this proof relies not on minimality or
bisimilarity of automata, but rather on representing the regular expressions
involved in terms of transformation automata
Decision Procedure for Synchronous Kleene Algebra
Kleene Algebra (KA) is an algebraic system that has many applications both in mathematics and
computer science. It was named after Stephen Cole Kleene who extensively studied regular
expressions and finite automata [Kle56].
Moreover it is often used to reason about programs, as it can represent sequential composition,
choice and finite iteration. Furthermore, the need to reason about actions which can be executed
concurrently, spawned SKA. SKA is an extension of KA introduced by Cristian Prisacariu
in [Pri10] that adopts a notion of concurrent actions.
Laguange equivalence is an imperishable problem in computer science. In this thesis we present
the reader with a detailed explanation of a decision procedure for SKA terms and an OCaml
implementation of said procedure as well.A Kleene Algebra (KA) é um sistema algébrico que tem bastantes aplicações quer no campo da
matemática como também da informática.
Foi batizada com o nome do seu inventor Stephen Cole Kleene, que ao longo da sua carreira fez
um estudo intensivo sobre expressões regulares e autómatos finitos [Kle56].
Quando há necessidade de raciocinar equacionalmente sobre programas, recorre-se frequentemente
à Kleene Algebra, visto que esta consegue exprimir noções de escolha, composição sequencial
e até a noção de iteração. A necessidade de raciocinar equacionalmente sobre ações
que podem ser executadas de forma concorrente levou ao aparecimento da Algebra de Kleene
Síncrona ou Synchronous Kleene Algebra (SKA). Esta última foi introduzida por Cristian Prisacariu
em 2010 no seu artigo [Pri10] como uma extensão à Kleene Algebra mas que contém uma noção
de ação concorrente.
A equivalência de linguagens é um problema perene em ciências da computação. Nesta dissertação
iremos apresentar ao leitor uma explicação detalhada de um processo de decisão para
termos de Synchronous Kleene Algebra (SKA) bem como a sua implementação utilizando a linguagem
de programação OCaml
Untyping Typed Algebras and Colouring Cyclic Linear Logic
We prove "untyping" theorems: in some typed theories (semirings, Kleene
algebras, residuated lattices, involutive residuated lattices), typed equations
can be derived from the underlying untyped equations. As a consequence, the
corresponding untyped decision procedures can be extended for free to the typed
settings. Some of these theorems are obtained via a detour through fragments of
cyclic linear logic, and give rise to a substantial optimisation of standard
proof search algorithms.Comment: 21
- …