The mutual exclusion problem: partII—statement and solutions
Journal of the ACM (JACM)
Design and validation of computer protocols
Design and validation of computer protocols
Concurrent programming in ERLANG (2nd ed.)
Concurrent programming in ERLANG (2nd ed.)
Verification of Erlang programs using abstract interpretation and model checking
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Model checking
Bandera: a source-level interface for model checking Java programs
Proceedings of the 22nd international conference on Software engineering
Additional comments on a problem in concurrent programming control
Communications of the ACM
Solution of a problem in concurrent programming control
Communications of the ACM
Distributed Algorithms
A Calculus of Communicating Systems
A Calculus of Communicating Systems
CADP - A Protocol Validation and Verification Toolbox
CAV '96 Proceedings of the 8th International Conference on Computer Aided Verification
Verifying Generic Erlang Client-Server Implementations
IFL '00 Selected Papers from the 12th International Workshop on Implementation of Functional Languages
System Description: Verification of Distributed Erlang Programs
CADE-15 Proceedings of the 15th International Conference on Automated Deduction: Automated Deduction
The syntax and semantics of timed $\mu CRL$
The syntax and semantics of timed $\'mu CRL$
Global scheduler properties derived from local restrictions
Proceedings of the 2002 ACM SIGPLAN workshop on Erlang
PADL '03 Proceedings of the 5th International Symposium on Practical Aspects of Declarative Languages
Automated test generation for industrial Erlang applications
Proceedings of the 2003 ACM SIGPLAN workshop on Erlang
Extending the VoDKA architecture to improve resource modelling
Proceedings of the 2003 ACM SIGPLAN workshop on Erlang
Verifying fault-tolerant Erlang programs
Proceedings of the 2005 ACM SIGPLAN workshop on Erlang
Verification of timed erlang/OTP components using the process algebra μcrl
ERLANG '07 Proceedings of the 2007 SIGPLAN workshop on ERLANG Workshop
Verification of parametric concurrent systems with prioritised FIFO resource management
Formal Methods in System Design
Verifying Erlang/OTP Components in μCRL
FORTE '07 Proceedings of the 27th IFIP WG 6.1 international conference on Formal Techniques for Networked and Distributed Systems
Verifying Erlang Telecommunication Systems with the Process Algebra μCRL
FORTE '08 Proceedings of the 28th IFIP WG 6.1 international conference on Formal Techniques for Networked and Distributed Systems
Equational Abstractions for Reducing the State Space of Rewrite Theories
Electronic Notes in Theoretical Computer Science (ENTCS)
State Space Reduction of Linear Processes Using Control Flow Reconstruction
ATVA '09 Proceedings of the 7th International Symposium on Automated Technology for Verification and Analysis
Equational Abstractions for Model Checking Erlang Programs
Electronic Notes in Theoretical Computer Science (ENTCS)
Low-level programming in Hume: an exploration of the HW-Hume level
IFL'06 Proceedings of the 18th international conference on Implementation and application of functional languages
Hi-index | 0.00 |
In this paper we describe an industrial case-study on the development of formally verified code for Ericsson's AXD 301 switch. For the formal verification of Erlang software we have developed a tool to apply model checking to communicating Erlang processes. We make effective use of Erlang's design principles for large software systems to obtain relatively small models of specific Erlang programs. By assuming a correct implementation of the software components and embedding their semantics into our model, we can concentrate on the specific functionality of the components. We constructed a tool to automatically translate the Erlang code to a process algebra with data. Existing tools were used to generate the full state space and to formally verify properties stated in the modal 碌-calculus.As long as the specific functionality of the component has a finite state vector, we can generate a finite state space, even if the state space of the real Erlang system is infinite. In this paper we illustrate this by presenting a case-study based on a piece of software in Ericsson's AXD 301 switch, which implements a distributed resource locker algorithm. Some of the key properties we proved are mutual exclusion and non-starvation for the program.