77,759 research outputs found
Verification of a Prolog compiler - first steps with KIV
This paper describes the first steps of the formal verification of
a Prolog compiler with the KIV system. We build upon the mathematical
definitions given by Boerger and Rosenzweig in [BR95]. There an
operational semantics of Prolog is defined using the formalism of
Evolving Algebras, and then transformed in several systematic steps
to the Warren Abstract Machine (WAM). To verify these transformation
steps formally in KIV, a translation of deterministic Evolving
Algebras to Dynamic Logic is defined, which may also be of general
interest. With this translation, correctness of transformation steps
becomes a problem of program equivalence in Dynamic Logic. We define
a proof technique for verifying such problems, which corresponds to
the use of proof maps in Evolving Algebras. Although the transfor-
mation steps are small enough for a mathematical analysis, this is not
sufficient for a successful formal correctness proof. Such a proof
requires to explicitly state a lot of facts, which were only impli-
citly assumed in the analysis.
We will argue that these assumptions cannot be guessed in a first
proof attempt, but have to be filled in incrementally. We report on
our experience with this `evolutionary\u27 verification process for the
first transformation step, and the support KIV offers to do such
incremental correctness proofs
Modeling and Analysis of Self-Adaptive Systems Based on Graph Transformation
Software systems nowadays require continuous operation despite changes both in user needs and in their operational environments. Self-adaptive systems are typically instrumented with tools to autonomously perform adaptation to these changes while maintaining some desired properties. In this paper we model and analyze self-adaptive systems by means of typed, attributed graph grammars. The interplay of different grammars representing the application and the adaptation logic is realized by an adaption manager. Within this formal framework we define consistency and operational properties that are maintained despite adaptations and we give static conditions for their verification. The overall approach is supported by the AGG tool that offers the features for modeling, simulating, and analyzing graph transformation systems. A case study modeling a business process that adapts to changing environment conditions is used to demonstrate and validate the formal framework
Formal Analysis and Verication of Self-Healing Systems: Long Version
Self-healing (SH-)systems are characterized by an automatic discovery of system failures, and techniques how to recover from these situations. In this paper, we show how to model SH-systems using algebraic graph transformation. These systems are modeled as typed graph grammars enriched with graph constraints. This allows not only for formal modeling of consistency and operational properties, but also for their analysis and verification using the tool AGG. We present sufficient static conditions for self-healing properties, deadlock-freeness and liveness of SH-systems. The overall approach is applied to a traffic light system case study, where the corresponding properties are verified
Abstract State Machines 1988-1998: Commented ASM Bibliography
An annotated bibliography of papers which deal with or use Abstract State
Machines (ASMs), as of January 1998.Comment: Also maintained as a BibTeX file at http://www.eecs.umich.edu/gasm
Trustworthy Refactoring via Decomposition and Schemes: A Complex Case Study
Widely used complex code refactoring tools lack a solid reasoning about the
correctness of the transformations they implement, whilst interest in proven
correct refactoring is ever increasing as only formal verification can provide
true confidence in applying tool-automated refactoring to industrial-scale
code. By using our strategic rewriting based refactoring specification
language, we present the decomposition of a complex transformation into smaller
steps that can be expressed as instances of refactoring schemes, then we
demonstrate the semi-automatic formal verification of the components based on a
theoretical understanding of the semantics of the programming language. The
extensible and verifiable refactoring definitions can be executed in our
interpreter built on top of a static analyser framework.Comment: In Proceedings VPT 2017, arXiv:1708.0688
Prototyping the Semantics of a DSL using ASF+SDF: Link to Formal Verification of DSL Models
A formal definition of the semantics of a domain-specific language (DSL) is a
key prerequisite for the verification of the correctness of models specified
using such a DSL and of transformations applied to these models. For this
reason, we implemented a prototype of the semantics of a DSL for the
specification of systems consisting of concurrent, communicating objects. Using
this prototype, models specified in the DSL can be transformed to labeled
transition systems (LTS). This approach of transforming models to LTSs allows
us to apply existing tools for visualization and verification to models with
little or no further effort. The prototype is implemented using the ASF+SDF
Meta-Environment, an IDE for the algebraic specification language ASF+SDF,
which offers efficient execution of the transformation as well as the ability
to read models and produce LTSs without any additional pre or post processing.Comment: In Proceedings AMMSE 2011, arXiv:1106.596
Towards Practical Graph-Based Verification for an Object-Oriented Concurrency Model
To harness the power of multi-core and distributed platforms, and to make the
development of concurrent software more accessible to software engineers,
different object-oriented concurrency models such as SCOOP have been proposed.
Despite the practical importance of analysing SCOOP programs, there are
currently no general verification approaches that operate directly on program
code without additional annotations. One reason for this is the multitude of
partially conflicting semantic formalisations for SCOOP (either in theory or
by-implementation). Here, we propose a simple graph transformation system (GTS)
based run-time semantics for SCOOP that grasps the most common features of all
known semantics of the language. This run-time model is implemented in the
state-of-the-art GTS tool GROOVE, which allows us to simulate, analyse, and
verify a subset of SCOOP programs with respect to deadlocks and other
behavioural properties. Besides proposing the first approach to verify SCOOP
programs by automatic translation to GTS, we also highlight our experiences of
applying GTS (and especially GROOVE) for specifying semantics in the form of a
run-time model, which should be transferable to GTS models for other concurrent
languages and libraries.Comment: In Proceedings GaM 2015, arXiv:1504.0244
Integrated Modeling and Verification of Real-Time Systems through Multiple Paradigms
Complex systems typically have many different parts and facets, with
different characteristics. In a multi-paradigm approach to modeling, formalisms
with different natures are used in combination to describe complementary parts
and aspects of the system. This can have a beneficial impact on the modeling
activity, as different paradigms an be better suited to describe different
aspects of the system. While each paradigm provides a different view on the
many facets of the system, it is of paramount importance that a coherent
comprehensive model emerges from the combination of the various partial
descriptions. In this paper we present a technique to model different aspects
of the same system with different formalisms, while keeping the various models
tightly integrated with one another. In addition, our approach leverages the
flexibility provided by a bounded satisfiability checker to encode the
verification problem of the integrated model in the propositional
satisfiability (SAT) problem; this allows users to carry out formal
verification activities both on the whole model and on parts thereof. The
effectiveness of the approach is illustrated through the example of a
monitoring system.Comment: 27 page
- …