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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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

The question can <strong>of</strong> course be raised as to whether the meta-logic representation is correct.<br />

Paulson [60] defines the properties that a meta-logic formalisation is faithful if it admits no<br />

incorrect object-level inferences and adequate if it admits all correct object-level inferences.<br />

2.5.2 Theories<br />

The basic building block <strong>of</strong> Isabelle mathematics is theories, which organise syntax, declara-<br />

tions, axioms and pro<strong>of</strong>s. Theories are built starting from the Pure theory which represents<br />

the meta-logic, by extending and combining existing theories.<br />

Isabelle theories support multiple inheritance and theory dependencies form a directed acyclic<br />

graph (DAG). Theories can declare additional syntax for constants (operators) <strong>with</strong>in a<br />

logic using a priority grammar where each nonterminal is annotated <strong>with</strong> an integer priority<br />

which controls how it is parsed. Mixfix annotations allow the formulation <strong>of</strong> sophisticated<br />

grammar productions to produce readable notation. Special support exists for variable-<br />

binding constructs such as quantifiers which can be declared as binders.<br />

Figure 2.5 shows the definition <strong>of</strong> a minimal logic <strong>of</strong> implication in Isabelle. Line 1 begins<br />

the MinLogic theory by stating that it inherits directly from the Pure meta-logic. Lines 2-5<br />

declare a type o <strong>of</strong> object logic formulae and line 7 declares a coercion from formulae to<br />

propositions. This allows object level operators to be defined over the type o rather than<br />

the general meta-logic prop type, which is important to prevent object logic operations being<br />

used on meta-logic propositions themselves.<br />

The consts section defines the constants and operators in the logic, annotating them <strong>with</strong><br />

their types (the short double arrow ⇒ indicates a function type, and [a, b, c] ⇒ d abbreviates<br />

a ⇒ b ⇒ c ⇒ d). Lines 7 and 8 demonstrate the use <strong>of</strong> mixfix syntax annotations to describe<br />

how the constructs should be parsed, for example infixr indicates that the implication symbol<br />

should be regarded as a right associative infix operator.<br />

The axioms section declares the three inference rules <strong>of</strong> the logic as meta-logic axioms.<br />

Isabelle provides a wide-range <strong>of</strong> existing theories, grouped into complete object logics. The<br />

most commonly used Isabelle logics are first-order logic, ZF set theory (which is built as<br />

extension <strong>of</strong> first-order logic) and an implementation <strong>of</strong> higher-order logic in the style <strong>of</strong> the

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

Saved successfully!

Ooh no, something went wrong!