40,689 research outputs found
Specifying and Verifying Properties of Space - Extended Version
The interplay between process behaviour and spatial aspects of computation
has become more and more relevant in Computer Science, especially in the field
of collective adaptive systems, but also, more generally, when dealing with
systems distributed in physical space. Traditional verification techniques are
well suited to analyse the temporal evolution of programs; properties of space
are typically not explicitly taken into account. We propose a methodology to
verify properties depending upon physical space. We define an appropriate
logic, stemming from the tradition of topological interpretations of modal
logics, dating back to earlier logicians such as Tarski, where modalities
describe neighbourhood. We lift the topological definitions to a more general
setting, also encompassing discrete, graph-based structures. We further extend
the framework with a spatial until operator, and define an efficient model
checking procedure, implemented in a proof-of-concept tool.Comment: Presented at "Theoretical Computer Science" 2014, Rom
Vehicle: Bridging the Embedding Gap in the Verification of Neuro-Symbolic Programs
Neuro-symbolic programs -- programs containing both machine learning
components and traditional symbolic code -- are becoming increasingly
widespread. However, we believe that there is still a lack of a general
methodology for verifying these programs whose correctness depends on the
behaviour of the machine learning components. In this paper, we identify the
``embedding gap'' -- the lack of techniques for linking semantically-meaningful
``problem-space'' properties to equivalent ``embedding-space'' properties -- as
one of the key issues, and describe Vehicle, a tool designed to facilitate the
end-to-end verification of neural-symbolic programs in a modular fashion.
Vehicle provides a convenient language for specifying ``problem-space''
properties of neural networks and declaring their relationship to the
``embedding-space", and a powerful compiler that automates interpretation of
these properties in the language of a chosen machine-learning training
environment, neural network verifier, and interactive theorem prover. We
demonstrate Vehicle's utility by using it to formally verify the safety of a
simple autonomous car equipped with a neural network controller
Formal Verification of Abstract SystemC Models
In this paper we present a formal verification approach for abstract SystemC models. The approach allows checking expressive properties and lifts induction known from bounded model checking to a higher level, to cope with the large state space of abstract SystemC programs. The technique is tightly integrated with our SystemC to C transformation and generation of monitoring logic to form a complete and efficient method. Properties specifying both hardware and software aspects, e.g. pre- and post-conditions as well as temporal relations of transactions and events, can be specified. As shown by experiments modern proof techniques allow verifying important non-trivial behavior. Moreover, our inductive technique gives significant speed-ups in comparison to simple methods
Analyzing Behavioural Scenarios over Tabular Specifications Using Model Checking
Tabular notations, in particular SCR specifications, have proved to be a
useful means for formally describing complex requirements. The SCR method
offers a powerful family of analysis tools, known as the SCR Toolset, but its
availability is restricted by the Naval Research Laboratory of the USA. This
toolset applies different kinds of analysis considering the whole set of
behaviours associated with a requirements specification. In this paper we
present a tool for describing and analyzing SCR requirements descriptions, that
complements the SCR Toolset in two aspects. First, its use is not limited by
any institution, and resorts to a standard model checking tool for analysis;
and second, it allows to concentrate the analysis to particular sets of
behaviours (subsets of the whole specifications), that correspond to particular
scenarios explicitly mentioned in the specification. We take an operational
notation that allows the engineer to describe behavioural "scenarios" by means
of programs, and provide a translation into Promela to perform the analysis via
Spin, an efficient off-the-shelf model checker freely available. In addition,
we apply the SCR method to a Pacemaker system and we use its tabular
specification as a running example of this article.Comment: In Proceedings LAFM 2013, arXiv:1401.056
The AutoProof Verifier: Usability by Non-Experts and on Standard Code
Formal verification tools are often developed by experts for experts; as a
result, their usability by programmers with little formal methods experience
may be severely limited. In this paper, we discuss this general phenomenon with
reference to AutoProof: a tool that can verify the full functional correctness
of object-oriented software. In particular, we present our experiences of using
AutoProof in two contrasting contexts representative of non-expert usage.
First, we discuss its usability by students in a graduate course on software
verification, who were tasked with verifying implementations of various sorting
algorithms. Second, we evaluate its usability in verifying code developed for
programming assignments of an undergraduate course. The first scenario
represents usability by serious non-experts; the second represents usability on
"standard code", developed without full functional verification in mind. We
report our experiences and lessons learnt, from which we derive some general
suggestions for furthering the development of verification tools with respect
to improving their usability.Comment: In Proceedings F-IDE 2015, arXiv:1508.0338
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
Model checking web applications
The modelling of web-based applications can assist in capturing and understanding their behaviour.
The development of such applications requires the use of sound methodologies to ensure that the
intended and actual behaviour are the same.
As a verification technique, model checking can assist in finding design
flaws and simplifying the
design of a web application, and as a result the design and the security of the web application can
be improved. Model checking has the advantage of using an exhaustive search of the state space of
a system to determine if the specifications are true or not in a given model.
In this thesis we present novel approaches in modelling and verifying web applications' properties
to ensure their design correctness and security. Since the actions in web applications rely on both
the user input and the server status; we propose an approach for modelling and verifying dynamic
navigation properties. The Spin model checker has been used successfully in verifying communication
protocols. However, the current version of Spin does not support modelling time. We integrate
discrete time in the Spin model to allow the modelling of realistic properties that rely on time
constraints and to analyse the sequence of actions and time. Examining the sequence of actions in
web applications assists in understanding their behaviour in different scenarios such as navigation
errors and in the presence of an intruder. The model checker Uppaal is presented in the literature
as an alternative to Spin when modelling real-time systems. We develop models with real time
constraints in Uppaal in order to validate the results from the Spin models and to compare the
differences between modelling with real time and with discrete time as in Spin. We also compare
the complexity and expressiveness of each model checker in verifying web applications' properties.
The web application models in our research are developed gradually to ensure their correctness and
to manage the complexities of specifying the security and navigation properties. We analyse the
compromised model to compare the differences in the sequence of actions and time with the secure
model to assist in improving early detections of malicious behaviour in web applications
- …