45,442 research outputs found
Verified Self-Explaining Computation
Common programming tools, like compilers, debuggers, and IDEs, crucially rely
on the ability to analyse program code to reason about its behaviour and
properties. There has been a great deal of work on verifying compilers and
static analyses, but far less on verifying dynamic analyses such as program
slicing. Recently, a new mathematical framework for slicing was introduced in
which forward and backward slicing are dual in the sense that they constitute a
Galois connection. This paper formalises forward and backward dynamic slicing
algorithms for a simple imperative programming language, and formally verifies
their duality using the Coq proof assistant
A Case Study on Formal Verification of Self-Adaptive Behaviors in a Decentralized System
Self-adaptation is a promising approach to manage the complexity of modern
software systems. A self-adaptive system is able to adapt autonomously to
internal dynamics and changing conditions in the environment to achieve
particular quality goals. Our particular interest is in decentralized
self-adaptive systems, in which central control of adaptation is not an option.
One important challenge in self-adaptive systems, in particular those with
decentralized control of adaptation, is to provide guarantees about the
intended runtime qualities. In this paper, we present a case study in which we
use model checking to verify behavioral properties of a decentralized
self-adaptive system. Concretely, we contribute with a formalized architecture
model of a decentralized traffic monitoring system and prove a number of
self-adaptation properties for flexibility and robustness. To model the main
processes in the system we use timed automata, and for the specification of the
required properties we use timed computation tree logic. We use the Uppaal tool
to specify the system and verify the flexibility and robustness properties.Comment: In Proceedings FOCLASA 2012, arXiv:1208.432
- …