Verifying Mobile Systems: Take Two
This papers relates the design and development of two “proof of concept” analysis tools for the pi-calculus. The main functionality of the first tool, named PiExplorer, is to construct the state-space of a finitary pi-calculus process as a directed graph akin to a finite-state automaton. As counterintuitive as it may seem, this is a rather complex objective. The second tool is an implementation of the main pi-calculus features (especially name-passing) in the Promela language. This enables the use of the Spin model checker for the verification task. Although very different, these two prototypes share a common foundation: a notion of a stateful observer for pi-calculus processes. This is the central idea discussed in the paper.
- Research Article
15
- 10.1016/j.ic.2021.104704
- Feb 2, 2021
- Information and Computation
A theory of monitors
- Book Chapter
29
- 10.1007/978-3-662-49630-5_9
- Jan 1, 2016
We develop a behavioural theory for monitors — software entities that passively analyse the runtime behaviour of systems so as to infer properties about them. First, we extend the monitor language and instrumentation relation of [17] to handle piCalculus process monitoring. We then identify contextual behavioural preorders that allow us to relate monitors according to criteria defined over monitored executions of piCalculus processes. Subsequently, we develop alternative monitor preorders that are more tractable, and prove full-abstraction for the latter alternative preorders with respect to the contextual preorders.
- Conference Article
28
- 10.1145/1401827.1401833
- Jul 21, 2008
Two popular forms of dynamic analysis, random testing and explicit-state software model checking, are perhaps best viewed as search strategies for exploring the state spaces introduced by nondeterminism in program inputs. We present an approach that enables this nondeterminism to be expressed in the SPIN model checker's PROMELA language, and then lets users generate either model checkers or random testers from a single harness for a tested C program. Our approach makes it easy to compare model checking and random testing for models with precisely the same input ranges and probabilities and allows us to mix random testing with model checking's exhaustive exploration of non-determinism. The PROMELA language, as intended in its design, serves as a convenient notation for expressing nondeterminism and mixing random choices with nondeterministic choices. We present and discuss a comparison of random testing and model checking. The results derive from using our framework to test a C program with an effectively infinite state space, a module in JPL's next Mars rover mission. More generally, we show how the ability of the SPIN model checker to call C code can be used to extend SPIN's features, and hope to inspire others to use the same methods to implement dynamic analyses that can make use of efficient state storage, matching, and backtracking.
- Single Book
61
- 10.1007/978-1-84628-770-1
- Jan 1, 2008
Principles of Spin is an introductory book, the only requirement is a background in programming. Spin models are written in the Promela language which is easily learned by students and programmers. Spin is easy to install and use. The Spin model checker is not only a widely used professional tool but it is also a superb tool for teaching important concepts of computer science such as verification, concurrency and nondeterminism. The book introduces Spin-based software that the author has developed for teaching: jSpin - an integrated development environment for Spin; SpinSpider - uses output from Spin to automatically construct state diagrams of concurrent programs; VN is a tool for visualizing nondeterminism. Complete programs will demonstrate each construct and concept and these programs will be available on a companion website.
- Research Article
46
- 10.1007/s100090050045
- Mar 1, 2000
- International Journal on Software Tools for Technology Transfer (STTT)
The General Inter-Orb Protocol (GIOP) is a key component of the Common Object Request Broker Architecture (CORBA) specification. We present the formal modeling and validation of the GIOP protocol using the Promela language, Linear Time Temporal Logic (LTL) and the Spin model checker. We validate the Promela model using ten high-level requirements which we elicit from the informal CORBA specification. These requirements are then formalized in LTL and the Spin model checker is used to determine their validity. During the validation process we discovered a few problems in GIOP: a potential transport-layer interface deadlock and problems with the server migration protocol. We also describe how property specification patterns helped us in formalizing the high-level requirements that we have elicited.
- Conference Article
1
- 10.1109/srds.2010.23
- Oct 1, 2010
Distributed systems are used in numerous applications where failures can be costly. Due to concerns that some of the nodes may become faulty, critical services are usually replicated across several nodes, which execute distributed algorithms to ensure correct service in spite of failures. To prevent replica-exhaustion, it is fundamental to detect errors and trigger appropriate recovery actions. In particular, it is important to detect situations in which nodes cease to execute the intended algorithm, e.g., when a replica is compromised by an attacker or when a hardware fault causes the node to behave erratically. This paper proposes a method for monitoring the local execution of nodes using watchdog timers. The approach consists in deducing, from the global system properties, local states that must be visited periodically by nodes that execute the intended algorithm correctly. When a node fails to trigger a watchdog before the time limit, an appropriate response can be initiated. The approach is applied to a well-known Byzantine consensus algorithm. The algorithm is modeled in the PROMELA language and the SPIN model checker is used to identify local states that must be visited periodically by correct nodes. Such states are suitable for online monitoring using watchdog timers.
- Book Chapter
10
- 10.1007/3-540-46419-0_36
- Jan 1, 2000
This paper describes an experience in formal specification and fault tolerant behavior validation of a railway critical system. The work, performed in the context of a real industrial project, had the following main targets: (a) to validate specific safety properties in the presence of byzantine system components or of some hardware temporary faults; (b) to design a formal model of a critical railway system at a right level of abstraction so that could be possible to verify certain safety properties and at the same time to use the model to simulate the system. For the model specification we used the PROMELA language, while the verification was performed using the SPIN model checker. Safety properties were specified by means of both assertions and temporal logic formulae. To make the problem of validation tractable in the SPIN environment, we used ad hoca bstraction techniques.
- Research Article
11
- 10.3390/s20226546
- Nov 16, 2020
- Sensors (Basel, Switzerland)
The Internet of things (IoT) will accommodate several billions of devices to the Internet to enhance human society as well as to improve the quality of living. A huge number of sensors, actuators, gateways, servers, and related end-user applications will be connected to the Internet. All these entities require identities to communicate with each other. The communicating devices may have mobility and currently, the only main identity solution is IP based identity management which is not suitable for the authentication and authorization of the heterogeneous IoT devices. Sometimes devices and applications need to communicate in real-time to make decisions within very short times. Most of the recently proposed solutions for identity management are cloud-based. Those cloud-based identity management solutions are not feasible for heterogeneous IoT devices. In this paper, we have proposed an edge-fog based decentralized identity management and authentication solution for IoT devices (IoTD) and edge IoT gateways (EIoTG). We have also presented a secure communication protocol for communication between edge IoT devices and edge IoT gateways. The proposed security protocols are verified using Scyther formal verification tool, which is a popular tool for automated verification of security protocols. The proposed model is specified using the PROMELA language. SPIN model checker is used to confirm the specification of the proposed model. The results show different message flows without any error.
- Book Chapter
- 10.1007/978-3-642-30947-2_46
- Jan 1, 2012
In this paper we describe modeling for verification of business process with Spin model checker. Our primary goal is the development of Promela language description for e–invoice web service. Modeling for verification follows Church’s synthesis problem: for input scenario “data–flow” model, output is Promela model. Sequence of model transformations translates the scenario into the Promela language code. At the end whole process is illustrated with e–invoice web service example.
- Research Article
1
- 10.15514/ispras-2016-28(4)-4
- Jan 1, 2016
- Proceedings of the Institute for System Programming of the RAS
This paper introduces a method for scalable verification of cache coherence protocols described in the Promela language. Scalability means that resources spent on verification (first of all, machine time and memory) do not depend on the number of processors in the system under verification. The method is comprised of three main steps. First, a Promela model written for a certain configuration of the system is generalized to the model being parameterized with the number of processors. To do it, some assumptions on the protocol are used as well as simple induction rules. Second, the parameterized model is abstracted from the number of processors. It is done by syntactical transformations of the model assignments, expressions, and communication actions. Finally, the abstract model is verified with the Spin model checker in a usual way. The method description is accompanied by the proof of its correctness. It is stated that the suggested abstraction is conservative in a sense that every invariant (a property that is true in all reachable states) of the abstract model is an invariant of the original model (invariant properties are the properties of interest during verification of cache coherence protocols). The method has been automated by a tool prototype that, given a Promela model, parses the code, builds the abstract syntax tree, transforms it according to the rules, and maps it back to Promela. The tool (and the method in general) has been successfully applied to verification of the MOSI protocols implemented in the Elbrus computer systems.
- Conference Article
1
- 10.1109/ewdts.2016.7807745
- Oct 1, 2016
This paper overviews a technique for verifying cache coherence protocols described in the Promela language. The approach is comprised of the following steps. First, a model written for a certain configuration of the memory system is generalized to the model being parameterized with the number of processors. Second, the parameterized model is abstracted from the exact number of processors. Finally, the abstract model is verified with the Spin model checker in a usual way. The suggested technique has been successfully applied to verification of the MOSI protocol implemented in the Elbrus computer systems.
- Conference Article
7
- 10.1145/3132062.3132079
- Nov 21, 2017
The paper presents a formal approach to model, analyze, and verify a variant of Message Queue Telemetry Transport protocol (MQtt), dedicated to communicating vehicles (MQtt-CV) that send collected data to automotive infrastructures(subscribers). Our formal approach is based on Promela language and its system verification tool, the model checker SPIN. We propose a slight modification of MQtt protocol to reduce the big volume of data collected and sent by vehicles to infrastructures. Indeed, in the original version of MQtt protocol, when a broker receives data from publishers, it sends them directly to its subscribers without any filtration. As consequence, subscribers may be flooded with unimportant data, which increase the problem in the context where infrastructures should manage a huge volume of data sent by thousands of vehicles. So we propose to model and to analyze formally MQtt-CV protocol, to ensure that the components (broker, publisher, subscriber) that implement this protocol interact correctly and fulfill MQtt requirements.
- Conference Article
16
- 10.1109/ecbs.2005.53
- Apr 4, 2005
The design process for embedded systems can benefit from the usage of formal methods, if some properties of the systems are checked, before design and implementation decisions are accomplished. This paper presents a model checking approach using the Spin tool, to verify some important properties of embedded systems, namely liveness, deadlock-freedom, and structural conflicts among transitions. The systems are modelled with a variant of Petri nets, called SIPN (synchronous and interpreted Petri nets), and this paper discusses how SIPN models should be specified with the PROMELA language (input format for the Spin model checker). The approach is exemplified with a case study.
- Book Chapter
1
- 10.1007/3-540-46017-9_22
- Jan 1, 2002
This paper describes a sample modelling and verification session using SDL and SPIN modelchecker via the PEP tool. We will focus on the tight integration of all involved tools allowing the user to stay within his known environment of SDL specifications. Thus the user need not know about the underlying Petri net or the Promela language even while formulating the properties to be checked.
- Conference Article
2
- 10.1109/edm52169.2021.9507563
- Jun 30, 2021
In the paper, we examine an approach for verifying control programs initially specified in the process-oriented programming language Reflex using model checking, a formal verification method. We propose a technique to translate discrete-state Reflex programs into Promela language. The latter language fits into the class of modeling languages, and is used with the SPIN verifier. We consider a Reflex-program intended to control a wheelchair lift (platform for low-mobility users). We describe the program-to-model transformation for this example, elaborate requirements and discuss the result of verification consideration.
- Ask R Discovery
- Chat PDF
AI summaries and top papers from 250M+ research sources.