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.

252<br />

A.3 fractionLib<br />

structure fractionLib :> fractionLib =<br />

struct<br />

open HolKernel boolLib Parse bossLib;<br />

(* interactive mode<br />

app load ["integerTheory","intLib","ringLib",<br />

"integerRingTheory","integerRingLib"];<br />

*)<br />

open<br />

pairTheory arithmeticTheory ringTheory ringLib<br />

integerTheory intLib integerRingTheory integerRingLib<br />

fractionTheory;<br />

val ARW_TAC = RW_TAC int_ss;<br />

val frac_bij = DB.fetch "fraction" "frac_tybij";<br />

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

* FRAC_EQ_TAC : tactic<br />

*<br />

* A ?- abs_frac(a1,b1) = abs_frac(a2,b2)<br />

* ========================================= FRAC_EQ_TAC<br />

* A ?- a1=a2 | A ?- b1=b2<br />

*<br />

* Two fractions are equal, if the nominator and the denominator are<br />

* equal.<br />

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

val FRAC_EQ_TAC:tactic = fn (asl,w) =><br />

let<br />

val (lhs,rhs) = dest_eq w<br />

in<br />

let<br />

val (lhc, lha) = dest_comb lhs;<br />

val (rhc, rha ) = dest_comb rhs;<br />

in<br />

let<br />

val [a1,b1] = strip_pair lha;<br />

val [a2,b2] = strip_pair rha;<br />

in<br />

let<br />

val sg1 = mk_eq(a1,a2);<br />

val sg2 = mk_eq(b1,b2);<br />

in<br />

(<br />

[(asl,sg1), (asl,sg2)],<br />

fn [thm1,thm2] => MP

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!