Mlp: String-Functional Semantics and Boyer-Moore Mechanization for the Formal Verification of Synchronous Circuits

Dissertation, Stanford University (1990)
  Copy   BIBTEX

Abstract

MLP is a functional theory of synchronous circuit computation, built to support formal reasoning about sequential hardware. MLP comprises precise model-theoretic semantics based on string-functions and a mechanization of the theory inside the Boyer-Moore theorem-prover. The motivation is that current validation methods are expensive, not very reliable, and less and less able to cope with increasingly complex circuits. In contrast, formal methods combined with the leverage of mathematical reasoning, offer hopes of better verification and, some day, transformational design to guarantee correctness. ;Formal design methods require a formal underlying semantics. Therefore we propose a new semantics for synchronous circuits based on Monotonic Length-Preserving functions on finite strings, inspired by history-functional work in concurrent software. Our string theory is defined relative to an arbitrary algebra for combinational components, allowing reasoning at a high abstraction level as easily as at the boolean level. To prove the existence of the needed mathematical objects, we build Scott-style domains of finite strings, and of monotonic length-preserving string-functions. We validate all constructions from the foundations. Moreover, we prove the equivalence of the extensional semantics with a simple operational semantics, and a characterization of circuits that obey the "every loop is clocked" rule. ;For hardware design to benefit from this work, mechanical tools are required. Therefore we mechanized a first-order fragment of MLP inside the Boyer-Moore theorem-prover, and wrote a Lisp preprocessor which performs some second-order reasoning by generating Boyer-Moore lemmas from circuit descriptions. Our goals were soundness and usability/generality. For soundness we do not add axioms to Boyer-Moore, but instead use one "shell" followed by definitions and lemmas. For generality, we use a layered methodology that separates circuit dependent and independent facts, and maximizes the latter. Within this system, we prove correctness properties for several synchronous designs, including a circuit reasoning benchmark: "The 7 Paillet circuits" with very few lemmas per circuit. We also formalize two forms of pipelining, and prove correctness of the Saxe-Leiserson retimed correlator, a pipelined ripple adder, and an abstract pipelined CPU

Other Versions

No versions found

Links

PhilArchive



    Upload a copy of this work     Papers currently archived: 101,795

External links

  • This entry has no external links. Add one.
Setup an account with your affiliations in order to access resources via your University's proxy server

Through your library

Analytics

Added to PP
2015-02-06

Downloads
0

6 months
0

Historical graph of downloads

Sorry, there are not enough data points to plot this chart.
How can I increase my downloads?

Citations of this work

No citations found.

Add more citations

References found in this work

No references found.

Add more references