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.

225<br />

- g‘A /\ B‘;<br />

> val it =<br />

Proof manager status: 1 proof.<br />

1. Incomplete:<br />

Initial goal:<br />

A /\ B<br />

: proofs<br />

- e(CONJ_TAC);<br />

OK..<br />

2 subgoals:<br />

> val it =<br />

B<br />

A<br />

: goalstack<br />

Library The HOL system comes with a rich collection of theories containing<br />

predefined types, functions and tactics and already proven theorems. Figure<br />

1 shows the various theories along with their dependencies. All of them are<br />

derived from the initial theory containing the five axioms and the eight primitive<br />

inference rules stated above.<br />

To use a library, it must be loaded (load ẍyzTheory¨). For an easier access,<br />

its internal declarations can be made public by opening (open xyzTheory). New<br />

theories are created by new theory and contain all theorems that are stored with<br />

the store thm (oder some other storing) function.<br />

Defining new types Whereas defining new functions and carrying out proofs is<br />

quite intuitive, the definition of new types needs more explanation. New types<br />

are always derived from existing ones, i.e. to build a new type, existing type<br />

constants and operators are used to specify a representation type whose range is<br />

restricted possibly restricted to form the set of elements the new type contains.<br />

Figure 2 illustrates the construction: From the elements of a representation<br />

set R, a subset is chosen by a predicate P . The abstractions of those elements<br />

form the set of the new type A. Moreover, for each a ∈ A thereisarepresenting<br />

element r ∈ R.<br />

new_type_definition (tyop, |- ?x. t x)<br />

The ML function new type definition implements the primitive HOL rule<br />

of definition for introducing new type constants into the logic, tyop is the name<br />

of the new type, x is an element of the representation type and t is a predicate<br />

with domain of this type and range of booleans. The new_type_defintion function<br />

must be given a proof which shows that the type contains an element.<br />

Let’s consider the example of defining a type containing three elements (taken<br />

from [3]). This type can be derived from the type bool # bool (the product of<br />

two booleans). In order to get a type containing three elements (and not the

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!