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.

224<br />

Proofs For a logician, a formal proof is a sequence, each of whose elements<br />

is either an axiom or follows from earlier members of the sequence by a rule of<br />

inference. A theorem is the last element of a proof. In HOL (following LCF), this<br />

consists in applying ML functions representing rules of inference to axioms or<br />

previously generated theorems. Thus, every value of type thm in the HOL system<br />

can be obtained by repeatedly applying primitive inference rules to axioms. Some<br />

examples are:<br />

– Undischarging (UNDISCH):<br />

– Symmetry of equality (SMY):<br />

Γ ⊢ t 1 ⇒ t 2<br />

Γ, t 1 ⊢ t 2<br />

– Transitivity of equality (TRANS):<br />

Γ ⊢ t 1 = t 2<br />

Γ ⊢ t 2 = t 1<br />

Γ 1 ⊢ t 1 = t 2 Γ 2 ⊢ t 2 = t 3<br />

Γ 1 ∪ Γ 2 ⊢ t 1 = t 3<br />

One of the most important and most powerful inference rules is rewriting<br />

(REWRITE_RULE) which does a limited amount of automatic theorem-proving. It<br />

uses a list of equational theorems (Γ ⊢ t 1 = t 2 ) to replace any subterms of an<br />

object theorem that match t 1 by the corresponding instance of t 2 . Conditional<br />

and recursive rewriting is supported, too.<br />

Tactics A forward proof (the style that is described in the last paragraph) is<br />

quite unnatural and too low level for many applications (possibly consisting of<br />

millions of steps). In the early 1970s, Robin Milner invented the notion of tactics,<br />

which was an important advance in proof generating methodology. In short, a<br />

tactic is a function that does two things: it splits a goal into subgoals and keeps<br />

track of the reason why solving the subgoals will solve the goal. Consider, for<br />

example, the rule of ∧ introduction:<br />

Γ 1 ⊢ t 1 Γ 2 ⊢ t 2<br />

Γ 1 ∪ Γ 2 ⊢ t 1 ∧ t 2<br />

Suppose the goal is to prove A ∧ B. Thus, it is sufficient to prove A and B.<br />

The justification for the reduction of the goal A ∧ B to the two subgoals A and<br />

B is the rule of ∧-introduction. The specified HOL tactic CONJ_TAC is:<br />

t 1 /\ t 2<br />

t 1 t 2<br />

The following examples illustrates the use of tactics in the HOL system. A<br />

goal specified by g is reduced to two subgoals by applying the tactic CONJ_TAC.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!