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

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

264<br />

in<br />

ARW_TAC[] THEN<br />

PROVE_TAC[INT_LT_ANTISYM] );<br />

prove(‘‘!x. ~(nmr x=0) ==><br />

(abs_rat (minv (rep_rat (abs_rat x))) = abs_rat (minv x))‘‘,<br />

end;<br />

REPEAT STRIP_TAC THEN<br />

REWRITE_TAC[minv_def] THEN<br />

ASSUME_TAC (UNDISCH_ALL (SPEC ‘‘nmr x‘‘ ABS_NOT_0_POSITIVE)) THEN<br />

ASSUME_TAC (UNDISCH_ALL lemmaX) THEN<br />

RAT_ABS_EQUIV_TAC THEN<br />

REWRITE_TAC[rat_equiv_def] THEN<br />

ARW_TAC[NMR,DNM] THEN<br />

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

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

ONCE_REWRITE_TAC[UNDISCH_ALL (GSYM (SPEC ‘‘dnm x‘‘ lemmaY)),<br />

UNDISCH_ALL (GSYM (SPEC ‘‘dnm (rep_rat (abs_rat x))‘‘ lemmaY))] THEN<br />

REWRITE_TAC[SGN_CONG] THEN<br />

REWRITE_TAC[EQT_ELIM (AC_CONV (INT_MUL_ASSOC,INT_MUL_SYM)<br />

‘‘sgn x * ABS (dnm (rep_rat (abs_rat x))) * ABS (nmr x)<br />

= sgn x * (ABS (dnm (rep_rat (abs_rat x))) * ABS (nmr x))‘‘)] THEN<br />

REWRITE_TAC[EQT_ELIM (AC_CONV (INT_MUL_ASSOC,INT_MUL_SYM)<br />

‘‘sgn x * ABS (dnm x) * ABS (nmr (rep_rat (abs_rat x)))<br />

= sgn x * (ABS (dnm x) * ABS (nmr (rep_rat (abs_rat x))))‘‘)] THEN<br />

REWRITE_TAC[INT_ABS_MUL] THEN<br />

REWRITE_TAC[INT_EQ_LMUL] THEN<br />

DISJ2_TAC THEN<br />

ONCE_REWRITE_TAC[INT_MUL_SYM] THEN<br />

REWRITE_TAC[REP_ABS_DFN_EQUIV] )<br />

(*--------------------------------------------------------------------------<br />

* RAT_ADD_CONG1: thm<br />

* |- !x y. abs_rat (add (rep_rat (abs_rat x)) y) = abs_rat (add x y)<br />

*<br />

* RAT_ADD_CONG2: thm<br />

* |- !x y. abs_rat (add x (rep_rat (abs_rat y))) = abs_rat (add x y)<br />

*<br />

* RAT_ADD_CONG: thm<br />

* |- !x y. abs_rat (add (rep_rat (abs_rat x)) y) = abs_rat (add x y) /\<br />

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

*--------------------------------------------------------------------------*)<br />

val RAT_ADD_CONG1 =<br />

let<br />

val lemmaX = prove(<br />

‘‘!a:int b:int c:int d:int. (a + b = c + d) = (a - c = d - b)‘‘,<br />

REWRITE_TAC[SPEC ‘‘b:int‘‘ (SPEC ‘‘d:int‘‘

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!