Ja, schönen guten Morgen. Wir hatten ja in der
letzten Stunde mit dem neuen Thema temporale Logik begonnen.
Dazu dann zunächst die Literatur, der Klassiker Clark,
das anschauliche Buch von Hus und Reihen und das mehr grundsätzliche
Buch von Bayer und Katouren.
Dann hatten wir etwas, die Stellen,
den Stellenwert der Temporallogik innerhalb der klassischen Logiken und der Modallogik
In dem Hinweis, dass es in der Temperallogik, also unnötig ist,
die Zeit T als expliziten Parameter oder Variable zu benutzen.
Und dazu gab es dann dieses Beispiel des Aufzuges,
wo das in der Tat so gemacht worden ist.
Das heißt also, Prätekaten-Logik mit Parameter Tee.
Wobei also die zweite Bedingung wesentlich umfangreicher war und zur Illustration
dienen sollte, wie das aussehen könnte.
Nicht in der Linearzeit-Logik ist das zum großen Teil einfacher.
Es gibt da aber auch
hinreichend komplizierte Beispiele
Ja, Lenzi, Linearzeitlogik, Linear Time Logic,
hatten sie ja dann gesehen, bezieht sich darauf,
dass die Logik immer auf einen unendlichen Pfad bezogen wird,
im Gegensatz zu CTL,
was wir ja auch schon begonnen haben,
wo wir uns auf Verzweigungen beziehen,
die wir in Form der Abwicklung in Form eines Baumes oder eines erzüglichen Grafen bezogen haben.
Ja, zunächst mal die theorallogischen Operatoren irgendwann.
Und immer.
In der Veranschaulichung
Dann hatten wir als Beispiel auch Kombinationen von beiden betrachtet,
wo das erste Beispiel bedeutet, ab einem bestimmten,
aber undefinierten Zeitpunkt gilt die Aussage P immer.
Im Gegensatz zu dem vertauschten Symbolen,
wo wir, was eben bedeutet,
dass dieses P
unendlich oft gilt
Ja, die Syntax von LTL, wobei wir die verschiedenen Notationen benutzen,
einmal mit den Buchstaben G und F und zum anderen
auch mit den Symbolen, Quadrat und Raute. Ja,
hier haben wir das entsprechenden Bakus Nower Form und hier nochmal eine semantische Erklärung der Operatoren hier,
das X für im nächsten Schritt gilt,
das F für irgendwann mal gilt,
das G immer gilt und das Antil gilt,
bis irgendwann mal Kuhen gilt, wobei das Kuh sicher eintritt.
Letzteres hatten wir nochmal ausführlicher, betrachtet nachher, wenn es zur formalen Definition kommt.
Nicht für diese formale Definition hatten wir diesen Operator Exponent I,
betrachtet, der darin besteht,
dass wir die ersten E-Elemente abschneiden der unendlichen Folge,
um an die I plus erste Stelle eben heranzukommen.
Ja, ein Beispiel des der Mikrowellenofenbeispiels,
das wir ja später ausführlicher betrachtet haben,
haben wir diesen Operator dann nochmal in der Form betrachtet,
wo wir hier eine gedachte,
unendliche Folge haben
Wobei dann das Alphahoch 3 dieselbe Folge ohne die ersten drei Folgeglieder bedeutet.
Das haben wir dann in der formalen Definition benutzt,
wo wir zunächst Aussagen logische Teile hatten und dann bei dem X,
bei dem F und bei dem GF tatsächlich diese Exponenten 1 und K dann eingesetzt haben.
Und dann hatten wir dann auch das Antel und dieses Bedeutungs,
die semantische Bedeutung dann auch behandelt
Ja, wie gesagt, für das Anteil hatten wir uns
das nochmal genauer betrachtet, nicht F1, Antil F2,
bedeutet das sicher irgendwann mal in einem Schritt kam, dass F2 gilt.
Hinterher ist unbestimmt,
was gilt und davor gilt immer das F1. Nicht
also zur Prüfung von dem Antil betrachtet man dann typischerweise erst,
ob man zu dem F2 kommt in dieser Folge und zwar
das erste Mal und prüft dann,
ob vorher
immer F1 gilt
Ja, deswegen kann man eben, wenn dieses F1 trivial zur Truhe gesetzt wird,
das F auch ausdrücken durch das O. Ja,
sodass wir hier also solche Äquivalenzen haben.
Das ist ein Beispiel, ein mehr praktisches Beispiel,
wo wir verschiedene Sendeoperationen ausdrücken können,
nicht wo also in der Prämisse steht,
dass irgendetwas ein Sendewunsch besteht und in der Conclusio die Auslieferung,
die also im ersten Beispiel mit dem X im nächsten Schritt zu passieren hat.
Im zweiten Beispiel In einem späteren Schritt, wobei
eben dieses, dieser Versuch zu senden, aufrechterhalten wird.
Und im dritten Beispiel, wo dieses nicht nur etwendig ist,
sondern einmal dieser Sende wird immer nicht genügt.
Und danach hatten wir dann auch abstraktere Beispiele, wo wir untersucht haben,
ob eine Formel für einen Pferd P eben gilt.
Nicht und der Pfad war eben wie oben rot dargestellt oder
formal natürlich eine Folge von Zuständen
So, dann hatten wir die sogenannte Omega-Sprache definiert, nicht,
weil man eben für eine Formel schon ohne eine Kripke-Struktur zu kennen,
eben die Menge der Traces, heißt das ja,
die Folgen von Etiketten bestimmen kann,
die diese Formel eben erfüllen, nicht geschrieben,
also L. Hochomega, wie bei den Automaten,
aber als Argument steht kein Automat,
kein Tranditionssystem,
keine Kripke-Struktur,
sondern eine LTL-Formel
Ja, dann müssen wir natürlich nachziehen,
wann eben eine solche Formel für eine gegebene Gripgestruktur gelten soll.
Und das ist natürlich bezogen dann auf zunächst mal
einen beliebigen Zustand und dann hinterher auf die Anfangszustände.
Also wichtig ist, eine LTL-Formel gilt für die Gripgestruktur M.
Falls Sie in allen Anfangszuständen gilt, das heißt also,
in dieser Weise jetzt formal beschrieben
Ja, das hatten wir dann mal ausprobiert an dem Mikrowellenofen und
diese Folge wieder betrachtet. Nicht unter können wir als Folge
eben jetzt die Folge der Zustände nehmen und diese Formel F.
Und wir hatten dann die Gültigkeit daran untersucht,
indem wir zunächst mal die entsprechende Folge der Etiketten,
das heißt der Folge der Kombinationen von Atomaren aus Sachen betrachtet betrachtet haben.
Ja, nicht? Also es ist ein Beispiel zu der Definition
vorher. Wenn wir das also nicht für den Pfad,
sondern für die Kripelstruktur M betrachten,
dann müssen wir das eben für alle Anfangszustände betrachten
Dann ein Thema Trennschärfe von LTL, was uns heute auch
nochmal für den anderen Fall von CTL befassen wird.
Darum geht es, wie weit man jetzt durch äußere Beobachtungen Modelle unterscheiden kann.
Und in diesem Fall bedeutet das, dass wenn zwei Kripke-Strukturen dieselben Sprachen haben,
dass sie dann durch keine LTL-Formel unterschieden werden können,
also in dem Sinne getrennt werden können. Das heißt also,
wenn also die Zustandsfolgen, die etikettierten Zustandsfolgen,
also die Dresses, bei der Kripke-Strukturen M1 und M2 gleich sind,
dann gilt eben für jede LTL-Formel,
gilt sie in der einen genau dann,
wenn sie in der anderen gilt nicht und der Beweis kann man durchrechnen.
Das heißt, im Wesentlichen zurückführen auf die Definition führen,
wo hier an dieser Stelle hier die Voraussetzung des Satzes eben eingeht.
Wenn ich die also dann hier nochmal zitiert, ist,
weil sie etwas weiter zurückliegt
Ja, dann gab es auch Äquivalenzen. Nicht,
dass zwei solche LTL-Formel, kann man als Äquivalent bezeichnen,
wenn sie die, wenn sie also für jede Kripke-Struktur den gleichen Wahrheitswert ergeben.
Und den asymmetrischen Fall, falls dieses, diese doppelte Implikation nur in eine Richtung,
er gilt, schreibt man dann wieder mit diesem semantischen Gültigkeitszeichen.
Ja, diese weiße Fläche darunter hatte ich das letztes Mal ausgelassen.
Das sind jetzt eine große Menge von Beispielen von solchen Äquivalenzen,
wollte ich das letzte Mal nicht bringen,
weil das doch vielleicht zu viel auf dem Mal ist,
will ich auch jetzt nicht machen,
aber wenn sie mal was nachschauen wollen, zum Beispiel in Übungsaufgaben,
dann können sie da mal reingucken oder auch zur Übung sich klarmachen,
warum diese Äquivalenzen eben gelten.
Ja, zunächst mal anschaulicher sind ein Beispiele,
wo wir hier überlegt haben, ob das richtig oder falsch ist,
wo dann hier auch mal der doppelte Nextoperator vorkommt,
angewandt auf eine andere unendliche Folge und dann
Die entsprechende Frage jetzt nicht bezogen auf eine Folge,
sondern auf eine Krippestruktur Tau, was eben bedeutet,
dass wir eben alle anfangsstücke betrachten müssen.
Gebt gleich wieder los
Na, das ist eine ganz andere Stelle.
Nochmal woanders hingehen. Ja, hier ungefähr waren wir.
Also hier nochmal die Äquivalenzen.
Hier diese Beispiele
Und dann gab es noch so eine Folie mit richtig oder falsch,
wo die Bedeutung darin lag,
dass hier in dem zweiten Fall eben nicht diese Dualität von gelten und nicht gelten vorhanden war,
dass also es durchaus sein kann,
dass eben für einen Zustand eine Formel gilt.
Also es ist nicht notwendig so ist,
dass es für den Fall und den negierten Fall eben gelten muss,
sondern es kann asteroriös sein,
dass es in beiden Fällen eben nicht gilt,
wie man an diesem Beispiel sieht
Und das liegt typischerweise daran, dass jetzt hier diese Formel
auf einen Zustand bezogen wird. Das ist eine Situation,
die wir auch typisch dann nachher in CTL noch mal kennenlernen werden.
Ja, dann wurde das, haben wir das Mikrowellenofen-Beispiel ausführlicher betrachtet anhand dieser Formel.
Das Tool Mord aufgerufen, die Darstellung in Mord betrachtet.
Nicht wobei an dieser Stelle eben wichtig ist,
dass wir hier in Mord das Transitionssystem eingegeben haben.
Und das ist natürlich untypisch, weil diese Transitionssysteme ja
exponentiell in der Größe der Programmsprache wachsen können.
Deswegen haben die Tools alle eine eigene Programmsprache und benutzen diese Kripke-Struktur nur intern.
Oder sie benutzen sogar reale, existierende Sprachen, wie also implementierte Sprachen wie Java.
Ja, in unserem Beispiel hatten wir gesehen,
wie man jetzt evaluiert, ob diese Formel gilt,
indem wir uns erstmal die Bestandteile betrachten und dann gesehen,
dass das in diesem Fall gültig ist.
Zweites Beispiel war das. Und in einem dritten Beispiel hatten wir gesehen,
dass es dann nicht gilt und typisch für das Model-Chaking wird dann
ein Gegenbeispiel in Form einer unendlichen Folge produziert, die dann zu dem Fehler eben führt.
Nicht wie hier in diesem Beispiel dargestellt, nicht wo wir jetzt unterstrichen,
einen Präfix haben und dann mit unterbrochenen Linie unterlegt,
dann die Schleife, die dann dass wir es hier mit einer unendlichen Folge zu tun haben.
Ich weiß, also dieser Schleife hier in der Kripke-Struktur entspricht. Ja,
und dann waren wir zu dem Thema gegangen und diese LTL,
die Mächtigkeit von LTL,
in Hinblick auf ihre Sprache mit den Büchi-Automaten zu vergleichen,
weil ja die Büchi-Automaten für das Model-Checking benutzt werden und einfach nur zitiert,
weil der Beweis zu komplex ist,
dass zu jeder LTL-Formel eine Kripke-Struktur konstruiert werden kann,
die also genau diese Sprache der Formel dann eben beschreibt.
Das ist ja auch die Richtung,
die wir brauchen und wir hatten ja danach gesehen,
dass die Umkehrung nicht gilt.
Nicht allerdings ist die Komplexität
eben sehr hoch für die Konstruktion dieses Automaten
Ja, in der Tat haben wir, ach so,
hier nochmal für diejenigen, die Dienstag nicht da waren,
also nächsten Dienstag ist Stils, keine Vorlesung,
dann am Donnerstag machen wir dieses Kapitel fertig und am Dienstag
drauf geht es mit dem nächsten Kapitel in Stelligen im Zusehhörsal weiter.
Gut, dann kommen wir heute zu CTL,
was wir auch schon in der letzten Stunde begonnen haben,
und der große Unterschied zu LTL ist,
dass wir zusätzlich auch noch Operatoren haben,
die sich auf Zustände beziehen, direkt auf Zustände beziehen,
in dem Sinne,
dass eben von diesen Zuständen alle Pfade oder die Existenz eines Pfades betrachtet werden und die deswegen auch Zustandsformeln eben heißen.
Nicht also im ersten Fall beziehen wir uns mal ein Beispiel
auf diesen Zustand und dann würde eben AGP bedeuten,
das heißt also in der zweiten Position,
kommen eben auch die Operatoren vor, die wir aus LTL schon kennen.
Das würde eben bedeuten, für alle Folgen,
die von diesem Zustand aus gilt, GP,
was wir ja eben vorher schon definiert haben, bedeutet,
dass eben für alle Folgen dieses P dort stehen muss.
Nicht, und das Duale dazu ist dasselbe mit Existenz,
was er jetzt auf die Wurzel bezogen haben.
Da brauchen wir dann also nur einen Pfad zu finden,
auf dem also immer RP gilt. Ja,
und wenn wir das in einem kleinen systematischen Baum mal so betrachten,
würde das dem AG-Rot entsprechen, das dem AF-Rot,
das dem EF-Rot,
das EG-Rot, das EU,
also grün-antil-rot und das hier A-Grün-antil-rot
Ja, dann müssen wir uns überlegen,
wie man jetzt diese über diese Strukturen auf Gripe-Strukturen bezieht.
Das geschieht durch Abwicklung, ähnlich wie eine Abwicklung einer Waldschleife,
indem man also vom Stachzustand beginnend dann die Nachfolgezustände reproduziert und
nicht gleiche Zustände identifiziert und so zu einem Azyklischen Grafen kommt.
Nicht und auf den können wir dann die Überlegung oder die
semantische Beschreibung anwenden,
die wir
gerade eben hatten
Ja, das heißt also, wir haben, achso,
nee, das ist jetzt noch nicht klar geworden,
hübschen uns in dem Beispiel.
Es ist also eine Förderung für CTL, dass eben immer
nur die beiden Zustandsquantoren in Kombination mit den Pfadquantoren aus LTL vorkommen dürfen.
Das heißt also, es darf eine CDL-Formel,
darf immer nur aus der Kombination bestehen,
dass vorher ein A oder ein E kommt und danach darf
eines der vier Operatoren oder muss eines der vier Operatoren
kommen,
die wir aus LTL
eben kennen
Nicht und man könnte ja meinen, dass wir dadurch
eine größere Ausdrucksmächtigkeit haben, ist aber nicht so.
Im Gegenteil, die Analyse von CTL-Formeln ist sogar einfacher als bei LTL.
Und wir werden sehen, dass diese beiden Logiken eine nicht
vergleichbare Ausdrucksmöglichkeit haben. Und beide haben ihre Vorteile und deswegen
bringen wir sie hier
Gut, kommen wir jetzt zur formalen Syntags von CTL,
dass wir an diesem Beispiel mal darstellen,
nicht wenn wir zum Beispiel EFP beschreiben wollen,
dann können wir hier anfangen,
gehen hier zu dem E und das F muss dann expandiert werden zu einer temporallogischen Formel,
in unserem Fall ist das also das F und von daher,
von dort gehen wir dann zu dem P und haben dann so ein Beispiel für den Aufbau.
Wenn ich das,
also typisch jetzt ist für diese Darstellung in Bakus-Nower-Form,
dass wir hier so eine
doppelt verschränkte Rekursion haben
Gut, die formale Definition der Semantik von CTL-Formeln ist dann natürlich so,
dass wir zunächst wieder den Aussagen logischen Teil haben.
Und dann haben wir die beiden Operatoren E und A,
die sich so darstellen lassen. Es gibt einen in S
beginnenden Fahrt P und hier haben wir so sagen,
setzen wir die Definition, die wir aus LTL kennen,
eben ein,
was ja funktioniert,
weil wir erstens hier einen Pfad haben und zweitens hier etwas,
was wir
eine LTL-Formel aussieht
Ja, und dasselbe eben für... Was im Skript fehlt,
ist jetzt die Übertragung von dieser Definition jetzt auf Kripe-Strukturen,
weil hier das Ganze ja nur auf einen bestimmten Zustand bezogen ist.
Aber das ist genauso wie vorher,
nicht wenn dies für alle Anfangszustände gilt,
dann gilt eben die Formel für die Dripke-Struktur-App.
Das heißt, die Formel F gilt für die Kripke-Struktur.
M, falls sie für alle Anfangszustände geht, formal,
also ganz ähnlich,
wie wir das eben bei LTL haben
Ja, dann gibt es ein kleines Beispiel, was auch im Skript drinsteht. Nicht,
wenn man zum Beispiel irgendwie eine Nachricht verschickt und man startet eine Prozedur und meinem Nösche zum Beispiel ausdrücken,
es ist möglich, in einen Zustand zu kommen,
in dem Start, aber nicht ready gilt,
dann könnte man das hier eben mit EF eben ausdrücken.
Oder das würde eben bedeuten, immer,
es gilt immer,
das ist sozusagen das AG davor und dann haben wir hier die Prämisse,
Request, also wenn irgendeine Anforderung besteht,
dann wird später einmal das mit erknorlisch bestätigt
Da kann man irgendwie vermuten, dass das in LTL vielleicht auch so geht,
aber wir reden später Gegenbeispiele sehen, wo das nicht funktioniert.
Und das ist ein Beispiel, das entspricht gewissermaßen dem unendlich oft,
was wir auch schon in LTL hatten.
Und das war jetzt die Umkehrung. Nee,
das bedeutet ja, hier haben wir zweimal das A nicht.
Das heißt, wir haben für jeden Pfad gilt unendlich oft,
dass für jeden Pfad irgendwann mal etwas gilt.
Und hier haben wir, von jedem Zustand ist das möglich,
in einen Zustand mit Rechtsstaat zu erreichen.
Man darf sich nicht verleiten, dass jetzt auch mit unendlich oft zu übersetzen,
wir werden nachher noch ein Gegenbeispiel dazu kennenlernen.
So, und jetzt kommen vielleicht jetzt nochmal abstraktere Beispiele,
wo wir den Kern dieser Logik vielleicht genauer studieren können.
Dazu betrachten wir jetzt diese Gripgestruktur Und wir haben hier
eine Gültigkeitsaussage in Bezug auf den Zustand 1.
Und der Name der Kryptostruktur M oder wie auch immer,
ist jetzt hier einfach weggelassen, weil das klar ist,
auf welche, die sich bezieht.
Und das liest sich so, wie jeder von eins ausgehende Pfad,
das Eins ist der Stachzustand und auf diesen Zustand werden die Pfade bezogen.
Und da steht ja ein A, das heißt für alle Pfade,
die von eins ausgehen. Und danach steht ja irgendwann mal,
gilt cool und wir können mal überlegen,
ob das gilt
Ja, wer will da, will ich so äußern,
gucken wir die mir erst mal.
Also in eins sind und sie gucken sich einen Pfad,
einen beliebigen Pfad an. Kommen wir dann sicher auf einen Q.
Und wenn Sie das geschafft haben, dann gucken Sie,
ob das für die anderen Fahrten auch gilt und so wahnsinnig
viele Pfade gibt es ja gar nicht.
Denn huch, das war zu weit. Denn es ist ja so,
dass wir, wenn wir hier oben hingehen,
dann kommen wir auf sicher auf Q. Und wenn wir hier unten runtergehen,
kommen wir gleich auf Q,
also gilt das
So, das wäre bezogen auf den Anfangszustand und damit auch für die Grippke-Strukturen.
Hier haben wir noch ein Beispiel auf einen Nicht-Anfangszustand.
Da steht also vorher eine Negation. Das heißt,
es gilt nicht, dass es für einen unendlichen Pfad geht,
nicht wegen des Es, der von drei ausgeht,
der immer P erfüllt.
Und das gilt ja schon im ersten Schritt
nicht,
also insbesondere nicht
So, die nächsten Beispielstile beziehen sich jetzt auf die nachgezogene
Definition für die Kripke-Struktur, wo also per default die Anfangszustände,
in diesem Fall also der einzige Anfangszustand angenommen wird.
Und das heißt ja so viel wie,
es gilt eben für jeden Pfad, das permanent gilt,
das eben für jeden dann eingenommenen Zustand, so muss man genauer sagen,
Und es dort einen ausgehenden Pfad ergibt, für den eben R gilt.
Nicht sodass also diese Beschreibung ein Recht etwas ungenau ist,
wie wir, wie ich jetzt zum dritten Mal sage,
gleich dann nochmal in einem Beispiel und Gegenbeispiel dann sehen werden.
Also wichtig ist tatsächlich, hier an dieser Stelle kann man das schon erahnen,
dass im Gegensatz zu LTL, wo wir eine feste Folge haben,
man immer sich klarmachen muss, man betrachtet dann die Zustände,
in die man kommt und von dort aus dann wieder alle Pfade.
Und deswegen heißt das CTL auch Verzweigungslogik, weil wir auch zu späteren Zeitpunkten,
die Verzweigungen in der Struktur berücksichtigen, was wir in LTL nicht tun.
Ja, und das letzte Beispiel sagt eben,
das ist sozusagen eine typische generelle In-Variante.
AG heißt, es gilt immer. Und was immer gilt,
ist P oder Q und das sehen wir, egal wo wir hingehen.
Und wir haben entweder P oder Q. Ach ne, es gibt noch ein fünftes. Ein fünftes,
das ist nochmal mit Antim,
da haben wir auch wieder für jeden Fall Art gilt,
dass irgendwann mal Kuh gilt und auf dem Weg dahin gilt eben P,
nicht also ich bin bei oben rumgehen, haben wir hier Kuh vorher,
haben wir P und wenn wir unten rumgeht,
Da haben wir gleich Kuh und vorher im MAP.
Gut. Ja, jetzt haben wir auch wieder Äquivalenzen in CTL,
was also praktisch ist. Und das sieht also gewissermaßen ähnlich aus,
wie wir das aus der Prädikatenlogik und LTL schon kennen.
Also wenn wir hier zum Beispiel ein Negationszeichen vorschreiben und das reinziehen,
dann dreht sich das E zu einem A um,
wie in der Prädikatenlogik und in LTL.
Aber bei dem X verändert sie sich nicht,
sodass wir dann hierzu Not Nord G kämen, was also äquivalent ist, so gehen.
Das kann man sich also ganz gut merken. Ja,
an der Stelle benutzen wir jetzt also auch wieder diese Äquivalenz,
die wir ja vorher schon mal auch in LTL definiert haben,
die sich eben auf alle Grippestrukturen eben bezieht.
Ja, ein anderes Beispiel ist, was wir auch,
was uns bekannt vorkommt,
nicht wenn wir das eh mal weglassen hier vorne,
ist das ja eine Identität oder eine Äquivalenz,
die wir aus LTL kennen,
dass wir nämlich das Groß-F-Klein-G ausdrücken können durch True,
Antil,
Und wenn wir uns in LCL bewegen,
dann müssen wir davor noch ein E oder ein A schreiben.
Und beim E gilt das auf jeden Fall. Ja,
dann mit der Negation können wir dann auch noch was mit dem AG machen.
Also hier ist es auch wieder ähnlich, wenn wir
hier über das E rübergehen, wird das E zum A.
Und über das F rüber wird das F zum G
und verrechnet sich dann mit dem Nord-MG.
Nicht, dass es jetzt rein syntaktisch beschrieben,
nur aber dass das gilt, muss man sich natürlich inhaltlich überlegen,
was sie gerne mal machen können
Ja, sowas ähnliches haben wir jetzt auch mit F,
also wenn wir hier, als es G haben, was ja ganz symmetrisch dazu ist,
dass wir hier also wieder das ENA transformieren und das G-Enten-Elf.
Ja, bei dem Antil sieht das komplizierter aus,
nicht wenn wir da die entsprechende Konstruktion machen,
kriegen wir nicht nur einen Ausdruck,
sondern zwei nicht und das drückt irgendwo aus,
dass wir hier in dem Antil im Grunde zwei Bedenkungen drin haben,
nämlich einerseits,
dass wir dieses G2 irgendwann mal erreichen und das bis dort eben immer ein G1 gibt.
Ich erwähnte ja schon, dass Schwache, Ante,
bei dem würde dann hinten nur eine solche Bedingung stehen. Ja,
also zu diesen Äquivalenzen gibt es dann auch wieder eine ganze Menge,
wie Distributivgesetz und eben interessant eben solche Gegenbeispiele,
die ich jetzt hier nicht im Einzelnen diskutiere,
aber die also im Prinzip in ähnlichen Effekten haben,
wie vorne schon mal erwähnt,
dass eben durch diese Verzweigung eben
die Dinge anders aussehen
Gut. Ja, wir kommen hier zu dem Thema Normalisierung von CTL-Formeln.
Das kennen Sie auch aus der Logik, aus der klassischen Logik.
Das bezieht sich darauf, dass man zu logischen Formeln gerne Normalformen definiert.
Das heißt also, eine Standardstruktur, in dem man
jede Formel transformieren kann. Das hat den Sinn,
dass mit diesen Standardstrukturen dann einfache Verfahren definiert werden können oder Beweise geführt werden,
weil ich dann nicht alle möglichen Strukturen betrachten muss,
sondern nur diese eingestrengte Struktur von Normalformen
Nicht und das Schöne in CTL ist, dass ich also
diese acht Kombinationen nicht brauche, sondern nur drei.
Nicht aufgrund der Äquivalenzen können die acht Kombinationen mittels EX,
EG und EU ausgedrückt werden. Das heißt,
die acht Kombinationen, das waren ja die,
und das kann man sich also auch per Hand leicht überlegen,
nicht wo das mit dem AU vielleicht nicht so leicht ist,
aber die anderen, indem man da mit dem Negationszeichen hantiert,
kann man das in der Tat machen.
Und das muss man auch machen,
wenn man später die sogenannten Modelcheck-Algorithmen für CTL anwendet,
dann sind diese nämlich nur für diese drei Operatoren definiert,
einfach um die Verfahren einfacher zu halten.
Man braucht da nicht acht Prozeduren, sondern nur drei.
Aber das kostet natürlich den Aufwand,
dass man vorher die Formeln in dieser Normalformel überführen müssen.
Und das werden wir dann an dem Beispiel des Mikrowellenofens dann
auch ausführen. Gut, ja, dann kommen wir jetzt
eben auch wieder zum Thema Trendschärfe. Sie erinnern sich,
in der Wiederholung hatten wir das ja für LTL
Nicht nur das Interessante ist, dass diese CTL sich unterscheidet und
dass an der Stelle von der Folgenäquivalenz jetzt die B-Simulation trifft.
Das heißt also, wir kommen jetzt hier auf zwei Begriffe zurück,
die wir in einem ganz anderen Kontext,
nämlich der Transitionssysteme und mit ganz anderer Motivation schon kennengelernt haben und die dann gewissermaßen jetzt auch diese beiden Temporallogiken charakterisieren.
Und das heißt, der Zuseher zugehörige Satz würde dann heißen,
P-Similare Modelle können von keiner CTL-Formel unterschieden werden
Also es kann nicht sein, dass wir zwei Visimilare,
Transitionssysteme oder Kripke-Struktur, Kripke-Strukture, Kripke-Strukturen haben und eine Formel finden,
die in der einen gelten und in der anderen nicht.
Ja, das gucken wir uns mal an und wir können
das natürlich gleich an dem Beispiel ausprobieren,
was wir kennen, nämlich den Getränkeautomat.
Und sie erinnern sich ja,
die kritische Situation war ja die in dem Zustand S1,
wo wir dann in dem Nicht-Visimilar und Pendant
eine andere Struktur eben hatten
Die Frage ist, wie können wir jetzt uns in die Situation
dieses Zustand des S1 bewegen? Wenn wir das Ziel haben,
dann hier in den Zustand S2 zu kommen und dieses Alpha 2 anzusprechen.
Nicht, das können wir natürlich machen, indem wir das AX benutzen.
Das heißt also, es bedeutet ja vom Stachzustand, gilt für jeden Pfad,
dass wir etwas betrachten, was einen Schritt weiter gilt.
Das EX hätte es in dem Fall auch getan,
weil wir ja überhaupt nur eine Kante vom Stachzustand haben.
So, und jetzt betrachten wir weiter Dass EX Alpha 2,
das heißt also, wir haben jetzt hier die Möglichkeit,
nach S2 zu gehen und dort gilt Alpha 2. Ja,
also Frage an Sie, gilt jetzt diese Formel,
diese CTL-Formel für diese Kripri-Struktur?
Ja oder nein? Ein bisschen düster ist kein Ihre Hand,
Ihre Meldung nicht so richtig erkennen. Ja,
gilt natürlich nicht, denn das bedeutet ja,
also wie gesagt, für jeden Pfad, der hier oben beginnt,
im nächsten Schritt, gibt es einen weiteren Schritt,
wo hinterher Alpha 2 gilt.
So, und jetzt schauen wir uns das entsprechende don't an,
was eben Dichtbisemilar war. Nicht, sie erinnern sich statt
des S1, hatten wir dann hier zwei Zustände.
Und die beiden Kripke-Strukturen sind wieder folgen, äquivalent.
Und wir können fragen, ob jetzt dieselbe Formel immer noch gilt.
Nicht, das heißt ja, für alle X gilt irgendwas.
Und dann muss es also auch jetzt für das rote R6 gelten.
Und da können wir eben sagen, es fragen,
es gibt ein X,
sodass Alpha 2 und Scheitern
Nicht, weil hier eben die Verbindung hier unten eben fehlt.
Nicht, und aus diesem Fall sehen wir,
dass wir vorne das AX benutzen mussten, wenn wir die beiden vergleichen,
weil das Ganze mit dem EX auch vorne dann nicht funktioniert hatte.
Das heißt also, in dem Falle wäre,
ist keine Gültigkeit gegeben. Nicht, das heißt,
wir können diese beiden Grippestrukturen anhand dieser Formel unterscheiden,
mit Gültigkeit und Nichtgültigkeit,
was damit korrespondiert,
dass sie eben nicht B-Seminar sind
Ja, und dann hatten wir ja früher gesehen,
wie wir die rechte Struktur Bisemila machen können,
indem wir jetzt noch diese Kanten einführen.
Und dann würde natürlich die entsprechende Formel eben gelten.
Nicht, also, ja. Okay, ist das soweit
? Klar. Gut, jetzt sind wir schon ein bisschen
in den Vergleich von LTL und CTL hineingekommen.
Und das wird jetzt eben ein wichtiger Abschnitt sein
Nochmal wiederholt. Wir haben also gewissermaßen mit CTL die Bisimilarität assoziiert.
Und zur Erinnerung, bei LTL haben wir die Folgen-Äquivalenz genommen.
Also das war praktisch die entsprechende Übertragung der Äquivalenz,
die man aus der Automatentheorie eben kennt.
Ja, das wäre ja ganz interessant,
wenn wir diese Übung, die wir gerade gemacht haben,
vielleicht jetzt auch nochmal in LTL versuchen.
Also das hier, was in Gelb ist,
ist sozusagen nur zur Erinnerung, was wir eben gemacht haben.
Und jetzt versuchen wir dasselbe mal in LTL.
Da haben wir also jetzt nicht mehr die Möglichkeit,
die Operatoren A und E zu benutzen.
Aber das X hatten wir ja in LTL auch
Nicht, das heißt, wir könnten zum Beispiel einmal in
X schreiben und wir wollen ja zu dem S2 kommen,
da könnten wir zweimal in X, in Alpha 2 schreiben.
Und jetzt ist eben die Frage, gilt das oder gilt
das nicht jetzt in LTL? Ja? Jemand, eine
Idee? Das ist vielleicht auch ein bisschen nicht zu erwarten,
wenn sie nicht genau die Definition nach oder vorgearbeitet hatten.
Sie erinnern sich ja vielleicht dann doch,
oder ich sage es jetzt nochmal,
eine Formel für eine Krippestruktur gilt in LTL
Wenn für alle Folgen, die im Anfangszustand starten,
sie gilt, ja, das heißt also,
alle Folgen bedeutet ja nicht nur die Folge,
die hier unten nach links abzweigt,
die wir vielleicht im Sinn haben,
sondern es müsste auch für die Folge,
die hier nach rechts abzweig gelten.
Das heißt also, in dieser Definition haben wir versteckt auch so eine Bedingung,
die der Zustandsformel entspricht, bezogen aber nur auf Anfangszustände.
Welcher CTL, können wir diese zustandsabhängigkeit auch später anwenden in LTL,
haben wir sie aber notwendig, in den Anfangszuständen oder in dem Anfangszustand.
Das heißt also, in LTL gilt das nicht.
Und wenn wir Rechtsfragen, gilt das natürlich auch nicht.
Und das muss ja auch so sein,
weil wir gesehen haben, die beiden sind folgenäquivalent,
also wenn die LTL-Formel links nicht gilt, dann nicht gilt,
dann muss sie auch rechts nicht.
Darf sie auch rechts nicht gelten. Ja? Nee,
also das können sie schon ein bisschen mehr ahnen,
worin die Unterschiede bestehen zwischen LTL und CTL
Ich wiederhole nochmal, also in CTL ist es möglich,
in ein zu beschreiben, dass ich in einem späteren Zustand,
den ich also durch eine Formel erstmal erreiche,
dann die verschiedensten Möglichkeiten,
also alle Pfade oder es gibt einen Pfad zu betrachten,
was ich in LTL nur indirekt mache,
indem ich die ganzen Pfade betrachte, also die Anfangsstücke mit hinzunehme,
was dann aber zu unterschiedlichen Effekten dann führt.
Okay, wir halten also fest,
Bissimilarität entspricht in CTL und LTL haben wir diese Folgen Äquivalenz.
Okay. Ja, und jetzt kommen wir zu den Unterschieden. Das heißt,
wir werden jetzt Formeln kennenlernen, die in der einen Logik
eben möglich sind und in der anderen möglich nicht mehr möglich sind.
Nicht, es gibt also zum Beispiel keine CTL-Formel, die Äquivalenz zur folgenden LTL-Formeln ist.
Das heißt also, heißt ja, erinnern Sie sich,
irgendwann mal gilt permanent P. Nicht, ist das schon sehr bemerkenswert,
weil das doch eine sehr elementare Formel eben ist.
Ja, und genauer gesagt müsste man jetzt eben auch noch
eben noch beschreiben, definieren, was es bedeuten soll,
wenn ich jetzt Formeln in LTL und CTL vergleiche.
Aber es geht natürlich genauso wieder über die Kripke-Strukturen.
Nicht, dass sie als Äquivalent wären, wenn sie
eben in allen Kripke-Strukturen den gleichen Wahrheitswert eben geben würden.
Ja, und dahinter steckt, also wie ich eben schon erwähnt habe,
Folgendes. Diese Formel bedeutet ja auf jedem Pfad gibt es
einen Zustand, ab dem P immer gilt.
Und genauer ausgestrückt heißt das auf jedem Pfad vom Stachzustand aus
Nicht? Und das könnte ich jetzt grafisch so darstellen,
wenn ich hier mal jetzt so eine Abwicklung habe und so hier die Pfade habe,
ist ja irgendwie angedeutet, egal wo ich lang laufe,
ich komme immer mal wieder auf einen schwarzen Punkt,
wo die Gültigkeit P gegeben sein soll.
Und das geht natürlich unendlich oft weiter nach unten und könnte
auch später eintreten, aber ist jetzt nicht dargestellt. Ja,
weiter könnte ich eben auch diesen Effekt dadurch darstellen,
in denen ich das auf jeden Pfad hier noch durch diesen CTL-Quantor A-Ausdrücke,
das heißt also bei den LTL-Formeln kann man sich vorstellen,
dass Hintergrund immer gedacht, ein A davor steht,
aber nur vorne, nicht irgendwo in der Mitte drin.
Nicht, dass das vielleicht günstig zu merken,
dass eben diese LTL-Formel sich immer auf alle unendlichen Folgen beziehen,
die im Anfangszustand eben beginnen. Okay, ja,
man könnte ja auf die Idee kommen, mal versuchen,
ob es nicht vielleicht doch eine LTL-Formel gibt, die Äquivalent,
achso, das ist jetzt eine Eine andere Entschuldigung,
das ist jetzt eine andere Aussage.
Ich mache nochmal zurück. Hier haben wir ja,
es gibt keine CDL-Formel, die dazu ist.
Und hier haben wir jetzt die Umkehrung,
es gibt keine LTL-Formel, die Äquivalent zu folgender CTL-Formel ist.
Und das ist ja so was ähnliches, was wir eben hatten.
Da steht ja auch wieder, es gilt immer irgendwann mal,
was wir in der Kombination vielleicht auch mit unendlich oft assoziieren.
Nicht, aber das bedeutet, beim genaueren Hinsehen,
von jedem Zustand ist ein Zustand erreichbar, in dem Pegelt.
Die sehen schon in der Formulierung, ich sage nicht,
in einer Folge passiert etwas unendlich oft,
sondern ich beziehe mich auf die Zustände
Und jetzt könnte ich natürlich fragen, ob das nicht äquivalent ist zu dem,
was wir eben hatten, nämlich dem GF,
wo ich hier oben jetzt einfach das A und E weggelassen habe,
naja, unsere Verdeutlichung noch, dass A davor geschrieben haben.
Das ist jetzt ganz wichtig, wenn Sie den Unterschied begreifen wollen,
können Sie sich den Unterschied vorstellen zu dem,
zu dem Satz, der hier steht,
also von jedem Zustand ist ein Zustand erreichbar,
in dem P gilt,
dass das nicht dasselbe ist,
unendlich oft,
oder in jeder unendlichen Folge
kommt unendlich oft P vor
Ja? Nicht, das könne sich gut merken,
indem sie an das Stichwort Kamm denken, also Kamm wie Kemmen.
Wenn sie nämlich so eine Struktur haben,
wie hier wie so ein Kamm aussieht,
nicht also hier oben mit einem Hauptarst und hier solchen Abzweigungen,
die wie die Zinken eines Kampfs aussehen und woran Pech steht,
dann sehen sie hier Folgendes dran.
Ja, oder ich kann mal noch mal so fragen.
Gilt in dieser Kripke-Struktur diese CTL-Formel?
Ja oder nein
Also die Frage, ist in jedem Zustand, den ich hier erreiche,
möglich, einen Zustand erreichbar, in dem P gilt.
Also die Zustände, wo sowieso P dransteht, brauche ich nicht so betrachten.
Also brauche ich nur die Zustände zu betrachten,
die hier sozusagen auf der Hauptachse legen. Ja,
und das ist natürlich klar, ich kann immer,
was ist das, links abbiegen und komme zu P.
Ja, das heißt also, diese Formel gilt,
das heißt, für jeden Zustand, egal wo,
ist es immer möglich,
einen Weg zu finden,
wo ich zu P komme
Ja, und warum gilt diese LTL-Formel nicht,
das ist ja jetzt klar,
weil wir haben ja in der Tat eine unendliche Folge,
nämlich genau diesen unendlichen Hauptast dort, der NIP enthält.
Also das ist ein Gegenbeispiel für diese Formel.
Ich glaube, das ist das schönste Beispiel,
wo man diese Unterschiede von LTL und CTL sieht.
Das erklärt aber noch nicht so richtig die praktische Bedeutung oder
die praktische Bedeutung des Unterschiedes,
das werden wir gleich ein bisschen genauer kennenlernen,
wenn wir uns mit Fairness befassen
Soweit sind wir noch nicht, sondern wir betrachten mal hier
einen kleinen Beweis, der so aussieht.
Es wird jetzt argumentiert, AGEF lässt sich nicht in LTL ausdrücken.
Und das geht so, wir betrachten diese beiden Kribbe-Strukturen,
K-1 und K-2. Und wir überlegen uns zunächst, jede LTL-Formel,
die in K-1 gilt, gilt auch in K-2.
Warum? Ja, weil die sozusagen die Folgen in Bezug auf
die Etikette in K-1 eine Obermenge ist von derjenige von Karl 2.
Das heißt natürlich, Alle Aussagen, die in K1 geilten,
also der soll ja für alle Folgen gelten.
Das sind ja die Folgen in Karl 2 nur eine Teilmenge.
Also gelten die dafür erst recht. Oder wir können das
auch mit diesem Sprachsymbol eben ausdrücken. Aber für die infrage stehende CDL-Formel,
gilt nicht die Äquivalenz, denn hier haben wir ja das auch wieder.
Es gilt immer, egal wo ich bin, ich kann abzweigen zum Kuh.
Ja, das gilt links, aber rechts natürlich nicht.
Da kommt nicht mal ein Kuh drin vor. Nicht so,
dass wir also schließen können, so wie wir das eben gemacht haben.
Das heißt, in diesem In dieser Beweiskitze steckt im Grunde
wieder dieselbe Idee mit dem Kamm drin,
die wir eben schon eben hatten. Okay. Ja,
und dazu gibt es noch einen sehr schicken Satz,
der auch in einer der Übungsaufgaben als Fußnote angesprochen ist oder wird.
Nämlich, der sagt Folgendes. Ich betrachte mal eine CTL-Formel
PC. Und gefragt wird, ist jetzt unsere Frage hier
in dem Abschnitt, ob es eine Äquivalente LTL-Formel gibt.
Und da gibt es der folgende Satz
eine Hilfe zu
Wenn ich nämlich auf Sie eine LTL-Formel bilde,
indem ich einfach die Pfadquanturen, indem man die Zustandsquanturen muss
da stehen, weglässt, also das A und das E.
Dann ist das Ergebnis dieses Satzes, entweder kriege ich dann eine Formel,
die Äquivalent ist oder natürlich eine, die nicht äquivalent ist,
aber wenn sie nicht äquivalent ist, dann geht das überhaupt keine äquivalente LTL-Formel.
Das ist natürlich eine starke Aussage, weil es ja ein einfaches Verfahren,
einfach diese ES und As wegzulassen, nicht vielleicht zu simpel,
um die äquivalente LTL-Formel zu finden, aber dieser Satz sagt,
dieses einfache Verfahren umfasst schon alle möglichen Verfahren.
Denn wenn dieses einfache Verfahren es nicht schafft, dann schafft
es auch kein noch so komplexes Verfahren. Ich finde,
das können wir zum Beispiel anwenden, indem wir nochmal beweisen,
was wir eben schon mal bewiesen haben, indem wir sagen,
das zeigen, dass AGEF ist nicht in LTL ausdrückbar.
Das machen wir dann so, indem wir diese Prozedur hier anwenden,
nämlich das A und das E streichen, dann kommen wir hierhin.
Und wir haben aber eben schon gesehen,
die sind nicht äquivalent, also gibt es überhaupt keine
äquivalente LTL-Formel dazu
Nicht, insofern ist dieser Satz also von einem gewissen Interesse. Ja,
wir können jetzt unsere Überlegungen zum Vergleich von CTL und LTL abschließen,
indem wir hier so ein Mengendiagramm aufstellen,
wo wir hier zum Beispiel LTL haben und hier haben wir
eine Formel kennengelernt,
die nicht in CTL ist
Und hier haben wir auch CTL dargestellt und eine Formel,
die nicht in LTL ist,
aber diese Mengen haben natürlich einen gemeinsamen Durchschnitt,
also gemeint sind jetzt natürlich nicht die Syntax,
die ist natürlich immer verschieden, aber eben sozusagen die gleiche Semantik haben.
Allein die Aussagenlogik, die ja in beiden enthalten ist,
ist im gemeinsamen Durchschnitt, aber es gibt eben auch viele Formeln,
die eben temporallogische Operatoren enthalten, die also das Gleiche eben bedeuten.
Ja, und wenn ich das sozusagen Mit oder verbinde,
dann ist das ja eine Formel, die,
oder ist nicht logisch, aber das ist so,
die weder in der einen noch in der anderen Logik ausdrückbar ist und die ist in CTL-Stern enthalten.
Ich hatte ja schon mal erwähnt, CTL Stern ist die Logik,
wo ich alle die Operatoren zulasse, aber nicht darauf bestehe,
dass die in CTL immer abwechselnd vorkommen.
Nicht, dass es also eine Logik,
die also mindestens so komplex ist wie LTL,
wo wir ja schon gesehen haben,
die Analyse ist im gewissen Sinne komplexer als CTL.
Gut, soweit jetzt also die theoretischen Betrachtungen zu den Logiken.
Und wir kommen jetzt zu einem Vergleich, der sich jetzt
auf diese Fairness bezieht. Nicht Affairness hatten wir ja schon
mal früher. Sie erinnern sich an das Alternierbeet-Protokoll,
hatten wir gesagt, ja, man muss fordern,
dass der fehlerhafter Kanal ein faires Verhalten hat,
was dort bedeutete,
es muss immer mal wieder so sein,
dass er
die Daten korrekt überträgt
Oder wir hatten diese eine Art von Fairness beim wechselseitigen Ausschluss,
wo wir ja gesagt haben, es muss so sein,
dass ein Prozessor, der den nächsten Schritt machen kann,
nicht unendlich lang verzögert wird oder für immer verzögert wird,
sondern der muss diesen Schritt auch mal machen.
Und allgemein ausgedrückt kann man das so sagen, eine Alternative einer
sich wiederholenden Möglichkeit von Alternativen wird auch irgendwann mal gewählt.
Das heißt, wenn ich immer wieder die Möglichkeit habe,
mich für A oder B zu entscheiden,
dann wird bei Fairness ausgeschlossen,
dass ich mich permanent
nur für entscheide
Nicht und bezogen auf das Atanierbeetprotokoll, war das ein
gestörter Kanal, übermittelt immer mal wieder eine Nachricht korrekt.
Ja, und das ist eben ausdrückbar in LTL,
aber nicht in CTL. Nicht, und das ist der
Vorteil von LTL. Nun ist es aber so,
dass man eben in CTL das auch aus bestimmten Gründen benutzen will,
dort gibt es einen Ausweg,
den nennt man dann die faire Semantik und das geht folgendermaßen
Anstelle jetzt eine solche Fanness-Bedingung in der Formel auszudrücken,
kann man nämlich dann später nur gewissermaßen in der Grip-Restruktur die
fairen unendlichen Folgen zulassen, gewissermaßen die unfairen vorher aussortieren,
bevor man die Analyse macht.
Nicht, das werden wir dann später noch mit den Büchi-Automaten oder den Kripke-Strukturen,
die eine Akzeptanzbedingung haben,
die den Büchi-Automaten entsprecht,
Zunächst mal sind wir jedoch jetzt bei allgemeinen Fairness-Bedingungen. Nicht,
wir haben ja schon kennengelernt, hier dieses GEF-Fi in LTL bedeutet, ja,
es gilt unendlich oft viel, bezogen auf eine unendliche Folge.
Und das bedeutet, irgendwann mal gilt permanent Effi. Und das erste,
das wird auch gerne schon mal als unbedingte Fairness bezeichnet. Das heißt,
wenn man jetzt eine Transition oder Endtransitionen hat,
die ausgeführt werden sollen, Dann, also jetzt bezogen auf Transitionssysteme,
wo wir jetzt nicht die Werte,
die Etikette in den Zuständen betrachten, sondern die Ausfuhrbarkeit,
Ausführbarkeit von Transitionen, also von Aktionen, dann würde das bedeuten,
eben für alle infrage stehenden Aktionen gilt,
dass die also unendlich oft ausgeführt werden in jeder möglichen unendlichen Folge.
Das ist also eine Form von Fairness, in dem Sinne,
jeder kommt mal dran und immer wieder und jeder kommt mal
dran und das hört nie auf, so ungefähr.
Das kann man sich aber leicht vorstellen,
dass das sozusagen nicht die ganze Geschichte ist,
weil man ja oft diese Fairness, also dass irgendeine Transition ausgeführt wird,
nur dann sinnvoll fordert, wenn gewisse Bedingungen erfüllt sind vorher.
Und das führt dann zur bedingten Fairness im Gegensatz zur unbedingten Fairness. Ja,
nicht, das heißt also, wir betrachten jetzt Fairness,
Aussagen, die ausdrücken, dass jede Transition,
die oft genug bereit ist, auch oft genug ausgeführt werden kann.
Also wenn eine Transition irgendwann mal nicht mehr ausführbar ist,
dann ist es schon eine sehr starke Forderung zu fördern,
dass die auch immer wieder ausgeführt werden, soll,
weil ja sozusagen der Systementwerfer, wenn er das System korrekt entworfen hat,
ja gerade ausdrücken wollte, ja,
in dem Motto soll sie nicht mehr ausgeführt werden oder es ist mich nicht mehr sinnvoll, dann wäre diese unbedingte Fairness viel zu stark.
Nicht, das heißt also, man muss irgendwie ausdrücken,
dass die Transition ausführbar ist und dazu haben wir jetzt noch das Prätäkat Enable von K,
das heißt, die Transition K ist ausführungsbereit.
Das heißt, in der Griprestruktur,
dass eben es möglich ist, eine Kante zu wählen,
wo K, der dran steht oder bei den Petrinetzen später,
dass es eine Transition gibt,
wo die Transition eben schalten kann
So, und dann kann ich die sogenannte starke Fairness so ausdrücken,
wenn eine Transition immer wieder ausführbar ist,
dann soll sie auch immer wieder ausgeführt werden.
Das heißt ja, wenn die Tradition K unendlich oft möglich ist,
dann soll sie auch unendlich oft ausgeführt werden.
Das bedeutet nicht, dass sie jedes Mal ausgeführt werden muss,
wenn sie ausgeführt werden kann, aber immer wieder.
Nicht, also die Negation ist vielleicht einleuchten,
denn in vielen Fällen wird dann auch diese Fairness im Pernegation definiert,
dass man sagt, was etwas unfair ist.
In dem Falle würde bedeuten, eine solche Folge ist unfair
In einem Bezug auf eine Transition, wenn die Transition unendlich oft ausführbar ist,
aber zum Beispiel nie ausgeführt wird oder nur endlich oft ausgeführt wird.
Nicht, das sieht man hier zum Beispiel an diesem Petri-Netz,
was sie aber, da wir ja Petrin jetzt noch nicht hatten, als Automat interpretieren können.
Nicht, dass hier ist sozusagen der Anfangszustand,
dann kann die Transition arm schalten und dann zäh und dann sind wir hier.
Und da haben wir hier die bewusste Alternative,
statt Arkan auch B schalten und da haben wir D und gehen wieder zurück.
Und wenn wir jetzt zum Beispiel immer nur die Alternative A wählen,
dann wäre das ein Beispiel für Ein unfaires Verhalten,
weil nämlich immer dann,
wenn gewissermaßen die Steuereinheit hier im Zustand S1 ist,
ja, dass B ausführbar wäre,
aber wenn ich unendlich oft nur den roten Pfad oder immer wieder nur den roten Pfad wähle,
eben,
dass B eben die ausgeführt wird.
Das wäre also ein Verstoß gegen die sogenannte starke Fairness, ja?
Und das werden wir dann auch als Fairness-Regel auch bei den Petri-Netzen kennenlernen,
dass wir sagen,
neben der normalen Ausführungsregel gibt es auch noch eine faire Regel,
die also so ähnlich ist dann,
wie hier diese starke Fairness
Ja, und dann, wenn da steht, starke Fairness,
dann können Sie richtig vermuten, es gibt auch eine schwache Fairness.
Nicht nur die schwache Fairness, die sieht jetzt so aus,
dass jetzt das syntaktisch sehr ähnlich aussieht,
aber statt dem GF steht jetzt hier ein FG.
Wie hier irgendwann, das irgendwann. Und das bedeutet,
diese Forderung, die ich hier hinten habe, die soll nur gültig sein,
wenn an einem Zeitpunkt diese Transition permanent aktiviert ist.
Das heißt also hier in dem Beispiel würde das nicht greifen,
weil ja dieses B nicht permanent aktiviert ist,
sondern wenn wir hier im Zustand S2 sind,
ist ja B
nicht aktiviert
Nicht, und sowas trifft zum Beispiel zu, wenn wir hier
so unabhängige Prozessoren haben. Und nehmen wir mal an,
der wird immer nur sozusagen hier diese Schleife ausgeführt.
Und dann sind diese beiden Prozessoren der erste und der zweite in
der Lage oder im Zustand, dass ständig die Transition,
die jetzt unter dem aktiven Zustand ist oder hier drüber,
dass diese Transition ausführbar ist,
permanent,
aber nie ausgeführt wird
Man sieht, das ist eine andere Eigenschaft, eine schwächere,
aber auch eine sinnvolle Fairness-Eigenschaft und weil die schwächer ist,
heißt sie dann eben natürlich schwache Fairness.
Und die sehen auch, dass ja, dass etwas von
unterschiedlicher Natur ist. Nicht, wenn man konkret Prozessoren haben,
die jetzt hier solche unabhängigen Aktionen haben. Die können zwischendurch ja
auch mal synchronisiert sein. Aber wenn es doch so ist,
dass doch eine Aktion permanent möglich ist,
eine Anweisung permanent ausführbar ist, dann geht man davon aus,
dass es technisch so gelöst ist,
dass die auch meistens in Dreher kurzer Zeit
auch ausgeführt wird
Aber wenn ich eine solche Struktur analysiere, muss ich diese Eigenschaft natürlich in der Kripke-Struktur,
in dem Transitionssystem ausdrücken, wie wir das ja auch bei dem wechselseitigen Ausschluss gesehen haben.
Und dazu, um dieses ausdrücken zu können, ist also dieser Begriff der schwachen Fairness also wichtig. Nicht uns zu den Beispielen vorher. Nicht,
dass mit dem fehlerhaften Kanal im Alternierbit-Protokoll würde also der starken Fairness entsprechen,
weil ja der Kanal auch mal gar nicht die Möglichkeit hat,
einen Fehler zu machen,
irgendwie der Sender gar nicht in dem Zustand ist,
aber immer mal wieder ist er in dem Zustand,
was zu senden und dann kann er den Fehler machen,
dann müsste diese starke Fairness greifen und in dem wechselseitigen Ausschluss erinnern sich an der Schleife,
wo der eine Prozessor darauf wartet,
dass der andere doch vielleicht endlich mal einen Schritt macht,
das würde dann eher zur schwachen Fairness passen.
Okay, gut, ja,
wie drücken wir das aus, jetzt in CTL,
das wäre sozusagen in LTL können wir das durch die Formeln ausdrücken,
im CTL wählen wir einen anderen Weg,
wie eben schon angedeutet und das geht folgendermaßen
Wir definieren das, was eine faire Kripke-Struktur ist,
dass es eine Kripke-Struktur, die mal,
die zunächst mal so aussieht, wie wir den verallgemeinerten Büchi-Automaten hatten,
nämlich mit mehreren Mengen von Endzuständen.
Das erklärt zunächst mal erstmal gar nichts. Das heißt,
wir haben eine Kripke-Struktur wie vorher und hier eben diese K-Mengen von Endzuständen.
Nicht der Unterschied kommt jetzt erst durch die Semantik zu tragen.
Wir nennen nämlich einen Pfad fair, wenn er unendlich oft
die Endzustandsmengen trifft oder durchläuft und zwar alle. Ja,
und sie sehen,
dass es jetzt genau die Akzeptierungsmethode von Büschi-Automaten jetzt nur bezogen
auf Gripgestrukturen und nicht nur das Ganze ist jetzt nur so formuliert,
dass wir den Begriff Büschi-Automaten hier nicht zitieren müssen.
Das heißt also, diese Fairness wird also über eine Akzeptanzbedingung definiert,
die wir bereits von Büschi-Automaten eben kennen.
In der Form, wenn das zum Beispiel die Endzustandsmenge ist,
dann kann also jetzt so eine unendliche Folge
immer mal wieder
diese Endzustandsmenge verlassen
Sie muss aber immer wieder zurückkehren oder kann vielleicht sogar auch immer in ihr verweilen.
Ja, und das hat mit dem eben zu tun,
dass wir in den Fairness-Bedingungen stand ja, es muss,
wenn eine Bedingung gegeben ist, muss später irgendwann etwas stattfinden, eine andere Bedingung.
Und das wird jetzt hier durch diese Endzustände eben ausgedrückt. Ja,
und wir sagen jetzt also eine Formel gilt oder wir sagen,
also dieses bedeutet hier folgendes, es gibt einen fairen Pfad,
der bei S anfängt und wobei eben dieses P in der Endzustandsmenge ist.
Das heißt also, das gilt, wenn es einen fairen Pfad ergibt,
wo dieses P immer wieder eben besucht wird, dasselbe dann mit E und A.
Ein Beispiel könnte man hier unten das nennen,
wenn ich als Endbedingungen nehme, ich betrachte die Menge der Zustände,
die Folgendes erfüllen, Not Sand E
or Receive E für den Kanal E. Das heißt ja,
wenn gesendet wird, dann wird auch empfangen, dann bedeutet das,
wenn wir dort einen fairen Fahrrad betrachten in Bezug auf die Bedingung,
dass unendlich oft empfangen wird, falls gesendet wird.
Ja, und jetzt die Meutel-Check-Prozeduren, das machen wir in der nächsten Stunde.
Und doch macht man das dann eben jetzt in CTL so,
dass man, wenn man dort Fairness-Bedingungen ausdrücken will,
dann benutzt man hier diese faire Semantik.
Das heißt, man sortiert vorher die nicht fairen Folgen aus
Verwendet nur den Algorithmus auf die fairen Folgen an.
Dann werden Sie fragen, wie das geht. Ja,
man hat dann eben so eine Art Büschi-Automat,
der jetzt als Skript-Gestruktur geschrieben und betrachtet nur,
die ist in dem Sinne akzeptierten unendlichen Folgen.
Gut, da kommen wir dann später bei der nächsten Stunde jetzt bei den Meutel-Checking-Prozessuren wieder drauf zurück.
Wir fangen aber heute eben erstmal an mit dem LTL-Model-Checking.
Ja, Sie erinnern sich ja, Model-Checking hieß ja,
wir haben ein Systemverhalten und eine Systemspezifikation.
Und wir wollen wissen, ob das Systemverhalten,
die Systemspezifikation eben erfüllt, Das bedeutet ja zum Beispiel eben,
dass jede Folge des Systems dann diese vielleicht Formel der Spezifikation eben erfüllt.
Einem Buch habe ich mal eine folgende nette Unterscheidung gefunden,
die jetzt das Ganze, das Model-Checking unterscheidet,
von einer anderen Form der Verifikation,
die nämlich zum Beispiel Logik und automatische Beweiser in der Logik benutzt.
Und die haben folgendes geschrieben. Searing Poving,
also jetzt in der Logik, ist System Form You Lamb
Emplies Property Formular
Das heißt also, beim Theoring-Poving hat man eine Formel,
die das System beschreibt. Und man hat eine Formel,
die die Spezifikation beschreibt und der rote Pfeil oben,
der stellt sich im Syrien-Profi dann als Implikation dar.
Nicht, und das unterscheidet sich ja eben sehr vom Mortal-Checking,
was man so beschreiben könnte, Systems-Semantics, is model of property form youla.
Das heißt also, dieses System-Semantic, also die Kripke-Struktur,
ist ein Modell, das heißt, erfüllt eine Formel,
die also die Systemsspezifikation eben darstellt. Das drückt eben aus,
dass wir hier so gewissermaßen innerhalb Der Logik bleibt und mit Formeln manipuliert,
während man hier unten gewissermaßen Zustandsmodelle in Form der Kripkre-Strukturen oder Transitionssysteme eben betrachtet.
Nicht und formal wäre das oben dann einfach eine Implikation nicht,
wobei das Vieh die Formel ist,
die das Systemverhalten beschreibt und das F ist die Formel,
die diese Systemspezifikation beschreibt und hier unten beim Model-Checking haben wir das,
was wir ja auch schon kennen,
nicht,
dass wir hier eine Kripkre-Struktur und einen Zustand haben und wir fragen,
ob die Formel F in dem Zustand
es eben gilt
Okay. Also jetzt zur, es gibt also auch eine
ganze Menge von Systemen, die mit Siorien-Profi arbeiten.
Da ist häufig nur das Problem, besteht darin,
erstmal eine Formel für ein Systemverhalten zu finden,
weil ja so ein Transaktionssystem ist ja ein viel natürlicher Zugang zur Beschreibung eines realen Systems.
Und dann hat man oft auch das Problem,
wenn man also jetzt bewiesen hat,
dass diese Implikation nicht gilt, zu überlegen,
warum gilt die denn nicht,
weil ja so ein Siorien-Prover eine ganze Menge von Operationen
durchführt und das alles nachzuvollziehen,
woran das scheitert
Im Gegensatz zum Model-Checking, wo wir ja gesagt haben,
beim Model-Checking wird immer, im Falle der negativen Antwort,
ein Pfad ausgegeben, der zu dem Fehler führt.
Was also eine wesentliche Erleichterung für das Auffinden dieser Fehler eben ist. Okay,
also die Aufgabe im Model im LTL-Model-Checking ist also folgende für
eine gegebene Gripgestruktur im M und eine gegebene temporallogische Formel F
berechnen wir die Menge aller der Zustände,
in denen also diese Formel F gilt,
wo wir zunächst mal diese Gripgestruktur eben eben als Graph uns vorstellen und nicht also über das Programm geben,
was diesen Graphen, also die Kripri-Struktur erzeugt.
Wir werden sagen, eigentlich brauchen wir doch nur das Entsprechende zu wissen für die Anfangszustände.
Das ist auch richtig, aber die Verfahren bruhen meistens so,
für funktionieren meistens so, dass man eben alle Zustände berechnet,
in denen die Formel gilt und dann guckt man hinterher,
ob zu dieser Menge die Anfangszustände eben gehören.
Ja, nicht? Und dazu wird jetzt also
ein Algorithmus gebraucht, der jetzt bei LTL-Formeln
eben funktioniert
Nicht nur, wir erinnern uns ja,
wenn wir das Ganze in der Folgensemantik machen, entsprach,
dass dieser Inklusion, also dass die Menge der Systemfolgen eine Teilmenge ist,
der Folgen, die die Spezifikation erfüllen.
Und man geht dann im Meutelchecking gern einen Umweg,
der so aussieht oder der Erfolgender folgender Identität beruht. Sie wissen ja alle,
eine beliebige Menge P ist eine Teilmenge von Kuh,
genau dann, wenn P geschnitten mit dem Kompliment von Kuh
gleich der leeren Menge ist, also des Jungen dazu ist nicht.
Das können Sie sich auch nochmal optisch, grafisch klarmachen,
nicht wenn wir hier in der Mitte in blau das P haben und in orange das Kuh,
dann ist das gleichbedeutend,
dass blau eine Teilmenge von Kuh ist,
wenn P und Gelb keinen gemeinsamen Schnitt haben,
nicht wobei jetzt also Gelb das Kompliment von Kuh
in Bezug auf eine Obermenge ist
Nicht, und das ist also die Formel,
die man also dann gerne benutzt, um diese Inklusion hier oben nachzuweisen.
Ja, wenn wir das jetzt auf diese Aufgabe anwenden,
würde das jetzt so aussehen? Nicht,
dass das P entspricht dann, dass dem Elfern TSS und
dem Q entspricht das L von TS Beck.
Hier haben wir das Kompliment stehen, hier den Durchschnitt und
hier die Frage, ob das ein Elea ist.
Das sind jetzt also statt einer Operation hier mehrere Operationen,
aber diese mehreren Operationen kann man besser nicht beherrschen,
nämlich zum Durchschnitt haben wir ja extra das Produkt dransituationssystem betrachtet,
das gilt in quadratischer Zeit
In Lehrer, in den Jahrerzeit kann man überlegen oder beweisen,
ob eben die akzeptierte Sprache eines Transitionssystems leer ist.
Komplizierterer ist die Geschichte mit dem Kompliment, wie schon mehrfach erwähnt,
aber da gibt es einen besonderen Trick.
Und wenn der Durchschnitt nicht leer ist,
dann hat man ja irgendwelche Folgen in dem Durchschnitt.
Und das sind dann genau die besagten Folgen,
die dann zu den Fehlern führen. Nicht,
dass dieses Verfahren will ich jetzt nochmal an dem Beispiel vorführen,
was wir bei den Transaktionssystemen haben,
aber jetzt mal zunächst eben wieder wie damals gemacht für die
endlichen Folgen.
Das war ja das fehlerhafte Sender-Empfängerproblem
Das war ja die Spezifikation für das Verhalten dieses Systems,
nicht wo wir hier das Übernahme des Datums haben,
was korrekt abgeliefert werden kann oder auch als Fehler.
Und das war jetzt die Spezifikation des korrekten Verhaltens,
also das, was man gerne hätte oder wo man fragt,
ob das gilt. Und was man eben prüft,
ist jetzt, ob die Menge dieser Folgen von dem Linken
eine Teilmenge der Folgen von dem Rechten ist.
Das ist also wie Natürlich, es sein sollte,
nicht der Fall. Und jetzt soll eben gezeigt werden,
wie das mit der Durchschnittskonstruktion funktioniert.
Das heißt, anstelle dieser Inklusion testen wir jetzt,
ob dieser Durchschnitt leer oder nicht leer ist.
Ja, dazu brauchen wir jetzt das Kompliment, hier dieses Transitionssystems.
Nicht dazu müssen wir das gewissermaßen erst vervollständigen.
Und die Endzustände in Nicht-Endzustände verwandeln. Das würde dann so
aussehen. Wir haben das dann also hier erst vervollständigt.
Das heißt, es kommt hier noch was dazu.
Dieses V2. Und statt dem einen Endzustand V0 habe ich dann
V1 und V2
als Endzustände
So, und jetzt schneide ich dieses rechts unten, mit dem hier links oben,
was in diesem Durchschnitt entspricht, in Form des Produkttransitionssystems.
Sie sehen, wir haben jetzt hier ein Produkt,
in dem wir hier in den Zuständen Paare haben, nämlich hier von UIs,
von dem links oben und den VJs, rechts unten.
Und wenn wir jetzt überlegen, ob jetzt dieses Tranditionssystem
irgendwas akzeptiert, dann sehen wir, das tut etwas.
Und das ist gerade eine solche Folge,
die zu dem Fehler führt, Nämlich hier,
wo wir in dem Kanal C den Fehlern abliefern, das,
was eben in der Spezifikation eben nicht erlaubt sein sollte.
Das heißt,
an diesem kleinen Beispiel kann man dieses Verfahren mit dieser Konstruktion,
die dann im Großen,
im Modelchecking und dann später mit der unendlichen Folgen
dann ausgeführt ist,
schon sehr schön studieren
Gut. Ja,
und dann könnte man die folgende Idee jetzt dieses komplementieren,
was ja im Falle auch von nicht-itterministischen Systemen besonders schwierig ist,
weil man ja bei einem nicht-itterministischen System ja erstmal das Ganze
deterministisch machen muss mit dem Potenzautomaten und dann komplementieren kann.
Das kann man jetzt auch dadurch ersetzen, indem man
die Spezifikation nicht als Transitionssystem darstellt, sondern als Formel.
Nicht und eine Formel zu negieren ist sehr einfach.
Man braucht ja
nur ein Negationszeichen
Davor zu schreiben. Das heißt, wir müssen uns erst mal
überlegen, wie man die Spezifikation jetzt als Formel schreibt.
Das könnte zum Beispiel so sein. Das heißt, es gilt immer,
dass man eben ein Datum über den Kanal A kriegt und es gilt immer,
wenn der Kanal, wenn das Datum über A kommt,
dann wird es im nächsten Schritt an D abgegeben.
Das wäre jetzt eine temporallogische, sogar LTL-Spezifikation für dieses Verhalten.
Und da ich ja jetzt hier die Negation brauche,
kann ich das Ganze negieren und mir die ganze Komplementierung von
dem TS-Spec dann eben sparen
Okay, das heißt also, statt dieses zu machen,
oder wir können so sagen,
der erste Ansatz besteht eben darin,
dass wir hier eine Prozedur Check haben,
wo also das Kompliment gebildet wird und dann hinterher auf Lehrheit eben geprüft werden.
Wobei also, wie gesagt,
diese Komplimentkonstruktion eben ineffizient ist und die also dann gerne dadurch ersetzt wird,
dass wir diese Spezifikation dann durch eine Formel erschaffen
Nicht, genauso wie wir hier in dem Satz gesehen haben,
dass wir zu jeder Formel F eine Kripke-Struktur finden können,
die das Gleiche leistet, können wir dasselbe natürlich auch für
die negierte Spezifikation machen und doch die entsprechende, das entsprechende Transitionssystem eben erfinden.
Nicht, also das ist zwar einfach,
aber das Transitionssystem zu finden, ist auch sehr aufwendig,
aber insgesamt ist das systematisch einfacher als der andere Weg,
sodass die Prozeduren, die wir eben hatten,
dann so aussehen würden,
nicht,
wir haben dann jetzt hier das Transitionssystem für die negierte Spezifikation
zu bilden und für den bilden wir dann diesen Durchschnitt
Ja, und dieses Verfahren ist dann eben in den LTL-Model-Chekern eben eingebaut.
Das heißt, wir haben zunächst unser System und die Negation
unserer Eigenschaft. Man fragt also nicht nach einer Eigenschaft,
sondern nach ihrer Negation und übergibt das dem Model-Cheker,
macht dann meistens zunächst mal ein abstraktes Modell für das System
und schreibt eine LTL-Formel für die energierte Eigenschaft.
Nicht dazu lernen Sie das ja hier,
dass wenn Sie einen Model-Chekern haben, mit diesen LTL-Formen dann umgehen können,
die übergeben Sie dann, denn dem System,
was dann daraus an Büschi-Automaten oder eine Kripke-Struktur mit Büschi-Akzeptanz macht
Und bei der Eigenschaft, bei der Formel,
gibt es noch mehrere Schritte, also Normalisierung, Graf,
generalisiert, da Büschi-Automat.
Und dann gibt es irgendwann mal auch ein Büschi-Automat,
der also die Dinegierte Eigenschaft als Verhalten hat.
Naja, und dann muss auf die beiden,
also jetzt der Durchschnitt, gebildet werden, gerade mit dem Produktautomaten.
Und dann der Test auf Lehrheit. Und die Antwort ist dann entweder,
ja, das heißt, die Eigenschaft gilt oder nein.
Und dann ist der Durchschnitt nicht leer und die Elemente aus
dem Durchschnitt geben dann gerade die Informationen,
die man also gerne hätte,
die dann zu den Fehlern
eben führt
Ja, nicht, diese Prozedur sieht also so aus und
meine Fragen, wie groß ist die Komplexität dieses Verfahrens?
Dazu ist zu sagen, dass wir bereits wissen,
dass wir zu jeder Formel F ein äquivalenter Büschi-Automat konstruiert werden kann.
Das haben wir jetzt gerade schon benutzt, aber dass die
Zeit- und Platzkomplexität dieses Algorithmus exponentiell ist in der Größe der Formel.
Da der Automat zwei hoch der Größe der Formel Zustände eben besitzt.
Ja, da kann man sagen, das ist deprimierend,
aber umgekehrt ist es nicht so schlimm,
weil ja die Formel im Vergleich zu den Systemen relativ klein sind.
Denn zum Beispiel, um auszudrücken, dass irgendwas eine Verklemmung ist,
brauche ich nur eine sehr kleine Formel,
sodass dieser Aufwand nicht so groß ist.
Nicht, wenn man das Entsprechende hätten für das Transaktionssystem,
dann sehe ich das Schlimme aus.
Aber wir haben eben noch Folgendes. Außerdem wissen wir,
dass der Produktautomat als Trippeln als Zustände besitzt.
Ich erinnern sich an die Konstruktion mit den beiden Zuständen und dem Fleck,
sodass wir also zweimal Größe der Gripgri-Struktur und die Größe
des Transaktionssystems des Systems
eben brauchen
Das heißt also, es kommt von dem Transitionssystem der Spezifikation.
Und das heißt, um den Durchschnitt festzustellen,
ob ein erreichbarer Zustand auf einem Zyklus liegt,
braucht dies Rücken zu viel Zeit und Platz,
wie der Produktautomat Zustände hat.
Und das sind dann insgesamt dann also so viele,
wie wir jetzt hier haben, Größe das Transitionssystem für das System,
mal zwei hoch der Größe der Formel.
Welcher kann man sagen, das ist erträglich,
werden die Formel
klein ist
Aber es gibt trotzdem noch ein Aber, nämlich das Transitionssystem kann ja
gegenüber der Größe des Programms exponentiell oder sogar super exponentiell eben wachsen.
Das heißt, wenn ich ein Programm der Größe N habe,
dann kann diese Kripkri-Struktur eben zwei hoch, zwei hoch,
zwei hoch und beliebig viele Zweien hoch viele Zustände haben.
Das heißt, da kommen wir um die Komplexität nicht herum.
Und dazu gibt es dann also, wie ich schon mal angedeutet,
eben Verfahren. Nicht, das heißt also,
das haben wir diese Formel, aber die Größe des Transitionssystems,
die haben wir jetzt damit noch nicht umschifft
Okay. Gut, damit haben wir jetzt also
das LTL-Model-Checking kennengelernt und wir kommen jetzt zu dem CTL-Model-Checking.
Nicht also das LTL-Medry-Checking haben wir ja nur indirekt kennengelernt,
indem wir jetzt die Methoden jetzt zitiert haben,
insbesondere eben das Bilden des Traditionssystems für die Formel,
haben wir ja hier nicht beschrieben,
das ist übrigens in dem Buch von Hus und einem anderen Autor ganz schön an einem Beispiel erklärt,
aber auch da nicht so ganz einfach zu verstehen.
Das haben wir also gewissermaßen hier offen gelassen. Nicht,
dass es im Gegensatz jetzt zum CDL-Model-Checking, wo wir wirklich
das Verfahren bis im Einzelnen nachvollziehen können und sogar in Übungsaufaufgaben nach rechnen können.
Und das funktioniert jetzt folgend gemacht. Also die Aufgabe des
CTL-Model-Checking ist also ganz analog, wie eben bei dem LTL-Model-Checking,
gegeben für eine gegebene Grip-Gestruktur M und eine gegebene Temporal-logische Formel,
jetzt ZTL, ist die Menge der Zustände zu berechnen,
die also diese Formeln eben erfüllen.
Und M ist hier als Graf explizit gegeben,
ist gemeint hier als Transitionssystem oder Kripkri-Struktur und nicht als Programm.
Dazu werde ich in der nächsten Woche dann auch nochmal
ein bisschen was zu solchen Tools vorstellen,
wie eben jetzt dort eben die Systeme beschrieben werden,
ohne dass man jetzt die Kripkri-Struktur explizit konstruieren muss,
was dann implizit in dem System passiert
So, und das führt jetzt auch wieder zu einem Algorithmus für CTL-Formel.
Ja, und das funktioniert folgendermaßen. Dieser Algorithmus geht schrittweise vor.
Und zwar haben wir ja diese Etikette in den Zuständen.
Nicht diese Etikette sind ja Mengen von atomaren Formeln.
Und das sind ja im Grunde,
kann man ja schon als eine Konjunktion auffassen,
nämlich als Konjunktion diese atomaren Formeln.
Das sind ja also
schon CTL-Formeln
So, und der Algorithmus besteht jetzt darin,
aus diesen schon bestehenden CTL-Formen, andere Formeln zu konstruieren,
der Gestalt,
dass am Schluss die gewünschte CTL-Formel entweder in dem Zustand drinsteht oder man sieht,
dass sie da nicht drinsteht.
Und dann hat man ja gewissermaßen die Zustände,
die die Formel erfüllen, nämlich diejenigen, wo die Formel drinsteht.
Nicht, dass es jetzt in etwas anderer Darstellung das,
was sie in der Logik
auch ein Tableauverfahren erkennen
Okay, also da steht ja noch mal,
dadurch erhält man alle Teilformen von F, die in S vaseln.
Und das Ganze funktioniert dann also durch Rekursion,
über die Schachtelungstiefe von F und im Schritt I gilt,
alle Teilformen mit E-Mails 1 geschachtelten CTL-Operatoren sind behandelt.
Das heißt also,
so eine gegebene CTL-Formel hat ja irgendwelche atomaren Formeln und ihre Negationen,
mit denen fängt man an und dann arbeitet man sich induktiv über den Aufbau der Formel hoch,
bis man zur gewünschten Formel dann eben kommt.
Nicht, das heißt also, die Prozeduren sieht so aus,
Wenn ich die Formel an eine atomaren Formel ist und so weiter und so fort.
Diese Projektur, das werden wir dann gleich im Beispiel anschauen,
das geht dann zum Beispiel, wenn wir die Formel so aussieht,
EXF1 und wir wissen in Tee gilt F1,
dann müssen wir gewissermaßen einen Schritt zurückgehen und wissen,
dass sie auch in S gilt
Ja, und jetzt nützen wir aus, was wir heute eben gesehen haben,
dass wir alle CTL-Operatoren normalisieren können auf diese drei Operatoren.
Ja, EX, EG und EU. Und dazu haben wir also drei Modelcheck-Prozeduren,
wobei jetzt der, das für das EX hier nicht aufgeführt ist,
sondern nur das EU und das EG.
Wir hätten natürlich auch drei andere nehmen können, die für
die Normalisierung. Kann sich jemand jetzt schon jemand denken,
warum man jetzt hier ein E nimmt und nicht,
ah, man hätte ja auch irgendwelche nehmen können,
wo statt dem ENA drin vorkommt,
weil die ja so Sachen wechselseitig umrechenbar sind,
kann sich
das jemand denken
Ja, das hängt damit zusammen,
weil man ja hier nur prüfen muss,
ob es einen Pfad gibt, der eine gewisse Eigenschaft erfüllt.
Das ist natürlich im Allgemeinen einfacher, als wenn man alle Pfade betrachten muss.
Okay. Das sind also jetzt diese Prozeduren, die wir jetzt betrachten.
Und damit beginnen wir dann in der nächsten Ölstunde,
dass wir an dem Beispiel jetzt mal diesen Model-Checking-Algorithmus durchspielen.
Das mache ich dann aber heute, fange ich damit nicht
mehr an, sondern höre jetzt schon mal auf.
Ja, dann erstmal vielen Dank für heute