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.

258<br />

*<br />

* alternative representation of equivalence relation<br />

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

val RAT_EQUIV_ALT =<br />

let<br />

val lemma1 = prove(‘‘! x y. 0 0 < dnm x * y‘‘,<br />

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

ARW_TAC[INT_MUL_POS_SIGN]);<br />

val lemma2 = prove(<br />

‘‘(abs_frac (nmr a * b,dnm a * b) = abs_frac (nmr f * c,dnm f * c))<br />

==> (rep_frac (abs_frac (nmr a * b,dnm a * b))<br />

= rep_frac (abs_frac (nmr f * c,dnm f * c)))‘‘, ARW_TAC[]);<br />

(* lemma3: 0 < dnm a * b |=<br />

rep_frac (abs_frac (nmr a * b,dnm a * b)) = (nmr a * b,dnm a * b) *)<br />

val lemma3 = UNDISCH_ALL (REWRITE_RULE[SND]<br />

(#1 (EQ_IMP_RULE (SPEC ‘‘(nmr a * b,dnm a * b)‘‘<br />

(BETA_RULE (CONJUNCT2 frac_bij))))));<br />

(* lemma4: 0 < dnm f * c |=<br />

rep_frac (abs_frac (nmr f * c,dnm f * c)) = (nmr f * c,dnm f * c) *)<br />

val lemma4 = UNDISCH_ALL (REWRITE_RULE[SND]<br />

(#1 (EQ_IMP_RULE (SPEC ‘‘(nmr f * c,dnm f * c)‘‘<br />

(BETA_RULE (CONJUNCT2 frac_bij))))));<br />

in<br />

val subst1 = UNDISCH_ALL (SPEC ‘‘b:int‘‘<br />

(SPEC ‘‘nmr f * dnm a‘‘ (SPEC ‘‘nmr a * dnm f‘‘ INT_EQ_RMUL_EXP)));<br />

val subst2 = UNDISCH_ALL (SPEC ‘‘c:int‘‘<br />

(SPEC ‘‘nmr f * dnm a * b‘‘ (SPEC ‘‘nmr a * dnm f * b‘‘<br />

INT_EQ_RMUL_EXP)));<br />

store_thm("RAT_EQUIV_ALT",<br />

‘‘!a. rat_equiv a = \x. (?b c. 0

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!