die hatten wir ja bislang noch nicht. Wir hatten das bei LTL auf Kripke-Strukturen interpretiert.
Wir hatten eine Kripke-Struktur, in den Zuständen standen Etiketten.
Wir haben uns jetzt einen Pfad durch die Kripke-Struktur angesehen,
aber was ist mit diesen Bäumen auf sich hat?
Das müssen wir uns erst definieren. Das ist so,
wie man sich das denkt. Ich mache eine Art Breitensuche auf der Kripke-Struktur. Das heißt,
wenn links meine Kripke-Struktur bestehend aus drei Zuständen ist,
die beschriftet mit A, B, B,
C und C sind, und ich starte im Zustand links oben,
Dann habe ich ja zwei Möglichkeiten, da rauszukommen.
Entweder ich gehe zum Zustand, der mit BC beschriftet ist,
oder zum Zustand der MC beschriftet ist.
Vom BC komme ich entweder zum Zustand AB zurück.
Das wird dann also links der Kindknoten,
oder ich komme nach C, dann habe ich rechts ein C.
Von C komme ich nur zu C, sonst nirgendwo hin.
Das heißt, auf der rechten Seite habe ich einen Ast,
der von C, nach C, nach C,
nach C führt.
Das heißt, ich verdoppel auch die Knoten und sage einfach,
was ist dein Nachfolgezustand
Was natürlich dazu führt, wenn, wie wir ja angenommen haben,
das Transitionssystem immer ein Nachfolgezustand hat,
dass dann diese Abwicklung auch immer unendlich ist,
denn ich höre ja nie auf,
jeder Zustand hat einen Nachfolgezustand, wenn ich es abwickel,
wird der Baum auch immer tiefer.
Was ich mir also erzeuge ist, bei endlich vielen Zuständen der Kripre-Struktur,
ich erzeuge mir immer einen Baum, der unendlich tief ist.
Wenn wir nur endlich viele Zustände haben,
dann ist der Verzweigungsgrad endlich, das heißt,
jeder Knoten hat nur endlich viele Nachfolger,
aber ich habe
nur unendlich lange Pfade
So, das ist die praktische Analogie.
Also ich muss wieder Abläufe nur auf unendlich langen Faden betrachten.
Aber jetzt sind es Fade, die ich in dem Baum durchlaufen kann.
Nämlich meistens alle Pfade von einem gegebenen Wurzelknoten.
Und ab dem starte ich dann eine Suche, die mir
alle Pfade irgendwie geliefert. Das Ganze wieder in dieser bunten Notation,
aber eigentlich das Gleiche wird dann so aussehen.
Ich habe drei Zustände. Und dann sieht man das so hübsch,
dass grün und rot nach links wechselt sich immer ab und
alles rechts darunter wäre schwarz,
weil in dem Zustand bleibe ich immer,
aus dem komme ich nie raus
Das heißt, es gibt eigentlich nur den einen spannenden Pfad,
alles, was von dem Grün-Rotwechsel mich abführt,
ist automatisch nur noch eine unendliche Abfolge von schwarzen Knuten.
Also weiß ich jetzt ohne, dass ich es
formal definieren müsste, was eine Abwicklung einer Krypto-Struktur ist.
Ich komme also von jeder Krypto-Struktur zu einem unendlich tiefen Berechnungsbau.
Gut, das ist der Hintergrund. Darauf will ich das Ganze interpretieren.
Und jetzt wissen wir ungefähr, welche Formeln wir haben wollen.
Wir wissen es noch nicht ganz genau. Das ziehen wir
jetzt nach. Wir definieren jetzt also wieder die Syntax,
unser Logik. Wir definieren also die Menge aller CTL-Formeln.
Und da gibt es jetzt zwei Typen von Formeln.
Das ist erstmal die CTL-Zustandsformel. Die werden wieder relativ zu einer Menge AP
von atomaren Propositionen gebildet, wie gehabt. Und angenommen,
ich habe schon eine Fahrt-Formel F, die wird da drunter definiert,
dann weiß ich, Zustandsformen sind, war falsch,
also True and Falls, jede atomare Proposition gehe,
die Negation, die Konjunktion, die Disjunktion von Zustandsformeln.
Und in einem Zustand kann ich sagen, alle, oder es existiert,
also andersrum, es existiert, Einfahrt oder für alle Pfade gilt F.
Und F muss jetzt eine Formel sein, die sich auf
diesen Pfad bezieht. Und das steht direkt da drunter,
das sind die CTL-Fad-Formeln und die CTL-Fad-Formeln sind im Prinzip genau die Struktur,
die man hat, wenn man LTL schon betrachtet.
Also ich habe den Operator X G&U. Der große Unterschied ist aber,
dass ich jetzt sage, was ist denn das,
was nach dem X GF-UF so folgt.
Naja, das ist jetzt wieder eine Formel G. Also eine Typ-Zustandsformel, Formel. Das führt dazu,
wenn ich da hin und her springe, ja, ich komme also,
wenn ich die Definition von G betrachte und ich packe da einen Quantor davor,
dann brauche ich plötzlich ein F und wenn ich ein F habe,
dann brauche ich Formeln vom Typ G.
Und wenn ich das betrachte, dann stelle ich fest,
Da braucht ja jeder Quantor, A oder E, also jeder Fahrtquantifizierende Ausdruck,
der braucht direkt darauf nachfolgend ein LTL-artigen Quantor, also XFG und U.
Und da ich zwei Quantoren für Fahre habe und vier Quantoren,
Auffaden habe, kriege ich also acht Möglichkeiten.
Und die sind hier im Kasten dargestellt, alle Varianten,
die ich definieren kann, kombinatorisch durch, also AX,
EX, AF, EF, AG, EG,
AU und EU.
Das sind die Kombinationen,
die sich daraus dann ergeben
Anders kann das gar nicht strukturiert sein, das ist immer festgekoppelt.
So, wir hätten auch gleich sagen können,
es gibt nur diese acht Operatoren und die kommen immer direkt gepaart vor.
Der einzige Grund, warum man das hier schon mal so aufdröselt ist,
es gibt noch eine mächtigere Logik, da muss das nicht so sein.
Da ist der Wechsel nicht vorgeschrieben und dann sieht das fast genauso aus.
An dieser Stelle ist es jetzt relativ egal,
ob ich gleich fordere. Ich habe diese acht Operatoren,
die ich so in dieser Kombination benutzen muss.
Oder ich habe hier den Wechsel von Zustand und Fahrtformeln,
die immer hin und her springen in der Definition
Na, picken wir uns das mal raus für das Beispiel EF.
Da sieht man eben EF braucht eine Fahrtformel
F und F kann dann eben genau das Future sein und
das Future braucht dann wieder eine Zustandsformel.
Das heißt, ich bin bei G gestartet und lande wieder bei G.
Was ich also machen kann, ist nichts weiter als die
Syntax der Fahrtformeln da einzusetzen. Überall,
wo jetzt das kleine F steht in der Definition von G,
wenn ich das da überall brav einsetze,
dann kriege ich halt
die acht Kombinationen
So, wir halten also fest, es gibt diese Paarung und es gibt diese acht Quantoren.
Das ist einzig Bemerkenswertes, wenn man das so sehen möchte,
dass in der letzten Zeile diese Syntax halt so ist,
dass man sagt, okay, das A und das U,
das hat halt zwei Leerstellen,
wo ich gehe 1 und G2 einfüllen kann.
Ansonsten treten die ja immer direkt benachbart auf und hier ist es halb.
Ein Operator, der zwei Argumente erwartet und die stehen nun mal irgendwo dazwischen.
Aber es ist nichts weiter als eigentlich ein Operator, AU
Oder auch. Ja, und der nimmt zwei Argumente.
Und weil das ganz bequem zum Lesen ist, schreibt man
es als AG1, UG2. Und was uns jetzt ein bisschen interessiert,
ist die Frage, wir wollen immer noch Werkzeuge entwickeln.
Wir wollen ein Werkzeug schreiben,
das mir gegeben eine Formel gegeben, eine Kripke-Struktur,
nachweist, ob diese Kripke-Struktur diese Formel erfüllt oder nicht.
Und da sind erstmal zwei Hindernisse. Das erste, das werden wir
gleich lösen. Wir haben noch keine Semantik dieser Formeln,
außer was wir so im Bauch wissen, was es bedeuten soll.
Das ziehen wir gleich nah. Das andere ist,
wir müssten ja jetzt acht Teilalgorithmen schreiben, nämlich für jeden Operator,
für jede, diese acht Möglichkeiten, einen Teilalgorithmus.
Und wie immer sind wir faul. Wir haben die Hoffnung,
dass da weniger reicht, um die anderen auszudrücken.
Also wir suchen wieder nach einer Möglichkeit,
mit einem kleineren Satz von Operatoren auszukommen und trotzdem die ganze Logik zu verwenden,
indem wir einfach sagen,
naja,
AXG lässt sich vielleicht mit den anderen
sieben ausdrücken
Brauche ich schon mal A, XG nicht mehr. Um da aber jetzt zu sagen,
welche überflüssig sind, welche sich durch andere ausdrücken lassen,
müssen wir diese Mantik auch wieder erst haben,
um festzustellen, welche Formeln ein Äquivalent zu ändern wird.
Also definieren wir diese Mantik von solchen CTL-Formeln und
da definieren wir genau das, was wir haben wollen.
Wir fangen wieder an und nehmen an,
wir haben eine Kripke-Struktur M, die ist gegeben,
wie immer, Zustände ist, Startzustände,
er ist null,
Übergangsrelation R und dem Zustandslabeling den Etiketten E-Index
Und jetzt mache ich wieder eine Rekursion über den Formelaufbau,
also eine induktive Definition. Ich sage, in dem Krypco-Modell,
im Zustand S, ich betrachte ja das Ganze als Baum,
fixiere also jetzt den Zustand im Baum.
Und da sage ich, okay, da gilt die atomare
Proposition P, wenn P im Labeling dieses Knoten-Ess vorkommt.
Das ist erstmal der Basisfall. Und die nächsten drei Fälle sind die,
wie man sich das denkt, wenn ich die Negation habe,
von G, dann schaue ich einfach, naja,
mit G erfüllt und ich gebe genau die umgekehrte Antwort.
Also die Negation von G ist erfüllt genau dann,
wenn, geh selbst nicht erfüllt ist in dem Zustand essen.
Bei der Disjunktion muss es eins von beiden sein,
also ich frag, ist G1 erfüllt oder es geht zwei erfüllt.
Und für die Konjunktion, ja, muss ich schauen, sind beide erfüllt.
Also gilt im Zustand SG1 und gilt im Zustand SG2.
Klar, wie man es immer macht. Bleibt also viertens und fünftens die Fahrtquantoren,
E und A, Und da sagen wir,
wenn es einen in S beginnen fahrt, P gibt,
der die Eigenschaft hat, das in dieser Krypto-Struktur auf dem Pfad PF gilt.
Und das ist ein Ausdruck, den kennen wir schon,
weil F, das definieren wir jetzt ganz so,
wie wir das schon eigentlich von LTL definiert haben.
F ist ja eine Pfadformel, alles gut.
Da wissen wir, was das ungefähr bedeutet.
Und wenn ich das Gleiche für A habe, sage ich
eben für alle, in S beginnenden Pfade gilt MPF.
Also weiß ich auch, wie der MPF,
das ist eine Fahrtformel mit LTL-artigen Operatoren.
Das kann man jetzt noch aufdröseln. Kann man nochmal die
Definition der LTL-Semantik hier einkopieren, aber das läuft ganz genauso,
wie wir das schon kennen. So, jetzt wissen wir also,
die Syntax der Formeln, wir wissen die Semantik,
kann man jetzt also nachrechnen, was so gilt,
was kann ich damit jetzt ausrechnen oder ausdrücken,
mal so kleine Beispiele, wir haben hier Links, eine sehr einfache Kripke-Struktur bestehend aus
Vier Zuständen, 1, 2, 3, 4 heißen die.
Und dann steht danach, welche atomaren Propositionen da gelten.
Es gibt also die Proposition PQ&R. Und jetzt steht da rechts
daneben im ersten Kasten im Zustand 1. Ja, gilt AFQ.
Also es gilt auf allen Faden vom Zustand 1 ausgehend.
Das ist der Zustand ganz links. Dass dort irgendwann in
der Zukunft kugelt. So ist das der Fall.
Von 1 komme ich nach
Dann gilt schon mal Kuh. Oder ich komme nach zwei,
da gilt es nicht, aber von zwei komme ich
nur nach drei und da gilt Kuh.
Also diese Eigenschaft gilt schon mal. Denn direkt da drunter,
der dritte Zustand sagt, es gibt keinen Pfad,
es ist nicht der Fall, dass es einen Pfad geben würde,
auf dem immer pegelt.
Schauen wir mal im dritten Zustand nach. Da habe ich
so verschiedene Möglichkeiten. Also entweder bleibe ich immer im Zustand
drei. Oder ich mache das nur endlich oft,
wechsle dann mal nach vier und komme wieder zurück
Und tauscht da entweder unendlich oft hin und her oder endlich oft,
aber da sieht man schon, auf allen Faden,
die ich mir da so bilden kann,
da gilt immer mal zwischendurch, P nicht,
weil ich im Zustand dreimal wieder landen muss.
So, das gilt also auch nicht. Was haben wir dann,
wenn da kein Zustand steht, dann meinen wir damit,
es gilt in allen Zuständen, bei seiner gesamten Struktur.
Und da steht AGAF, also jetzt mein komplexere Formel,
die sagt,
auf allen Faden gilt immer
Dass wenn ich dort starte, auf allen Faden
in der Zukunft ehrgelt. Also der erste Block sagt,
egal wo ich hinkomme, auf allen Faden immer.
Das heißt, irgendein zukünftiger Zustand haben wir jetzt.
Und von dort gilt alle Fade, die ich jetzt basteln kann,
haben die Eigenschaft in der Zukunft eher.
Ich komme irgendwo hin, dann gilt in der Zukunft eher.
Aber von da gilt ja das Gleiche,
denn da bin ich ja hingekommen.
Also gilt auch von da wieder,
dass ich in der Zukunft
eher erreichen kann
Also es ist die Aussage, die ich getroffen habe, ärgelt immer wieder.
Oder mit anderen Worten und endlich oft gilt er.
Und das ist relativ klar, wenn ich im Zustand eins starte,
dann muss ich nach zwei oder vier,
von zwei kann ich nur nach drei kommen.
Das heißt, wenn ich in eins oder zwei starte,
dann lande ich in drei und vier.
Und aus den beiden komme ich nicht wieder raus.
Und da habe ich auf allen Faden die Möglichkeit,
also von vier, muss ich irgendwann nach drei gehen,
von drei bleibe ich entweder da oder komme irgendwann wieder zurück
Das heißt, ich komme immer wieder zum Zustand 3,
egal wo ich starte, egal was ich zwischendurch gemacht habe.
Immer wieder wird der Zustand 3 durchlaufen. Deswegen gilt auch,
weil im Zustand 3 Ehrgeld, AGAFR. Und so kann man
das weiter basteln, AGP oder Q? AG heißt,
haben wir schon gesehen, in jedem erreichbaren Zustand,
gilt P oder Q. Ja, 1 und 2,
der gilt P und in 3 und 4 gilt auf jeden Fall Kuh.
Also die Aussage gilt auch
Und zum Schluss noch ein Antil-Aussage auf allen Faden gilt P-Ante Kuh.
Woran sieht man das? Naja, wenn ich oben lang gehe,
ich starte irgendwo bei 1, 2, die erfüllen schon mal P.
Dann komme ich zum Zustand 3, da gilt Kuh.
Wenn ich in Zustand 3 starte,
dann gilt gleich Kuh, also gilt auch P-Antil Kuh.
Wenn ich im Zustand viel starte, gilt auch Kuh,
also auch P-Ante Kuh.
Oder wenn ich unten lang laufe,
gilt auch erst P und dann Kuh
Egal in welchem Zustand ich starte, welchen Fahrt ich nehme,
nach kürzester Zeit erreiche, also einen Zustand in den Kugelt.
Gucken wir noch hier noch mal diese acht Kombinationsmöglichkeiten.
A, X und E, X. Anhand zweier Beispielen bei,
es gibt einen Pfad, sodass im nächsten Zustand die gilt,
da würde es mir reichen,
wenn nur der Linke Kindknoten die erfüllt
Und wenn es allquantifiziert ist, müssen es natürlich alle Kennknoten sein.
In diesem Beispiel sind es also bei AXG die beiden unteren Knoten,
die schwarz gefärbt sind, weil sie G erfüllen.
So, da muss ich bei dem X-Operator nur ein in die Zukunft schauen.
Beim Future-Operator so ähnlich, nur bei A-Future G gibt es
halt irgendwo in irgendeiner Ebene so einen schwarz gefärbten Knoten.
Und bei AFG gibt es jetzt einen kompletten Querschnitt durch den Baum.
Ja, das muss nicht auf einer Höhe sein
Das ist nicht erforderlich, aber es handelt sich um eine maximale Menge unvergleichlicher Elemente zu handeln.
Also die weder in Eltern-Kind-Beziehungen stehen, das heißt,
die gehen nur bis zur Wurzel zurück, die sind unvergleichend.
Hier habe ich ein Beispiel, die sind alle nicht ansortiert.
Also das ist ein Querschnitt durch den Baum. Wenn ich das jetzt nicht sage,
irgendwann in der Zukunft, sondern immer in der Zukunft soll das gelten,
naja, wenn ich sage, es gibt ein Pfad,
auf dem das immer gilt,
dann starte ich jetzt von schwarzen Knoten und kann mich da durcharbeiten.
Und wenn ich sage, auf allen Fahnen gilt immer,
geh, dann heißt das, dass ich einen komplett geschwärzten Grafen erwarte.
Und jetzt noch einmal für einen Till, wenn ich sage,
es gibt einen Pfad, auf dem die 1,
Antill G2 gilt, da muss irgendwann also mal G2 eintreten,
also der rote Zustand eingenommen werden.
Und alle Knoten auf dem Pfad dahin, das ist ja am Baum,
sowieso eindeutig, Die sind dann G1 erfüllend, also grün.
Und wenn ich das All quantifiziere, dann ist es ein Tick komplizierter,
dann erwarte ich also wieder in jedem Querschnitt,
oder ich erwarte, nein, ich erwarte einen Querschnitt,
in dem immer rot gilt, also G2.
Und ich erwarte alle Knoten, die da oberhalb dieses Querschnittes liegen,
erwarte ich die Farbe grün, also es gilt G1.
Das sind also so die Operatoren, die ich zur Verfügung habe. So,
nach diesem Beispiel, jetzt wissen wir,
was die Operatoren so als Konsequenzen haben,
jetzt wollen wir uns mit den semantischen Äquivalenzen beschäftigen,
also welche Formeln bedeuten das Gleiche, semantische Qualenz bedeutet wieder,
bedeuten in allen vorstellbaren Modellen das Gleiche.
Das heißt, eine Formel ist Äquivalenz zu einer anderen Formel,
wenn sie beide gelten, in jedem Modell oder beide nicht gelten.
Und ein paar sehr wichtige Qualenzen, die wir auch brauchen,
die sind in diesem Satz zusammengefasst, die sagen nämlich so ein paar Dinge aus,
was wir jetzt schon mal wegschmeißen können.
Das Erste, was hier steht, ist AX,
ist das Gleiche wie Nicht-EX
nicht geben
Diese Dualität, ja, ich kann auch sagen,
nicht AXG ist das Gleiche wie EXG. Ja,
dann habe ich einmal die Negation komplett reingetrieben und aber zu eh.
Wenn ich das so formulieren möchte, ja,
dann auf jeden Fall sehe ich, das hat zur Auswirkung,
ich brauche nur einen von den beiden Operatoren,
ich spare mir entweder AX oder EX.
Das kann ich mir jetzt aussuchen. Denn wenn ich einen von beiden habe,
dann kriege ich den anderen durch hinzufügen von hinreichend vielen Negationen
ja auch.
Okay,
einen schon gespart
EF, also Einfahrt, hat in der Zukunft die Eigenschaft G,
Future G, wissen wir, das können wir durch True Anthologie ausdrücken.
Das gilt auch in dieser Logik, wenn dein Ehevorsteht.
Das heißt, der EF-Operator wird auch nicht gebraucht, wird
den E-Antil-Operator haben. Schon wieder einer will. AG,
brauche ich auch nicht, wenn ich EF habe,
denn auf allen Faden gilt immer,
dann ist es wohl nicht der Fall,
dass es irgendeinen Ablauf gibt,
in dem irgendwo die Negation von hier gilt
Ja, es ist inhaltlich klar, zeigt aber auch,
wenn ich AG, brauche ich auch nicht,
das kann ich durch EF ausdrücken, aber EF brauche ich auch nicht,
das kann ich durch einen Till ausdrücken.
Also der Antill-Operator ist wieder, eh an Till ist ganz praktisch,
da fliegen mich schon AG und EF, diese beiden Kombinationen raus.
Und was sieht man noch? Auf allen Faden gilt G1 an Till G2,
das kann ich darstellen, ich habe einen Punkt übersprungen,
auf allen Faden gilt in der Zukunft G, Heißt,
also es gibt keinen Fahrt, auf dem immer die Negation gelten würde.
Ich habe ja immer garantiert einmal einen Zustand, wo gegelt.
Also AF und EG kann ich auch ausspielen,
in diesem Fall werde ich AF rausschmeißen.
Denn in der letzten Zeile brauche ich gerade den Operator EG.
Nein, da sage ich nämlich A, G1,
Antil G2, kann ich ausdrücken durch.
Und es gibt ein Fahrt E an Till,
also die Kombination EU und ein Ausdruck mit EG
So, das heißt, die beiden werden wir vermutlich reinnehmen.
Und wenn man das zusammenfasst, dann bleiben da gar nicht
so viele übrig, das halten wir noch mal fest.
Was ich so erzählt habe, läuft darauf hinaus,
wir wollen EX behalten, wir wollen EU behalten und wir wollen EG behalten.
Als Operatoren. Das wäre so ein Dreiersatz. Das kann
man auch anders aufziehen. Ja, mit anderen Kombinationsmöglichkeiten,
so wie in Aussagenlogik auch, da weiß man nicht.
Oder das reicht im Prinzip für alles,
aber auch zum Beispiel, es gibt andere minimale Sätze.
Wir wollen später mal gucken, Was ist ein interessanter,
minimaler Satz? Das ist für mich einer, der möglichst
klein ist und möglichst leicht sich in Algorithmen hießen lässt.
Aber es ist gut, jetzt schon diese Äquivalenzen zu haben,
da kann man dann schon mal sich parken, Operationen sparen,
die man nicht mehr implementieren muss dann deswegen.
Was gilt noch? Wir haben noch so ein paar Distributivgesetze.
Also wenn ich AG habe für das Konjunkt, PMC,
das heißt ja, es gilt immer in allen Zuständen.
Der ganze Baum ist mit Knoten gefärbt, die PMC erfüllen
Naja, das ist genau das Gleiche, wenn ich sage,
in allen Zuständen mit Vieh und in allen Zuständen gibt es sie.
Genauso EF sagt, es gibt mindestens einen Knoten in
diesem Baum, in dem Vieh oder Psiegelt.
Und auf der rechten Seite steht, es gibt mindestens einen Knoten,
in dem Fiegelt oder einen in dem Ziegelt.
Dann weiß ich auch, eins von beiden trifft zu.
Und dieser Knoten hat dann ja die Eigenschaft, meinetwegen die Eigenschaft.
Vieh, dann hat dieser Knoten auch die Eigenschaft Vieh oder Psie
So, das gilt jetzt aber nur eingeschränkt für diese beiden,
auf der rechten Seite steht,
für EG zum Beispiel darf ich das nicht so umklammern.
Also wenn es einen Fahrt gibt, auf dem immer die Konjunktion gilt,
dann ist es nicht Äquivalenz, sodass ich einen Fahrt habe,
auf dem immer fiegelt und einen, in dem er immer psiegelt.
Na klar, wenn ich einen Fahrt habe, auf dem beides gilt,
dann gilt natürlich auch jeweils eine Sache da drauf.
Das heißt, von links nach rechts gilt das schon.
Aber wenn ich einen Fahrt habe, auf dem fiegelt ich
einen irgendwie anderen Fahrt habe, auf dem siegelt,
der muss das ja nicht der gleiche Pfad sein.
Deswegen gilt die Lesart von rechts nach links eben gerade nicht.
Und so ist das bei AF auch,
wenn ich auf allen Fahnen in der Zukunft einen Zustand habe,
der beides erfüllt, dann gilt natürlich auch,
dass dieser zukünftige Zustand sowohl als auch erfüllt.
Aber wenn ich einen zukünftigen Zustand habe, der viel erfüllt,
auf jedem Pfad und einen anderen Zustand auf diesen Pfad,
Der PC erfüllt, dann muss das nicht der gleiche Zustand sein.
Also es muss nie ein Zustand geben auf diesen Pfad,
der beides erfüllen würde zugleich. Und drittens viertens analog. Das heißt,
man kann dann nicht beliebig ausklammern, alles ist nicht erlaubt,
aber das kennt man ja auch von Prädikatenlogik,
da darf man ja auch nicht beliebig Quantoren und Konjunktionen irgendwie verschieben durch die Gegend.
Was man jetzt machen kann, das ist jetzt ein Exkurs,
man kann jetzt sich überlegen, es gibt noch mehr Gleichung,
Und das sind sogenannte Fixpunktgleichung.
Warum heißt das Fixpunkt? Naja, schauen wir mal in
diesen Kasten gleich die erste Zeile. Da steht AFV,
also auf allen Faden, gilt in der Zukunft Vieh.
Das ist semantische Qualent zu, naja, entweder gilt es
jetzt, oder auf allen Faden gilt im nächsten Zustand.
Also ich gehe im Baum eine Ebene tiefer,
alle Zustände, die ich da habe und sage,
von dort gilt das denn eben.
Das heißt, ich zerlege das in alle Kindknoten,
haben dann
die Eigenschaft
Entweder es gilt jetzt bei der Wurzel oder es gilt in allen Kindknoten.
Sodass diese Eigenschaft, also sinnvoll ist, das glauben wir.
Und wenn man jetzt feststellt, was steht da,
da habe ich auf der linken Seite AFV stehen und auf
der rechten Seite habe ich eine Formel, da kommt AFV auch vor.
Das ist also etwas, links steht ein Ausdruck,
nennen wir ihn mal X und rechts steht irgendwie etwas in
dem X vorkommt, also F von X.
Also steht da X gleich F von X. Und ein Ein Wert X,
der diese Eigenschaft hat, heißt Fixpunkt von F. So,
und deswegen nennt man solche Gleichungen und alle Gleichungen,
die darunter stehen, haben auch diese Eigenschaft,
dass auf der linken und auf der rechten Seite das Gleiche vorkommt.
Deswegen nennt man solche Gleichungen Fixpunktgleichung. Nein,
das kann man nur für die anderen genauso machen.
Also, nehmen wir mal den zweiten Block EFV.
Es gibt also einen Pfad auf dem zukünftig fiegelt. Das steht natürlich,
entweder gilt jetzt Vieh, oder es gibt einen Pfad,
jetzt einen Zustand, den richtigen,
den muss ich jetzt geeignet mir rauspicken, EX,
das heißt ein Kindknoten und von dem aus gilt,
dass irgendwo ein Fahrt abzweigt, das in der Zukunft wieder viel gilt.
So und was man jetzt machen kann,
man kann alle diese Operatoren tatsächlich charakterisieren und Hilfe dieser Fixpunktgleichung und der Gag an der Sache ist,
das kann man jetzt benutzen,
weil die Mathematik zu Fixpunktgleichung sehr elaboriert ist,
also man kann kleinste und größte Fixpunkte solcher Gleichung in geeigneten Strukturen finden definieren sowieso, finden auch, also effizient ausrechnen.
Das heißt, wir würden uns gewissermaßen lässig aus der Fähre ziehen,
um das Model-Checking hier zu machen, indem wir sagen,
wir rechnen das eigentlich gar nicht direkt aus,
sondern wir reduzieren unser Problem des Model-Checkings auf das Problem,
einen Fixpunkt zu finden.
Das ist mathematisch sehr elegant, heißt nämlich,
lass andere die Algorithmen schreiben oder wir nehmen einen Algorithmus,
den es schon gibt und sind die ganze Arbeitslast,
das Implementieren los
Das ist eigentlich ganz schön, also man kann auch sehr viel
mathematisch dran lernen. Wir machen das jetzt mal nicht,
weil wir tatsächlich am Kern bleiben wollen und algorithmisch etwas finden möchten.
Wir möchten also im Prinzip selbst die Algorithmen schreiben.
Wir wollen das mal selbst gemacht haben. Deswegen ist das
ein Exkurs, so könnte man das Ganze aufziehen,
wir machen das aber jetzt nicht so.
Wir gehen also anders vor. Jetzt nochmal zurück,
das hatte ich schon gesagt, es gibt acht Kombinationen,
A und E kombiniert mit X,
FG und
Und wir hatten gesehen, mit den Diqualenzen,
dass sich da fast alle rausschmeißen kann,
wenn ich nämlich den Operator EX gehe, EGG und E an Till,
G1G2 habe, dann kann ich mit Hüft der Äquivalenzen,
wie ich das vorhin erzählt habe,
die anderen fünf ausdrücken.
So, und das werden wir dann irgendwann in den nachfolgenden Vorlesungen auch machen,
dass wir für diese drei Operatoren tatsächlich konkrete Algorithmen angeben,
die das Ganze denn überprüfen können.
Ob eine Formel meinetwegen
EXG gilt oder nicht
Und dann ist es sinnvoll, nur drei zu haben und
nicht acht, das sparen wir uns Arbeit.
Sowie, was können wir jetzt noch machen?
Jetzt können wir uns überlegen, das haben wir bei LTL
auch schon gemacht, wie ausdrucksmächtig ist die Logik?
Bei LTL haben wir uns überlegt, was kann die
denn unterscheiden und was nicht? Wir haben festgestellt,
LTL ist nicht in der Lage, Transitionssysteme direkt zu charakterisieren.
Also es wäre dann eine unheimlich feine Logik,
wenn man sagen könnte,
ich kann zu jedem Transitionssystem eine Formel angeben,
die genau in diesem Transitionssystem und
sonst nirgends gilt
Das heißt, die Logik wäre so mächtig, Transitionssysteme eindeutig zu charakterisieren.
Denn wäre die Logik aber so mächtig, dass sie,
sagen wir mal, eigentlich praktisch gar nicht wertvoll ist.
Denn ein Clou von einer Logik ist ja,
dass sie uns irgendwie eine höhere Abstraktionsebene gibt. Das heißt,
es ist gar nicht so spannend, wie eigentlich ein System implementiert ist.
Wir wollen ja eigentlich nur Eigenschaften eines Systems beschreiben. So,
bei LTL haben wir zum Beispiel festgestellt, wenn zwei Krypto-Strukturen,
die beliebig aussehen, aber zufällig die Eigenschaft haben,
dass alle Pfade, die ich da durchlaufen kann,
zu jedem Pfad im Ein, gibt es einen Pfad im anderen,
im System, dass die gleichen Etikettenfolgen rauskommen.
Andere Pfade, aber bezüglich der Etikettenabbildung kommt das Gleiche raus.
Da haben wir gesehen, LTL kann das nicht mehr unterscheiden,
weil sie sich nur die Etikettenfolgen anschauen.
Das heißt, eine ganze Menge von Transitionssystemen,
also unendlich viele sogar, sind von LTL nicht zu unterscheiden.
Bei CTL, was ist da, was CTL nicht mehr
unterscheiden kann, das beweisen wir jetzt nicht.
Bei CTL kann man zeigen, wenn zwei Modelle bisimilar sind.
Das haben wir uns ja schon angeguckt, wenn sie einander simulieren können,
Denn können Sie nicht von CTL-Formeln unterschieden werden.
Also B-Simulation ist genau der Äquivalenzbegriff. Ich bilde die
Äquivalenzklassen von Krypto-Strukturen, die bezüglich einer Formel gelten.
Und ich werde feststellen, das sind alles Bisimilare Modelle.
Was wir uns jetzt noch ganz kurz angucken,
nachdem wir ungefähr so einen Blick dafür bekommen haben,
LTL, CTL, machen wir nochmal ganz kurz CTL Sternchen,
CTL Sternchen ist wie CTL.
Nur mit Sternchen. Also Sternchen bedeutet, eigentlich immer,
es ist eine Erweiterung von
Und welche Erweiterung bietet sich hier gerade an? Hier bietet es sich an,
dass sich diesen erzwungenen Wechsel auf jedem Fahrtquantor,
muss jetzt auch direkt ein XFG-Antil folgen, dass ich das einfach mal aufhebe.
Ja, also ein CTL-Stern hebe ich die Kopplung von Fahrt- und Zustandsquantoren einfach mal auf.
Wenn man das jetzt in Kurzsyntax schreibt, dann habe ich da Propositional LTL-Logic.
Und wenn ich mal die unwesentlichen Bestandteile weglasse, dann sage ich,
das ist eine Formel, die ist entweder atomar,
eine Negation, eine Dissunktion, X-Fee oder Fee-Antifie.
Denn A und F brauche ich ja nicht und Konjunktion brauche
ich auch nicht. Wenn ich Negationen ein bisschen zunehme.
Und bei CTL haben wir eben definiert, naja,
das ist, entweder habe ich so eine Zustandsformel,
das ist atomar oder die Negationen, Disjunktionen oder es gibt.
Ja, und was kommt dann? Dann kommt eine Fahrtform
mit PC und die ist entweder die Negation einer Fahrtformel oder
X oder an Till, aber dann mit wieder Zustandsformen.
So, das kennen wir. Wenn ich jetzt daran drehe,
also die beiden orangenen Boxen, wenn wir jetzt zu CTL
Sternchen gehen, steht da eigentlich das Gleiche?
Nur bei Fahrtformeln steht da unten, auf X,
darf jetzt auch wieder eine Farbformel folgen, bei ein Till auch.
Und wenn ich möchte, darf ich,
das ist jetzt der erste, hervorgehobene Punkt,
für PC darf ich auch eine State-Formel-Fee nehmen.
Das heißt, die Argumente von X und U dürfen eigentlich
irgendeine Formel sein, von beiden Typen ist jetzt was erlaubt.
In dem Sinne ist es völlig klar,
dass LTL und CTL Teillogiken von CTL
Stern sind
Es ist ganz offensichtlich, CTL ist eine Teillogik von CTL-Sternchen.
Denn jede CTL-Formel kann ich auch in CTL-Stern hinschreiben.
Es ist direkt eine Formel der größeren Logik.
Und wenn ich die Semantik nicht völlig anders definiere,
hat sie auch die gleiche Bedeutung in der Neuen Logik.
Und bei LTL, da habe ich ja gar nicht Zustands- und Fahrtfolgen,
aber ich weiß ja, die Semantik einer LTL-Folge-Formel,
die sagt ja,
die Formel gilt,
wenn sie in allen Abläufen dieser Kripke-Struktur gilt
Das ist aber nichts anderes, als würdig die LTL-Formel mit einem AI quantifizieren.
Also ich sage, für alle Pfade gilt. Ja,
und das ist wiederum durchaus eine CTL-Sternformel, nämlich eine,
die mit einem A beginnt. Also A, Vi benutzt
. Und dann folgt eine Pfadformel und in dieser Pfadformel
kommen jetzt nur noch die normalen Quantoren XU-FG vor,
aber nie mehr ein A und ein E.
In diesem Sinne kann ich also jede LTL-Formel als sehr spezielle DTL Sternformel begreifen,
nämlich eine, die ganz am Anfang ein A stehen hat und dann nie wieder einen Fahrtquantur AI.
So, das hat den Vorteil, man könnte jetzt erstmal sagen,
ich brauche die Logiken LTL CTL nicht mehr,
die sind vielleicht historisch wertvoll.
Ich nehme aber gleich CTL Stern,
dann sind die anderen beiden ja nur noch Spezialfälle davon.
Warum habe ich das jetzt nicht gemacht? Das hat einen
einfachen Grund, die mächtigere Logik hat typischerweise Nachteil,
sie ist komplizierter in der Analyse
Die Speziallogiken LTL und CTL, die ja einschränkend davon sind,
die sind erst mal sowohl didaktisch einfacher zu vermitteln,
als auch teilweise komplexitätstheoretisch einfacher.
Das Modelchecking läuft mit Algorithmen, die einfacher sind.
Die Zeit- und Platzkomplexitäten sind besser. Das ist also der Grund,
warum man tatsächlich sagt, eigentlich möchte man gar nicht,
wenn sich es vermeiden lässt, CTL-Stern benutzen im praktischen Szenarien,
weil LTL und CTL,
wenn die auch reichen,
dann weiß ich,
die Modelchecker sind schneller
So, in dem Sinne, ist es theoretisch zwar ganz nett,
eine Oberlogik zu haben und für die Dinge zu beweisen,
weil sie dann in den Spezial-Loking erst recht gelten,
aber praktisch gesehen ist so ein Logikfragment,
wie LTL oder CTL durchaus praktisch.
Was wir jetzt gucken wollen, ist,
jetzt haben wir zwei Logiken, LTL, CTL,
CTL Stern, wenn wir eigentlich nicht mehr betrachten.
Jetzt fragen wir uns denn, naja, welches denn besser?
Welches schöner? Und die Antwort ist wie immer ein klares Jein,
das kann man so nicht sagen,
weil die Logiken Jeweils so ihre Stärken und Schwächen haben,
kann man nicht sagen, welche besser ist.
Zumindest nicht auf den ersten Blick. Es gibt manche Randbedingungen,
die die eine Logik mal vielversprechend erscheinen lassen und mal umgekehrt.
Wir wollen jetzt vorher mal herausarbeiten, wie CTL und LTL zusammenhängen. Also LTL Linia Time Logic,
weil es auf liegen Jahren Zeitstrahl interpretiert wird, also auf Farben,
Sequenzen in der Kripke-Struktur, wenn CTL ja Computation,
Treal Logic ist,
die in Bäumen interpretiert wird,
im Berechnungsbäumen,
also im Computation Tree
Das heißt, manchmal auch Branching-Time-Logic, weil die Zeit sich verzweigt.
Wie halt im Baum. Syntaktisch gesehen unterscheiden sich ganz offensichtlich.
Wir haben gesehen, LTL ist eigentlich eine, mit A,
universell quantifizierte Formel und dann folgt eine normale Fahrtformel F.
Und in CTL habe ich halt diese acht Kombinationen, die möglich sind.
Wobei ich eine Drei brauche, ja. Aber das ist
ja erstmal ein rein syntaktisches Merkmal. Ich stelle fest,
die Formeln sehen anders aus. Es gibt also Formeln,
die ganz offensichtlich, CTL-Formeln sind, aber keine LDL-Formeln.
Zum Beispiel ist die Formel EXF eine CTL-Formel,
aber weil sie mit einem E beginnt, kann sie keine LTL-Formel sein.
So umgekehrt ist die Formel A GF irgendwas,
also globaly in the future, keine CTL-Formel,
weil ja dort zwei auf Faden operierende Operatoren,
nämlich G&F,
direkt hintereinander vorkommen
Bei CTL muss aber das immer paarig kommen. Das heißt,
in jeder CTL-Formel weiß ich schon mal die Anzahl von As
und Es, ist gleich der Anzahl von XFGs und Us.
Wenn ich also A, GFP sage, dann habe ich ein Quantor,
nämlich das A, und zwei Fahrtquantentoren, nämlich G&F. Das heißt,
rein syntaktisch kann auch das keine CTL-Formel sein.
Also wissen wir schon mal, es gibt syntaktisch gesehen
unvergleichliche Formeln
Das ist an sich ja aber noch nicht so schlimm.
Denn das ist reine Syntax. Es könnte ja sein,
dass ich zu jeder LTL-Formel jetzt eine irgendwie anders aussehende Formel im CTL finde.
Also andere Optik, die aber semantisch das Gleiche bedeutet.
Also in allen Kripto-Strukturen sind Korrespondierende Formeln unfalsch gleichermaßen.
Wenn das der Fall wäre,
dann wären sie zwar syntaktisch unterschiedlich,
aber semantisch völlig gleichwertig
So, und das ist der Spannende, das ist die spannendere Frage.
Sind Sie jetzt gleich ausdrucksstark? Also können Sie
gleiche Modelle beschreiben oder nicht? Und der erste Hinweis,
den wir bekommen, dass es nicht ganz gleich sein kann,
den sind wir hier.
Wir haben hier zwei Krypto-Strukturen M1 in M2. Die sehen ein
bisschen anders aus. So der Hauptunterschied zwischen diesen beiden Krypto-Strukturen ist,
die linke Krypto-Struktur geht nur zu einem Zustand in den P-Gild
und verzweigt dann
Zu einem Zustand, in dem gilt halt nichts und
im anderen gilt Kuh. Und die zweite Kripkri-Struktur,
die verzweigt sofort, aber in zwei Zustände,
in denen jeweils für sich pegelt, also horizontal vergleichbar,
aber sie haben dann jeweils einen der beiden Zustände,
nur als Nachfolger.
So und ab da ist es dann wieder gleich,
da geht es gleich weiter. Und jetzt fragen wir uns,
piept es zwei Formeln oder gibt es mindestens eine Formel in LTL,
die diese beiden Modelle auseinanderhalten kann
Also gibt es eine, diese beiden Modelle trennende Formel,
könnte ich auch fragen?
Ja oder nein
Ja. Also ich wiederhole das nochmal.
Wenn wir hier betrachten, welche Abläufe können wir laufen?
Dann können wir im Linken einen Pfad, nämlich links lang laufen,
in dem wir erst P und Q, dann P und dann nicht.
Oder rechts lang P-Q, P-Q. Das ist aber exakt das Gleiche,
was das rechte System auch anbietet, nämlich zwei Pfade,
P-QP nichts. Und auf der rechten Seite P-QP und Q.
Das heißt, bezüglich des Leihen Aktionsfolgenverhaltens sind die beiden identisch.
Sie haben gleiche Sequenzen oder etikettierte Sequenzen. Und da wissen wir ja schon,
wenn die Folgen, die Tikettenfolgen gleich sind,
dann kann ich sie mit keiner vorne unterscheiden.
Denn erst ab da bekommt die Logik sie ja zu Gesicht.
Das heißt, LTL, für die gilt,
da habe ich wenig Chancen, das zu unterscheiden.
Was meint ihr, was ist bei CTL
Das heißt, es gibt ein Adventure. Es gibt ein
Fehler von Philippinen, Vater, auf der Bauch. Also erstmal,
die Antwort ist implizit, ja, es gibt eine Formel,
die sie unterscheidet und der Vorschlag war, man muss ja irgendwie rauskriegen,
dass das eine System nach einem Schritt noch die Möglichkeit hat,
Kuh wahr zu machen für alle Möglichkeiten.
Ja, das linke System kann auf allen Kindknoten im nächsten Schritt noch mal Kuhwar machen.
Während das rechte System die Eigenschaft nicht hat,
die nicht auf allen Faden kann der Kindknoten im nächsten Schritt Kuh machen,
nämlich wenn ich links lang gehe.
So, ich habe das jetzt nicht ganz irgendwie behalten,
aber ich interpretiere das jetzt mal positiv mit.
Ich würde sagen, so eine Formel, die sagt,
wie, AX, also auf allen Faden gilt im nächsten Zustand
Dass E X pegelt. Diese Formel gilt im linken System,
auf allen Faden AX, im nächsten Zustand,
da bin ich beim Zustand einen drunter,
in dem nur P gilt.
Und dann E X, Kuh, es gibt einen Pfad der Kuhwarmacht.
Das ist auch der Fall, da muss ich nur nach rechts gehen.
Links ist also wahr. Wenn ich jetzt rechts gucke,
wie ist es da?
Auf allen nächsten Zuständen AX
Dann gehe ich mal nach links lang und dann
E-X-Q. Nee. Davon geht nur ein Pfad aus. Und
auf dem Pfad gilt im nächsten Zustand gerade nichts mehr.
Also nicht mehr Kuh. Das heißt, so eine Formel könnte das unterscheiden.
Und was ist die Ursache, die tiefer liegende Ursache?
Kann man das vielleicht irgendwie benennen? Noch ein bisschen lauter. Ja,
das ist so das Standardbeispiel, als für B-Simularität betrachtet haben.
Der Zeitpunkt des Verzweigens spielt hier eine Rolle,
die die beiden Systeme sind eben nicht b-Simular
Da fängt das also genau an. Hier haben wir noch mal ausgereizt.
Wir haben ein nicht-bisimulares System. Und genau dann habe ich
die Möglichkeit, bei Nicht-bisimularität, das irgendwie rauszukriegen.
Dieses unterschiedliche Verzweigungsverhalten kann ich mit diesem A-X-E-E-X und ähnlichen Scherzen wieder rausbasteln.
Ja, und das ist also gewissermaßen das erste Indiz,
das diese beiden Logiken nicht gleich mächtig sind. Wir haben festgestellt,
für LTL würden diese beiden Systeme immer in der gleichen Äquivalenzklasse
einer Also entweder sind beide drin für eine Formel oder sie beide draußen.
Sie werden aber nicht unterschieden. Während für CTL habe ich
ja eine Formel gefunden, sodass klar ist,
liegt in der einen Klasse und liegt in der anderen Klasse.
CTL kann die beiden also unterscheiden, LTL nicht.
Es ist in diesem Sinne, ist CTL schon mal stärker
gewesen für dieses Beispiel. Ich kann ja nämlich mit CTL
zwei Systeme unterscheiden und LTL kann das nicht.
Und man nennt eine Logik stärker,
wenn sie halt mehr unterscheiden kann
Das kann man jetzt alles nochmal nachrechnen, will ich aber gar nicht.
Jetzt fragt man sich, wie sieht das andersrum aus?
Es könnte jetzt sein, dass CTL irgendwie immer feiner ist.
Wir werden feststellen, dass es nicht ganz so,
wir gucken uns das jetzt an,
es gibt nämlich Beispiele für Formeln, in der einen Logik,
die nicht in der anderen gehen, nicht darstellbar sind.
Und die erste Aussage, die wir haben, ist,
es gibt keine CTL-Formel,
die Qualent zur folgenden LTL-Formel wäre
Also was da steht, A, FGP ist offensichtlich eine LTL-Formel.
Denn am Anfang ist es allquantifiziert. Und danach folgt FGP,
was eine handelsübliche LTL-Formel. Und das bedeutet, wie es da steht,
auf jedem Pfad gibt es einen Zustand in der Zukunft,
ab dem P dann immer gilt.
AfG, P. Also bildhaft, egal welchen Pfad ich nehme,
irgendwo in der Zukunft beginnt das Ding nur noch schwarz
zu werden
Hier ist unser Anfangsstücke. Da gibt es so ein,
zwei Äste, die sind noch nicht schwarz,
aber da muss auch irgendwann mal tiefer gesehen ein Zeitpunkt kommen,
wo das Ganze schwarz wird.
So, und da ist jetzt die Aussage,
das kriege ich nicht hin in CTL,
weil CTL das irgendwie nicht so ausdrücken kann.
Gut, das beweisen wir jetzt gar nicht. Da brauchen
wir ein paar Techniken, die wir noch nicht haben.
Jetzt lassen wir einmal hingestellt und gucken mal so Ähnliches an
, jetzt andersherum.
Ich gebe meine CTL-Formel vor
Die CTL-Formel AG EFP sieht fast genauso aus,
wie die Formel eben, nur dass ich noch ein E reingemogelt habe.
Also auf allen Faden gilt immer, also wohin ich auch immer komme,
jeder Zustand, da gibt es einen erreichbaren Zustand,
das drückt EF aus in den Pegelt,
also von jedem Zustand ist einer erreichbar in den Pegeln.
Ja, das ist ein bisschen was anderes,
als wir, was wir eben hatten.
Das ist nicht äquivalent zu der Aussage AGRP
Denn für AGFP, was ja eine CTL-Formel wäre,
das ist ja die Aussage.
Auf allen Faden gilt immer, dass in der Zukunft P gilt.
Das heißt, da ist es gewährleistet, dass man pegelt.
So, jetzt kann ich mir folgendes System mal schauen.
Da habe ich so einen Hauptarst, der geht so schräg nach links unten.
Und in jedem Zustand habe ich einen Abzweiger, in dem pegelt.
Was gilt also, egal wo ich hinkomme, Ja,
und wir nehmen mal an, wenn P gilt,
dann gilt da auch immer P weiter.
Egal, wo ich also hingekommen bin, links runterlaufend,
habe ich immer einen erreichbaren Zustand, in dem P gilt.
Ich muss ja einfach nur nach rechts abbiegen. Dummerweise,
obwohl der Zustand der erreichbare Zustand immer da ist,
muss ich den nie realisieren.
Ich könnte also so penetrant sein und immer nach links weiterlaufen
, immer weiter. Das heißt, eine Abfolge betrachten,
einen Pfad,
auf den
nie pegelt
Das heißt, es gilt gerade nicht die Eigenschaft,
dass immer in der Zukunft pegelt,
genau für diesen Pfad gilt die Eigenschaft nämlich nicht.
Diese eine einzige Fahrt versaut mir das. Dieses E sagt mir nicht,
dass ich es ihn tatsächlich finde, sondern dass ich immer
die Chance hätte, diesen Pfad auch zu erreichen.
Ich musste aber nie jemals durchgelaufen sein. So,
das heißt, AGFP ist es schon mal nicht,
wie vielleicht man denken könnte, aber das ist noch kein Beweis dafür,
dass es gar keine Formel gibt, ein CTN,
die dazu äquivalent wäre.
Schauen wir mal, wie kann man das beweisen,
dass sich diese Formel AGEFP sich nicht in der LTL
ausdrücken lässt
Naja, das machen wir mal folgendermaßen. Wir haben hier
zwei Krypto-Strukturen. K1 und K2. Und was haben wir jetzt hier,
wenn ich eine Formel habe, die im linken System gilt?
Betrachten wir erst mal das. Wenn eine Formel im
linken System gilt, gilt sie also für alle Abläufe,
die die Bauart haben, unendlich auf P.
Das ist ja so das, was möglich ist.
Ich bleibe immer in diesem Zustand S. Und die Variante ist,
ich mache das nur endlich oft und gehe dann in den Zustand,
in den gelben Zustand daneben und bleibe dann in dem
Also diese beiden Arten von Zuständen habe ich, von Faden
habe ich. Jetzt betrachte ich das zweite System K2,
dass einfach dieser Übergang in den gelben Zustand weg.
Was dazu führt, dass das System K2 weniger Pfade hat.
Alle Pfade von K2 sind auch Pfade in K1. Wenn ich also betrachte,
einen Pfad in K2 und in dem gilt eine Eigenschaft,
weil ich fange es lieber andersrum an,
angenommen ich habe für alle Pfade die Eigenschaft,
Im K1, dass irgendeine Formel gilt.
Dann gilt sie ja für alle Pfade. Dann gilt sie insbesondere
auch für den Pfad, in dem ich immer einen Zustand ess bleibe.
Da man rechtes System K2 aber nur diesen einzigen Pfad kann,
gilt die Formel auch da. Das heißt, die Aussage,
dass eine Formel ein P1 gilt, ist so stark,
weil sie eine ganze Menge Pfade betrachtet,
dass sie erst recht in K2 gilt.
So, das ist der erste Punkt. Jede LTL-Formel,
die in K1 gilt, gilt auch in K2.
Und jetzt gucken wir mal
Das linke System, in dem gilt AGEFQ.
Denn egal wie lange ich im Zustand esse, verharre,
ich habe immer die Chance,
die Abzweigung in den gelben Zustand zu nehmen, in dem Yaku Gill.
Also ich habe immer die Chance, egal wo ich hingekommen bin,
AG, kann ich irgendwo hinkommen, EF, wo Kuh gilt.
Deswegen gilt AGF, AGEF, Kuh im linken System.
Im rechten System gilt es natürlich nicht,
weil dort nie kugelt,
kann gar nicht Geld
So. Das haben wir jetzt also festgestellt,
wenn es eine LTL-Formel gäbe, die Äquivalent dazu wäre,
zu Argeth, da hätten wir einen Widerspruch.
Denn wenn es diese Formel gäbe, dann wird sie ja,
sie geht ja links, weil sie Äquivalent ist zu AGFQ.
Und dann haben wir gesagt, naja, wenn eine LTL-Form
im linken System gilt, dann auch im rechten.
Das heißt, diese zu AGFQ-äquivalente Formel würde jetzt
auch in Part 2 gelten
Aber für dieses System wissen wir, argev kugelt gerade nicht.
Widerspruch. Die Annahme, dass ich eine zu argev,
kuh äquivalente LTL-Formel hätte, führt seinem Widerspruch.
Ich dachte, es scheint mir so die Lordung da zwei gelten.
Denn die Formel ist ja, also erstmal habe ich die Aussage,
jede LTL-Formel, die ein K1 gilt,
gilt auch ein K2. Ist das klar oder nicht?
Ne, das habe ich vorhin versucht zu erklären.
Links habe ich
mehr Pfade als rechts
Alle Pfade, die ich rechts habe, sind auch bereits links da gewesen.
Deswegen gilt, wenn es für alle Pfade des linken Systems gilt,
dann gilt es erst recht für alle Pfade des rechten Systems.
Das heißt, eine LTL-Formel, das gilt ja,
muss ja für alle Pfade gelten,
wenn für weniger Pfade gilt, ist erst recht.
So, und das ist der erste Baustein.
Jetzt nehme ich an, ich habe eine zu AGF-Kuh-äquivalente Formel.
Da habe ich ja zwei Eigenschaften. Ich habe mir eben angeguckt,
AGF-Kuh gilt im Linken, das sehe ich und AGF-Kuh
gilt im Rechten nicht.
Jetzt nehme ich
die neue Qualente-Formel
Und stelle dann fest, ja, es gilt im Linken
, immer noch. Ist ja äquivalent zu dem Original.
Müsste aber im Rechten auch Geld nach dem,
was uns gemacht haben, gilt aber nicht.
Widerspruch. Okay. Also wissen wir auch, es gibt
so gewisse Formeln, die sich nicht semantisch doll matchen lassen.
Man kann gewisse Sachverhalte in diesem Fall im CTL beschreiben,
die ich nicht in LTL darstellen kann.
Und die Folie davor sagte,
andersrum gibt es auch eine Formel,
die ich auch nicht
doll matchen kann
Das Ganze folgt übrigens nochmal, das ist auch wieder
ein Exkurs, weil wir es nicht beweisen wollen.
Es geht einen ganz allgemeinen Satz. Dann immer ich eine
CTL-Formel habe und mich frage, gibt es eine LTL-Formel?
Kleinvieh, die die Eigenschaft hat, semantisch,
äqualent zu der CTL-Formel Großpsie zu sein.
Da gibt es eine einfache Charakterisierung. Ich nehme mal
die CTL-Formel und streiche alle Fahrtquanturen raus.
Also ich gehe einfach mit einem schwarzen Edding und streiche
jedes A und jedes E weg
Was da übrig bleibt, ist ja eine LTL-Formel.
Kann ich noch ein A wieder da vorne vorpacken,
dann ist es auch A, gefolgt von LTL-Formel.
So, und jetzt sagt der berühmte Satz von Clark und keine Ahnung,
wie man ihn spricht. Entweder ist diese Formel,
die ich bekomme, wenn ich alle As und Is wegstreiche,
Äquivalent zu meiner Ausgangsformel, oder es gibt gar keine.
Also entweder ist es die oder gar keine. So,
und da können wir dann eben noch mal gucken,
EGAFP, folgt daraus, das ist ja eine CTL-Formel,
was streichen wir da weg, E und A,
dann wird GFP übrig bleiben, also auf allen Fahnen gilt immer,
dass in der Zukunft P gilt, also endlich auf P,
wenn ich das in LTL also wegstreiche, habe ich GFP,
das wissen wir, das heißt unendlich off P.
Und jetzt nehme ich ein System hier unten,
da gilt P links, also es gibt einen Pfad,
auf dem immer gilt, also einen erreichbaren Zustand,
da gilt auf allen Faden, die davon abzweigen,
ja Kunststück, das ist nur diese eine,
indem ich immer links unten bleibe, das pegelt.
Das heißt, das ist wahr. Aber es gilt nicht,
dass auf allen Faden unendlich oft P gelten würde,
denn es gibt ja noch den anderen Pfad, der nach rechts abzweigt.
Weil es einen zweiten Pfad hier gibt, sehe ich sofort,
ah, dieser zweite Pfad, der erfüllt nicht unendlich oft P.
Ja, null mal P gilt da nur in diesem Pfad.
Also sehr, sehr endlich oft. So,
und dieser Satz von Clark at at all, der sagt jetzt,
Wenn es überhaupt eine gibt, dann wäre sie Äquivalent zu dieser.
Da sehen wir eben, naja, aber hier,
das ist ein Beispiel für ein System,
bei dem die Formel EGAFP gilt, aber der Kandidat dafür,
der Äquivalent sein könnte, gegebenenfalls, der gilt hier nicht.
Also wissen wir sofort, wenn dieser Kandidat es nicht tut,
dann gibt es gar keine LTL-Formel, die es tun kann.
So, also auch hier wieder ein Korular, eine Folgerung.
Dies ist ein CTL-Formel, die nicht in LTL
ausdrückbar ist
So, und daraus können wir dann eben feststellen, es gibt CTL-Sternformeln,
die kann ich weder in CTL noch in LTL ausdrücken.
Ich nehme einfach die Formel AFGP, haben wir gesehen,
geht nur um einen,
ist also nur darstellbar in LTL und verknüpft das jetzt mit uns oder oder,
ist egal, mit AGEFP, was wir wissen,
geht in CTL aber nicht in LTL.
So, das kann ich also weder noch ausdrücken,
Und dann bekomme ich solche Bildchen, dass ich sage,
ich habe hier die Menge CTL, da kann ich AGEFP ausdrücken,
was ich nicht in LTL kann.
Und in LTL habe ich AFGP, das kann ich nicht in CTL ausdrücken.
Es gibt paar Formeln, die offenbar sowohl als auch gehen.
Also trivialer Fall, ich lasse alle temporal-logischen Quantoren weg.
Aussagen-Logik ist auf jeden Fall schon mal in der Schnittmenge.
Oder vorne ein A und dann genau ein Quantor,
also Formeln AG. Und dann eine Aussagen logische Formel,
das ist sowohl LTL als auch CTL syndaktisch.
Das klappt auf jeden Fall. Und dann unser Beispiel von eben,
dass es eben außerhalb von CTL und LTL aber in CTL sterben.
Gut. Jetzt gucken wir mal,
das war so die erste Kriterienkatalog, wir haben gesehen,
warum ist das weder das eine besser als das andere?
Wir haben festgestellt, naja, es gibt Eigenschaften,
die gehen im einen aber nicht im anderen.
Und jetzt hängt es so ein bisschen darauf an,
brauche ich gerade diese Eigenschaft,
dann kann ich darauf
gar nicht verzichten
Möchte ich AGIFP gerade irgendwie spezifizieren, dann weiß ich genau,
naja, dann kann ich nur CTL nehmen, weil LTL es nicht kann.
Oder eben umgekehrt, wenn ich AFG unbedingt beschreiben möchte.
Das heißt, die Spezifikation, die ich beschreiben möchte,
kann unter Umständen schon bestimmen,
welche Logik und welche Werkzeuge ich gegebenenfalls zu nehmen habe.
Das Nieste ist, man kann sich jetzt fragen,
wie gehen wir mit einem weiteren wichtigen Konstrukt um mit Fairness?
Für LTL haben wir gesehen,
gar kein Problem,
müssen wir
überhaupt nichts tun
Zumindest, wenn wir mit den Fairness begriffen,
die wir beim letzten Mal hatten, zufrieden sind,
die ließen sich mich komplett in LTL ausdrücken.
Ist also überhaupt nichts zu tun. Nämlich also die Fairness-Annahme
mit in die Spezifikationen rein, ja, als Vorbedingung.
Ich sage, wenn, fair, dann eigentliche Spezifikation.
Da habe ich also überhaupt nichts zu tun. Wenn man sich anguckt,
wie sah das aus bei Fairness-Bedingungen, wird man feststellen,
das sind leider ausgerechnet solche Formeln gewesen, ja,
die GF,
also die direkt zwei Quantoren von LTL,
also G&F
hintereinander hatten
Also genau so eine Situation, die ich,
wird sich dann rausstellen, nicht in CTL ausdrücken kann.
Das heißt, wenn ich Fairness haben möchte in CTL,
habe ich ein Problem. Das kann ich da nicht so einfach reinkodieren.
Muss ich irgendwie anders machen. Jetzt kann man sagen,
okay, anders machen heißt, muss ich denn,
muss ich denn gleich CTL Stern nehmen?
Kann man sagen, ja, könnte man in CTL Stern,
darf ich ja so eine LTL-Vorbedingung formulieren?
In CTL Stern ging es, aber dann wird man
eben feststellen, die Komplexität ist irgendwie so unappetitlich.
Also möchte man das nicht. Und was macht man,
wann immer man gewillt ist, irgendwie einen Ausweg zu finden,
man versucht, wie an der Theorie noch was zu drehen,
das zu drehen, drückt sie jetzt folgendermaßen aus.
Wir betrachten jetzt nicht jede Grip-Struktur, sondern nur noch welche,
die schon fair sind. Und wir sagen jetzt später,
naja, es soll nicht mehr in allen Systemen gelten,
damit es eine allgemeingültige Aussage ist oder in diesem System,
soll es nicht auf allen Abläufen gehen,
sondern nur auf Abläufen, die fair sind.
Wir machen also einen kleinen Trick.
Wir definieren die Semantik von Formeln um. Wir definieren jetzt
also CTL mit Fairness
So, was fairness ist, kennen wir schon so ein bisschen.
Also wenn ich zum Beispiel eine Alternative habe,
die sich ständig wiederholt und mir zwei Varianten anbietet,
dann ist klar, dass es nicht sein kann,
dass nur eine immer gewählt wird.
Das wäre äußerst unfair. Unendlich oft bietet sich mir die
Möglichkeit, A oder B zu wählen. Irgendwo sträubt es
sich dann in uns zu sagen, dass ein Ablauf,
der immer nur annimmt, dass das fair wäre.
Oder wir wollen irgendwas modellieren, Signalübertragung auf einem Netz
Da kann es natürlich passieren, dass die Übertragung gestört ist.
Es kann also zu elektrischen Störungen auf einer Leiterbahn kommen.
Aber wir können vielleicht davon ausgehen, physikalisch,
dass diese Störung nicht permanent ist. Also,
dass das System nur kurz irritiert wird, was weiß ich,
durch redaktive Strahlung, wenn es ein Satellit ist,
so ähnlich ist, dass sich das dann aber wieder gibt.
Das heißt, ich kann davon ausgehen, ein gestörter Kanal,
dass der immer mal wieder die Chance hat,
eine Nachricht tatsächlich korrekt zu übermitteln
Sowas braucht man bei gewissen Nachrichtenprotokollen, Alternierbit-Protokoll beispielsweise,
setzt darauf, dass irgendwann auch mal eine Nachricht durchkommt.
Nur, man kann natürlich nur die Korrektheit eines Protokolls garantieren,
wenn ich überhaupt die Chance habe, dass irgendwann mal wieder eine Nachricht durchkommt.
Wenn das Netzwerk komplett ausfällt, ist es nicht möglich,
die Korrektheit irgendeines verteilten Algorithmuses zu gewährleisten.
Solche Aussagen sind eben in CTL-Sternausdrückbar, aber nicht in CTL.
So wie angedeutet, ist CTL aber wünschenswert,
weil die Komplexitäten des Modelcheckens besser sind,
also der Tür, faire Semantik mit eingeführt.
Das Unfaire wird jetzt irgendwie ausgeklammert. Wir müssen also jetzt
ausdrücken, was ist fair und was ist unfair.
Und dann nehmen wir jetzt eine faire Kripke-Struktur.
Das ist eigentlich eine Kripke-Struktur wie vorher. Also die ersten
vier Komponenten sind gleich. Zustandsmenge, Startzustandsmenge, Übergangs-Relation und Etiketten.
Das ist eine normale handelsübliche Kripke-Struktur. Aber was jetzt hinzukommt,
ist eine endliche Menge, von solchen EF1, EF2-EFK,
also K-End-Zustandsmengen. Und was wir jetzt machen, ist,
wir kupfern eine Idee vom Büchi-Automaten ab.
Wir nehmen jetzt also ein Pfad, schauen mal nach,
welche Zustände kommen darin unendlich oft vor.
Also wir bilden wieder In-Finight von P,
wenn wir eine Zustandsfolge P haben, S0 ist 1 ist 2.
Und wir fordern jetzt, dass für jedes I von 1 bis K
die Unendlichkeitsmenge mindestens einen Zustand gemein hat mit dieser Endzustandsmengen.
Das war genau die Akzeptanzbedingung des Verallgemeinerten Büchi-Automaten
Machen wir mal den einfachen Fall. Ich habe nur eine
solche Menge EF1, dann heißt das also,
ein Endzustand aus EF1 muss unendlich oft vorkommen. Ja,
wenn ich zwei Mengen habe, dann gilt es eben,
die unendlich vorkommenden, einer muss mindestens da sein,
der in E1 vorkommt.
Und es gibt auch einen, der in E2 vorkommt.
Also damit können wir beispielsweise ein solches System uns anschauen.
Wir können hier also starten, gehen dann hier rüber
und wandern einmal rum
Hier nochmal, da nochmal hier. So, und jetzt kann man
sich eben überlegen, ich könnte ja jetzt immer weiter linksbummelig rumlaufen.
Aber vielleicht möchte ich ja beschreiben, dass ich mal auch
mal nach rechts gehen muss. Also ich könnte jetzt sagen,
immer mal wieder muss ich in diesen Zustand P mal kommen,
damit ich nicht nur den Durchlauf mache,
den ich jetzt mache, aber in dem Zustand,
in dem ich jetzt bin,
da habe ich immer für den linken Knoten entscheide.
Ja, das würde ich unfair empfinden.
Und dann sage ich, okay, du musst auch mal
da lang
Das ist eben auch, was wichtig ist.
Und dann darfst du meinetwegen da weitermachen,
dann kommst du wieder auch zu dem Zustand.
Dieser Zwischenknoten-P muss irgendwann mal mitgenommen werden. Und wenn ich das will,
kann ich zum Beispiel fordern, dass dieser Knoten-P unendlich oft getroffen wird.
Endlich oft verbiete ich dann mit so einer Endzustandsmenge.
Und die faire Semantik, die ich dann habe,
dann nehme ich die alte Semantik und drehe nur an
den Stellen mit dem Nummer 1,
5 und 6.
Also ich nehme die alten CTL-Bedingungen
Und drehe jetzt dran,
also ich habe ein neues in einer Krippenstruktur M und in einem Zustand S,
gilt, jetzt habe ich ein Index F dran für fair,
also die semantische Erfüllbarkeit mit Fairness-Bedingungen sagt,
das gilt in diesem Zustand, wenn es hier einen Pfad gibt,
der aber es anfängt und in dem gilt dann die Proposition P im Startzustand,
aber nicht irgendein Pfad,
sondern ein fairer Pfad und ein fairer Pfad ist eben,
der die Eigenschaft von eben hatte,
bei allen Endzustandsmengen kommt ein gewünschter Endzustand und endlich oft vor
Ja, also eigentlich will ich nur in der alten Definition,
wo Fahrt steht, setze ich fair davor.
Das heißt, in der semantischen Folge, wann gilt,
es gibt einen Pfad, also E, Klein F,
wenn es ein Bass beginnen, Fährenfahrt gibt,
und dieser faire Fahrt P, für den gilt dann eben ganz normal F.
Und für alle Pfade natürlich genau das Gleiche,
allen beginnenden Fährenpfade erfüllen ist. Also heißt im Umkehrschluss,
für die unfairen Pfade ist es egal,
ob es gilt
Bei denen nehme ich an, die passieren eh nicht.
Von daher können sie die Spezifikation noch nicht verletzen.
Wenn ich irgendwie einen Nachrichtenkanal habe, dann könnte ich mir zum Beispiel,
das ist jetzt gewissermaßen der kreative Part, ich muss diese Endzustandsmengen definieren.
Und wenn ich einen Kanal I habe,
dann könnte ich zum Beispiel sagen,
da packe ich jetzt alle Zustände S rein in die Endzustandsmenge.
EI, wenn gilt es erfüllt, nicht senden oder empfangen für
den Kanal I. Wenn ich jetzt einen fairen Pfad habe,
dann muss ich Durch einen solchen Zustand ess unendlich oft durch.
Das heißt, ich erfülle, entweder will ich gar nicht senden oder ich empfange.
Das heißt, ich kann das auch anders umschreiben, senden,
impliziert empfangen, weil nicht irgendetwas oder irgendwas heißt Cent-E impliziert Receive E.
Auf einem fairen Pfad gilt, also wenn gesendet wird,
dann wird auch empfangen. Und das unendlich oft.
Also immer wieder, jede gesendete Nachricht kommt auch an.
So, in diesem Sinne, so kann ich mir ungefähr
die Endzustandsmengen zusammenheißen
So, jetzt haben wir schon einen großen Block geschafft.
Alles, was wir an Logiken haben wollten, ist da.
Die Mathematik steht, wir haben LTL definiert, Semantik uns angeguckt.
Auch so den Bezug zu Bücherautomaten betrachtet. Das Gleiche haben
wir für CTL gemacht, sogar mit Erweiterung für Fairness.
Was jetzt die spannende Frage ist, kann man das praktisch nutzen?
Praktisch nutzen heißt in diesem Fall Model-Checking. Also Model-Checking,
ich spreche von Model-Checking, das ist eine sehr konkrete Frage.
Ich betrachte eingegebenes Modell, Eine gegebene Formel und schaue jetzt,
erfüllt das Modell diese Formel Spezifation.
Also ein klarer Verifikationsauftrag, den wir da haben.
Wir haben irgendwie eine Beschreibung des Systemverhaltens. Das ist jetzt
ein Transitionssystem vielleicht. Und wir haben ein System Spezifikation.
Und wir müssen jetzt nachweisen, dass das Verhalten zur Systemspezifikation passt.
Gibt es zwei Möglichkeiten, Theorien beweisen kann ich machen.
Da könnte ich sowas sagen wie,
ich beschreibe das System mit einer mathematischen Formel
Die Spezifation ist typischerweise eh eine. Und jetzt sage ich,
diese beiden Formeln, ja, die stehen in einer semantischen Implikationsbeziehung.
Also die Systemformel impliziert diese Spezifikationsformel. Ist total toll,
ist auch unheimlich weit einsetzbar. Also wenn unendlich große Zustandsräume da sind,
ja, wenn ganz böse Unendlichkeiten ins Spiel kommen,
der große Nachteil ist, der Nachschub an Leuten,
die so etwas machen können,
ist relativ gering
Wenn er purzeln an jeder Uni, sagen wir mal,
pro Jahr ein, zwei Leute raus.
Damit kann man keinen Softwarebetrieb irgendwie speisen.
Modelchecking dagegen ist netter und auch einfacher einzusetzen.
Da sagen wir, die Systemsemantik ist ein Modell der Spezifikationsform.
Und das wird überprüft. Beim ersten wird eine Implikation
mathematisch gesehen nachgewiesen. Beim anderen machen wir das,
was wir schon kennen als Skriptemodell im Staatszustand oder in allen Staatszuständen
, erfüllt eine Formel
Und das möchte ich eigentlich so machen.
Ich modelliere ein System in irgendeiner Programmiersprache. Zum Schluss drücke
ich auf den Knopf, es wird eine Kripke-Struktur generiert.
Irgendjemand anders schreibt im Zweifelsfall die Spezifikation F.
Und dann speise ich beide Parameter in ein großes Tool rein
und ich muss überhaupt nicht mehr wissen, wie das funktioniert.
Ich lasse das einfach rechnen und es kommt entweder
die Antwort Ja zurück oder Nein,
weil ich habe hier dieses und jenes Gegenbeispiel gefunden
Ja, das ist der Grund, warum das industriell Verbreitung findet.
Man muss nicht sehr viel Fingerspitzengefühl und mathematisch mehrjährige Ausbildung haben.
Man kann das einfach benutzen. So,
nehmen wir mal LTL Model checkt ihn als erstes.
Was wir im Prinzip machen wollen, ist, wir nehmen an,
wir haben eine Krypto-Struktur M, gegeben wie immer.
Und eine temporallogische Formel, also eine LTL-Formel F,
und haben jetzt folgenden Berechnungsaufwand.
Wir sollen die Menge aller Zustände F berechnen
Die die Eigenschaft haben, dass die Formel F genau für diesem Zustand gilt.
Und wir nehmen an, dass wir M explizit gegeben haben,
dass es jetzt schon eine relativ starke Einschränkung,
wir nehmen mich an, dass der Zustandsraum eines Systems endlich ist.
Für Hardware-Systeme geht das, ja, weil das sind Bits,
endlich viele davon, gibt einen sehr großen, aber endlichen Zustandsraum.
Da kann man das machen, aber viele andere Systeme haben
unter Umständen schon mal einen unbegrenzten Zustandsraum.
Kann es auch gehen. Aber machen wir uns das Leben
einfach, M ist hier durch sich selbst gegeben.
Explizit als Grab. Das ist ein Eingangsparameter. Wir suchen jetzt
einen Algorithmus, der diese Menge berechnen kann für LTL-Formeln. Und Modelchecking,
wenn ich jetzt einfach das machen würde und sagen würde,
na, wie könnte denn die Spezifikation und das System gegeben sein?
Ja, mein System selbst ist ein Transitionssystem,
da weiß ich, das ist endlich, also ein endlicher Automat.
Vielleicht nur endliche Abläufe, die ich betrachten will.
Und war meine Spezifikation vielleicht auch so ist,
Ich sehe als endlichen Automaten deuten will, dann frage ich mich einfach,
ist jede Ablauf des Systems auch ein Ablauf der Spezifikation?
Oder als Mengeninklusion geschrieben? Die Menge der Systemabläufe,
die Usersprache ist eine Teilmenge der Spezifikationssprache. So,
und beim nächsten Mal gucken wir uns an,
wie das umgeformt wird und welchen Algorithmus man daraus machen kann und
was das mit LTL zu tun hat. Entwickeln dafür einen Algorithmus und das Gleiche nochmal für CTL.
Das in der nächsten Woche, dann sind wir uns wieder am Dienstag.