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.

260<br />

(* neutral elements *)<br />

val rat_ainv_def = Define ‘rat_ainv r1 = abs_rat( ainv (rep_rat r1))‘;<br />

val rat_minv_def = Define ‘rat_minv r1 = abs_rat( minv (rep_rat r1))‘;<br />

(* less (absolute value) *)<br />

val rat_les_abs_def = Define<br />

‘rat_les_abs r1 r2 = les_abs (rep_rat r1) (rep_rat r2)‘;<br />

(* basic arithmetics *)<br />

val rat_add_def = Define<br />

‘rat_add r1 r2 = abs_rat( add (rep_rat r1) (rep_rat r2) )‘;<br />

val rat_sub_def = Define<br />

‘rat_sub r1 r2 = abs_rat( sub (rep_rat r1) (rep_rat r2) )‘;<br />

val rat_mul_def = Define<br />

‘rat_mul r1 r2 = abs_rat( mul (rep_rat r1) (rep_rat r2) )‘;<br />

val rat_div_def = Define<br />

‘rat_div r1 r2 = abs_rat( div (rep_rat r1) (rep_rat r2) )‘;<br />

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

* REP_ABS_EQUIV<br />

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

val REP_ABS_EQUIV = prove(<br />

‘‘!a. rat_equiv a (rep_rat (abs_rat a))‘‘,<br />

GEN_TAC THEN<br />

REWRITE_TAC[CONJUNCT2 rat_def] THEN<br />

REWRITE_TAC[CONJUNCT1 rat_def]);<br />

val REP_ABS_DFN_EQUIV = prove(<br />

‘‘!x. nmr x * dnm (rep_rat(abs_rat x))<br />

= nmr (rep_rat(abs_rat x)) * dnm x‘‘,<br />

GEN_TAC THEN<br />

REWRITE_TAC[GSYM rat_equiv_def] THEN<br />

ARW_TAC[REP_ABS_EQUIV] );<br />

(* |- !r’ r. (abs_rat r = abs_rat r’) = rat_equiv r r’ *)<br />

val RAT_ABS_EQUIV = GEN_ALL (SYM (SPEC_ALL (CONJUNCT2 rat_def)));<br />

val RAT_ABS_EQUIV_TAC = REWRITE_TAC[RAT_ABS_EQUIV];<br />

val RAT_IMP_EQUIV = prove(‘‘!r1 r2. (r1 = r2) ==> rat_equiv r1 r2‘‘,<br />

REPEAT STRIP_TAC THEN<br />

REWRITE_TAC[rat_equiv_def]<br />

THEN ARW_TAC[]);<br />

val RAT_EQUIV_TRANS_IMP = prove(<br />

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

REPEAT STRIP_TAC THEN

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!