785 research outputs found
Translating synchronous Petri Nets into PROMELA for verifying behavioural properties
For developing embedded systems, the design process may benefit in some contexts from the usage of formal methods, namely to find critical errors and flaws, before final design and implementation decisions are taken. The Synchronous and Interpreted Petri Net (SIP-net) modelling language is considered in this article to model embedded systems. This model of computation is based on safe Petri nets with guarded transitions and synchronous transitions firing, and also includes enabling and inhibitor arcs. The Spin tool, whose input language is PROMELA, is a verification system based on model checking techniques. This article presents a program to translate SIP-net models into PROMELA code and discusses in detail the adequacy of the created PROMELA specification for verification through
model checking techniques.FundaĆ§Ć£o para a CiĆŖncia e a Tecnologia (FCT) - bolsa SFRH/BD/19718/200
Model checking learning agent systems using Promela with embedded C code and abstraction
As autonomous systems become more prevalent, methods for their verification will become more
widely used. Model checking is a formal verification technique that can help ensure the safety of autonomous
systems, but in most cases it cannot be applied by novices, or in its straight \off-the-shelf" form. In order
to be more widely applicable it is crucial that more sophisticated techniques are used, and are presented
in a way that is reproducible by engineers and verifiers alike. In this paper we demonstrate in detail two
techniques that are used to increase the power of model checking using the model checker SPIN. The first
of these is the use of embedded C code within Promela specifications, in order to accurately re
ect robot
movement. The second is to use abstraction together with a simulation relation to allow us to verify multiple
environments simultaneously. We apply these techniques to a fairly simple system in which a robot moves
about a fixed circular environment and learns to avoid obstacles. The learning algorithm is inspired by the
way that insects learn to avoid obstacles in response to pain signals received from their antennae. Crucially,
we prove that our abstraction is sound for our example system { a step that is often omitted but is vital if
formal verification is to be widely accepted as a useful and meaningful approach
Verification and Optimization of a PLC Control Schedule
We report on the use of the SPIN model checker for both the verification of a process control program and the derivation of optimal control schedules. This work was carried out as part of a case study for the EC VHS project (Verification of Hybrid Systems), in which the program for a Programmable Logic Controller (PLC) of an experimental chemical plant had to be designed and verified. The intention of our approach was to see how much could be achieved here using the standard model checking environment of SPIN/Promela. As the symbolic calculations of real-time model checkers can be quite expensive it is interesting to try and exploit the efficiency of established non-real-time model checkers like SPIN in those cases where promising work-arounds seem to exist. In our case we handled the relevant real-time properties of the PLC controller using a time-abstraction technique; for the scheduling we implemented in Promela a so-called variable time advance procedure. For this case study these techniques proved sufficient to verify the design of the controller and derive (time-)optimal schedules with reasonable time and space requirements
Towards verifying correctness of wireless sensor network applications using Insense and Spin
The design and implementation of wireless sensor network applications often require domain experts, who may lack expertise in software engineering, to produce resource-constrained, concurrent, real-time software without the support of high-level software engineering facilities. The Insense language aims to address this mismatch by allowing the complexities of synchronisation, memory management and event-driven programming to be borne by the language implementation rather than by the programmer. The main contribution of this paper is all initial step towards verifying the correctness of WSN applications with a focus on concurrency. We model part of the synchronisation mechanism of the Insense language implementation using Promela constructs and verify its correctness using SPIN. We demonstrate how a previously published version of the mechanism is shown to be incorrect by SPIN, and give complete verification results for the revised mechanism.Preprin
Model Checking with Program Slicing Based on Variable Dependence Graphs
In embedded control systems, the potential risks of software defects have
been increasing because of software complexity which leads to, for example,
timing related problems. These defects are rarely found by tests or
simulations. To detect such defects, we propose a modeling method which can
generate software models for model checking with a program slicing technique
based on a variable dependence graph. We have applied the proposed method to
one case in automotive control software and demonstrated the effectiveness of
the method. Furthermore, we developed a software tool to automate model
generation and achieved a 35% decrease in total verification time on model
checking.Comment: In Proceedings FTSCS 2012, arXiv:1212.657
Model checking programmable router configurations
Programmable networks offer the ability to customize router behaviour at run time, thus increasing flexibility of network administration. Programmable network routers are configured using domain-specific languages. In this paper, we describe our approach to defining the syntax and semantics of such a domain-specific language. The ability to evolve router programs dynamically creates potential for misconfigurations. By exploiting domain-specific abstractions, we are able to translate router configurations into Promela and validate them using the Spin model checker, thus providing reasoning support for our domain-specific language. To evaluate our approach we use our configuration language to express the IETF's Differentiated Services specification and show that industrial-sized DiffServ router configurations can be validated using Spin on a standard PC. Ā© 2010 Springer-Verlag Berlin Heidelberg
Optimal Scheduling Using Branch and Bound with SPIN 4.0
The use of model checkers to solve discrete optimisation problems is appealing. A model checker can first be used to verify that the model of the problem is correct. Subsequently, the same model can be used to find an optimal solution for the problem. This paper describes how to apply the new PROMELA primitives of SPIN 4.0 to search effectively for the optimal solution. We show how Branch-and-Bound techniques can be added to the LTL property that is used to find the solution. The LTL property is dynamically changed during the verification. We also show how the syntactical reordering of statements and/or processes in the PROMELA model can improve the search even further. The techniques are illustrated using two running examples: the Travelling Salesman Problem and a job-shop scheduling problem
- ā¦