Summary: | Dependency graphs are used to model data and control flow in hardware and
software design. In a transformational design approach, optimization and refinement transformations are used to transform dependency-graph-based specifications
at higher abstraction levels to those at lower abstraction levels. In this dissertation,
we investigate the formal specification and mechanical verification of transformations
on dependency graphs. Among formal methods, the axiomatic method provides a
mechanism to specify an object by asserting properties it should satisfy. We show
that an axiomatic specification coupled with an efficient mechanical verification is
the most suitable formal approach to address the verification of transformations on
dependency graphs.
We have provided a formal specification of dependency graphs, and verified the
correctness of a variety of transformations used in an industrial synthesis frame
work. Errors have been discovered in the transformations, and modifications have
been proposed and incorporated. Further, the formal specification has permitted us
to examine the generalization and composition of transformations. In the process,
we have discovered new transformations that could be used for further optimization
and refinement than were possible before. We have devised an efficient verification scheme that integrates model-checking and theorem-proving, the two major
techniques for formal verification, in a seamless manner.
First, we focus on the dependency graph formalism used in the high-level synthesis system part of the SPRITE project at Philips Research Labs. The transformations in the synthesis system are used for refinement and optimization of descriptions
specified in a dependency graph language called SPRITE Input Language (SIL). SIL
is an intermediate language used during the synthesis of hardware described using
languages such as VHDL, SILAGE and ELLA. Besides being an intermediate language, it forms the backbone of the TRADES synthesis system of the University of
Twente. SIL has been used in the design of hardware for audio and video applications.
Next, we present schemes for seamless integration of theorem-proving and model-checking
for efficient verification. We use the Prototype Verification System (PVS)
to specify and verify the correctness of the transformations. The PVS specification
language, based on typed higher order logic allows us to investigate the correctness using a convenient level of abstraction. The PVS verifier features automatic
procedures and interactive verification rules to check properties of specifications.
We have integrated efficient simplifiers and model-checkers with PVS to facilitate
verification.
Finally, we show how our method can be applied in the study of formalisms for
hybrid/real-time systems, optimizing compilers, data-flow languages, and software
engineering. Based on the applications of our method on such off-the-shelf formalisms, we substantiate our claim -
that an axiomatic specification coupled with
an efficient mechanical verification is the most suitable approach to specify and
verify transformations on dependency graphs independent of underlying behavior
models. === Science, Faculty of === Computer Science, Department of === Graduate
|