Formal specification of abstract memory models
Proceedings of the 1993 symposium on Research on integrated systems
System design methodology of ultraSPARC-I
DAC '95 Proceedings of the 32nd annual ACM/IEEE Design Automation Conference
Advanced compiler design and implementation
Advanced compiler design and implementation
Protocol Verification as a Hardware Design Aid
ICCD '92 Proceedings of the 1991 IEEE International Conference on Computer Design on VLSI in Computer & Processors
Model-Checking a Secure Gorup Communication Protocol: A Case Study
FORTE XII / PSTV XIX '99 Proceedings of the IFIP TC6 WG6.1 Joint International Conference on Formal Description Techniques for Distributed Systems and Communication Protocols (FORTE XII) and Protocol Specification, Testing and Verification (PSTV XIX)
The Murphi Verification System
CAV '96 Proceedings of the 8th International Conference on Computer Aided Verification
Formal verification of the HAL S1 System cache coherence protocol
ICCD '97 Proceedings of the 1997 International Conference on Computer Design (ICCD '97)
Automated analysis of cryptographic protocols using Mur/spl phi/
SP '97 Proceedings of the 1997 IEEE Symposium on Security and Privacy
Finite-state analysis of SSL 3.0
SSYM'98 Proceedings of the 7th conference on USENIX Security Symposium - Volume 7
An Algorithmic Approach to Design Exploration
FME '02 Proceedings of the International Symposium of Formal Methods Europe on Formal Methods - Getting IT Right
Proceedings of the 2007 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
Code transformation and instruction set extension
ACM Transactions on Embedded Computing Systems (TECS)
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
Hi-index | 0.00 |
A major obstacle to widespread acceptance of formal verification is the difficulty in using the tools effectively. Although learning the basic syntax and operation of a formal verification tool may be easy, expert users are often able to accomplish a verification task while a novice user encounters time-out or space-out attempting the same task. In this paper, we assert that often a novice user will model a system in a different manner - semantically equivalent, but less efficient for the verification tool - than an expert user would, that some of these inefficient modeling choices can be easily detected at the source-code level, and that a robust verification tool should identify these inefficiencies and optimize them, thereby helping to close the gap between novice and expert users. To test our hypothesis, we propose some possible optimizations for the Mur verification system, implement the simplest of these, and compare the results on a variety of examples written by both experts and novices (the Mur distribution examples, a set of cache coherence protocol models, and a portion of the IEEE 1394 Firewire protocol). The results support our assertion - a nontrivial fraction of the Mur models written by novice users were significantly accelerated by the very simple optimization. Our findings strongly support further research in this area.