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 25<br />

themes and concepts, than it is to switch between different pro<strong>of</strong> methodologies or theorem<br />

proving tools. It is questionable whether there is any benefit in attempting to enforce a<br />

standard logic, though it seems likely that any moves in this direction in the future will be<br />

driven by EDA tool builders.<br />

Most mature theorem proving tools support both top-down/backward pro<strong>of</strong> and bottom-<br />

up/forward pro<strong>of</strong>. Backward pro<strong>of</strong> involves the statement <strong>of</strong> a theorem goal and the applica-<br />

tion <strong>of</strong> rules to split the goal to be proved into subgoals. Each subgoal can then be handled<br />

in the same manner, splitting the goals repeatedly until trivial subgoals are reached that<br />

can be proved directly from logical axioms. Forward pro<strong>of</strong> proceeds by starting from basic<br />

axioms and combining them using rules <strong>of</strong> inference until eventually the goal to be proved is<br />

deduced. Both styles have advantages and drawbacks, for example every step in a forward<br />

pro<strong>of</strong> is correct and proved, however it may not bring the user any closer to proving the main<br />

pro<strong>of</strong> goal. In a backward pro<strong>of</strong> however, a pro<strong>of</strong> is guaranteed to terminate at the correct<br />

conclusion but it may not actually be a pro<strong>of</strong> <strong>of</strong> anything at all, unless it can eventually be<br />

reduced to something axiomatic.<br />

There are two main styles <strong>of</strong> interacting <strong>with</strong> a theorem prover: declarative or imperative<br />

(tactic-style). The imperative style effectively involves the creation <strong>of</strong> a pro<strong>of</strong>-generating<br />

program as a combination <strong>of</strong> prover tactics in a typically prover-specific format. This style,<br />

typified by the descendants <strong>of</strong> the LCF theorem prover [21], is useful for finding pro<strong>of</strong>s and<br />

for programming verification algorithms but produces output that is generally unreadable.<br />

As soon as the pro<strong>of</strong> itself and not just the existence <strong>of</strong> a pro<strong>of</strong> becomes important, the<br />

declarative style becomes beneficial. This style, pioneered by the Mizar pro<strong>of</strong> checker [71],<br />

involves the statement <strong>of</strong> a series <strong>of</strong> lemmas or subgoals leading to a conclusion. Declarative<br />

systems are good for mechanised checking <strong>of</strong> pro<strong>of</strong>s and can produce pro<strong>of</strong> scripts that are<br />

easily readable by humans but are unwieldy and impractical for finding the original pro<strong>of</strong>s.<br />

2.4.5 Theorem Proving Tools<br />

There are a range <strong>of</strong> theorem proving systems in widespread use. One is HOL, named after<br />

Higher Order Logic, the underlying formalism. HOL [22] is intended to be a general platform<br />

for the modelling <strong>of</strong> systems in higher-order logic <strong>with</strong> reasoning based on natural deduction

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

Saved successfully!

Ooh no, something went wrong!