Welcome!
To use the personalized features of this site, please log in or register.
If you have forgotten your username or password, we can help.
|
 |
Minimalist Proof Assistants: Interactions of Technology and Methodology in Formal System Level Verification
| |
|
Minimalist Proof Assistants: Interactions of Technology and Methodology in Formal System Level Verification
Kenneth L. McMillan6 
| (6) |
Cadence Berkeley Labs, 2001 Addison St., 3rd flour, Berkeley, CA 94704-1103, USA |
Abstract
The complexity of systems implemented in hardware continues to grow, and with it the need for formal, automated, system level
verification. Unfortunately, though automatic formal verification technologies continue to improve incrementally in terms
of the size and complexity of systems they can handle, there is a widening gap between real designs and designs that can be
verified automatically.
I will argue that proofs and proof assistants in some form, in combination with automated methods, are necessary to close
this gap. However, the considerations that drive the disign of a proof assistant for hardware verification and not necessarily
those that have shaped existing generalpurpose proof assistants. In particular, for a hardware proff assistant, the requirements
in terms of logical expressiveness and the power of its deductive machinerey are minimal. For example, the ability to reason
about higher-order objects like sets and functions is probably superfluous in the hardware domain.
Rather, the primary consideration in constructing proofs of complex systems is that proofs be concise and maintainable. This
means that a proof system must take maximum advantage of the strengths of model checking and automated decision procedures
in order to minimize the need for manual decomposition of proofs. It is thus important to concider how inference rules and
dicision procedures (e.g., model checking) interact to allow concise proof decompositions in a particular domain of application.
As an example, I will show how model checking combined with a few simple but domain-tailored inference rules allows surprisingly
concise proofs about out-of-order instruction processors. This is chiefly because basing the proof on model checking eliminates
the need to state and prove global invariants.
Along the way, I will also discuss some practical considerations for the design of large, formally verified, hardware systems.
In particular, the most concise proof decompositions for hardware systems are often non-hierarchical. Rather, profs often
decompose most naturally according to the paths followed by data and control through the system under various conditions,
rather than according to structural hierarchy. Further, design for compositional verification differs strongly from the paradigm
of design-by-debugging that is currently prevalent. The debugging approach leads to complex (and often unknown) interactions
between design componets, whereas the formal approach favors the disign of “bulletproof” components, that implement a given
abstract model without any assumptions about environment behavior.
Fulltext Preview (Small, Large)
|
|
|
|
|
|