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

1 theory MinLogic = Pure :<br />

2 types<br />

3 o<br />

4 arities<br />

5 o :: logic<br />

6 consts<br />

7 Trueprop :: "o ⇒ prop" (" " 5)<br />

8 "−→ ":: "[o,o] ⇒ o" (infixr 10)<br />

9 False :: "o"<br />

10 axioms<br />

11 impI : "(P =⇒ Q) =⇒ P −→ Q"<br />

12 impE : " P −→ Q; P =⇒ Q"<br />

13 falseE : "False =⇒ P"<br />

14 end<br />

HOL system.<br />

Figure 2.5: A minimal Isabelle logic<br />

2.5.3 Unification, Resolution and Pro<strong>of</strong><br />

Unification [70] is equation solving, for example the solution <strong>of</strong> solving f(?x, c) ≡ f(d, ?y) is<br />

?x = d and ?y = c. Isabelle uses higher-order unification, which operates on typed λ-terms<br />

as an equation solving mechanism to support the application <strong>of</strong> rules to goals. Higher-order<br />

unification also handles function unknowns so must guess the unknown function ?f in order<br />

to solve the equation ?f(t) = g(u1, . . . , uk). Isabelle denotes unknowns for unification (called<br />

schematic variables) by prefixing their name <strong>with</strong> a question mark. Logically schematic<br />

variables are similar to free variables however while ordinary variables remain fixed unknowns<br />

may be instantiated by unification.<br />

Resolution is used to combine two Isabelle theorems, renaming variables and instantiating<br />

unknowns as necessary to allow rules to be unified <strong>with</strong> the current pro<strong>of</strong> state to create the<br />

next state. Resolution can be used for both forward and backward pro<strong>of</strong>, although backward<br />

pro<strong>of</strong> tends to be the preferred pro<strong>of</strong> mechanism in Isabelle. A meta-level theorem such as<br />

A ; B =⇒ C can be regarded as an inference rule <strong>with</strong> premises A and B and conclusion<br />

C or can equally be viewed as a pro<strong>of</strong> state <strong>with</strong> subgoals A and B and main goal C.<br />

In backward pro<strong>of</strong> a goal is unified <strong>with</strong> the conclusion <strong>of</strong> a rule and the premises are created<br />

as new subgoals. For example, consider the trivial pro<strong>of</strong> <strong>of</strong> the theorem A −→ A in the logic

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

Saved successfully!

Ooh no, something went wrong!