Touren von Programmen und hatten dann konkret diese verschiedenen Programme für
den wechselseitigen Ausschluss kennengelernt und die letzte korrekte Lösung dann tatsächlich,
in der in dieser Weise modelliert.
Das ging also los mit den sequenziellen Programmen,
mit den verschiedenen elementaren Anweisungen, wo wir dann, wo es wichtig war,
dass wir jetzt Variablen für die Zeilennummer haben und diverse Prädikate,
um das zu beschreiben.
Und das war das Beispiel unten, dass zunächst mal das
einfache Spielbeispiel für die Definition Und dann wurden diese Prädikate oder Prozeduren definiert,
die diese Gestalt hatten, Zeilennummer, Programmcode, dann zu erreichende Zeilennummer.
Und wie wir das hier bei der Zuweisung eben sieht.
Und dann dahinter eben die logische Beschreibung dieser Zuweisung,
wobei eben wichtig war, dass die gestrichenen Variablen immer den neuen Wert nach der Ausführung beinhalten.
Dann das Entsprechende für die Hintereinanderausführung,
wo dann an dieser Stelle das Oder stehen musste, Dann einen kleinen Beispielcode,
den Sie auch zu Hause nochmal anschauen können, um das Ganze durchzuspielen.
Und das Zugehörige, die zugehörige Kripke-Struktur dazu. Ja,
das war nochmal eine Folie zur Motivation dieses Oders.
In Form eines Grafen. Mit der Betonung,
dass bei einem Und ja eben nur widersprüchliches in der Beschreibung
der Menge stehen würde.
Und daher nichts
definiert werden kann
Dann die Schleifenanweisung, die Weilanweisung in der üblichen Form.
Dann die Skipp-Anweisung und ähnlich wie die Schleifeanweisung, die bedingte Anweisung.
Da sind wir zu den nebenläufigen Programmen gekommen,
die also durch diesen Operator mit den Parallelstrichen verschiedene sequenzielle Programme abtrennt,
die also dann nebenläufig ausgeführt werden
Dann die Evaid-Anweisung,
die also bei der Synchronisation eben auch wichtig ist, nicht,
dass also der entsprechende Prozess oder das Teilprogramm per Busy-Wating an einem Befehlszähler festgehalten wird,
bis eben eine Bedingung B eben erfüllt ist,
die ein nebenläufiger Prozess dann eben setzen kann.
Ja, und dann hatten wir das Beispiel des
wechselseitigen Ausschluss mit den kritischen Abschnitten und den beiden Bedingungen.
Dann den Hinweis auf die verallgemeinerten Eigenschaften der
Sicherheits- und Lebendigkeitseigenschaften
Was dann schon ein Hinweis ist,
auf die temporale Logik, die heute das Thema ist,
dass wir hier eben solche modalen Operatoren haben in der Form von temporalen Operatoren.
Das war das Programmschema für den wechselseitigen Ausschluss,
also bestehend aus einem Teil, wo also der kritische Abschnitt nicht besucht wird.
Dann bei einem Wunsch, dass Eintrittsprotokoll und der kritische Abschnitt und dann das Austrittsprotokoll.
Und das Ganze in einem permanenten Durchlauf, sodass wir hier also jetzt eine Waldtruheschleife dann haben. Ja,
die erste Lösung nach Deixtra orientierte sich ja an der Ampel und wir hatten gesehen,
dass es dann eben in ganz seltenen Fällen,
kann man ja sagen, wenn also zufällig die Befehlszähler so gesetzt werden,
das heißt, die Prozessoren,
die entsprechende Geschwindigkeit haben und die Anforderung auch zufällig zurselben Zeit kommt,
kann es dazu kommen, dass eben beide in den kritischen Abschnitt hineingehen.
Und der tiefere Grund ist, weil diese beiden Zeilen,
P2 und P3 nicht unteilbar gesetzt wurden.
Ja, das haben wir also keinen wechselseitigen Ausschluss.
Die nächste Lösung arbeitet dann mit einer Anmeldung, wo also dann darauf gewartet wird,
dass der andere eben nicht in den kritischen Abschnitt will.
Und das kann so ein Gegenteil führen,
dass also beide an der Stelle dann eben blockiert werden und keiner
in den kritischen Abschnitt kommen und wir einen Deadlock oder eine Verklemmung haben.
Ich betone noch mal, das sind natürlich solche Fälle,
die im realen Ausführungen möglicherweise sehr selten vorkommen,
weil das eher unwahrscheinlich ist,
dass die beide genau im selben Zeitpunkt doch in den kritischen Abschnitt wollen und dann auf die Millisekunde oder Mikrosekunde diese Anweisung ausführen.
Aber das ist gerade das Problem bei nebenläufigen Programmen,
dass eben Fehler oft sehr selten auftreten auch sehr schwer zu reproduzieren sind,
weil man das durch Experimente gerade diese seltene Situation kaum wiederherstellen kann.
Und daher, gerade bei nebenläufigen Programmen, die Notwendigkeit der formalen Verifikation. Ja,
die dritte Lösung war dann, setze dann auf der ersten Lösung auf,
wo man also dann diese Blockade-Situation kurzzeitig aufgehoben hat,
um dem anderen den Möglichkeit geben, in einen kritischen Abschnitt zu gehen.
Da kann es eben auch wieder in sehr seltenen Fällen dazu kommen,
dass sie es nun gerade sozusagen abgestimmt passiert und beide nicht in den kritischen Abschnitt kommen.
Nicht, das wäre sozusagen das Gegenteil von einem Deadlock,
auch Live-Logs genannt, weil wir ja da eine ständig eine Aktivität haben.
So, und dann kam die korrekte Lösung nach Deikstra,
Decker und Petersen, wo aber eine asymmetrische Form eingeführt wurde,
dass nämlich diese Variable Last den Wert 1 oder 2 haben,
er kann und eben gerade beschreibt, wer zuletzt diese Variable eben gesetzt hat.
Nicht, das führte dann in der Simulation,
wo wir dann versucht haben, wieder den ähnlichen Fehlereffekt zu erzeugen,
dazu, dass in der Tat eben nur in dem Falle der linke Prozess in den kritischen Abschnitt gehen konnte.
Und da haben wir ja auch eben eine sinnvolle Anwendung des Ausgangsprotokolls.
Er setzt dann hinterher das WantP wieder auf Falls,
sodass dann der Rechte tatsächlich auch seinerseits in den kritischen Abschnitt
gehen kann
Ja, die Frage, okay,
führte dann zum Model Checking, wo wir dann eben diesen,
die Gripge-Struktur dazu konstruiert haben und dann diese abgekürzte Version benutzt haben,
wo jetzt eben diese durchgestrichenen Anweisungen weggelassen wurden.
Aber vorher gab es noch einen kleinen Exkurs zu den Semaforen,
das ist sozusagen die Konsequenz aus den Erfahrungen gewesen,
dass man eine Betriebssystemfunktion einführte, die also solche Prozeduren,
P und V unteilbar ausführte und dadurch diese Trennung getrennte Ausführung
des Testes und der Zuweisung dann nicht möglich war.
Das heißt also, dass doch dazwischen ein Nebenbeiführer-Prozess keine Anweisung ausführen konnte,
was ja eben der Grund für diese Fehler vorhin unter anderem war.
Ja, dadurch würde dann das Problem des Kritikenabschnitts in dieser Weise einfach zu lösen sein. Ja,
das hat dann in der Folge der Entwicklung der Programmsprachen verschiedene andere Formen hervorgebracht,
höhersprachliche, wie zum Beispiel hier das Synchronized and Java,
wozu ich dann hier nochmal ein komplexeres Programm geblendet hatte,
was also den Zugriff auf einen Ringpuffer eben darstellt.
Ja, diese Folie diente nur noch mal ein Hinweis,
dass eben dieses Smartald-Checking auch auf für konkrete Programmsprachen entwickelt wird,
während wir das hier in Form nur von abstrakten Programmsprachen machen.
Also dann noch mal zurück zu unserem Beispiel. Das war
also noch mal hier diese Deixtram-Erlösung in der reduzierten Firm.
Und die Darstellung ist etwas, sieht etwas wild aus.
Brauchen wir im Grunde auch gar nicht weiter.
Was wir brauchen, ist tatsächlich diese Kripke-Struktur,
die daraus entwickelt werden kann und die dann eben so aussieht
Hatten wir uns zunächst mal einige Beispielabläufe angeschaut,
die hier die Interpretation der Etikette in den Zuständen,
also die beiden Werte der Befehlszähler,
der Wert von Larst und der Wert von Wond in den beiden Fällen.
Und das sah dann in Bezug jetzt auf den ersten Prozess so aus,
wobei der Prozweite dann eben als ruhend angenommen wurde.
Ja, das funktioniert auch mit dem anderen Anfangszustand,
wo wir mit Larst gleich zwei anfangen,
wo wir dann nach zwei Schritten wieder in demselben Motto sind,
die vorher
Ja, das ist eine Situation,
wo der andere Prozess schon einen Schritt gemacht hat,
den wir hier nicht darstellen, dann würde das Ganze eben so aussehen,
dass er dann an dieser Stelle in eine Schleife gerät und diese Schleife erst aufgehoben werden kann,
wenn eben der andere Prozess hier die Anweisung Q2 ausführt,
worauf wir dann später nochmal zurückgekommen sind.
Ja, die Frage, ob jetzt die Bedingung A gibt,
dass also der kritische Abschnitt eingehalten wird,
das ließ sich dann darauf zurückführen, dass wir nie finden,
dass die beiden Befehlszähler auf fünf sitzen,
was man im Modelchecking dann Durchsuchen der Kripke-Struktur dann eben prüft.
Oder logisch ausgedrückt in dieser Weise. Bei der Forderung B,
die ja so aussah, dass wenn ein Prozess diesen Eintrittswunsch äußert,
das heißt also sein Wort auf Truhe setzt,
dann soll er in einer endlichen Zeit auch tatsächlich in den kritischen Abschnitt eintreten können.
Das würde sich ja dann so darstellen,
wenn also für den ersten Prozess der Befehlszähler auf P1 setzt,
dann ist er auch später einmal in P5,
das heißt in der Kripke-Struktur, es gibt einen Pfad von einem Knoten,
der eben mit P1 markiert ist, zu einem anderen Zustand,
der eben mit P5 markiert ist.
Und zwar, dann gibt es nicht nur,
sondern der, es wird auch notwendig eben erreicht.
Ja, und dazu führen wir dieses später,
gilt einmal diesen temporalen Operator in Form dieser Raute ein,
was also heute dann das Thema sein wird.
Ja, dann hatten wir ja noch diesen Sonderfall betrachtet,
wo wir da diese Schleifen haben und wo es also notwendig ist,
dass hier also an dieser Stelle tatsächlich der andere Prozess diese Anweisung ausführt.
Das kommt, glaube ich, in der Folie
erst jetzt
Ich finde, es ist Q2 nicht ausgegeführt ist,
brauchen wir tatsächlich eine Ausführungsregel, die er zwingt,
dass auch der andere Prozess einen Schritt macht,
wenn er permanent dazu in der Lage ist.
Ja, und das wird auch als Fairness-Regel bezeichnet,
was für den Petrinetz nochmal vorkommt und wenn diese angenommen wird,
dann wird also tatsächlich dieser Schritt gemacht und
der Prozess erreicht also den kritischen Abschnitt
Nicht diese Fairness-Ravel ist sozusagen auf Modellseite,
nicht in der Anwendung bedeutet das, dass eben ausgeschlossen wird,
dass wenn ein Prozessor einen Schritt machen kann, ein Nebenläufiger,
also nicht durch irgendeine wachte Bedingung gehindert wird,
dass er den auch tatsächlich in endlicher Zeit,
also das heißt jetzt auch innerhalb von Mikrosekunden tatsächlich auch macht.
Was bei solchen realen Prozessoren Prozessoren oft ja selbstverständlich ist,
aber eben notwendig ist,
aber hier im Modell tritt dieser Fall tatsächlich auf
und muss bedacht werden
Ja, nicht. Und neben diesem Temporalen irgendwann mal,
Operator, gibt es auch den Imma-Operator,
den wir ja dann auch direkt vor diese Formeln schreiben können.
Es soll ja immer gelten. Und insofern haben wir hier
jetzt schon das Beispiel einer temporalen Formel,
wo eben diese beiden temporalen Operatoren dann eben vorkommen.
Ja, jetzt nochmal ein Hinweis auf das weitere Programm.
Wir haben Donnerstag treffen wir uns dann wieder hier.
Am Dienstag ist Dias, da fällt die Vorlesung aus.
Dann den Donnerstag sind wir wieder hier. Und dann den
Dienstag am 11. November findet dann der Umzug nach Stellingen statt,
wo dann immer die Vorlesung im Zusehhörsal im Housepay ist
Okay. Gut, dann kommen wir jetzt also zu dem neuen Thema.
Also die Temporale Logik. Ja, zur Literatur der temporalen Logik
ist also zunächst zunächst mal zu nennen das Buch von Clark.
Das ist sozusagen das erste Buch zu diesem Gebiet,
wobei Clark auch eben der Erfinder eines Teils, dieses Model-Chaking ist.
Dann gab es fast zeitgleich ein Buch im französischen Bereich,
was aber
sehr viel kürzer ist
Nicht und vieles aus dieser Vorlesung stammt eben aus dem Klag,
also zum Beispiel diese Kurdierung von Programmen und dergleichen.
Ja, und dann gibt es noch ein Buch, wo ich beteiligt war,
das wird dann hauptsächlich im Bereich der Petri-Netze eine Rolle spielen.
Und dann gibt es dieses Buch von Whos und Reihen,
was da in der Einleitung schon mal kennengelernt hatten,
nicht was eben sehr schön die temporale Logik mit Beispielen unterfüttert.
Und vieles, was wir hier in der Vorlesung haben,
stammt hier auch aus dem Buch von Bayer und Catoon.
Da stammen zum Beispiel auch die ganzen Definitionen von Transaktionssystemen und Kryptostrukturen raus,
also in ähnlichen Notationen wie das doch zu finden ist,
wenn sie das genauer anschauen werden.
Also zum ersten Einstieg ist das Buch besser geeignet.
Dieses Buch ist sehr umfangreich, das eignet sich mehr,
wenn man irgendwie was Spezielles nachschauen muss
Ja, habe ich noch nicht gesagt, was sind temporale Logik ist.
Nicht, die kennen ja Aussagenlogik, Prädikatenlogik, ja,
und die Modallogik, die erweitert gewissermaßen die Prädikatenlogik,
indem doch die sogenannten Modaloperatoren hinzugenommen werden.
Das sind Operatoren, die die Möglichkeit und Notwendigkeit ausdrücken.
Nicht also in der Modallogik kann man zum Beispiel solche Sätze bilden,
es ist möglich, dass es morgen regnet oder es ist notwendig,
es ist sicher, dass morgen die Sonne aufgeht und dergleichen.
Ja, nicht und die Temporallogik ist gewissermaßen eine Spezialisierung
der Modallogik, wobei man diese Modalitäten zeitlich interpretiert
Ich habe ich in meinem Beispiel ja schon gemacht,
nicht indem ich sagte, morgen ist das eine zeitliche Interpretation.
Es gibt natürlich auch nicht zeitliche Interpretationen von diesem Modaloperatoren.
Ja, nicht? Und man kann aber auch diese Temporallogik als ein Spezialfall der Prätekatenlogik auffassen,
weil in der Temporallogik die klassischen Quantoren der Prätekatenlogik nicht vorkommen.
Und das, was wir in der Temporallogik darstellen,
könnte man in der Prätekatenlogik auch darstellen, indem man solche Prätekate benutzt,
wo wir die Zeit T als Parameter oder als Variablen haben beispielsweise,
es gibt einen Zeitpunkt,
der in dem irgendwann mal dieses P-Fonté eben gilt.
Und es gibt dann eben die Spezialisierung gesteht dann auch darin,
dass es dann eben auch noch Aktionen gibt,
die also abbilden, dass es sich um eine,
um die Zeit eben handelt.
Nicht in der Temorallogik brauchen wir dieses also nicht,
sondern kommen ohne diesen zeitlichen Parameter aus.
Und die nächsten Folien zeigen jetzt nochmal ein Beispiel,
wie das aussehen würde,
wenn wir solche Aussagen in der Praktikatenlogik
formulieren würden
Nicht, da haben wir das klassische Beispiel eines Aufzuges.
Und da gibt es natürlich Anforderungen in irgendeinem Stockwerk,
kann jemand auf den Knopf drücken.
Das heißt, eine Anforderung besteht eben darin,
dass der Aufzug dann genau in dieses Stockwerk eben fährt.
Und zweitens könnte man noch so eine Optimalität einfügen,
dass wenn an einem Stockwerk der Knopf gedrückt ist mit der Anforderung,
dann soll er da nicht vorbeifahren,
sondern da auch halten
Nicht schon in der Prädikatenlogik, da könnten wir dann eben die Zeit als Parameter oder Variablen ausdrücken,
wie sie das vielleicht schon aus der Physik kennen nicht.
Also wenn der bei dem Fahrstuhl das Seil reißt und der im freien Fall nach unten saust,
dann wäre sozusagen das Weg Zeitgesetz,
Z von T ist minus eineinhalb GT-Quadrat,
also die Formel für den freien Fall,
wo wir auch hier die Zeit T als Parameter oder Variabler haben.
Nicht im anderen Fall, wenn er also nicht abstürzt,
könnte das eben so aussehen.
Also das erste war, jede Anforderung des Aufzuges wird erfüllt.
Da haben wir also zunächst mal einen Alquantor für alle Tee
Und für alle N, nicht also wobei, also ab von NT bedeutet,
das soll eine offene Anforderung vom Stockwerk End zur Zeit T sein.
Nicht also N ist das Stockwerk und T wieder die Zeit.
Ja, das ist jetzt hier die Prämisse einer Implikation.
Und wenn das also gilt,
dann soll irgendwann mal dieser Surf von NT-Strich gelten,
wobei Surf von NT bedeutet, der Fahrstuhl bedient das Stockwerk End zurzeit T.
Und das bezieht sich dann auf einen T-Strich,
was später ist, als Also es gibt einen T-Strich,
was größer ist als Tee und dort gilt es.
Also symbolisch würde das bedeuten, ich habe hier also
einen Zeitpunkt Tee, in dem also jetzt diese Anforderung gilt.
Das heißt, es wird gefordert, dass zu einem späteren
Zeitpunkt T-Strich eben dieses Sir von NT-Strich gilt.
Nicht, das sieht er noch einigermaßen harmlos und aus,
nicht bei der zweiten Anlaufanforderung, da wird das schon etwas wilder.
Nicht untererspare ich mir jetzt nochmal die Erklärung,
weil die ja hier in dieser in diesem Kontext gar nicht benutzt wird,
sondern diese Formel soll ja mehr als negatives Beispiel dienen,
dass wir solche Beziehungen dann vielleicht besser in temporaler Logik darstellen.
Ja, da gibt es jetzt nun zwei prominente Logiken.
Es gibt natürlich noch viel mehr, aber zwei sind prominent.
Das eine ist die Linearzeit-Logik, die also LTL genannt wird
von Linear Time Logic und sie werden später verstehen,
warum die so heißt.
Die geht also zurück auf einen Forscher namens Noelli
Ungefähr 1977 ist dieses LTL entstanden und fast gleich zu dem CTL von dem Clark,
der also dieses andere Buch geschrieben hat,
was wir dann im Abschnitt danach dann behandeln wollen.
Ja, also fangen wir an mit LTL.
Da haben wir ja schon in dem Folgenabschnitt gesehen,
da gibt es diesen Operator, der wie eine Raute aussieht.
Und die Interpretation hat irgendwann einmal,
gilt P. Nicht nur das Ganze heißt eben linear,
zeit, weil eben in der Interpretation ein lineares Modell
der Zeit
angenommen wird
Wir haben die Zeit,
als total geordnete Menge mit einem Anfangszeitpunkt und diskreten Zeitpunkten,
T0T1, TN, TN plus 1 und so weiter.
Und wenn also dieses P irgendwann mal gelten soll,
heißt das natürlich, es gibt irgendeinen Zeitpunkt TN und an
diesem Zeitpunkt soll also dieses Prädikat EP also gelten.
Und das ist unterscheiden von dem immer Operator,
der sich so liest,
von jetzt an gilt immer
Das heißt also, von jetzt an heißt eben auch zum Zeitpunkt 0.
Das heißt, wir stehen immer am Zeitpunkt 0 und schauen in die Zukunft.
Und immer heißt also auch einen Schritt weiter. Das heißt,
hier sehen wir auch sozusagen die Diskretheit der Zeitmesse.
Das heißt, wir haben hier in der Informatik ja meistens
nicht mit Zeit zu tun, sondern mit Schritten.
Indem also der Rechner einen Schritt ausführt, dass wir aber
jetzt gewissermaßen zeitlich interpretieren, weil das sprachlich günstiger ist.
Also in dem ersten Schritt, danach soll es immer noch gelten,
im dritten auch noch und
so weiter
Ja, nicht. Und dann können wir natürlich diese Operatoren
kombinieren und wir können jetzt erstmal fragen, was gilt denn,
was bedeutet denn, wenn wir haben irgendwann mal, gilt immer.
Ich weiß nicht, ob Sie das jetzt vorstellen können,
was das bedeutet. Nicht, wenn wir das analysieren,
heißt das ja, irgendwann mal soll was gelten.
Das haben wir ja schon eben gesehen und das,
was gelten soll, steht ja dahinter. Das heißt,
wir müssen uns irgendwann mal einen Zeitpunkt hypothetischen Zeitpunkt aussuchen und
in dem Zeitpunkt gilt eben das,
was danach steht und das war ja eben gerade dieser Teil
der Formel,
also immer
Das heißt also, wenn wir so weit gekommen sind,
stellen wir uns jetzt auf den Zeitpunkt, wo jetzt der gelbe Punkt dargestellt ist.
Und doch, das haben wir ja schon gelernt, von diesem Zeitpunkt heißt das,
dass es also permanent immer gilt. Das heißt also,
die formale Interpretation ist sehr nah an der anschaulichen,
denn das heißt ja, die anschauliche oder die sprachliche Interpretation bedeutet ja,
ab einem Zeitpunkt gilt immer P. Ja,
fragen wir uns jetzt nach der umgekehrten Form,
also wenn erst das Quadrat und dann der Die Raute kommt,
das bedeutet ja, es gilt immer,
dass irgendwann mal dieses P ergilt.
Nicht, dann gehen wir sicherheitshalber mal so vor wie eben.
Nicht dieses immer bedeutet, ja,
hatten wir ja gesehen, gilt auch für den Anfang.
Das heißt, am Anfang haben wir ja auch schon,
soll schon irgendwann mal Gilt P. Das heißt also,
wir greifen uns einen späteren Zeitpunkt heraus und überlegen,
was dort eben gelten soll. Durch diesen Immer-Apparator soll es
zu diesem späteren Zeitpunkt natürlich das Gleiche immer noch gelten.
Das heißt, doch gilt das immer noch.
Das heißt, von diesem Zeitpunkt angesehen suchen wir uns wieder
einen späteren Zeitpunkt raus, wo das gelten soll.
Ja, und so geht das weiter
Das heißt also, man kann sagen, diese Form bedeutet,
dieses Pegelt unendlich oft. Man weiß zwar nicht, zu welchen Zeitpunkten,
aber in dieser unendlichen Zeitskala gilt unendlich oft diese Eigenschaft Pene.
Haben wir da eine Frage dazu oder ist das soweit?
Klar. Nicht, dass wir werden ja immer wieder jetzt benutzen und
dann werden sie das auf jeden Fall dann schon einsehen.
Ja, kommen wir zur Syntax. Die Syntax sieht dann
so aus, dass wir zwei Formen haben.
Wir haben also neben dieser Form des Quadrates auch manchmal den Buchstaben gehen,
nicht das hängt mit den mit den Möglichkeiten der textuellen Darstellung zusammen,
dass manche Autoren dann lieber in diesen Buchstaben benutzen.
Und das Pendant für die Raute wäre dann also dieses F.
Und Formeln würden dann jetzt in der einen Darstellung mit den Buchstaben dann so aussehen,
wo wir dann eine wildes Gebirge von solchen Zeichen haben,
dass aber einer bestimmten Syntax folgen soll,
die jetzt hier dargestellt sein soll.
Also so eine LTL-Formel kann also True und Falls sein,
die kann gleich eine Aussage sein,
wobei wir jetzt wieder unsere Menge AP der atomaren Aussagen nehmen.
Wir haben dann hier die Aussagen logischen Verknüpfungen und was jetzt eben neu ist,
haben wir hier dieses F und G, was wir schon hatten.
Aber was jetzt noch neu ist,
ist dieses X und U, was also noch hinzukommt.
Nicht wobei, dass X auch ein einstelliger Operator ist,
das U aber ein zweistelliger Operator. Ja,
und zu dieser Bedeutung kommen wir jetzt also Fangen wir mal
an mit dem X. Das liest sich auch als Next-Time,
wobei sie sich das an dem X merken können.
Das ist eine Aussage, die sagt, dieses P gilt
im nächsten Schritt. Das ist ja manchmal wichtig,
dass man ausdrücken will im nächsten Schritt oder im fünften Schritt
, dann würde man also dieses X fünfmal iterieren.
Nicht und dazu gibt es eben auch diese anderen Darstellungen in
Form eines solchen Kreises für das Next
Ja, das ist das zu sagen,
dass dieser Raute entspricht ja dem F,
nicht und das F können sie sich merken,
an der Bezeichnung in the Future, also dieses F,
oder Englisch würde das auch bedeuten, Eventual Lead,
was im Englischen so viel heißt,
wie irgendwann einmal gilt,
dieses P. Ja,
das andere haben wir dann auch schon kennengelernt und das G können sie vielleicht merken mit dem Globaly,
das heißt ja,
es soll immer gelten und das andere Zeichen wäre ja dann
dieses kleine Quadrat
Ja, und jetzt kommt das Fürchte,
was wir noch gar nicht angesprochen haben, dieses U,
das U kommt von Antel.
Und das bedeutet, es gibt ein Element der gegebenen Folge,
in dem irgendwann mal Kuh gilt und vor diesem Element gilt MAP.
Das heißt also, es gilt immer P,
bis diese Gültigkeit von P durch die Gültigkeit von Kuh abgelöst wird.
Und danach ist egal, was kommt. Ja,
das könnten wir jetzt grafisch auch wieder so darstellen,
dass irgendwann mal dieses Kuh gelten muss und vorher also immer dieses P
Wobei wir hier die Besonderheit haben, dass dieses Antil so definiert wird,
dass dieses Kuh auch tatsächlich eintreten muss.
Es gibt auch noch eine Form des schwachen Antil,
wo wir auch die Möglichkeit zugelassen, dass immer P gilt und dass Kuni eintritt.
Nicht das fache Antil, wie haben wir auch andere Operatoren,
die betrachten wir hier der Einfachheit, Albernicht.
Es gibt auch noch ein R,
was zu sagen symmetrisch ist zu dem U,
das habe ich
hier auch weggelassen
Ja, darauf kommen wir aber gleich nochmal bei der
formalen Definition zurück. Nicht in der formalen Definition müssen wir
jetzt also diese Operatoren auf unendlichen Folgen definieren.
Und das sind eben meistens solche Folgen von Mengen von atomaren Aussagen.
Also das Hochomega zeigt, dass wir eine unendliche Folge haben.
Ja, und dazu brauchen wir eine besondere Schreibweise,
nämlich diesen Exponenten
Ist es ja so, dass wir irgendwelche Aussagen machen,
die später in dieser Folge gelten sollen.
Und das können wir dadurch ausdrücken, dass wir das,
was davor ist, abschneiden, weglassen und dann sagen,
ja, in der abgeschnittenen Folge betrachten wir jetzt die erste Position.
Nicht, das kann ich jetzt noch mal an folgendem Beispiel
erläutern an unseren Mikrowellenofen, den wir schon mal hatten.
Da könnten wir als Folge ja vielleicht sowas nehmen.
Wir fangen hier an im Zustand 1. Und ich sage ja schon,
die negierten, atomaren Aussagen kann man auch weglassen.
Oder lässt man normalerweise weg. Das wäre dann also
die leere Menge
Dann würden wir zum Beispiel nach drei gehen.
Da würde nur Close gelten. Dann könnten wir weitergehen nach
sechs. Da würde dann Start und Close gelten.
Dann gehen wir nach sieben. Da würden also schon drei
. Atomaren Aussagen gelten. Dann gehen wir nach vier.
Ja, und da bleiben wir dann in der Schleife.
Sodass es dann entsprechend weitergehen würde. Das Beispiel werden wir
gleich noch intensiver betrachten. Im Augenblick geht es nur darum,
eben zu erklären, was dieser Exponent bedeutet.
Also zum Beispiel hier das Alphahoch 3. Das bedeutet also nichts anderes,
dass wir die ersten drei Folgen Glieder weglassen und nur das nehmen,
was jetzt hier grün unterlegt ist.
Das heißt, da ist Alphahoch 3, ist diese Folge,
die hier mit dem vierten Element eben beginnt.
Okay, das ist nicht sehr praktisch, um jetzt unsere
temporalen Operatoren zu definieren. Denn wir können jetzt Folgendes sagen,
naja, zunächst mal kommen also die einfachen Dinge,
die wie in der Aussagenlogik zusammen definiert sind.
Nicht, also wir haben also Truhe,
das zu sagen,
das immer gilt
Wir haben das Falls, was nie gilt.
Und wir haben die atomaren Aussagen, die immer gelten,
wenn das entsprechende, die entsprechende Menge dieses Phi eben enthält.
Das während die Position 1, 2, 3 und 4,
5 und 6 sind einfach die klassischen Aussagen.
Wobei, weil die Position 6 auch weglassen könnten,
weil wir nach dem Morgan, die ja durch vier und fünf ausdrücken könnten.
So, und mit sieben Beginn jetzt die eigentlichen temporallogischen,
also dieses XF. Das soll eben bedeuten,
wenn eben nächsten Schritt F gilt, das heißt,
wenn wir in dem Alpha ein,
dieses erste Folgenglied weglassen,
dann soll das F gelten,
wobei wir das dann auf die anderen Fälle
damit eben zurückgeführt haben
Ja, die Nummer 8 beschreibt jetzt das F. Das bedeutet ja gerade,
es gibt ein K und nach K-Schritten soll das F gelten,
was wir auch so ausdrücken können,
wenn wir die ersten K-Elemente weglassen lassen,
dann soll das im Caplos ersten Folgenglied dann eben gelten.
Nicht, das heißt also,
hier spielen wir gewissermaßen in der semantischen Definition die Bedeutung von
dem temporalen Operator zurück auf die Interpretation des Prädikaten,
logischen Existenzquantors.
Das können wir ja in der semantischen Definition machen,
aber in der Benutzung nachher kommen diese Existenzquantoren nicht so vor
Ja, und das Neue ist natürlich dasselbe mit dem G,
wo also der Existenzquantor ersetzt wird durch den Alquin-Tor.
Das soll ja so sagen für alle Positionen gelten.
So, was jetzt noch ein bisschen ungewohnt ist,
ist jetzt das Anteil in Nummer 10. Das bedeutet jetzt Folgendes.
Dazu habe ich jetzt jetzt extra noch mal eine neue Folie gemacht.
Wir haben da zunächst mal hier wieder unsere Zeitskala.
Und unsere Formel sieht ja so aus,
dass sie eben zweistellig ist, der Operator.
Wir haben eine erste Position F1 und eine zweite Position F2.
Und die Aussage sei eben, besteht da drin zunächst mal,
es gibt ein K,
sodass an der Position K plus 1 der zweite Operator,
die zweite Aussage eben gilt
Ja, das heißt, es gibt ein K und
da soll dieses F2 gelten. Also ich wiederhole nochmal,
das ist wichtig, dass man nie vergisst,
bei dem Anteil wird gefordert, dass das F2 auch tatsächlich gilt.
Ja, und dann geht es eben so weiter für alles,
was da vorliegt, da soll das F1 gelten.
Nicht, was wir hier wie mit dem Alphahochjod für J
vor 0 bis K minus 1 eben ausdrücken.
Das heißt also, danach ist egal und davor muss immer
F1 gelten. Nicht so ist dieses Antil
eben definiert
Ja, und jetzt werden Sie vielleicht schon bemerkt haben,
dass wir auch irgendwie da so ein bisschen drinstecken haben,
das F, weil das F sagt ja gerade irgendwann mal,
Gil F2, das ist in der Tat so,
nicht wenn wir das F-1 trivialisieren, das heißt zu True,
dass es eben unbedingt eben immer wahr ist,
dann ist das Äquivalent damit, dass wir Großelf-Klein-F haben,
nicht das liest sich ja so,
irgendwann mal
Gilt F und das liest sich ja so irgendwann mal
Gilt F und davor brauchen wir uns nicht darum zu kümmern,
weil da True eben gilt,
also insofern ist das dasselbe
Nicht, das heißt, solche Äquivalenzen sind natürlich nützlich.
Das heißt, in so einem Fall kann man einfacher darüber nachdenken,
indem man statt dem True Antil F lieber das Große F-Client F benutzt.
Ja, dann gibt es natürlich noch andere Äquivalenzen wie hier De Mauergan,
was wir jetzt nur nochmal der Vollständigkeit halber darstellen.
Neu ist jetzt auch sowas. Sowas Ähnliches kennen Sie,
vielleicht aus der Prädikaten-Logik, wenn Sie da eine Negation haben und
das über einen Existenz- oder All-Quantor rüberschieben, gewisser Weise,
dann ändert sich dieser Äquantor. So, auch hier,
wenn wir hier also ein Nord F haben und diesen Negationszeichen hier rüberziehen,
dann wird das F zu einem G und das Not Not
verrechnet sich zu einem Nicht negierten Fall,
sodass das Äquivalent ist, zu GF.
Also da geht es noch eine ganze Menge mehrere von Umforderungen,
Umformungen, aber für den Anfang genügen diese...
Nicht also dieses, dieses Effekt, den ich gerade geschildert habe,
ist eben sehr ähnlich wie in der Prädikaten-Logik.
Und wenn sie sozusagen beweisen wollen,
dann werden sie dann auf die Definition zurückgekommen und da werden sie genau das benutzen,
was ich gesagt habe, wenn sie die Negation über den Quantor hinwegziehen,
dann nimmt er seine andere Form an.
Okay. Ist da
eine Frage zu
Sonst komme ich jetzt zu weiteren Beispielen. Die ersten Beispielen
sind sehr praktisch. Wenn ich zum Beispiel ausdrücken will,
wenn ich irgendwas senden will auf einem Kanal und ich ausdrücken will,
das soll im nächsten Schritt auch verschickt werden,
dann könnte ich das so ausdrücken, 3 to Cent impliziert, next delivert.
Sie erinnern sich, der Kreis war dasselbe wie das X,
das U blieb so und dass die Raute wurde zu dem F.
Also hier haben wir nur zunächst mal dieses Next benutzt.
Ja und das soll gelten, egal wo ich in meinem System
mich gerade befinde und deswegen kann ich davor noch So ein Immer oder ein Entgeh davor eben schreiben.
Und dieses Beispiel ist so, insofern interessant, weil man jetzt diese Bedingungen gewissermaßen abschwächen kann. Nicht,
wenn man zum Beispiel ausdrücken will,
das muss irgendwann mal ausgeliefert werden, aber nicht im nächsten Schritt,
dann könnte man da zum Beispiel so darstellen,
dass man sagt, wenn dieses 3-2 Cent gilt,
dann folgt daraus Wright to Cent Until Delivered,
was ja heißt,
von diesem Zeitpunkt aus gerechnet,
soll irgendwann mal das Delivered eintreten und vorher immer sozusagen
dieses 3-2 Cent aufrechterhalten werden
Ein anderer Fall würde ja da drin bestehen,
dass das irgendwann mal gesendet werden soll und diese Bedingungen frei zu sind,
nicht aufrechterhalten werden soll.
Dann würde man eben das F eben benutzen.
Nicht dieses Raute, Schreibtisch ja auch als F,
sodass wir hier zwischen schwarze Zustände haben,
wo dieses Drei nicht aufrechterhalten würden.
Ja, das waren jetzt praktische Beispiele. Man kann natürlich
diese Beispiele dann auch vielleicht klarer oder für manchen vielleicht auch nicht klarer,
weiß ich nicht darstellen, indem wir jetzt abstrakte Beispiele nehmen.
Und da haben wir ja zunächst mal Beispiele,
die sich auf einen Pfad beziehen
Ja, hierher haben wir eine Kripke-Struktur mit drei Zuständen.
Nee, zwei Anfangszuständen. Und den Etiketten, die atomaren
Aussagen sind A und B. Hier haben wir nur A,
hier haben wir gar nichts. Und hier haben wir
A und B. Und das beziehen wir jetzt auf einen Fahrt-P.
Und dieser Fahrt-P, der soll darin bestehen,
dass wir zunächst mal S0 haben, S1.
Und dann bleiben wir in S2,
also grafisch soll das dieser unendliche Fahrt sein.
So, und dann fragen wir jetzt,
gilt für diesen Pfad A
nach unserer Definition
Nicht, das haben wir eben schon gesehen, dieses,
das Zeichen für semantisch gilt. Hier haben wir den unendlichen Pfad und
hier haben wir eine temporale Formel in der einfachsten Form,
dass sie nur aus der automaren Aussage a gilt.
Ja, was bedeutet das? Kann jemand sich äußern,
gilt das oder gilt das nicht? Was meinen Sie?
Ich erinnern sich, wir hatten ja gesagt,
diese temporalen Formeln beziehen sich immer auf den jetzt zustand.
Das heißt also, wenn wir das zeitlich interpretieren,
auf das erste Folgeglied. Und in S0 gilt natürlich das a,
so dass wir also, dass eben gilt.
Nicht, aber es würde nicht für b gelten,
dass es sozusagen nur noch in eine Variante. Gut,
nächstes Beispiel ist, gilt zum Beispiel für diesen Pfad,
dass im nächsten Schritt nicht a und nicht b gilt.
Ja, das heißt, wir haben ja hier diesen Pfad hier
und wir gucken nur, was auf diesem Pfad zutrifft.
Nächster Schritt wäre ja in S1, da haben wir gar nichts.
Also das müsste auch gelten, dass es also auch richtig.
Ja, wir können diesen Next-Operator auch iterieren und zwei Schritte
weiter gucken, ob da A und B gilt.
Ja, dann sind wir dann in S2,
da würde das dann auch eben gelten. Ja,
also dieses L hier, das ist aus einem anderen Buch her,
das ist sozusagen immer das Etikett von dem jeweiligen Zustand,
also das Etikett von S2 ist ja gerade diese Menge im AB.
Ja, beim nächsten haben wir das Antel,
da zu müssten wir nachgucken,
wann das erste Mal A und B gilt,
das wäre hier und überlegen uns, ob vorher immer b gilt.
Also, ich wiederhole nochmal, wir können also jetzt unabhängig von
einer gegebenen Grippestruktur einer Formel Alpha, eine Anhängersprache zuordnet.
Nicht, das ist hier dieses El enormenger Pfad,
das ist nicht von einer gelten
So, jetzt die Menge der Formeln Alpha, für die
also diese Formeln eben gilt. Wir werden ja vorher definiert,
wann eine Formel, wann eine Folge für eine Folge gilt.
Und diese Folgen sammeln wir zusammen. Und das ist die Menge
der f-erfüllenden Folgen über AP oder auch die Sprache von 11.
Nicht dieser Fehler hat es leider noch nicht in die aktuelle
gedruckte Version geschafft, eliminiert zu werden,
sodass sie also dann in ihrem Excemplar dieses dann auch noch korrigieren.
Das ist eigentlich naheliegend, weil ja,
dass Alpha in dieser Formel eine gebundene Variable ist und
nur das F ist eine freie.
Also ist das gar nicht sinnvoll zu sagen,
die Menge der Alpha erfüllenden Formel
So, und das Ganze wird jetzt auch übertragen auf die Etiketten,
indem wir sagen,
wenn wir jetzt eine Kripke-Strukturen haben und in der Kripke-Struktur eine Rechnung,
nicht die haben wir ja als SS von M definiert,
dann sagen wir,
in der Kripke-Struktur gilt für eine Formel P,
das F genau dann,
wenn eben für die Etiketten dieser Folge
die Etikettenfolge das F eben gilt
Das heißt, die Kripke-Struktur spielt da, wissen nicht nur die Rolle,
dass sie also die Etiketten eben definiert. Ja,
und dann wollen wir natürlich dann auch jetzt von dem Pfad uns lösen,
wie wir das bei den Automaten ja kennen,
wo wir gesagt haben, wir betrachten alle möglichen,
akzeptierten Pfade, so auch hier.
Wir würden also dann schreiben,
eine LTL-Formel F gilt in einem Zustand einer Kripke-Struktur,
falls eben dieses für alle Pfade gilt, die in diesem Zustand eben gelten.
Und wenn wir diesen Zustand auch noch dahingehend festlegen,
dass das ein Anfangszustand sind, dann sind wir bei dem,
was wir eigentlich wollen.
Wann nämlich eine Formel für eine Kripri-Struktur M gilt. Nämlich dann,
wenn für alle Anfangszustände dieses gilt, was er wieder bedeutet,
für alle Formeln, die in einem Anfangszustand beginnen, gilt diese Formel 11.
Das ist eigentlich auch das, was man erwartet.
Man hat eine Kripri-Struktur, man hat einen Anfangszustand,
die Anfangszustände sind ja nicht voreinander ausgezeichnet,
sollen also alle gleichberechtigt betrachtet werden.
Da haben wir eine Menge von Rechnungen, unendlichen Folgen.
Die sind auch alle gleichberechtigt. Und wenn also sowas behauptet wird,
heißt das, eben für alle Anfangszustände und alle Folgen
soll das
eben gelten
Ja, schauen wir uns das jetzt mal an einem Beispiel jetzt eben an.
Da haben wir jetzt hier mal die Folge 1,
3, 6, 7 und dann immer die 4,
wobei das die Zustände sind und wir betrachten jetzt mal die Formel GF Heat,
was sich so viel liest, es gilt immer,
irgendwann mal Heat und vorhin hatten wir ja gelernt,
diese Kombination heißt,
es gilt unendlich oft Heat
Nicht in dieser Form, in dieser Folge P. Und das sehen wir
hier in dieser Schleife, haben wir unendlich oft Heat nicht.
Und wenn wir diese Folge, also die Etiketten dazu,
nochmal hinschreiben, nicht, das heißt ja auch die Strays,
dann sehen wir hier in diesem Omega-Teil hier,
da kommt unendlich oft das Heat drin vor.
Ja, und nicht das Wort sagen für den Zustand S.
Und wenn wir das streichen,
dann gilt es eben für die Kripke-Struktur,
da nehmen wir hier den Anfangszustand und dann müssen die hier
aber jetzt alle Folgen betrachten,
die jetzt von dem Anfangszustand eben ausgehen
Nächster Punkt ist die sogenannte Trennschärfe von LTL. Das ist ein Begriff,
der auch sonst schon mal in der Informatik vorkommt.
Das bedeutet Folgendes, wenn wir irgendwie einen Begriff haben oder eine Eigenschaft.
Und die Frage ist, wir wenden diese Eigenschaft auf irgendwelche Gebilde an,
ob wir dann aus der Tatsache, ob die Eigenschaft gilt oder nicht,
eben herausfinden können, wie sozusagen natürlich diese Eigenschaft für das Gebilde ist.
Und das ist in unserem Fall,
soll das Folgendes bedeutet, Wenn wir die etikettierten Zustandsfolgen,
zwar ja Kripke-Strukturen betrachten und die gleich sind, das heißt also,
die Voraussetzung ist die, wenn wir die Kripke-Strukturen,
sahen ja Transaktionssysteme und die waren ja bis auf die Endlichkeit der zuständige Automaten.
Wenn wir also gewissermaßen diese Kripke-Strukturen als Automaten interpretieren und diese sagen,
die gleiche Sprache haben, also Verhaltensgleichsinn, dann ist die Behauptung,
dann gilt eben in diesen beiden Automaten eine beliebige LTL-Formel.
Psy, gilt sie oder gilt sie nicht?
Das heißt, wenn wir zwei Kripke-Strukturen haben,
die dieselben Traces haben, gibt es keine LTL-Formel,
die die unterscheiden kann
Das heißt, wenn sie die LTL-Formel gewissermaßen als Brille verwenden und die Brille aufsetzen,
dann können sie nicht mehr sehen, ob sie M1 vor sich haben oder M2.
Und bei anderen Begriffen ist das halt anders,
wie wir eben später sehen werden. Das heißt,
wenn sie gefragt werden, haben die beiden Gripri-Strukturen,
die dieselben, oder sagen wir mal konkret,
da gilt eine Formel für die beiden Gripri-Strukturen gleicherweise,
dann genügt es tatsächlich,
die nur dieser etiktierten Zustandsfolgen,
also die Traces anzusehen
Ja, der Beweis, es geschieht, ist ganz einfach durch Rechnen.
Nicht gesehen, wir fangen hier mit der linken Seite an
und dann haben wir lauter Äquivalenzbeziehungen und das endet mir der rechten Seite.
Und das Entscheidende ist hier in der Mitte,
wo ich von dem SSM1 zu dem SSM2 übergehe,
was ja hier gerade die Voraussetzung war, nochmal zur Erinnerung,
das hatten wir in der nicht mehr heute,
auch Michael in der Wiederholung,
SSM von M bei einer Kripke-Struktur waren die Rechnungen,
also die Folgen von den Zuständen und das ES von P waren ja die Etikette davon.
Und das haben wir ja genau hier. Wir gehen von,
wir sagen, dieses Psy soll für M1 gelten,
mit anderen Worten,
dieses Psy soll also
eine solche Rechnung sein
Und dann soll das, diese Gültigkeit war ja so definiert,
dass sie für die Etiketten gelten sollen. Dann kommen wir hierhin,
wo wir die Voraussetzung anwenden und das Ganze wieder rückwärts.
Das ist also mehr eine Übung für die Anwendung dieser Definition.
Ja, dann haben wir noch vielleicht noch eine andere Beziehung.
Ich kriege nochmal einen Schritt zurück. Nochmal zwei Schritte
zurück. Hier hatten wir ja die Situation,
dass wir zwei Kripkestruktur und dieselbe Formel haben,
Und man kann eben jetzt auch fragen,
wenn wir zwei Temporal-logische Formeln haben, wann die Äquivalent sind.
Ja, weil die gewissermaßen ausdrucksgleich sind. Und da
hat man die Definition, die sollen als ausdrucksgleich gelten,
wenn sie in allen Kryptostrukturen die gleiche Wirkung haben.
Das heißt also, entweder gleichermaßen gelten oder gleichermaßen nicht gelten.
Das ist also ähnlich wie in der Prätekaten-Logik.
Und das ist sozusagen die symmetrische Beziehung und dazu gibt es
auch noch die asymmetrische Beziehung. Nicht,
wenn sie dieses genau dann, wenn durch das impliziert ersetzen,
dann wird hier diese Äquivalenz ersetzt durch dieses semantische Zeichen,
was wir
schon mal hatten
Gut, nachdem wir jetzt ein bisschen wieder trockene Definition haben,
kommen jetzt wieder ein paar Beispiele.
Und zwar im Gegensatz zu eben, betrachten wir jetzt diese Folge hier.
Ja, also die Folge S0, S1, S0, S1.
Und wir fragen, gilt für diese Formel A Antil B.
Können Sie jetzt vielleicht schon Ja, bitte? Genau,
das ist das Erste, was beim Antel guckt nach dem zweiten Argument,
B kommt nicht vor, also das gilt nicht.
Nächstes Beispiel ist, wir fragen, ja, da kommt er jetzt,
das kommt er jetzt, das irgendwann mal B vor,
gilt dann, haben wir dann dieselbe Antwort,
weil ja gar kein B drin vorgeht?
Also heißt es ja, wenn irgendwann mal B gilt,
dann gilt A an Till B.
Was ist damit? Ja, bitte
Ja, genau, nicht,
weil das ist ja eine Eigenschaft dieser so logischen Implikation,
dass so eine Implikation immer gilt, wenn die Prämisse falsch ist.
Das kann man gut oder schlecht anschauen oder nicht anschaulich finden,
aber das wird halt so benutzt und hat auch Vorteile.
Und deswegen gilt das, weil ja eben
die Prämisse falsch ist, also gilt die ganze Implikation.
Nächstes Mal ein Beispiel mit zwei Next-Operatoren. Das heißt ja,
im zwei Schritten gilt nicht B, ja,
das können wir jetzt schon so, da haben wir ja A,
also gilt das.
Nächste wäre, Gilt immer A. Ja, Entschuldigung, bitte ja.
Genau, nicht in S1 haben wir nicht MA.
Und das war ja die Geschichte mit unendlich oft A,
das gilt jetzt wieder. Und das Umgekehrte hieß ja irgendwann mal immer,
das gilt nicht, weil wir ja zwischendurch mal das A eben aussetzt.
Das sind jetzt ganz einfache Beispiele, die sind aber vielleicht nützlich.
Und die zeigen jetzt auch wieder den Unterschied,
ob wir danach fragen, ob so eine Temporale,
logische Formel jetzt für einen Pfad gilt für eine Kripri-Struktur.
Wenn wir nämlich dann nachfragen, ob die für die Kripri-Struktur gilt,
dann müssen wir alle Pfade betrachten, die in Anfangszuständen beginnen.
Und das machen wir jetzt. Deswegen steht da oben drüber,
welche LTL-Formel gilt jetzt für diese Kripri-Struktur, die jetzt hier Tau heißt?
Erste Frage, er gilt für diese Kripri-Struktur jetzt A,
was ja eben auch schon hatten.
Also gilt für alle Folgen, die in Anfangszuständen beginnen,
im ersten Schritt A. Ja bitte?
Ja, wir haben ja, übersieht man vielleicht manchmal
auch noch hier diesen zweiten,
aber da gilt eben auch
Nächstes ist, gilt irgendwann mal immer A,
für alle Folgen, die wir, die wir betrachten.
Ja oder nein? Ja, bitte? Ja,
hatten wir eben schon, dass das nicht gilt.
Das heißt, der Fall, wo wir den Pfad,
eben den Pfad hatten, ist ja ein Spezialfall hiervon.
Das gilt, also nicht, wenn wir doch eben diesen Pfad da nehmen.
Ja, jetzt wird es ein bisschen komplizierter. Da haben wir ein Oder dazwischen,
das heißt, wir betrachten einmal den Fall,
dass irgendwann mal immer B gilt oder dass unendlich oft nicht A und Nicht B gilt.
Ja, seh bitte. Okay, das hebt also sehr
stark darauf ab, dass wir diese beiden Zustände haben.
Nicht also hier haben wir ja oder wir können hier so sagen,
also wir haben die beiden Fälle, wir müssen Folgen betrachten,
die hier und hier beginnen und unendlich oft
B würde also Nee, irgendwann mal immer B würde hier nicht gelten,
aber wir haben ja hier ein Oder, der genügt es,
wenn das für die Folgen eben dort gilt. So,
das Nächste wären das hier, da fragen wir,
gilt es immer, dass wenn A gilt,
das ist auch eine typische Situation, dass wir sagen,
es gilt A und im nächsten Schritt gilt nicht A oder B,
das können Sie auch lesen, als wenn dann B,
nicht weil nicht A oder B ist selber,
wie ist ja VR impliziert, B.
Also die Frage, wir gucken nach, gilt immer. Das heißt,
wir müssen irgend so ein A heraus schnappen und hier sehen wir im nächsten Schritt,
gilt nicht A und hier gilt im nächsten Schritt zwar A,
aber dafür B, sodass wir also die Dissonktion ausnutzen können und das gilt auch.
Ja, vielleicht kommen wir dann nochmal auf den Mikrowellen her zurück,
aber vorher nochmal eine abstrakte Geschichte, die eine gewissermaßen eine Warnung ist,
dass jetzt in der temporalen Logik manchmal die Dinge doch etwas anders sind als in der normalen Logik.
Also die erste Frage ist, gilt für jeden Fahrt das,
also jeden Fall B, dass eine Formel Fee gilt oder nicht gilt.
Nicht, dass diese Dichotomie haben wir ja in der Logik immer,
wenn eine Aussage nicht gilt, dann gilt die Negation.
Ja, hier ist das so. Aber,
und jetzt kommt ja die nächste Frage, für jeden Zustand S gilt,
wenn wir jetzt das Ganze auf den Zustand beziehen,
das heißt also nicht mehr auf die Folge, sondern auf alle Folgen,
die in einem bestimmten Zustand beginnen, gilt das ja nicht mehr.
Kann sich jemand vorstellen, warum das da nicht mehr gilt?
Nicht, das ist ganz einfach zu sehen, wenn man
Zum Beispiel Vieh irgendwann mal ein A nimmt und so eine Kripke-Struktur.
Nicht, da sehen Sie, das bedeutet ja im Zustand,
S gilt für alle Folgen irgendwann mal A. Nicht,
das gilt zwar hier für den linken Pfad, aber nicht für den rechten.
Aber die Negation gilt auch nicht. Das heißt,
es gilt auch nicht für alle Pfade irgendwann mal nicht A. Nicht,
weil ja wir beide Möglichkeiten haben.
Das heißt, an dieser Stelle muss man also aufpassen.
Gut, dann kommen wir jetzt mal zum Mikrowellenofen.
Und da benutzen wir jetzt also diese Formel, auch wieder
eine etwas andere Schreibweise. Also das ist zu sagen,
hier Teletype-Text, dieses Quadrat ist hier zu zweieckig in Klammern dargestellt.
Und das Negationszeichen hier durch die Tilde und das Antil durch den U. So,
das heißt,
wir fragen jetzt gilt das und das gucken wir uns gleich
mal systematisch an und machen dann auch gleich mal einen Test mit dem Tod,
mit dem Tool, Mord.
Das ist eigentlich ein Tool,
auf Ersetzungssystemen beruht und eigentlich also für andere Dinge gedacht war.
Aber es gibt da eben auch einen schönen Model-Checker,
den wir hier mal ausprobieren können. Und in Mord müssen wir
dann erst mal den Mikrowellenofen darstellen und das geschieht dann hier,
indem wir jetzt hier solche Regeln haben. Das heißt,
das beschreibt hier also die ganzen Übergänge, das heißt,
jede Zeile beschreibt einen Pfeil, die eckigen Klammern davon beschreiben,
hier diese Beschriftungen an den Kanten,
die ja in der Gripri-Struktur eigentlich nur zusätzlich da sind und dann brauchen wir ja noch die Etikette,
das wird dann hier durch diese Gleichungen dargestellt.
Nicht, und das müssen sie jetzt alles nicht wissen,
sondern nur für diejenigen, die das interessiert,
im Skript sind ja auch noch mal zwei Seiten zu dem Mode eben drin.
Okay, so, also nimm es noch mal zu dieser Formel hier.
Wenn wir uns überlegen, ob diese jetzt gilt,
müssen wir uns natürlich jetzt einen Überblick über die Gültigkeit von Close und Not Heat verschaffen.
Das machen wir jetzt hier mal mit einem Art Filzstift,
dass wir mal jetzt hier erst mal markieren, wo Klos gilt.
Das sind also diese, Und dann markieren wir, wo Notiz gilt.
Das sind also diese hier. So, und jetzt müssen
wir fragen, gilt jetzt immer not heat until close?
Das heißt also, egal wo wir anfangen, das heißt,
wir können zunächst ja mal nur den Fall betrachten,
dass wir diesen Immer-Quantor nicht haben. Das heißt,
dann bezieht sich das nur auf den Anfangszustand und dann schauen wir mal nach,
da, wenn wir hier also loslaufen,
hatten wir ja gesagt, beim Antel gucken wir,
ob wir sicher auf den Kloß auf den Closed treffen.
Ja, hier im ersten Schritt schon,
wenn man hier lang laufen und dann meint hier,
noch nicht, aber hier unten, treffen wir auf den Kloß.
Und bis dahin gilt auch immer Notiz. Es sieht so aus. So,
das wäre der erste Schritt für den,
wenn man als Anfangszustand den Zustand eins betrachten,
wenn wir jetzt aber noch den Immer-Quantor drin haben,
müssen wir auch andere Situationen betrachten, wo wir loslegen.
Und dann könnte man fragen, ob das eben gilt.
Und das will ich jetzt dann also nochmal mit dem Tool mir anschauen.
Dazu Gehe ich jetzt erst mal aus meinem Browser raus
und schalte jetzt um in meinen, in den Synchronenzustand.
So, und dann habe ich jetzt hier,
bin ich hier sozusagen im Terminal-Fenster und ich muss erst mal dieses Mood aufrufen.
Da habe ich mir so ein Skript zurechtgelegt,
dass ich nicht so viel tippen muss.
So, das wäre das. Mit Return wird also jetzt
das Mode aufgerufen. Wie gesagt, das Mood kann von
See von sich aus noch nicht das Model-Checking.
Das geht dann mit der folgenden Zeile
So, und dann ruft es so verschiedene Dinge aus,
die jetzt auch mit LTL zu tun haben.
So, jetzt ist das Mode ein Model Checker geworden.
So, und jetzt muss ich dem Model Checker
natürlich auch noch den Ofen bekannt machen.
Das geschieht dadurch, indem ich hier intippe und den Pfad
zu meiner Beschreibung von meinem Ofen hier einführe.
Na, wenn wir da reinklicken. So, dann,
jetzt kennt ihr auch den Ofen. So,
und dann schauen wir uns mal hier die Beschreibung hier
von dem Ofen an
Da sehen wir, haben wir zunächst mal die Beschreibung wie oben und hier
unten habe ich mir mal meine Anfragen notiert mit drei Sternen davor,
was bedeutet, dass das sozusagen auskommentiert wird und keine Fehlermeldung gibt.
Also das nehme ich mir jetzt hier erst mal,
also wir sehen, das fängt also mit einem Red an.
Gleich sehen wir das besser, das übergebe ich jetzt hier dem System. Nicht das Reduce,
das ist sozusagen,
nimmt Bezug auf dieses Ersetzungssystem und dann rufen wir gewissermaßen die
Prozedur aus Model-Check und dann haben wir hier den Zustand S1,
das ist der Stachzustand und dann haben wir hier die Formel,
wie eben, das hatte meine meine Fernbedienung auch schon was gemacht,
aber mal sehen, dass es trotzdem geht.
Und was sagt es, ja, das gilt. Also diese Formel gilt,
so wie wir das eben vielleicht auch schon eben erwartet haben.
Also, das gilt, das haben wir jetzt also gesehen.
Gucken wir mal das nächste Beispiel an.
Nein, machen wir nach demselben, nach derselben Methode.
Da haben wir das Heat markiert. Ich finde,
jetzt habe ich manchmal, halte ich gleich diese Clausold
Start und Not Error markiert.
Das sind diese hier
Und die Frage wäre jetzt, nicht hier haben wir ja
wieder die Kombination, es gilt unendlich oft.
So ist die Frage, ob jetzt unendlich oft gilt,
wenn ich vorher starte und nicht erroren habe,
dass ich dann irgendwann mal nach Heat komme.
Ja, das bedeutet ja,
ich muss erst mal hier hinkommen und dann sehen wir,
dann bin ich hier unten bei der 7 schon bei dem
Heat.
Und so gilt das eben auch
Nächstes Beispiel wäre das hier, wo wir haben, es gilt immer,
wenn wir Start haben, können wir irgendwann mal nach Heat.
Ja, wenn wir da das Start markieren,
das sehen Sie da und das Heat da,
dann sehen Sie vielleicht, dass wir hier ja diese Schleife haben,
wo wir einen unendlichen Pfad durchgehen können,
wo wir nie nach Heat kommen.
Und das ist hier der linke Teil, ist auch sozusagen der Fehlerteil des Mikrowellenofens.
Das dürfte eben nicht gelten. Gucken wir mal, wie
das in unserem Modelchecker aussieht. Das wäre dann hier dieser Aufruf 4. Ja,
da sehen Sie jetzt erstens mal,
da steht erstmal nicht True und da steht hier ein ganz langer,
ein ganz langer Salat von Zeichen, was Folgendes bedeutet,
was ich jetzt in der Folie auch nochmal dargestellt habe,
sodass wir uns das lieber auf der Folie anschauen
Das war schief gegangen. So, da stand nämlich ungefähr
folgendes. Da steht zur Next Counter Example, nicht?
Ein Counter Example ist ein Hinweis darauf, ein Gegenbeispiel,
dass das nicht gilt. Und das Schöne bei Modelshecking ist,
dass man, wenn eine Eigenschaft nicht gilt,
eben auch einen Pfad genannt bekommt, der diesen Fehler eben anzeigt.
Dann haben wir es hier aber mit unendlichen Faden zu tun.
Und die Frage, wie stellen wir die da?
Und da ist es so,
dass in diesen endlichen Gripgestouren es natürlich immer möglich ist,
solche Fade zu finden,
die ein Anfangsstück haben und dann in eine Schleife geraten
Und der Beginn der Schleife wird jetzt in diesem Tool,
dadurch dieses Semikolon ist das, glaube ich, angezeigt.
Das heißt, wir haben hier ein Anfangsstück,
Startofen und dann haben wir hier einen Teil, der diese Schleife darstellt.
Das heißt, wenn wir uns das grafisch darstellen,
habe ich das nicht grafisch dargestellt.
Na gut, dann eben nicht. Dann gucken wir uns
das mal gleich nochmal so an. Nicht,
das bedeutet ja, ich habe hier am Anfang Start
oben und dann geht es hier weiter mit S2,
S5,
S1. Also nur die Zustände sind eigentlich wichtig. Die Bedeutungen,
also die Etikette sind gewissermaßen aus Fluxus noch dahinter geschrieben.
Ja, und wir sehen in der Tat. Wenn wir also hier
zum Beispiel hier durchlaufen, dann ist diese Formel verletzt.
Das heißt, es geht immer wieder Start,
aber nie eben Heat. Und eben hatten wir uns überlegt,
das würde ja jetzt vielleicht auch für diese Schleife hier gelten.
Das heißt also, dieses Gegenbeispiel ist nicht immer das,
was man erwartet. Also hier nicht mal das kürzeste,
aber es ist immerhin eins.
Gut. Nächstes Beispiel wäre dieses hier,
da haben wir auch so
ein Gegenbeispiel
So, und als nächstes habe ich jetzt mal diese Formel genommen,
die hat als Gegenbeispiel etwas längeres, die habe ich extra mal gewählt,
um mal richtig was Kompliziertes gegen Beispiel zu haben.
Diese Formel sagt ja aus, irgendwann mal gilt,
dass wenn ich Heat und Start habe, dass dann unendlich oft Heat gilt.
Das wissen wir ja schon eh schon,
dass das also nicht gilt, weil der ganze Graf hier
streng Zusammenhang hängt ist und hier in dieser Ecke haben wir ja schon ein Gegenbeispiel.
Ja, und der Modelshaker hat jetzt da Folgendes zurückgegeben,
der hat also erstmal diesen Teil, der jetzt unterbrochen,
unterstrichen ist, ist das Anfangsstück.
Nicht hier bei dem Komma, ein Komma war das.
Bei dem Komma, da beginnt eben die Schleife.
Und dieses Stück würde dann eben so aussehen.
Und bei nach S4 sind wir wieder in S1 und danach
beginnt jetzt gestrichelt die Schleife und da haben wir wieder dieselbe,
die wir eben haben, wo jetzt diese Conclusio nicht geht,
nachdem wir vorher ja hier die Prämisse eben erfüllt haben.
Gut. Ja, dann kann ich jetzt eigentlich hier meinen Synchronisierten
Mode wieder ausschalten. Wir kommen hier zu einem Thema,
in dem wir jetzt LTL mit Büschi-Automaten vergleichen.
Das haben sie ja vielleicht schon vermutet,
dass diese Befassung mit den Büschi-Automaten oder in Transitionssystemen oder Kripke-Strukturen
mit Endzuständen irgendwas hier mit der temporalen Logik zu tun hat
Und man kann jetzt das in der Tat fragen.
Und da haben wir jetzt folgendes Ergebnis. Zu jeder LTL-Formel
F kann man eine Krippenstruktur oder ein Büschi-Automaten konstruieren,
die genau die für F-Gültigen Formeln akzeptiert. Sodass also,
wir hatten ja vorher gesehen, wir können zu einer LTL-Formel F,
die Ormega-Sprache, bilden, haben wir definiert.
Und wir haben früher schon gesehen, was die Omega-Sprache,
als Büschi-Automaten ist. Und für eine Krippestruktur machen wir das genauso,
indem wir Deutsche Endzustände annehmen. Und genau diese Folgen betrachten,
die unendlich oft diese diese Einzustände eben besuchen.
Und das ist eben enorm wichtig für das Model-Checking,
weil eben jetzt die Gültigkeit einer solchen Formel jetzt über solche,
die Analyse von Büchi-Automaten oder Kribbe-Strukturen in diesem Modus dann analysiert wird.
Das ist das Schöne. Nicht so schön ist,
dass die Sache unheimlich komplex ist im Sinne der Komplexitätstheorie,
nämlich die Zeit- und Platzkomplexität dieses Algorithmus,
das ist also exponentiell
Und diese obere Schranke kann man auch nicht wesentlichen verbessern,
denn man kann eine Folge Alpha 1, Alpha 2,
Alpha 3 und so weiter finden, von LTL-Formen der Gestalt,
dass die Größe dieser Alphai durch ein Polynom beschränkt wird,
also mäßig wächst, die entsprechende, die zugehörige Kripke-Struktur,
aber exponentiell viele Zustände eben hat.
Das heißt also, die Kripke-Strukturen sind schon so groß,
nicht nur der Algorithmus ist so schlecht,
dass er eben exponentiell eben sein muss
Okay. Ja, und jetzt kann man natürlich fragen,
ob diese Richtung auch in der anderen,
ob die Richtung auch umgekehrt werden kann.
Hier steht ja zu jeder RTL-Formel,
kann man eine Gripri-Struktur finden und man kann fragen,
gibt es denn auch zu jeder Gripri-Struktur oder zu jedem Büschi-Automaten
so eine Formel oder anders ausgedrückt,
sind die Büschi-Automaten mächtiger als ein LTL-Formel
Nochmal zur Erinnerung, nämlich diese Sprache einer LTL-Formel war ja
die Menge aller Folgen von Etiketten, die eben zu Rechnungen eben gehört.
Und diese Frage, diese Antwort ist negativ,
aber das Interessante ist, dass die Antwort so einfach ist
und deswegen bringe ich sie hier auch.
Und zwar kann man zeigen, es gibt ein Büchi-Automaten-M,
der eine Sprache hat,
die aber durch keine LTL-Vormel F
eben beschrieben werden kann
Und das geht folgendermaßen aus. Dieser Büchi-Automat oder diese Kryptische,
na wir machen das ja mit einem Büchi-Automat,
aber mit einer Kripostruktur ginge das auch.
Büchi-Automaten deswegen, weil wir hier die Endschriften jetzt wieder an
den Kanten betrachten und nicht in den Zuständen.
Also die Etiketten bestehen jetzt hier aus A und der leeren Menge.
Und wir haben also nur zwei Zustände und wir brauchen nicht
mal spezielle Endzustände, alle Zustände sind Endzustände.
Ja, und es genügt sogar ein Deterministischer Büchi-Automat.
Das heißt, unser Gegenbeispiel kann sogar ziemlich einfach sein,
wie wir hier unten sehen
Und wir brauchen auch keine speziellen Endzustände. Das heißt also,
die besondere Akzeptierungsmodus vom Büchi-Automaten brauchen wir nicht mal mehr.
Und das versuche ich hier zu vermitteln, warum das so ist.
Also, da haben wir jetzt nochmal in unserem Automaten.
Und dieser Automat oder dieser Büchi-Automat hat da jetzt folgende Sprache.
Wir haben hier A0, A1, A2, A3,
der Gestalt, dass das A sicher immer in den geraden Positionen Position ist.
Also immer dann, wenn wir von links nach rechts gehen,
ist das A sicher, wenn wir von rechts nach links geht,
muss da kein A drin sein, da kann auch die leere Menge genommen werden.
Das ist also die Sprache des Automaten. Und diese Sprache kann eben
durch keine LTL-Formel dargestellt werden, wie man jetzt sieht. Nicht,
man könnte ja zum Beispiel auf die Idee kommen,
ob das nicht ein Kandidat wäre,
wie für diese Formel, denn die sagt ja aus,
am Anfang gilt es A und dann gilt immer,
wenn ein A gilt, zwei Schritte weiter gilt,
denn A,
das ist ja vielleicht gerade das,
was ich
eben beschrieben habe
Ja? Und ist das so? Ist das eine Lösung?
Also ich habe ja schon gesagt, es ist kein,
aber die Frage wäre, warum ist das keine,
warum beschreibt diese Formel nicht genau diese Sprache El Omega von Elm? Nicht,
das liegt daran, weil wir ja auch diese Folge hier haben,
wo wir die in der zweiten Position auch in A hat und in der vierten die leere Menge,
denn wenn wir Von der ersten ausgehen, dann trifft natürlich diese Implikation,
aber wenn wir von dem zweiten Element ausgehen,
dann ist hier diese Formel, ihr gilt nicht,
denn da haben wir ein A und im übernächsten Schräg,
einen übernächsten Schritt gilt nicht A.
Also ich habe ein bisschen zu viel versprochen,
ich habe nicht, ich beweise hier nicht, dass dieser Automat,
dass es keine Formel gibt, sondern einfach ist nur,
dass der Automat so einfach ist und dass es eigentlich nur eine Motivation,
warum das so ist,
der Beweis, den habe ich jetzt hier nicht,
der ist wahrscheinlich doch kompliziert.
Ja, ist das soweit?
Verständlich? Gut
Ja, dann mache ich schon mal weiter mit der nächsten Logik,
die jetzt CTL heißt. CTL kommt von Computational Tree Logic
. Da können Sie schon ein bisschen ahnen,
was jetzt der Unterschied zur LTL, was ja lineare Zeitlogik hieß,
nicht Tree ist ja ein Gebilde, ein Baum,
was eben sich unterscheidet von einer linearen Struktur.
Ja, und der Unterschied besteht jetzt darin,
dass ich jetzt in CTL jetzt auch sowas formulieren kann,
für alle Pfade,
die von einem gegebenen Zustand es ausgehen
Das heißt, wir haben jetzt hier wieder so was ähnliches
wie ein Alquantor in der Prädikaten-Logik.
Aber der bezieht sich jetzt auf die spezielle Situation,
dass wir sagen, für alle Pfade,
die von einem gegebenen Zustand es eben ausgehen, gilt diese Formel P.
Also dann würden wir hier dieses AP schreiben. Ja,
und wenn wir das jetzt auf so einen Baumhirn beziehen,
dann würde das bedeuten, wir wenden dieses auf Zustände an,
deswegen heißen die Dinge auch Zustandsformel.
Und wenn wir hier mal diese Formel betrachten, AGP,
Das heißt, das A ist jetzt das A,
was wir hier eingeführt haben.
Und das G ist das alte G, was wir auch in LTL schon hatten.
Das heißt, die LTL-Operatorin kommen hier in CTL auch vor.
Dann bedeutet es ja, nach dem, was jetzt hier steht,
für alle Pfade, die in diesem Zustand starten, gilt EP.
Und das heißt ja, für alle diese Pfade gilt immer LP.
Das heißt jetzt also grafisch dargestellt,
von diesem Zustand S hier aus,
auf den wir das anwenden,
gilt immer P und woanders muss das P
nicht gelten kann
So, und dual dazu zu diesem AP,
gibt es auch so eine Art Existenzquantor, aber wieder bezogen auf Pfade.
Der heißt nämlich, es gibt einen Pfad,
der von einem gegebenen Zustand es ausgeht und für den die Formel P eben gilt.
Und das machen wir dann wieder ganz analog beziehen,
dass jetzt mal auf den Anfangszustand,
und da bilden wir mal EGP, was bedeutet ja,
es gibt einen Pfad, wo immer P gilt,
das wäre dann das entsprechende,
das analoge
So, dann haben wir jetzt hier zwei Beispiele.
Und sie werden jetzt vielleicht denken,
dass CTL ist jetzt ja eine Oberlogik von dem LTL,
weil ja die LTL-Operatorin ja da drin benutzt werden dürfen.
Das ist aber nicht so, weil in CTL dürfen die Operatoren
immer nur in Kombination benutzt werden, in Kombination von einem LTL-Operator.
Und davor muss immer E oder A stehen.
Und dadurch reduziert sich die Anzahl der Möglichkeiten in folgender Weise.
Ich kann zum Beispiel AG-Rot schreiben. Das würde eben bedeuten,
auf so einen Baum bezogen, Für alle Pfade,
also auf den Anfangszustand, auf die Wurzel bezogen.
Für alle Pfade gilt immer rot. Ja, und
dasselbe kann ich jetzt natürlich auch mit dem F machen.
Afrot heißt, für alle Pfade gilt das irgendwann mal rot gilt.
Nicht, da müssen wir uns jetzt also unendliche Bäume vorstellen,
sodass das Weitere jetzt hier einfach weggelassen ist.
Und hier bei dem Rechten könnte dieses Rot ja auch irgendwie
später eintreten und das sozusagen nur im Beispiel dargestellt,
dass in jedem Pfad,
den ich mir hier vorstelle,
sehe ich in dem Bild
schon das Rot
Ja, und dasselbe gibt es natürlich mit,
statt mit A, auch mit E.
Da hätten wir zum Beispiel ENF Roth. Das würde ja bedeuten,
es gibt einen Pfad, wo irgendwann mal rot gilt.
Oder es gibt das EG in Roth. Das heißt,
es gibt einen Pfad, auf dem immer rot gilt.
Sehen wir auch. Ja, und dann haben wir noch
das Antel. Das heißt ja zum Beispiel,
es gibt einen Pfad auf den grünen Antilroth-Geld.
Da haben wir dann hier den Pfad. Und dasselbe haben
wir auch mit A für alle Pfade gilt das,
sodass irgendwann mal sicher rot gilt.
Und vorher gilt immer grün
Ich erzähle Sie auch, warum wir jetzt LTL vor CTL behandelt haben.
Deswegen, weil ja hier eben diese LTL-Operatoren auch vorkommen.
Und das haben wir dann gewissermaßen schon vorher überlegt.
Ja, und es wäre die Frage,
wie kommen wir jetzt von unserer Krippenstruktur zu diesen Bäumen?
Und die Antwort ist durch Abwicklung. Ich weiß nicht,
ob Sie den Begriff Abwicklung schon mal kennengelernt haben.
Und zwar könnte das durchaus sein,
dass Sie das im Kontext der Programmierung kennengelernt haben,
weiß jemand,
was man unter der Abwicklung einer Waldschleife
beispielsweise versteht
Nein, nein. Nicht, da stellen sie sich einfach
diese Waldschleite, Schleife als einen Zwirnsfaden auf der Rolle
vor und oben ist das freie Ende.
Und wenn sie daran ziehen, dann rollt sich diese Schleife dann ab.
Das heißt, in der ersten Abwicklung würde das so aussehen.
Und in der zweiten Abwicklung würde das so aussehen.
Und kann sich jemand denken, warum sowas in der Programmierung
nützlich ist
Nicht? Denn man sieht ja deutlich semantisch,
sind diese Programme äquivalent, die berechnen also immer genau dasselbe.
Nur das Mittlere und das Rechte braucht mehr Code als das Linke.
Und das macht man manchmal, wenn man zum Beispiel im
ersten oder zweiten Schritt Schleifendurchlauf was anderes machen will.
Dann kann man das so abwickeln und dann kann man jetzt
hier im ersten Schritt das C durchaus anderes ersetzen oder auch die Verzweigung anders setzen und dergleichen mehr.
Und das wäre also eine Abwicklung in der Programmierung
Und die Frage wäre, was heißt denn jetzt Abwicklung einer Kripri-Struktur?
Das ist nämlich ganz ähnlich. Nicht, wenn ich jetzt mal
eine Krip-Krip-Struktur betrachte, wie diese hier mit drei Zuständen,
dann habe ich hier ja meinen Anfangszustand.
So, den kann ich jetzt mal hierhin malen und die möglichen Nachfolgezustände hinmalen.
Also da geht es hier mal nach rot und hier mal nach schwarz.
So. Und von rot geht es natürlich in der Kripri-Struktur
wieder zurück nach grün. Aber in der Abwicklung mache ich
was ähnliches wie bei der Programmierung.
Ich male den grünen Zustand erneut hin
Das heißt, hier also von rot,
so geht es nach grün und von rot geht es auch nach schwarz und von schwarz
geht es nur noch nach schwarz und so weiter.
Das heißt, auf diese Art und Weise bekomme ich jetzt für meine Kripkere-Struktur so einen Baum,
für die ich ja jetzt nun gerade in den Beispielen meine CTL-Operatoren erklärt habe und das ist der ganze, der ganze Trick dabei.
Ja, die Frage ist, warum macht man das überhaupt,
dass man diese neben LTL auch noch diese Temperale Logik CTL hat.
Das können Sie jetzt schon ein bisschen erahnen.
Nicht denn in LTL können wir ja nur Aussagen machen,
die sich über eine gegebene, unendliche Folge,
das heißt eine unendlichen Trace oder eine unendliche History bezieht,
einen unendlichen Prozess.
Wir können nicht sagen, wir gehen in einen Zustand und fragen,
was ist von dort aus alles möglich?
Diese Möglichkeit, Möglichkeit, haben wir nicht in LTL.
Und deswegen kann man fragen,
warum macht man nicht nur CTL und lässt das LTL sein,
im Sinne der Verschlankung des Studiums.
Das hat damit zu tun, weil viele Fairness-Bedingungen,
die lassen sich nur oder besser
in LTL ausdrücken
Nicht. Letztendlich kommt man in der Praxis mit einer dieser Logiken aus,
aber es gibt eben Unterschied bei der Implementation,
sodass man also bei Mottocheckern immer gucken muss, was die benutzen.
Und die meisten Mottochecker lassen also auch beide Logiken zu,
sodass es zum Teil von der Anwendung abhängt,
welche Art von Eigenschaften will ich darstellen,
ob ich nun LTL oder CDL eben benutze.
Ja, kommen wir dann jetzt zur Syntags von CTL.
Habe ich ja eben schon verraten, dass wir
nur solche Kombinationen betrachten zwischen diesem E&A und den LTL-Pfadquantoren.
Und da hatten wir ja vier Stück. X-FG und U.
Das heißt also, wir haben insgesamt acht Kombinationen. Sie sehen hier,
haben wir alles, was wir mit A kombinieren können,
nämlich AX, AF, AG und AU.
Und rechts haben wir alles, was wir mit E kombinieren können.
EX, EF, EG und EU. Und CTL besteht
eben darin, dass man die Syntax so einschränkt.
Man könnte ja auch sagen, warum lässt man diese Einschränkung
nicht weg? Das gibt es auch. Diese Logik heißt
dann CTL-Stern
Dieser hat aber Komplexitätsmäßig sehr schlechte Eigenschaften und CTL
hat in gewisser Weise beim Motelchecking bessere Eigenschaften als LTL,
sodass wir also die Motelcheck-Prozeduren hier sogar vorführen können.
Und deswegen benutzt man also CTL statt CTL-Stern
Okay, dann kommen wir jetzt zur Syntax.
Wir behalten jetzt hier mal in Erinnerung hier unten im Kasten,
was wir gerade gesehen haben, die acht Kombinationen.
Und wir, die Definition, die sieht jetzt so aus.
Es sei also wieder AP, eine Menge von Aussagen logischen Antomen.
Dann wird die Syntax von CDL-Zustandsformeln, wie folgt,
du in Bakkus Noah Form definiert, wobei Klein P,
eine solche atomare, also ein atomarer Ausdruck ist und F eine CTL-Pfadformel.
So, das heißt also, wir haben zunächst mal diese Möglichkeit,
dass wir, geh hier ersetzen durch die Aussagen
logischen Formen und das E
und das
Nicht, das würde mit dem hier entsprechen. Und dann muss aber das,
was hinter dem E steht, eine Pfadformel sein,
was dem entspricht, was wir vorher in LTL gemacht haben.
Das heißt also, das F muss dann gewissermaßen hier runterspringen.
Und deswegen heißt das hier auch, F und nicht G,
wo wir jetzt diese vier Möglichkeiten von LTL eben haben.
Also was ich jetzt hier dargestellt habe, ist jetzt auch,
dass wir hier bei dem erst anfangen,
dann hier zu dem hier runtergehen,
dann hier das Groß-F in der Formel nehmen und dann sind wir also fertig.
Nicht, das heißt also,
wir haben hier so eine doppelte Rekursion oder Induktion in der Definition der ECTL-Formel,
um auszudrücken nicht, da soll nichts anderes mit ausgedrückt werden,
dass wir nur diese Kombination dann eben erlauben.
Nicht und wichtig ist auch, dass wir jetzt hier
die CTL-Zustandsformeln von den CTL-Pfadformen unterscheiden. Nicht die CTL-Zustandsformeln,
die beziehen sich auf Zustände und man sagt, alle Pfader,
die davon ausgehen und die CTL-Pfadformeln beziehen sich aufgegebene Pfade.
Ja, und damit machen wir dann nächstes Mal am Donnerstag
dann weiter.
Vielen Dank dann
erstmal für heute