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.

263<br />

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

‘‘!f1. sgn (rep_rat (abs_rat f1)) = sgn f1‘‘,<br />

GEN_TAC THEN<br />

REWRITE_TAC[sgn_def] THEN<br />

ARW_TAC[NMR_EQ0_CONG, NMR_LT0_CONG] );<br />

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

* RAT_AINV_CONG: thm<br />

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

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

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

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

REPEAT GEN_TAC THEN<br />

REWRITE_TAC[RAT_ABS_EQUIV] THEN<br />

REWRITE_TAC[rat_equiv_def,ainv_def] THEN<br />

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

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

ARW_TAC[NMR,DNM] THEN<br />

REWRITE_TAC[INT_MUL_CALCULATE,INT_EQ_NEG] THEN<br />

REWRITE_TAC[GSYM rat_equiv_def] THEN<br />

ONCE_REWRITE_TAC[RAT_EQUIV_SYM] THEN<br />

ARW_TAC[REP_ABS_EQUIV] );<br />

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

* RAT_MINV_CONG: thm<br />

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

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

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

val RAT_MINV_CONG =<br />

let<br />

val lemmaX = store_thm("RAT_MINV_CONG",<br />

‘‘0 < ABS (nmr x) ==> 0 < ABS (nmr (rep_rat (abs_rat x)))‘‘,<br />

REWRITE_TAC[INT_ABS] THEN<br />

REWRITE_TAC[NMR_LT0_CONG] THEN<br />

ARW_TAC[] THENL<br />

[<br />

ONCE_REWRITE_TAC[GSYM INT_NEG_0] THEN<br />

ONCE_REWRITE_TAC[INT_LT_NEG] THEN<br />

PROVE_TAC[NMR_LT0_CONG]<br />

,<br />

UNDISCH_TAC ‘‘0 < nmr x‘‘ THEN<br />

REWRITE_TAC[GSYM int_gt] THEN<br />

PROVE_TAC[NMR_GT0_CONG]<br />

] );<br />

val lemmaY = prove(‘‘!x:int. 0 (ABS x = x)‘‘,<br />

GEN_TAC THEN<br />

REWRITE_TAC[INT_ABS] THEN

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!