Verifikation reaktiver Systeme - Universität Kaiserslautern
Verifikation reaktiver Systeme - Universität Kaiserslautern
Verifikation reaktiver Systeme - Universität Kaiserslautern
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
38<br />
dann terminieren wird.<br />
.<br />
Aus diesem Theorem folgt, dass wenn die Prozedur FiniteRun abbricht, der Wert von<br />
k nur immer wieder erhöht werden muss, sodass die Prozedur terminiert. Der Faktor,<br />
um den k erhöht wird, hat einen großen Einfluss auf die Performance der Prozedur.<br />
Wenn wir zu wenig erhöhen, dann muss die Prozedur unnötig oft ausgeführt werden,<br />
erhöhen wir zu viel, dann werden die darausfolgenden SAT-Probleme unnötig<br />
aufwendig.<br />
4.2. Optimierungen<br />
Für diesen Basisalgorithmus gibt es sehr viele Möglichkeiten, die Performance zu<br />
steigern. Als erstes sind hier die Formeln der Beweispartitionierung zu nennen, die<br />
typischer Weise hochredundant sind, und zwar in der Form, dass viele Subformeln<br />
syntaktisch verschieden aber semantisch identisch sind. Um diese Redundanzen zu<br />
eliminieren gibt es eine ganze Reihe von Algorithmen.<br />
k<br />
Weitere Effektivitätssteigerungen lassen sich erzielen, wenn man SUFF 0<br />
durch<br />
k<br />
SUFF j<br />
für j > 0 ersetzt (es werden nur die Zeitpunkte größer oder gleich j getestet).<br />
In den meisten Fällen scheint j = k die effektivste Wahl zu sein. Das ist auch nicht<br />
weiter verwunderlich, weil in diesem Fall der SAT-Algorithmus die Finalbedingung<br />
nur in einem Zustand wiederlegen muss, und nicht in allen. Dummerweise verlieren<br />
wir für j > 0 die Garantie, dass der Prozess terminiert. In der Praxis sind Divergenzen<br />
bei einigen Hardwaremodellen aufgetreten, die sich aber mit dem Setzen von j = k –1<br />
korrigieren ließen.<br />
Als letzte Optimierungsmöglichkeit soll hier die Invarianz der Formel<br />
SUFF k<br />
j<br />
(M ')<br />
von einer Iteration zur nächsten genannt werden. Sie erzeugt die<br />
meisten CNF - Formeln, die vom SAT-Algorithmus wiederlegt werden müssen. Es ist<br />
klar, dass es sehr uneffizient ist, diese bei jeder Iteration neu zu bestimmen. Besser<br />
wäre es, alle Klauseln von SUFF k<br />
j<br />
(M ')<br />
und die von ihr abgeleiteten von einem SAT-<br />
Aufruf für den nächsten zu speichern. Obwohl dies ein enormes<br />
Optimierungspotential darstellt, wurde es hier nicht implementiert, da dazu der SAT-<br />
Algorithmus modifiziert werden müsste.<br />
5. Praktische Erfahrungen<br />
Die Leistungsfähigkeit des Interpolations-basierten Modellprüfers wurde mit zwei<br />
verschiedenen Problemstellungen aus kommerziellen Mikroprozessordesigns getestet.<br />
Die erste Problemstellung ist eine Sammlung von Bedingungen, mit denen zwei<br />
Einheiten des PicoJava II Prozessors zusammen Verifiziert werden sollen. Von diesen<br />
Bedingungen wurden 20 repräsentative ausgewählt, die alle erfüllt sind, und als<br />
Benchmark verwendet. Alle diese Probleme sind Sicherheitseigenschaften der Form<br />
Gp, wobei p eine Formel ist, die sich meist nur auf den aktuellen Zeitpunkt bezieht,<br />
manchmal auch auf den nächsten Zeitpunkt. Die Anzahl der Zustandsvariablen