25.11.2014 Aufrufe

Verifikation reaktiver Systeme - Universität Kaiserslautern

Verifikation reaktiver Systeme - Universität Kaiserslautern

Verifikation reaktiver Systeme - Universität Kaiserslautern

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

245<br />

val SUB_def = Define ‘SUB(in1:num->num,in2:num->num,out:num->num) =<br />

!t. out t = (in1 t - in2 t)‘;<br />

val LESS_def = Define ‘LESS(in1:num->num,in2:num->num,out:num->bool) =<br />

!t. out t = (in1 t < in2 t)‘;<br />

val LSB_def = Define ‘LSB(inp:num->num,out:num->bool) =<br />

!t. out t = ((inp t) MOD 2 = 1)‘;<br />

val BGCD_IMP_def = Define ‘BGCD_IMP<br />

(initX:num, initY:num,<br />

regX:num->num, regY:num->num, regK:num->num) =<br />

? inX, inY, regXshift, regYshift, oddX, oddY, regXcor, regYcor,<br />

evenX, evenY, evenXY, oddXY, oddXYy, oddXYx,<br />

subX, subY, subXY, subYX.<br />

REG(inX,regX,initX) /\ REG(inY,regY,initY) /\<br />

SHIFT(regX,regXshift) /\ SHIFT(regY,regYshift) /\<br />

LSB(regX,oddX) /\ LSB(regY,oddY) /\<br />

MUX(oddX,regX,regXshift,regXcor) /\ MUX(oddY,regY,regYshift,regYcor) /\<br />

NOT(oddX,evenX) /\ NOT(oddY,evenY) /\<br />

AND(evenX,evenY,evenXY)/\<br />

COUNTER(evenXY,regK)/\<br />

AND(oddX, oddY, oddXY) /\<br />

LESS(regXcor,regYcor,oddXYx) /\ LESS(regYcor,regXcor,oddXYy) /\<br />

AND(oddXY,oddXYx,subX) /\ AND(oddXY,oddXYy,subY) /\<br />

SUB(regXcor,regYcor,subXY) /\ SUB(regYcor,regXcor,subYX) /\<br />

MUX(subX,regXcor,subXY,inX) /\ MUX(subY,regYcor,subYX,inY)‘;<br />

A.2 fractionScript<br />

(*==========================================================================*)<br />

(* Theory of fractions. (Jens Brandt) *)<br />

(* *)<br />

(* The fractions are pairs of integers. Denominator of fractions is always *)<br />

(* positive. *)<br />

(* *)<br />

(* February 2004 *)<br />

(* *)<br />

(*==========================================================================*)<br />

open HolKernel boolLib Parse bossLib;<br />

(* interactive mode<br />

app load ["integerTheory","intLib","ringLib",<br />

"integerRingTheory","integerRingLib"];<br />

*)<br />

open<br />

arithmeticTheory ringTheory ringLib<br />

integerTheory intLib integerRingTheory integerRingLib;<br />

val _ = new_theory "fraction";

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!