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.

265<br />

in<br />

(SPEC ‘‘a:int - c:int‘‘ INT_EQ_SUB_LADD))] THEN<br />

ONCE_REWRITE_TAC[EQT_ELIM (intLib.ARITH_CONV<br />

‘‘(a:int) - (c:int) + (b:int) = a + b - c‘‘)] THEN<br />

REWRITE_TAC[SPEC ‘‘d:int‘‘ (SPEC ‘‘c:int‘‘<br />

(SPEC ‘‘(a:int) + (b:int)‘‘ INT_EQ_SUB_RADD)) ] THEN<br />

ARW_TAC[EQT_ELIM (intLib.ARITH_CONV ‘‘(d:int) + (c:int) = c + d‘‘)] );<br />

val lemmaY = prove(‘‘!a:int b:int. 0 ( (a*b=0)=(a=0) )‘‘,<br />

REPEAT STRIP_TAC THEN<br />

EQ_TAC THENL<br />

[<br />

SUBST_TAC[UNDISCH_ALL (SPEC ‘‘b:int‘‘ (SPEC ‘‘0i‘‘ (SPEC ‘‘a:int‘‘<br />

INT_EQ_RMUL_EXP)))] THEN<br />

ASM_REWRITE_TAC[] THEN<br />

ARW_TAC[INT_MUL_LZERO]<br />

,<br />

ARW_TAC[INT_MUL_LZERO]<br />

]);<br />

val subst1 = UNDISCH_ALL (SPEC ‘‘dnm y‘‘<br />

(SPEC ‘‘(nmr x * (dnm (rep_rat (abs_rat x)) * dnm y)<br />

+ nmr y * dnm x * dnm (rep_rat (abs_rat x)))‘‘<br />

(SPEC ‘‘(nmr (rep_rat (abs_rat x)) * dnm x * dnm y<br />

+ nmr y * dnm (rep_rat (abs_rat x)) * dnm x)‘‘<br />

(GSYM INT_EQ_RMUL_EXP))));<br />

store_thm("RAT_ADD_CONG1",<br />

‘‘!x y. abs_rat (add (rep_rat (abs_rat x)) y) = abs_rat (add x y)‘‘,<br />

REPEAT GEN_TAC THEN<br />

REWRITE_TAC[RAT_ABS_EQUIV] THEN<br />

REWRITE_TAC[rat_equiv_def,add_def] THEN<br />

DNM_POS_ASM_TAC ‘‘dnm x * dnm y‘‘ THEN<br />

DNM_POS_ASM_TAC ‘‘dnm (rep_rat (abs_rat x)) * dnm y‘‘ THEN<br />

ARW_TAC[NMR,DNM] THEN<br />

REWRITE_TAC[INT_RDISTRIB] THEN<br />

REWRITE_TAC[EQT_ELIM (<br />

RING_CONV ‘‘ nmr (rep_rat (abs_rat x)) * dnm y<br />

* (dnm x * dnm y) + nmr y * dnm (rep_rat (abs_rat x))<br />

* (dnm x * dnm y) = (nmr (rep_rat (abs_rat x)) * dnm x<br />

* dnm y + nmr y * dnm (rep_rat (abs_rat x)) * dnm x)<br />

* dnm y‘‘)] THEN<br />

REWRITE_TAC[EQT_ELIM (RING_CONV ‘‘ nmr x * dnm y<br />

* (dnm (rep_rat (abs_rat x)) * dnm y) + nmr y * dnm x<br />

* (dnm (rep_rat (abs_rat x)) * dnm y)=(nmr x<br />

* (dnm (rep_rat (abs_rat x)) * dnm y) + nmr y<br />

* dnm x * (dnm (rep_rat (abs_rat x)))) * dnm y‘‘)] THEN<br />

DNM_POS_ASM_TAC ‘‘dnm y‘‘ THEN<br />

SUBST_TAC[subst1] THEN<br />

REWRITE_TAC[EQT_ELIM (RING_CONV ‘‘nmr x<br />

* (dnm (rep_rat (abs_rat x)) * dnm y) = nmr x<br />

* dnm (rep_rat (abs_rat x)) * dnm y‘‘)] THEN<br />

REWRITE_TAC[EQT_ELIM (RING_CONV ‘‘nmr y * dnm x

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!