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.

261<br />

ASM_CASES_TAC ‘‘rat_equiv b c‘‘ THENL [<br />

PROVE_TAC[RAT_EQUIV_TRANS]<br />

,<br />

ASSUME_TAC (CONTRAPOS (SPEC ‘‘c:frac‘‘<br />

(SPEC ‘‘a:frac‘‘ (SPEC ‘‘b:frac‘‘ RAT_EQUIV_TRANS)))) THEN<br />

UNDISCH_TAC ‘‘~rat_equiv b c<br />

==> ~(rat_equiv b a /\ rat_equiv a c)‘‘ THEN<br />

ARW_TAC[RAT_EQUIV_SYM]<br />

]);<br />

val RAT_ADD_EQUIV_ARG = prove(<br />

‘‘!x y z. rat_equiv x y ==> rat_equiv (add x z) (add y z)‘‘,<br />

REPEAT GEN_TAC THEN<br />

REWRITE_TAC[rat_equiv_def] THEN<br />

STRIP_TAC THEN<br />

REWRITE_TAC[add_def] THEN<br />

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

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

ARW_TAC[NMR,DNM] THEN<br />

REWRITE_TAC[INT_RDISTRIB] THEN<br />

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

‘‘nmr x * dnm z * (dnm y * dnm z) = nmr x * dnm y * dnm z * dnm z‘‘)] THEN<br />

ASM_REWRITE_TAC[] THEN<br />

INT_RING_TAC);<br />

(* funktioniert nicht, bestimmt wegen Änderung in REP_ABS_EQUIV *)<br />

(*val RAT_ADD_REP_ABS_ARG = prove(<br />

‘‘!a b c. rat_equiv (add a b) c = rat_equiv (rep_rat (abs_rat (add a b))) c‘‘,<br />

REPEAT GEN_TAC THEN<br />

MATCH_MP_TAC RAT_EQUIV_TRANS_IMP THEN<br />

ONCE_REWRITE_TAC[RAT_EQUIV_SYM] THEN<br />

ARW_TAC[REP_ABS_EQUIV]);*)<br />

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

* NMR_EQ0_CONG: thm<br />

* |- !f1. (nmr (rep_rat (abs_rat f1)) = 0) = (nmr f1 = 0)<br />

*<br />

* NMR_LT0_CONG: thm<br />

* |- !f1. (nmr (rep_rat (abs_rat f1)) < 0) = (nmr f1 < 0)<br />

*<br />

* NMR_GT0_CONG: thm<br />

* |- !f1. (nmr (rep_rat (abs_rat f1)) > 0) = (nmr f1 > 0)<br />

*<br />

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

val NMR_EQ0_CONG =<br />

let<br />

val subst1 = UNDISCH_ALL (SPEC ‘‘dnm f1‘‘ (SPEC ‘‘0i‘‘<br />

(SPEC ‘‘nmr (rep_rat (abs_rat f1))‘‘ INT_EQ_RMUL_EXP)));<br />

val subst2 = UNDISCH_ALL (SPEC ‘‘dnm (rep_rat (abs_rat f1))‘‘

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!