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.

APPENDIX B. THEORETICAL BASIS FOR LAYOUT REASONING 188<br />

ParallelComposition defines the semantics and layout interpretation <strong>of</strong> Quartz parallel<br />

composition. The theory includes AST rewriting functions to allow Isabelle to parse and<br />

pretty-print parallel compositions and also contains pro<strong>of</strong>s <strong>of</strong> useful properties <strong>of</strong> parallel<br />

composition layouts.<br />

Functions defines the maxf and sum functions and includes their correctness pro<strong>of</strong>s and<br />

theorems describing a wide range <strong>of</strong> useful properties.<br />

Structures contains theorems that are particularly useful for simplifying pro<strong>of</strong> goals that<br />

are formed by certain circuit structures (e.g. horizontal arrays).<br />

CompilerSimps contains the pro<strong>of</strong>s <strong>of</strong> simplification rules used in the Quartz compiler to<br />

simplify maxf and sum functions.<br />

Quartz<strong>Layout</strong> is a dummy theory which brings together all dependent theories to be used<br />

as the root library.<br />

Minf is not included in the Quartz<strong>Layout</strong> library. It contains definitions and correspon-<br />

dance theorems between min and max functions and minf and maxf functions. If expressions<br />

using these minimum operators are desired these theorems can be used to rewrite expressions<br />

into forms which use purely the max and maxf functions.<br />

B.1 IntAlgebra<br />

header {* Useful theorems about integers for use in size function reasoning *}<br />

theory IntAlgebra = Main:<br />

section {* Additional ordering operators *}<br />

constdefs<br />

grthn:: "[’a::ord, ’a]=>bool" ("(_/ > _)" [50, 51] 50)<br />

"grthn == % a b. (b < a)"<br />

geq:: "[’a::ord, ’a]=>bool" ("(_/ >= _)" [50, 51] 50)<br />

"geq == % a b. (b

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

Saved successfully!

Ooh no, something went wrong!