Damas Gruska. Probabilistic Opacity
Abstract: We define a security concept  "probabilistic opacity" in a probabilistic
timed process algebra framework. A process is opaque with respect to
a given property over its traces (represented by predicate $\Phi$) if an
observer (represented by an observational function) cannot decide whether
the property has been satisfied. In general, opacity is undecidable even
for finite state systems so we express both the security predicate and
the observation function by means of finite state processes. The resulting
security properties can be used for specifications and verifications of
concurrent systems.
Joost-Pieter Katoen, Mani Swaminathan and Martin Fränzle. Symbolic Robustness Analysis of Probabilistic Timed Systems
Abstract: We propose a symbolic algorithm that attempts to address \emph{robustness} w.r.t the interplay of non-deterministic and probabilistic behaviour in the quantitative analysis of real-time systems, modelled as Probabilistic Timed Automata (PTA). We consider enhanced non-deterministic behaviour by accounting for model-imprecisions such as drifting clocks, unlike the existing analysis technqiues for PTA that consider perfect clocks.
Erika Abraham, Immo Grabe, Andreas Gruener and Martin Steffen. Abstract interface behavior of  an object-oriented language with futures and promises
Abstract: This paper describes the observable interface behavior of a simple
  object-oriented language with futures, promises, and active objects,
  which captures the core of \Creol's concurrency.  The operational
  semantics is written in such a way that it highlights the commonalities
  and the (few, but crucial) differences to the more familiar
  multi-threaded concurrency model of languages like Java and C-sharp. In
  addition, we extend the language and the result by \emph{promises}.
  
  \textbf{Keywords:} oo languages, formal semantics, concurrency, futures
  and  promises, open systems, observable behavior%
Eva Suci and Magne Haveraaen. A Hardware Independent Parallel Programming Model
Abstract: Programming a highly parallel machine or chip can be formulated
as finding an embedding of the computation's data dependency into the underlying
hardware architecture. With the data dependency pattern of a computation
extracted as a separate entity in a programming language, one has a powerful tool to
code parallel programs.
Pavel Krcal, Leonid Mokrushin and Wang Yi. Compositional Analysis of Timed Systems by Abstraction
Abstract: We present a new technique for compositional timing
and performance analysis of real-time systems
modeled using timed automata and the real-time calculus
\cite{tcgmg-emsoft01}. It is an over-approximation technique
in which a component of a system, modeled as a timed automaton
is abstracted as a transducer of event streams described
by arrival curves from the real-time calculus.
This allows us to characterize the semantics of a system as
a set of equations over streams. Many interesting properties
such as schedulability and buffer boundedness can be checked
in solving the equations. Based on UPPAAL and the real-time
calculus, a prototype tool has been implemented, that can
be used to check the schedulability of a system and to
estimate the best and worst case response times of its
computation tasks.
Kai Trojahner and Clemens Grelck. Dependently Typed Array Programs Don't Go Wrong
Abstract: The array programming paradigm adopts arrays as the fundamental data structures
of computation.
Array operations work on entire arrays instead of just single elements.
This makes array programs highly expressive and introduces data-parallelism in a natural way.
In this paper, we present a special type system for static verification of array programs.
The system uses families of array types that do not only reflect the type of an array's elements but also contain an expression describing its shape.
For specific arrays such as shape vectors, singleton types are employed to capture a vector's value in its type.
The type system is based on a new variant of dependent types:
Vectors of integers are used to index into the family of array types.
Jens Schoenborn, Heiko Schmidt and Harald Fecher. UML state machines: Fairness Conditions specify the Event Pool
Abstract: The communication between different instances of UML state machines is handled by using underlying event pools but the UML standard leaves the behavior completely unspecified. Thus, in general, liveness properties cannot be verified. We give semantics of Streett fairness constraints for the event pool and present an algorithm that turns a set of fairness constraints into an abstract event pool. Since common fairness suffers from the drawback that the time until something good happens may be unbounded the presented algorithm allows the modeler to specify such a bound. The resulting abstract event pool can be further refined, justified by an example where a priority scheme on events is introduced.
Gyrd Br�ndeland and Ketil St�len. A probabilistic semantic paradigm for component-based security risk analysis
Abstract: We propose a probabilistic semantic paradigm for component-based security risk analysis. By security risk, we mean behaviour that constitutes a risk with regard to ICT security aspects, such as confidentiality, integrity and availability. The purpose of this work is to investigate the nature of security risk in the setting of component-based system development. A better understanding of security risk at the level of components facilitates the prediction of risks related to introducing a new component into a system. The semantic paradigm provides a first step towards integrating security risk analysis into component-based system development.
Fritz Henglein. What is a sorting function?
Abstract: We exhibit intrinsic definitions of inequality tests, sorting functions
and comparators as isomorphic presentations of total preorders
(orders):
� Inequality tests are functions of type T � T ! Bool that are
reflexive, transitive and total.
� Sorting functions are functions of type T ! T (mapping finite
sequences of elements of type T) that permute their input and
do so consistently for each pair of elements.
� Comparators are functions of type T � T ! T � T that are
permutative, transitive and idempotent.
The definitions are intrinsic in the sense that they do not refer to predefined
orders or to each other. Furthermore the isomorphisms can
be defined parametrically polymorphically: the mapping from inequality
tests to sorting functions is the class of stable comparator-based
sorting algorithms; from comparators to sorting functions it is sorting
networks (comparator-based sorting algorithms); the other mappings
are trivial. So defining any one concrete presentation of an order automatically
provides all three presentations.
Whilst mathematically elementary and pleasingly simple, we believe
our definitions of sorting functions and comparators as isomorphic
characterizations of orders to be novel and of interest in themselves.
We investigate a number of variations on the definition of sorting functions
to illustrate that some care must be exercised in formulating their
definition.
Adrian Rutle, Yngve Lamo and Uwe Wolter. Generalized Sketches and Model Driven Architectrue
Abstract: Software developers increasingly recognize the need for portable,
scalable and distributed applications which are reliable, secure and
run at high performance. These applications are also required to be
produced both faster and at a lower cost. An approach to achieve
this is the Object Management Group's Model Driven Architecture
which involves automatic development processes and model management
in addition to executable models. This makes the importance of
formal modeling languages more recognizable since the automatization
of processes requires formal models. However, current modeling
languages are either semi-formal, ambiguous, or both, therefore, a
generic framework for formal, diagrammatic software specification is
inevitable. In this presentation, Generalized Sketches will be
introduced as a generic framework for the specification of modeling
languages and transformations between them. Then an example will be
presented to show how Generalized Sketches may be used in Model
Driven Architecture.
Frank de Boer and Immo Grabe. Finite-State Call-Chain Abstractions for Deadlock Detection in Multithreaded Object-Oriented Languages
Abstract: We present an algorithm to model check deadlock freedom for an automaton model of a Java program. For the sake of this paper, we introduce method automata and thread automata. Classes and objects are abstracted by method automata. Based on these automata thread automata are constructed to represent the calling behaviour of the program. Thread automata have no notion of history. This provides us with a finite-state model for model checking. The imprecision introduced by this abstraction is addressed by a refinement leading to a more precise model with respect to the calling behaviour of the program.
David Frutos Escrig and Carlos Gregorio-Rodr�guez. Algebraic and Coinductive Characterizations of Semantics Provide General Results for Free
Abstract: There have been quite a number of proposals for behavioural
equivalences for concurrent processes, and many of them are
presented in van Glabbeek's linear time-branching time spectrum,
where in particular an axiomatization for each one of these
semantics is provided. Recently we have been able of presenting
also a coinductive characterization of these semantics by means of
\emph {bisimulations up-to}, which give us the possibility to
apply coinductive technique to their study. The most important
property of these two approaches is their generality: once we have
captured the essence of many different semantics in the same way
we are able to get quite general results, which can be proved once
for all, covering not only the semantics that have just been
considered, but any other that could be defined in those
frameworks having some quite general properties that  are the only
ones used when proving our results. We illustrate these asserts by
means of a new and quite interesting result by Aceto, Fokkink and
Ingolfsdottir, where they prove how to get for free an
axiomatization of the equivalence induced by a behaviour preorder
coarser than the ready simulation from that of the given preorder.
We have got much simpler and shorter proofs of the main results in
their paper that besides are valid not only for the semantics in
the spectrum that they need to consider one by one, but for any
other semantics fulfilling the quite general and simple properties
that we need in our general proofs.
Aslan Askarov and Andrei Sabelfeld. Gradual Release: Unifying Declassification, Encryption and Key Release Policies (Extended Abstract)
Abstract: Information security has a challenge to address: enabling
information-flow controls with expressive information
release (or declassification) policies. Existing approaches
tend to address some aspects of information release,
exposing the other aspects for possible attacks. It
is striking that these approaches fall into two mostly separate
categories: revelation-based (as in information purchase,
aggregate computation, moves in a game, etc.) and
encryption-based declassification (as in sending encrypted
secrets over an untrusted network, storing passwords, etc.).

This paper introduces gradual release, a policy that unifies
declassification, encryption, and key release policies.
We model an attacker�s knowledge by the sets of possible secret
inputs as functions of publicly observable outputs. The
essence of gradual release is that this knowledge must remain
constant between releases. Gradual release turns out
to be a powerful foundation for release policies, which we
demonstrate by formally connecting revelation-based and
encryption-based declassification. Furthermore, we show
that gradual release can be provably enforced by security
types and effects.
Alejandro Russo. Controlling Timing Channels in Multithreaded Programs
Abstract: The problem of controlling information flow in multithreaded programs remains an important open challenge. A major difficulty for tracking information flow in concurrent programs is due to the internal timing covert channel. Information is leaked via this channel when secrets affect the timing behavior of a thread, which, via the scheduler, affects the interleaving of public events. Volpano and Smith propose a special primitive called protect. By definition, protect(c) takes one atomic step in the semantics with the effect of executing c to the end. Internal timing leaks are removed if every computation that branches on secrets is wrapped by protect() commands. However, implementing protect imposes a major challenge.

This work introduces a novel treatment of the interaction between threads and the scheduler. As a result, a permissive security specification and a compositional security type system are obtained. The type system guarantees security for a wide class of schedulers and provides a flexible treatment of dynamic thread creation. While this approach allows the implementation of a generalized version of protect, it relies on the modification of the scheduler in the run-time environment.

In some scenarios, the modification of the run-time environment might not be an acceptable requirement. For such scenarios, we also present two transformations that eliminate the need for protect or interactions with the scheduler while avoiding internal timing leaks. The first transformation is given for programs running under cooperative schedulers. It states that threads must not yield control inside of computations that branch on secrets. The second transformation closes internal timing channel when the scheduler is preemptive and behaves as round-robin. It spawns dedicated threads, whenever computation may affect secrets, and carefully synchronizes them.

To evaluate some of the ideas described above, we implement a library in Haskell  that provides information-flow security for multithreaded code. The implementation includes an online-shopping case study. The case study reveals that exploiting concurrency to leak secrets is feasible and dangerous in practice and shows how the library can help avoiding internal timing leaks. Up to the publication date, this is the first tool that guarantees information-flow security in multithreaded programs and the first implementation of a case study that involves concurrency and information-flow policies.
H�rmel Nestra. Transfinite Semantics in the form of Greatest Fixpoint
Abstract: In some applications like program slicing, it is useful to imagine program runs as they were able to overcome non-termination. According to this view, a computation that falls into an infinite loop or infinitely deep recursion continues after completing the infinite subcomputation.

Program semantics that follow this view may be called transfinite but the word "transfinite" actually fails to characterize the whole variety of computation processes. In the case where only iterative loops can be non-terminating, the sequence of execution steps is really transfinite in the sense that the steps can be enumerated by ordinals so that their execution order corresponds to the natural order of ordinals. But in the case of infinitely deep recursion, the sequence is more like a fractal structure.

Defining such semantics even for rather simple programs with infinitely deep recursion has not succeeded so far. We show some possible definitions via greatest fixpoints of monotone operators. In order to achieve this, usual traces are replaced by either fractional traces where steps are enumerated by rational numbers from some fixed interval or trees.
Gift Samuel, Yoshinao Isobe and Markus Roggenbach. Reasoning on Responsiveness  -- Extending CSP-Prover by the model R
Abstract: We report on the instantiation of CSP-Prover with the model R. CSP-Prover is an interactive theorem prover for CSP based on Isabelle/HOL. The model R is the latest development in the realm of CSP models. The model R is dedicated to the study of responsiveness.
Joseph Morris and Malcolm Tyrrell. Higher-Order Data Type Refinement
Abstract: We show data refinement and nondeterminacy are intimately related, and that a strong theory of data refinement can be elegantly constructed on a sufficiently rich theory of nondeterminacy.
Bj�rnar Solhaug and Ketil Stoelen. Refinement, Compliance and Adherence of Policies in the Setting of UML Interactions
Abstract: The UML is the de facto standard for information system specification, but offers little support for policy specification. We introduce extensions to the sequence diagram notation suitable for expressing policy rules. A formal semantics is defined which gives a precise meaning to the specifications and allows the formalization of the notions of refinement and compliance of policies. The relation between a policy and systems for which the policy applies is formalized, defining what it means for a system to adhere to the policy.
Mohammad Mahdi Jaghoori, Frank de Boer and Marjan Sirjani. Task Scheduling in Rebeca
Abstract: In this paper, we add real time constraints to Rebeca and present a compositional approach based on task automata for schedulability analysis of timed Rebeca models. In this approach, instead of just best-case and worst-case execution times, the behavior of each task is given (in terms of timed automata) and used in the schedulability analysis. These timed automata may in turn generate new tasks. Task automata, as introduced in \cite{FersmanYi07acc}, cannot model tasks generated {\em during} the execution of another task.
Marta Plaska, Marina Wald�n and Colin Snook. Visualising program transformations in a stepwise manner
Abstract: For designing and developing complex, correct and reliable systems formal methods are the most beneficial approach. However, a formal methodology could be difficult for industry practitioners due to its mathematical notation. Hence it needs to be supported by more approachable platform, which would give guidance both for industry and research world representatives. The Unified Modelling Language
(UML) with its semi-formal notation gives the intuitive image of the system and is commonly used within the industry. In the stepwise development of our system we combine UML with the formal methods approach and refinement patterns.
  For a formal top-down approach we use the Event B formalism and associated proof tool to develop the system and prove its correctness. Event-B is based on Action Systems as well as the B Method. It is related to B Action Systems for developing distributed systems in B. With the Event-B formalism we have tool support for proving the correctness of the development. In order to translate UML models into Event B, the UML-B tool is used. UML-B is a specialisation of UML that defines a formal modelling notation combining UML and B.
  The first phase of the design approach is to state the goals that the system needs to satisfy. Afterwards the functional requirements of the system are specified using natural language and illustrated by various UML diagrams, such as statechart diagrams that depict the behaviour of the system. The system is built up gradually in small steps using superposition refinement. We strongly rely on patterns in the
refinement process, since these are the cornerstones for creating reusable and robust software. UML diagrams and corresponding Event B code are developed for each step simultaneously. To get a better overview of the design process, we benefit from the progress diagrams that illustrate only the refinement-affected parts of the system. These diagrams are based on well-known and widely-used UML statechart diagrams. In our previous research we introduced progress diagrams, which were illustrated by a case study. Here we focus on exploring refinement patterns in view of progress diagrams, as their combination supports constructing large software systems in an incremental and layered fashion. Moreover, this combination facilitates to master the complexity of the project and to reason about the
properties of the system.
Aske Brekling, Michael R. Hansen and Jan Madsen. Hardware Modelling Language and Verification of Design Properties
Abstract: We give a semantics domain that can be used for hardware design languages like Gezel. With this semantics, we believe that a new Gezel-like language could be defined where the syntax reflects the semantics in a direct manner. We also show how the semantics can be used in connection with verification by relating the semantical domain to timed-automata. We have experimented with verification of some examples, e.g. the Simplified Data Encryption Standard Algorithm, using the UPPAAL system.
Fredrik Degerlund, Mats Neovius and Kaisa Sere. A Framework for Formal Reasoning about Distributed Webs of Trust
Abstract: Information technology is rapidly developing towards pervasive and ubiquitous applications assisting us in making our everyday decisions. As such, they need to be reliable. Technical reliability can already be achieved by traditional formal methods, but modelling human interaction demands new perspectives. We are developing a coordination language for use within the Action Systems formalism in order to mimic human perception of trust. This language allows for componentization by separating trust, as well as for reasoning about trust in a fully distributed manner. We believe that this will dramatically extend the applicable areas for mathematically verified applications, and that it will make us comfortable relying on microprocessors making critical decisions in our favour.
Juri Vain, Kullo Raiend, Andres Kull and Juhan Ernits. Test Purpose Directed Reactive Planning Tester for Nondeterministic Systems
Abstract: We describe a model-based construction of an online tester for black-box testing of the implementation under test
(IUT). The external behaviour of the IUT is modelled as an output observable nondeterministic EFSM with the
assumption that all transition paths are feasible. A test purpose is attributed to the IUT model by a set of
Boolean variables called traps that are used to measure the progress of the test run. These variables are
associated with the transitions of the IUT model. The situation where all traps have been reached means that the
test purpose has been achieved. We present a way to construct a tester that at runtime selects a suboptimal
test path from trap to trap by finding the shortest path to the next unvisited trap. The
principles of reactive planning are implemented in the form of the decision rules of selecting the shortest paths at
runtime. The decision rules are constructed in advance from the IUT model and the test purpose. Preliminary experimental results confirm that this
method clearly outperforms random choice and is better than the anti-ant algorithm in terms of resultant test sequence length to achieve the test purpose.
Steffen van Bakel and Maria Grazia Vigliotti. Note on a simple type system for non-interference
Abstract: We consider  CCS with value
passing  and elaborate a notion of noninterference for the process calculi,
which matches closely that of the programming language.
The idea is to view channels as information carriers rather than as
``events'', so that emitting a secret  on output channel can  considered   safe, while inputting a secret may lead to some kind of leakage.
This is in contrast with the standard notion of noninterference for the process calculi where any causal dependency of low-level action from any high-level action is forbidden.
Stefan Bygde. Analysis of Arithmetical Congruences on Low-Level Code
Abstract: Abstract Interpretation is a well known formal framework for abstracting programming language semantics. It provides a systematic way of building static analyses which can be used for optimisation and debugging purposes. Different semantic properties can be captured by so-called abstract domains which then easily can be combined in various ways to yield more precise analyses. The most known abstract domain is probably the one of intervals. An analysis using the interval domain yields bindings of each integer-valued program variable to an interval at each program point. The interval is the smallest interval that contains the set of integers possible for that particular variable to assume at that program point during execution. Abstract interpretation can be used in many contexts, such as in debugging, program transformation, correctness proving, Worst Case Execution Time analysis etc.

In 1989 Philippe Granger introduced a static analysis of arithmetical congruences. The analysis is formulated as an abstract interpretation computing the smallest (wrt. inclusion) congruence (residue) class that includes the set of possible values that that variable may assume during execution. The result of the analysis is a binding of each integer-valued variable at each program point to a congruence class. Applications for this analysis include automatic vectorisation, pointer analysis (for determining pointer strides) and loop-bound analysis (for detecting loops with non-unit strides). However, in the original presentation, the analysis is not well suited to use on realistic low-level code. By low-level code we mean either compiled and linked object code where high-level constructions has been replaced with target-specific assembly code, or code in a higher-level language written in a fashion close to the hardware. A good example of low-level code is code written for embedded systems which often is using advantages of the target hardware and/or using a lot of bit-level operations. Code for embedded systems is an increasingly important target for analysis, since it is often safety-critical. The reason that the congruence domain in its original presentation is not suitable for low-level code is mainly due to the three following properties of low-level code: A) Bit-level operations are commonly used in low-level code. Programs that contain bit-operations are not supported in the original presentation. For any computation of an expression which contain operations that has not been defined in the analysis, it has to assume that nothing is known about the result and assign the result to the largest congruence class (equal to Z). This can potentially lead to very imprecise analysis results.
B) The interpretation of the values of integer-valued variables is not obvious (e.g. they can be signed or unsigned), the original presentation assumes that values has unambiguous representations. C) The value-domain is limited by its representation (integers are often represented by a fixed number of bits). In Grangers presentation integer-valued variables are assumed to take values in the infinite set of integers. Our contribution is to extend the theory of the analysis of arithmetical congruences to be able to handle low-level or assembly code, still in the framework of abstract interpretation.

This paper provides accurate definitions to the abstract bit-operations AND,NOT,XOR, left- and right shifting and truncation for the congruence domain in order to make the domain support these operations. We provide definitions for the operations together with proofs of their correctness. In these definitions care has been taken to the finite, fixed representation of integers as well as their sometimes ambiguous interpretations as signed or unsigned. With these definitions, congruence analysis can efficiently be performed on low-level code. The paper illustrates the usefulness of the new analysis by an example which shows that variables keep important parity information after executing a XOR-swap.
Sebastian Hunt and David Sands. Forget about it
Abstract: Sometimes programs are supposed to forget information. A typical
  example is an on-line credit card transaction. Credit card data is
  required to complete a financial transaction. While in use, the
  credit card information should only flow to the intended processing
  agent -- not the merchant. But once the transaction is complete the
  credit card information should be erased -- or at least only be
  available to the user.

  This information flow problem was recently described by Chong and
  Myers [CSFW'05]. Chong and Myers studied a semantics of erasure in
  combination with declassification. This combination gives rise to a
  complex semantic model, and no enforcement (verification) mechanism
  is described.

  In this work aim to give a simple semantics to \emph{pure}
  information erasure policies. By relating erasure to flow-sensitive
  information flow properties (Hunt and Sands [POPL'06]) we show that
  erasure policies can be enforced by recasting erasure policies as a
  standard noninterference problem. This enables erasure to be
  verified statically using any flow sensitive noninterference tool.
Tobias Gedell and Daniel Hedin. A Method for Parameterizing Type Systems over Relational Information
Abstract: We present a method for parameterizing type systems over relational information and demonstrate its applicability via two examples.
Ando Saabas and Tarmo Uustalu. Relational Soundness and Optimality Proofs for Simple Partial Redundancy Elimination
Abstract: Type systems are a useful and compact way of describing dataflow analyses. They can explain analyses and optimizations well, they can be used for transformation of functional correctness proofs as soundness of the optimization is straightforward by structural induction on type derivations.
In this work in progress, we investigate the type-systematic approach further on the example of partial redundancy elimination and describe how this approach can also be used to show certain optimality results.
Frank de Boer, Marcello Bonsangue, Andreas Gruener and Martin Steffen. Test Driver Generation from Object-Oriented Interaction Traces
Abstract: We formalize a specification language for object-oriented class-based
concurrent components which specifies a component's behavior based on
its interface trace and which, at the same time, has a similar
look-and-feel as the target language. Moreover, we propose a
transformation algorithm which synthesizes a tester program from a
given specification, such that the tester and the component under test
form an executable closed program.
Wang Yi and Simon Tschirner. Validating QoS Properties in Biomedical Sensor Networks
Abstract: In this paper, we present a formal model of a Biomedical Sensor Network
whose sensor nodes are constructed based on the IEEE 802.15.4 ZigBee
standard for wireless communication. We have used the UPPAAL tool to
tune and validate the temporal configuration parameters of
the network in order to guarantee the desired QoS properties
for a medical application scenario. The case study shows that
even though the main feature of UPPAAL is model checking,
it is also a promising and competitive tool for efficient simulation.
Tarmo Uustalu and Varmo Vene. Guarded and Mendler-Style Structured (Co)Recursion in Circular Proofs
Abstract: Inspired by circular sequent calculi for classical predicate and modal
logics with inductive and coinductive definitions, we study two
wellfounded reformulations of a similar intuitionistic propositional
sequent calculus as total functional programming languages. We arrive
at interesting novel typed lambda calculi with guarded and
Mendler-style (co)recursion.