Verification of Parameterised FPGA Circuit Descriptions with Layout ...

Verification of Parameterised FPGA Circuit Descriptions with Layout ... Verification of Parameterised FPGA Circuit Descriptions with Layout ...

24.04.2013 Views

CHAPTER 2. BACKGROUND AND RELATED WORK 32 defined in Figure 2.5. This proof can be represented in Isabelle as: theorem "A −→ A" apply (rule impI) apply (assumption) done The first instruction is for Isabelle to apply the rule impI which lifts the object level implica- tion to a meta-logic implication of the form P =⇒ P (The unknowns P and Q in the axiom are both unified with the constant A). From this state the proof can be completed using the assumption method which attempts to solve the right hand side of a meta-implication using the assumptions on the left. A =⇒ A can be proved this way leaving an empty (complete) proof state and the proof is completed with the done command. Isabelle can also solve simple theorems automatically. For example, the proof (in higher-order logic) that reversing a list twice is the same as the original list can be proved as: theorem rev rev [simp]: "rev (rev xs) = xs" apply (induct xs) apply (auto) done This theorem has been named (rev rev) and declared as a simplification rule. It is proved by the application of induction on the variable xs and then automatically by Isabelle. The auto method uses both of Isabelle’s two most useful automation tools, the simplifier and the classical reasoner. The simplifier is a term rewriting tool. It repeatedly applies equations from left to right, using declared sets of simplification rules. Virtually any theorem in the form A = B can be used as a simplification rule however it is generally the case that only rules which genuinely simplify the proposition should be declared as automatic simplification rules. In the example above,xs is clearly simpler thanrev (rev xs) so this could be safely used as a simplification rule however if the theorem were proved in reverse – xs = rev (rev xs) – then this would not be a suitable simplification rule. Not only does it not simplify the proposition but it will actually cause the simplifier to loop infinitely by continually expanding the xs on the right hand side. It is often useful to invoke the simplifier by itself, which can be done using Isabelle’s simp method.

CHAPTER 2. BACKGROUND AND RELATED WORK 33 The classical reasoner is a family of tools which performs backward proofs automatically. The classical reasoner performs backward proof search and, combined with the simplifier, can prove many theorems without much user intervention. The classical reasoner can decompose goals into less complex subgoals using pre-proved lemmas and thus can be guided by supplying sets of useful lemmas that will substantially shorten the proof. 2.6 Summary In this chapter we have introduced some of the background to the work described in this thesis and highlighted some related work. We have described FPGA architectures in general and examining the structure of the Xilinx Virtex-II FGPA family in more detail. We have described Quartz, the hardware description language we use as the basis of this work and shown how it supports formal reasoning. We have described the field of automated verification based on theorem proving and com- pared this approach with model checking. Finally, we have discussed in detail some of the capabilities of the Isabelle generic theorem prover we use in this work.

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

The classical reasoner is a family <strong>of</strong> tools which performs backward pro<strong>of</strong>s automatically.<br />

The classical reasoner performs backward pro<strong>of</strong> search and, combined <strong>with</strong> the simplifier, can<br />

prove many theorems <strong>with</strong>out much user intervention. The classical reasoner can decompose<br />

goals into less complex subgoals using pre-proved lemmas and thus can be guided by supplying<br />

sets <strong>of</strong> useful lemmas that will substantially shorten the pro<strong>of</strong>.<br />

2.6 Summary<br />

In this chapter we have introduced some <strong>of</strong> the background to the work described in this<br />

thesis and highlighted some related work. We have described <strong>FPGA</strong> architectures in general<br />

and examining the structure <strong>of</strong> the Xilinx Virtex-II FGPA family in more detail. We have<br />

described Quartz, the hardware description language we use as the basis <strong>of</strong> this work and<br />

shown how it supports formal reasoning.<br />

We have described the field <strong>of</strong> automated verification based on theorem proving and com-<br />

pared this approach <strong>with</strong> model checking. Finally, we have discussed in detail some <strong>of</strong> the<br />

capabilities <strong>of</strong> the Isabelle generic theorem prover we use in this work.

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

Saved successfully!

Ooh no, something went wrong!