24.04.2013 Views

Verification of Parameterised FPGA Circuit Descriptions with Layout ...

Verification of Parameterised FPGA Circuit Descriptions with Layout ...

Verification of Parameterised FPGA Circuit Descriptions with Layout ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

CHAPTER 2. BACKGROUND AND RELATED WORK 27<br />

processing language. Models <strong>of</strong> all kinds <strong>of</strong> systems can be built in ACL2 and, once written,<br />

can be executed as Lisp programs.<br />

Since ACL2 is based on a first-order logic it is considerably less expressive than theorem<br />

provers such as HOL which use higher-order logic, however the simply logic allows a very<br />

high degree <strong>of</strong> automation <strong>with</strong> little user intervention required. The user directs the pro<strong>of</strong><br />

search procedure by proving supporting lemmas.<br />

ACL2 has been used to verify some industrial processors, for example a Motorola digital<br />

signal processing chip [10].<br />

Isabelle [61] is a descendant <strong>of</strong> the LCF system [21]. Unlike most theorem provers which<br />

focus on providing a single underlying formalism, Isabelle is intended to be used as a general<br />

platform for the implementation <strong>of</strong> theorem provers in a large variety <strong>of</strong> logics. The motiva-<br />

tion behind the creation <strong>of</strong> Isabelle is that, while theorem proving is an extremely difficult<br />

problem, most <strong>of</strong> the difficulties have to do <strong>with</strong> logic in general rather than any particular<br />

logic. A generic theorem prover will probably never provide the full range <strong>of</strong> support that a<br />

dedicated prover for each logic could, however by reducing the “barriers to entry” it makes it<br />

more likely that some pro<strong>of</strong> support will be available for less common or application specific<br />

logics. Furthermore, since it is currently easier to learn a logic than to learn how to use<br />

a theorem prover it is also easier for users to learn a single prover and then use the most<br />

appropriate logic for their needs.<br />

2.4.6 Embeddings<br />

In order to using theorem proving for verification <strong>of</strong> hardware written in a description lan-<br />

guage it is necessary to develop an implementation <strong>of</strong> the language in a logic <strong>with</strong>in a theorem<br />

prover. This process is referred to as embedding and broadly speaking these can be further<br />

sub-divided [8] into deep embeddings and shallow embeddings.<br />

A shallow embedding, or semantic embedding, involves the definition <strong>of</strong> the meaning <strong>of</strong> the<br />

language directly in terms <strong>of</strong> the connectives in the logic. A deep embedding is characterised<br />

by the definition <strong>of</strong> the syntax <strong>of</strong> a language in a formal logic, typically as some sort <strong>of</strong><br />

abstract data type and the definition <strong>of</strong> a semantic meaning function.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!