Design and validation of computer protocols
Design and validation of computer protocols
Leader Election in the Presence of Link Failures
IEEE Transactions on Parallel and Distributed Systems
Concurrent programming in ERLANG (2nd ed.)
Concurrent programming in ERLANG (2nd ed.)
Uniform Dynamic Self-Stabilizing Leader Election
IEEE Transactions on Parallel and Distributed Systems
Verification of Erlang programs using abstract interpretation and model checking
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Chord: A scalable peer-to-peer lookup service for internet applications
Proceedings of the 2001 conference on Applications, technologies, architectures, and protocols for computer communications
Distributed Algorithms
An Automated Verification Method for Distributed Systems Software Based on Model Extraction
IEEE Transactions on Software Engineering
Trace analysis of Erlang programs
ACM SIGPLAN Notices
VeriSoft: A Tool for the Automatic Analysis of Concurrent Reactive Software
CAV '97 Proceedings of the 9th International Conference on Computer Aided Verification
CADP - A Protocol Validation and Verification Toolbox
CAV '96 Proceedings of the 8th International Conference on Computer Aided Verification
Development of a verified Erlang program for resource locking
International Journal on Software Tools for Technology Transfer (STTT)
A semantics for distributed Erlang
Proceedings of the 2005 ACM SIGPLAN workshop on Erlang
Using model checking to find serious file system errors
OSDI'04 Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation - Volume 6
Programming Erlang: Software for a Concurrent World
Programming Erlang: Software for a Concurrent World
Model checking a video-on-demand server using McErlang
EUROCAST'07 Proceedings of the 11th international conference on Computer aided systems theory
Semi-formal development of a fault-tolerant leader election protocol in erlang
FATES'04 Proceedings of the 4th international conference on Formal Approaches to Software Testing
Programming distributed erlang applications: pitfalls and recipes
ERLANG '07 Proceedings of the 2007 SIGPLAN workshop on ERLANG Workshop
Erlang testing and tools survey
Proceedings of the 7th ACM SIGPLAN workshop on ERLANG
Model Checking and Artificial Intelligence
Equational Abstractions for Reducing the State Space of Rewrite Theories
Electronic Notes in Theoretical Computer Science (ENTCS)
Finding race conditions in Erlang with QuickCheck and PULSE
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Automatic assessment of failure recovery in Erlang applications
Proceedings of the 8th ACM SIGPLAN workshop on ERLANG
Implementing an LTL-to-Büchi translator in Erlang: a protest experience report
Proceedings of the 8th ACM SIGPLAN workshop on ERLANG
Recent improvements to the McErlang model checker
Proceedings of the 8th ACM SIGPLAN workshop on ERLANG
Finding counter examples in induction proofs
TAP'08 Proceedings of the 2nd international conference on Tests and proofs
A unified semantics for future Erlang
Proceedings of the 9th ACM SIGPLAN workshop on Erlang
Implementing a multiagent negotiation protocol in Erlang
Proceedings of the 9th ACM SIGPLAN workshop on Erlang
Model-checking Erlang: a comparison between EtomCRL2 and McErlang
TAIC PART'10 Proceedings of the 5th international academic and industrial conference on Testing - practice and research techniques
A Case Study on Verifying a Supervisor Component Using McErlang
Electronic Notes in Theoretical Computer Science (ENTCS)
Accelerating race condition detection through procrastination
Proceedings of the 10th ACM SIGPLAN workshop on Erlang
Test-driven development of concurrent programs using concuerror
Proceedings of the 10th ACM SIGPLAN workshop on Erlang
Testing a database for race conditions with QuickCheck: none
Proceedings of the 10th ACM SIGPLAN workshop on Erlang
Ten years of analyzing actors: Rebeca experience
Formal modeling
Evaluating ordering heuristics for dynamic partial-order reduction techniques
FASE'10 Proceedings of the 13th international conference on Fundamental Approaches to Software Engineering
Hansei: property-based development of concurrent systems
Proceedings of the eleventh ACM SIGPLAN workshop on Erlang workshop
Verification of timed erlang programs using mcerlang
FMOODS'12/FORTE'12 Proceedings of the 14th joint IFIP WG 6.1 international conference and Proceedings of the 32nd IFIP WG 6.1 international conference on Formal Techniques for Distributed Systems
Soter: an automatic safety verifier for erlang
Proceedings of the 2nd edition on Programming systems, languages and applications based on actors, agents, and decentralized control abstractions
Extending Erlang by utilising RefactorErl
Proceedings of the twelfth ACM SIGPLAN workshop on Erlang
Analysing timed Rebeca using McErlang
Proceedings of the 2013 workshop on Programming based on actors, agents, and decentralized control
Hi-index | 0.00 |
We present a model checker for verifying distributed programs written in the Erlang programming language. Providing a model checker for Erlang is especially rewarding since the language is by now being seen as a very capable platform for developing industrial strength distributed applications with excellent failure tolerance characteristics. In contrast to most other Erlang verification attempts, we provide support for a very substantial part of the language. The model checker has full Erlang data type support, support for general process communication, node semantics (inter-process behave subtly different from intra-process communication), fault detection and fault tolerance through process linking, and can verify programs written using the OTP Erlang component library (used by most modern Erlang programs). As the model checking tool is itself implemented in Erlang we benefit from the advantages that a (dynamically typed) functional programming language offers: easy prototyping and experimentation with new verification algorithms, rich executable models that use complex data structures directly programmed in Erlang, the ability to treat executable models interchangeably as programs (to be executed directly by the Erlang interpreter) and data, and not least the possibility to cleanly structure and to cleanly combine various verification sub-tasks. In the paper we discuss the design of the tool and provide early indications on its performance.