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.

268<br />

* |- !x y. ~(nmr y = 0) ==><br />

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

*<br />

* RAT_DIV_CONG2: thm<br />

* |- !x y. ~(nmr y = 0) ==><br />

(abs_rat (div x (rep_rat (abs_rat y))) = abs_rat (div x y))<br />

*<br />

* RAT_DIV_CONG: thm<br />

* |- !x y. ~(nmr y = 0) ==><br />

* (abs_rat (div (rep_rat (abs_rat x)) y) = abs_rat (div x y)) /\<br />

* !x y. ~(nmr y = 0) ==><br />

(abs_rat (div x (rep_rat (abs_rat y))) = abs_rat (div x y))<br />

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

val RAT_DIV_CONG1 = store_thm("RAT_DIV_CONG1", ‘‘!x y. ~(nmr y = 0) ==><br />

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

REPEAT STRIP_TAC THEN<br />

REWRITE_TAC[div_def] THEN<br />

ARW_TAC[RAT_MULT_CONG] );<br />

val RAT_DIV_CONG2 = store_thm("RAT_DIV_CONG2", ‘‘!x y. ~(nmr y = 0) ==><br />

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

REPEAT STRIP_TAC THEN<br />

REWRITE_TAC[div_def, mul_def] THEN<br />

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

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

RAT_ABS_EQUIV_TAC THEN<br />

REWRITE_TAC [rat_equiv_def] THEN<br />

ARW_TAC[NMR,DNM] THEN<br />

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

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

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

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

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

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

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

(abs_rat y))))‘‘)] THEN<br />

REWRITE_TAC[INT_EQ_LMUL] THEN<br />

DISJ2_TAC THEN<br />

REWRITE_TAC[GSYM rat_equiv_def] THEN<br />

REWRITE_TAC[GSYM RAT_ABS_EQUIV] THEN<br />

ARW_TAC[RAT_MINV_CONG] );<br />

val RAT_DIV_CONG =<br />

save_thm("RAT_DIV_CONG", CONJ RAT_DIV_CONG1 RAT_DIV_CONG2 );<br />

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

* RAT_ADD_ASSOC: thm<br />

* |- !a b c. rat_add a (rat_add b c) = rat_add (rat_add a b) c

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!