375 research outputs found
Behavioural Preorders on Stochastic Systems - Logical, Topological, and Computational Aspects
Computer systems can be found everywhere: in space, in our homes, in our
cars, in our pockets, and sometimes even in our own bodies. For concerns of
safety, economy, and convenience, it is important that such systems work
correctly. However, it is a notoriously difficult task to ensure that the
software running on computers behaves correctly.
One approach to ease this task is that of model checking, where a model of
the system is made using some mathematical formalism. Requirements expressed in
a formal language can then be verified against the model in order to give
guarantees that the model satisfies the requirements.
For many computer systems, time is an important factor. As such, we need our
formalisms and requirement languages to be able to incorporate real time.
We therefore develop formalisms and algorithms that allow us to compare and
express properties about real-time systems. We first introduce a logical
formalism for reasoning about upper and lower bounds on time, and study the
properties of this formalism, including axiomatisation and algorithms for
checking when a formula is satisfied.
We then consider the question of when a system is faster than another system.
We show that this is a difficult question which can not be answered in general,
but we identify special cases where this question can be answered. We also show
that under this notion of faster-than, a local increase in speed may lead to a
global decrease in speed, and we take step towards avoiding this.
Finally, we consider how to compare the real-time behaviour of systems not
just qualitatively, but also quantitatively. Thus, we are interested in knowing
how much one system is faster or slower than another system. This is done by
introducing a distance between systems. We show how to compute this distance
and that it behaves well with respect to certain properties.Comment: PhD dissertation from Aalborg Universit
Verification and Parameter Synthesis for Real-Time Programs using Refinement of Trace Abstraction
We address the safety verification and synthesis problems for real-time
systems. We introduce real-time programs that are made of instructions that can
perform assignments to discrete and real-valued variables. They are general
enough to capture interesting classes of timed systems such as timed automata,
stopwatch automata, time(d) Petri nets and hybrid automata.
We propose a semi-algorithm using refinement of trace abstractions to solve
both the reachability verification problem and the parameter synthesis problem
for real-time programs.
All of the algorithms proposed have been implemented and we have conducted a
series of experiments, comparing the performance of our new approach to
state-of-the-art tools in classical reachability, robustness analysis and
parameter synthesis for timed systems. We show that our new method provides
solutions to problems which are unsolvable by the current state-of-the-art
tools
An algebra of behavioural types
Special thanks to GĆ©rard Boudol, Ilaria Castellani, Silvano Dal Zilio, and Massimo Merro, for fruitful discussions and careful reading of parts of this document. Several anonymous referees made useful comments.We propose a process algebra, the Algebra of Behavioural Types, as a language for typing concurrent objects. A type is a higher-order labelled transition system that characterises all possible life cycles of a concurrent object. States represent interfaces of objects; state transitions model the dynamic change of object interfaces. Moreover, a type provides an internal view of the objects that inhabits it: a synchronous one, since transitions correspond to message reception. To capture this internal view of objects we define a notion of bisimulation, strong on labels and weak on silent actions. We study several algebraic laws that characterise this equivalence, and obtain completeness results for image-finite types.publishersversionpublishe
Actor programming with static guarantees
This thesis discusses two methodologies for applying type discipline to concurrent programming with actors: process types, and session types. A system based on each of the two is developed, and used as the basis for a comprehensive overview of process- and session- type merits and limitations. In particular, we analyze the trade-offs of the two approaches with regard to the expressiveness of the resulting calculi, versus the nature of the static guarantees offered. The first system discussed is based on the notion of a \emph{typestate}, that is, a view of an actor's internal state that can be statically tracked. The typestates used here capture what each actor handle \emph{may} be used for, as well as what it \emph{must} be used for. This is done by associating two kinds of tokens with each actor handle: tokens of the first kind are consumed when the actor receives a message, and thus dictate the types of messages that can be sent through the handle; tokens of the second kind dictate messaging obligations, and the type system ensures that related messages have been sent through the handle by the end of its lifetime. The next system developed here adapts session types to suit actor programming.
Session types come from the world of process calculi, and are a means to statically check the messaging taking place over communication channels against a pre-defined protocol. Since actors do not use channels, one needs to consider pairs of actors as participants in multiple, concurrently executed---and thus interleaving---protocols. The result is a system with novel, parameterized type constructs to capture communication patterns that prior work cannot handle, such as the sliding window protocol. Although this system can statically verify the implementation of complicated messaging patterns, it requires deviations from industry-standard programming models---a problem that is true for all session type systems in the literature. This work argues that the typestate-based system, while not enforcing protocol fidelity as the session-inspired one does, is nevertheless more suitable for model actor calculi adopted by practical, already established frameworks such as Erlang and Akka
Integration of analysis techniques in security and fault-tolerance
This thesis focuses on the study of integration of formal methodologies in security protocol analysis and fault-tolerance analysis. The research is developed in two different directions: interdisciplinary and intra-disciplinary. In the former, we look for a beneficial interaction between strategies of analysis in security protocols and fault-tolerance; in the latter, we search for connections among different approaches of analysis within the security area. In the following we summarize the main results of the research
- ā¦