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.

272<br />

end;<br />

STRIP_TAC THEN<br />

ASSUME_TAC (UNDISCH_ALL (SPEC ‘‘nmr (rep_rat a)‘‘<br />

ABS_NOT_0_POSITIVE)) THEN<br />

ARW_TAC[NMR,DNM] THEN<br />

RAT_ABS_EQUIV_TAC THEN<br />

REWRITE_TAC[rat_equiv_def] THEN<br />

ASSUME_TAC (UNDISCH_ALL (SPEC ‘‘ABS (nmr (rep_rat a))‘‘<br />

(SPEC ‘‘rep_rat a‘‘ lemmaY))) THEN<br />

ARW_TAC[NMR,DNM] THEN<br />

ARW_TAC[INT_ABS,sgn_def] THEN<br />

INT_RING_TAC )<br />

val RAT_MULT_LINV = store_thm("RAT_MULT_LINV", ‘‘!a. ~(a = rat_0) ==><br />

(rat_mul (rat_minv a) a = rat_1)‘‘,<br />

ONCE_REWRITE_TAC[RAT_MULT_COMM] THEN<br />

ARW_TAC[RAT_MULT_RINV] );<br />

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

* RAT_RDISTRIB: thm<br />

* |- !a b c. rat_mul (rat_add a b) c = rat_add (rat_mul a c) (rat_mul b c)<br />

*<br />

* RAT_LDISTRIB: thm<br />

* |- !a b c. rat_mul c (rat_add a b) = rat_add (rat_mul c a) (rat_mul c b)<br />

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

val RAT_RDISTRIB = store_thm("RAT_RDISTRIB",<br />

‘‘!a b c. rat_mul (rat_add a b) c = rat_add (rat_mul a c) (rat_mul b c)‘‘,<br />

REPEAT GEN_TAC THEN<br />

REWRITE_TAC[rat_mul_def,rat_add_def] THEN<br />

ARW_TAC[RAT_MULT_CONG, RAT_ADD_CONG] THEN<br />

REWRITE_TAC[mul_def,add_def] THEN<br />

DNM_POS_ASM_TAC ‘‘dnm (rep_rat a) * dnm (rep_rat b)‘‘ THEN<br />

DNM_POS_ASM_TAC ‘‘dnm (rep_rat b) * dnm (rep_rat c)‘‘ THEN<br />

DNM_POS_ASM_TAC ‘‘dnm (rep_rat a) * dnm (rep_rat c)‘‘ THEN<br />

ARW_TAC[NMR,DNM] THEN<br />

RAT_ABS_EQUIV_TAC THEN REWRITE_TAC[rat_equiv_def] THEN<br />

DNM_POS_ASM_TAC ‘‘dnm (rep_rat a) * dnm (rep_rat b) * dnm (rep_rat c)‘‘ THEN<br />

DNM_POS_ASM_TAC ‘‘dnm (rep_rat a) * dnm (rep_rat c)<br />

* (dnm (rep_rat b) * dnm (rep_rat c))‘‘ THEN<br />

ARW_TAC[NMR,DNM] THEN<br />

INT_RING_TAC );<br />

val RAT_LDISTRIB = store_thm("RAT_LDISTRIB",<br />

‘‘!a b c. rat_mul c (rat_add a b) = rat_add (rat_mul c a) (rat_mul c b)‘‘,<br />

ONCE_REWRITE_TAC[RAT_MULT_COMM] THEN<br />

REWRITE_TAC[RAT_RDISTRIB] );<br />

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

* RAT_IS_RING: thm

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!