Das ist also die bequeme Variante, ein Prozess P,
der irgendwie intern was tut, das darf der machen,
dann muss der Prozess Kuh gar nicht antworten.
Wie soll er auch auf stille Dinge, also Dinge,
auf die man nicht hört, was soll er da machen?
Von daher muss Kuh gar nichts tun, aber es muss so sein,
P darf gewissermaßen Bandauübergang die Alternativmöglichkeiten nicht verändern.
Und das sieht man daran, wenn P und Kupi-Similar sind,
wissen wir, die können letztendlich das Gleiche tun.
Jetzt macht P eine Tower-Aktion, kommt zu P-Strich
Und die beiden sind immer noch B-Seminar. Das heißt,
Nachfolgezustand P-Strich kann immer noch das Gleiche tun wie Kuh.
Das heißt, wir haben hier eine Tau-Aktion,
die keinerlei alternativen eliminiert, sondern er hält alle alle Alternativen.
Kann auf eine andere Thermkodierung hinauslaufen. Ja, P-Strich ist
im allgemeinen Fall immer anders als P. Aber die Aktionen,
die P&P-Strich machen, da gibt es keinen Unterschied.
Ja, das ist die eine Möglichkeit, die ich habe.
Und die Variante 2 ist, dass der Prozess Kuh
oder kann natürlich auch was machen.
Was kann er machen
Wenn P nach P-Strich kommt mit dem A,
dann ist es nicht von Q zu erwarten,
dass er direkt unbedingt mit einem A antwortet, sondern da sind wir viel entspannter.
Wir sagen, du darfst erst Patau machen,
du läufst eine ganze Menge interner Zustände bis Q0,
aber Q0 ist jetzt ein Zustand, der ein A produzieren kann,
eine A-Aktion macht und wo du dann angekommen bist,
das nenne ich jetzt Kuhstrich und das,
was da rausgekommen ist auf der rechten Seite,
das muss wieder Bisimilar sein zu P-Strich.
Das heißt, letztendlich zwei Möglichkeiten,
Bei Tau-Aktionen ist es nichts zu tun auf der rechten Seite.
Die Simulation muss aber erhalten bleiben. Oder es wird
eine A-Aktion beantwortet durch eine Sequenz von Tau-Aktionen,
gefolgt von deinem A. Und wieder lande ich etwas,
was das Gleiche tun kann.
Wobei auch erlaubt ist, wenn der Linke eine Tau-Aktion macht,
dann könnte der Rechte auch mit einer nicht leeren Sequenz von Tau-Aktionen antworten.
Also mit mindestens einem Tau auf der rechten Seite,
das wäre auch möglich.
Also Kuh könnte auch was tun,
das wäre auch in Ordnung
So, der Fall 2 ist das Gleiche symmetrisch,
jetzt aus der Perspektive von Kuh formuliert, muss man jetzt nicht neu noch durchgehen.
Und die Bedingungen 3 sagt, wenn ich zwei B-Similare,
Therme, P und Kuh habe und P ist terminiert,
also hat schon aufgehört, dann muss es dem anderen Prozess Kuh,
der muss noch nicht terminiert sein,
aber er muss die Chance haben,
nur noch mit Tausschritten zur Termination zu kommen.
Das heißt, zwei B-Similare Therme,
also können schon so sein,
einer ist terminiert der andere auch nicht,
aber der andere macht danach nur noch interne Sachen bis zur Termination.
Das will ich auch erlauben
Und dann muss es eben so sein, Termination,
ja klar, P ist terminiert, Kuh ist terminiert,
die sollen B-Simular sein. Und hier aus der,
das Gleiche wie drittens, nur aus der Perspektive von Kuh.
Und wenn das der Fall ist, wenn also eine Relation existiert,
eine binäre Relation, die Verzweigungs-B-Simulation B, nämlich,
die diese Eigenschaften 1 bis 4 hat, dann kann ich sagen,
dass zwei Prozesse P&Q-Verzweigungs-B-Simular heißen.
Und das wird dann notiert mit P-Doppelfile unterstrich
B für Branching bei Simular
zu Kuh
Das heißt, wir haben das gleiche Zeichen jetzt mit dem Index B,
um zu sagen, hier wird etwas simuliert,
wobei auf den besonderen Charakter von Tau-Aktionen Rücksicht genommen wird.
So, gucken wir uns das mal an ein Beispiel an,
die Beispiele werden jetzt ein bisschen aufwendiger, weil diese Tau-Aktionen drin.
Wir gucken uns also aber den Prozess an,
A plus Tau-Aktion, A plus B,
und wollen zeigen, dass das Brunching B-Simular ist,
zu, naja,
sinngemäß das Gleiche,
Tau-A plus B
gibt es bei beiden
Aber nicht A als isolierter Therm, sondern der rechte Therm
hat ein Plus B da stehen. Und da sieht man ja so,
auf dem ersten Blick, wie Seminar sind die überhaupt nicht.
Der linke Therm kann eine Aktion machen, kann der Rechte nicht antworten.
Der linke Therm kann eine Tauaktion machen, ja gut,
dann lande ich auch bei beiden in einem Zustand Apus B.
Wenn ich von rechts gucke, sehe ich das Gleiche,
ja, Tauaktion, dann kommt das Gleiche raus,
aber B kann ja rechte Therm machen,
kann der linke Therm nicht unmittelbar beantworten.
Sieht man am Prozessgrafen auch ganz deutlich,
Wenn ich nur die Pfeile betrachte, die vom ersten Knoten ausgehen,
ins Links, sind das die Pfeile Art.
Und Tau. Und rechts sind es die Pfeile Tau und B.
Und da würden wir unter normaler Definition von B-Simularität sofort sagen, das kann nicht B-Simular sein.
Das steht ja schon an den Kanten nicht das Gleiche dran.
Und dann geht das gar nicht. Ich brauche,
um überhaupt die Simularität erzeugen zu können,
bei normaler B-Simulation war es so, da müssen,
gucke ich mir alle Ausgangskanten an,
nehme die Menge der Aktionen, die da gehen.
Und die müssen links wie rechts gleich sein.
Das ist so die Mindestvoraussetzung, damit überhaupt die Chance hat,
dass eine Aktion links rechts beantwortet werden kann oder umgekehrt
Wenn das nicht der Fall ist,
wenn die Mengen ungleich sind von dem,
was an den Kanten dran steht, hätte ich bei normaler B-Simulation sofort gesagt,
da muss ich mir die Nachfolgetherme überhaupt nicht angucken und zu überprüfen,
ob die bei Simular sind, weiß sie sofort.
Kann nicht sein. Da gibt es immer eine Aktion,
die vom Anna nicht gekontert werden kann. So,
das liegt aber jetzt hier nur daran, dass die Tau-Aktion
dabei sind und für die hatten wir jetzt Sonderregeln definiert.
Und diese beiden Therme sind tatsächlich bisimular in Bezug auf Branching
by Simulation. Denn es ist so, ja gut,
ich kann eine Tau-Aktion ausführen, Ja,
zum Beispiel der linke Therm, wenn der eine Tau-Aktion ausführt,
dann kann der A plus B machen.
Und da muss man dann zeigen, dass das,
was da rausgekommen ist, dass das immer noch verhaltensäquivalent ist,
zu dem rechten Ausgangstherm.
Wir haben ja hier die zwei Bedingungen. Ben P,
eine Aktion A ausführen kann und zu P-Strich kommt.
Und das ist eine Tau-Aktion, das ist der erste Spiegelstrich.
Da muss gelten, das P-Strich-Bisimulat zur Kuh ist.
Das wäre also die erste Diagonale. Sowas muss ich jetzt
überprüfen, ob das alles gilt. Oder beziehungsweise,
wenn P terminiert ist, dann muss der andere mit einer
Tau-Sequenz auch zur Termination kommen können
So, nun gibst hier zwei offensichtliche Dinge, was B-Similar ist.
A plus B und A plus B, die sind immer noch gleich.
Und unsere Brunching-Buy-Simulation, die ist immer noch eine Äquivalenz-Relation,
also reflexiv, symmetrisch, transitiv.
Wenn man also in einem Grafen zwei gleiche Therme sieht,
dann weiß man, aha, die können das Gleiche tun,
Tau-Auktionen hin oder her, das wird simulierbar sein.
Das ist mir jetzt auch nicht überraschend,
Termination verhält sich genauso wie Termination.
Da passiert mich in beiden nichts mehr. Ja,
ist auch korrekte Termination,
unterscheidet sich also von der Verklemmung
Spannender Witz jetzt für diese Diagonalstriche, ja, die nachzuweisen.
Gucken wir uns also mal die Diagonalstriche an,
wie man den beweisen kann, dass diese beiden Therme,
dass die jetzt verhaltensgleich sind.
Okay, also der Linke kann ja eine A-Aktion machen und terminiert dann.
Was kann der Rechte machen? Kann auch eine A-Aktion machen
zum Bisim-Lahn-Therm, das heißt, die beiden haben da die
Chance,
mit A
zu terminieren
Die beiden würsten ja schon, sind Besina. Das heißt,
Gleiches, Terminationsverhalten mit einem A. Gut, erst ein wichtiger Punkt.
Zweiter wichtiger Punkt, wenn ich da immer noch gucke,
der hier kann ja eine Tau-Aktion machen und kommt dann zum Therm A plus B.
Wenn ich eine Tau-Aktion mache, dann ist ja der erste Spiegelstrich wichtig,
wenn A gleich Tau ist, dann muss der Nachfolgetherm,
P-Strich, also in diesem Fall das hervorgehobene A plus B,
das muss dann B-Similar sein zu dem Therm-Kuh selbst,
also dem Therm, auf der rechten Seite.
Und Gott sei Dank, das wissen wir, das gilt, das haben wir schon.
A-Plus B ist diesem Latze A-Plus B. Das heißt,
wir haben festgestellt, der Therm links oben, ja,
der kann A und Tau machen und ist dann B-Similar in beiden Fällen,
was da rauskommt zum Rechten.
Jetzt muss ich das im Prinzip nur von rechts gucken,
was kann der machen?
Naja, der kann ein A machen und ein B,
aber die Argumentation läuft da symmetrisch. Wenn ich da nochmal gucke,
der rechte Therm kann ein A machen,
Das kann der Linke direkt kontern, sind beide terminiert.
Und wenn er ein B macht und terminiert,
dann macht der andere ein Tau B und ist dann auch terminiert.
Das ist beides erlaubt. Gucken wir uns also das nächste Spannende an.
Die andere Hauptdiagonale läuft ja völlig symmetrisch. Wir glauben also,
dass die andere Hauptdiagonale durch Austauschen in der Argumentation von A und B genauso klappt.
Und wenden uns gleich jetzt dem obersten interessanten Strich zu,
dass die beiden Ausgangstherme beim Simular sind.
Müssen wir da gucken, was können die jetzt machen?
Ja, der linke Thermen kann
eine A-Aktion machen
Und terminiert dann. Und da sieht man hier,
der rechte Therm darf das ja mit Tau A kontern,
um dann auch zu terminieren.
Das ist also eine Möglichkeit. Und die beiden resultierenden Therme sind biese mir.
Sodass das eine, das andere, was die machen können,
ist natürlich eine Tau-Aktion und landet dann bei A plus B.
Das kann der sogar direkt trivialerweise mit einer Tau-Aktion kontern landen,
auch bei A plus B.
Da müssen wir dann beide Nachfolgetherme sind auch verhaltensgleich
Und damit ist sinngemäß alles abgegrast von der rechten Seite,
muss ich mir das jetzt auch noch angucken.
Aber da stelle ich fest, das Gleiche in Grün.
Wenn ich das mache, dann weiß ich also zum Schluss,
diese beiden Therme erfüllen die Bisimilarität mit allen Hilfsstricheleien, die da unten sind.
Ich kann es noch einmal von rechts nachprüfen schnell. Das Einzige,
was da wirklich noch neu ist,
ist ja das B mit einem B, kann ich terminieren,
aber das Tau und B auf der linken Seite führt in beiden Fällen eben auch zu Termination.
So, wenn ich das alles zusammentrage, dann Sind die
gestrichelten Linien, die die Bi-Simulationen beschreiben, interessant.
Das heißt, in diesem Beispiel definiere ich die Bi-Simulation eben durch die folgenden Paare.
Alle gestrichelten Pärchen kann ich zusammenfassen. Die Haupttherme,
die ganz oben stehen, sind Bi-Simular. Das,
was ich dann gebraucht habe,
die die Originalen sind Bi-Simular, also A plus B,
ist Bi-Simular zu Tau A plus B,
plus B. Oder die andere diagonale A plus Tau A
plus B ist Bi-Simular,
nur A plus
Und die letzten beiden sind offensichtlich,
also das A plus B,
wie sie mehr zu A plus B ist, im Verzweiflungsbisimularität,
das gilt genauso wie Termination des B-Simulationen zu Termination.
Gut. Jetzt habe ich eine ganze Menge gemacht.
Das klingt auch ganz nett, hat aber einen großen,
großen Nachteil. Ich habe eine neue Äquivalenz mir definiert.
Und die verhält sich ganz schön anders als die alte B-Simulationssequalenz.
Das heißt, bei allen Aktionen, die ich jetzt habe,
muss ich nochmal genau hingucken,
ob die überhaupt gültig sind
Es kann sein, dass die alten Aktionen jetzt gar nicht mehr gelten.
Es kann auch sein, dass jetzt ein paar
neue Dinge gelten, die ich noch nicht abgeprüft habe.
Also bislang bin ich immer ganz gut damit gefahren.
Ich habe was Neues eingeführt, nämlich ein paar neue Operatoren und habe
immer nur ein paar neue Aktionen auf das ganze Zeugs losgelassen.
Und dann war immer alles korrekt und vollständig. Und hier ist es so,
jetzt lasse ich nicht nur einen neuen Operator auf das ganze System los,
also den Tau-Operator mit Tau-Index-I. Nein,
ich habe auch einen neuen Äquivalenzbegriff.
Das heißt, ich muss dummerweise komplett von vorne anfangen.
Neue B-Simulationen, also in diesem Fall Branching-By-Simulation,
führt dazu,
ich muss komplett neu akzematisieren
Zumindest im Prinzip. Vielleicht kann ich noch ein paar Sachen retten,
aber im Prinzip muss ich komplett neu das ganze Spiel betreiben.
Und dann passiert das Ungeheuerliche. Ich stelle fest,
das geht nicht. Ich stelle mir mich fest,
ich habe jetzt einen Äquivalenzbegriff, an dem es nichts auszusetzen.
Diese Branching-B-Simulation ist das, was ich gerne hätte. Nur,
die Akklomatisierung kann nicht klappen,
stelle ich denn nach ein bisschen Brüten fest,
weil ich mit meiner neuen Verzweigungs-B-Simulation mir etwas gestrickt habe,
was zwar eine Äquivalenzrelation ist, aber dummerweise keine Kongruenz.
Ja, und wenn es keine Konkurrenz ist,
kann ich es nicht akklomatisieren,
das geht gar nicht
Weil jeder Gleichungskalkül hat diese Kontextregel, tut also so,
als wäre das, womit er rechnet, immer eine Kongruenz.
Und dann wird er falsche Dinge behaupten, der Kalkül.
So, und woran kann man das sehen?
Was kann man an einem Beispiel sehen, wenn ich die
Prozesse tau A und Army angucke, sind die Verzweigungsbisimilar.
Nach unserer neuen Definition, der linke Prozess kann ein Tau ausführen,
landet dann im Prozess A und den Rechten halte ich fest,
der ist auch A, die sind offensichtlich Bisimilar.
Oder der Rechte kann eine Aktion machen zum Terminieren.
Und der Linke kann mit Tau einem antworten,
macht dann ein A und ist auch terminiert. Das heißt,
diese beiden Prozesse kann man schnell an der Definition nachvollziehen, sind Verzweihungs-Bisimilar.
So, und jetzt mache ich das folgende Spiel.
Ich addiere auf beiden Seiten ein B hinzu.
Also tau A, plus B und A plus B.
Warum sind die nicht mehr Verzweihungs-Bisimilar? Naja, wenn ich
links eine Tower-Aktion ausführe, dann bleibt dann B übrig.
Er bleibt dann A, übrig. Damit jetzt aber die Regeln gelten könnten,
nach einer Tau-Aktion links, muss ich ja rechts gar nichts tun,
aber die nachfolgenden Prozesstherme P-Strich ist der linke,
der ja nur noch ein A ist,
der müsste B-Similar zum Rechten sein.
Also A müsste B-Similar zu A plus B sein,
was offensichtlich nicht der Fall ist.
Ja, hier ist genau das Problem.
Links für Tower A und A hat das Tau keinerlei Auswahlfunktion.
Auf der rechten Seite führe ich aber nicht einfach nur eine stille Aktion aus,
sondern entscheide mich gewissermaßen zwischen dem der linken Seite,
wo ein A steht und der rechten Seite,
wo ein B steht.
Das heißt, Tau ist sowohl eine stille Aktion als auch
eine Aktion, die mir was auswählt an dieser Stelle
Deswegen tau a, wenn ich da die Tauaktion mache,
das Nachfolgende, ist nur noch A,
ist nicht mehr Bisimilar zu A plus B.
So, jetzt ist die Frage. So, was machen wir jetzt?
Einpacken, nach Hause gehen. Kann es ja irgendwie nicht sein.
Also überlegen wir uns irgendwie eine Aushilfsstrategie und sagen, okay,
was kann man jetzt machen, wenn ich keine Kongruenz habe?
Aber gerne eine hätte, kann ich sagen, okay,
vielleicht definiere ich paar Therme mehr oder paar Therme weniger
als Äquivalent
Was wird sich hier wohl anbieten?
Was macht der Mathematiker
Es gibt zwei Alternativen. Ich kann etwas mehr hinzunehmen.
Ich könnte zum Beispiel sagen, ich definiere mir jetzt eine
neue Äquivalenz. Und in dieser Äquivalenz behaupte ich einfach,
dass jetzt Tow-A plus B und A plus B Äquivalenz sind.
Dann füge ich mehr Äquivalenzen hinzu. Dann sage ich einfach,
ich weiß zwar nicht ganz genau, ob ich das haben will,
aber ich nehme einfach mal an,
damit es überhaupt eine Konkurrenz wird, die rechten beiden.
Die sind auch äquivalent. Problem beseitigt. Die Alternative dazu ist,
man verzichtet jetzt darauf, zu sagen,
dass Tow-A und A,
also die linken beiden äquivalent sind
Wenn die nicht an Äquivalent sind und ich dann B dazu addiere,
dann ist es auch nicht verwunderlich, dass das nicht äquivalent ist.
Also das könnte Äquivalent sein oder nicht, ist egal.
Auf jeden Fall verletzt das mir meine Konkurrenz nicht mehr.
Denn da ist nur etwas zu tun oder zu leisten,
wenn ich schon zwei äquivalente Therme habe und damit auf beiden
Seiten das Gleiche tue, dass dann das Gleiche rauskommt.
Bei ungleichen Thermen, dass da nicht das Gleiche rauskommt,
das ist nicht schlimm.
So, die beiden Varianten hat man. Entweder die linken
beiden sind nicht Mailqualent oder die rechten beiden
sind Äquivalent
Wenn man das mal durchdenkt, dann findet man es schlimmer zu sagen,
dass die beiden rechten Therme plötzlich das Gleiche sein sollen.
Also darauf will man sich nicht einlassen. Das wäre mich
irgendwie so eine Konsequenz irgendwie, dass die das Gleiche könnten,
das soll, das sträubt sich bei den Leuten,
die stille Aktionen akzematisieren, die Nackenhaar.
So, das wollen die nicht. Also, wir machen den Ausweg,
wir nehmen einfach an, dass die problematischen Therme,
Tau A und A und was da sonst noch problematisch ist,
einfach nicht mehr äquivalent ist.
Das schmeiße ich raus. Das heißt also,
wir verschärfen die Bedingungen, wann zwei Therme äquivalent sind
Das ist jetzt gewissermaßen nicht mehr getrieben von der Motivation,
was ich als verhaltensäquivalent bei Tau-Aktionen ansehen will,
sondern das ist getrieben von der Motivation,
was ist eine Annäherung an das,
was ich als gleich ansehen will und was ich noch gleichzeitig akzematisieren kann.
So, das heißt, wir verschärfen die Bedingungen,
wir fügen also noch etwas hinzu,
wir haben jetzt vier Bedingungen, waren zwei Therme,
Brunching-B-Similar sind und offensichtlich verschärfen wir die Bedingungen so weit,
dass jetzt Tau A und A
die Bedingungen nicht mehr
erfüllen können
Gibt es noch Zusatzbedingungen? Keine Ahnung,
vier Strich und zwei Striche oder irgendwie sowas in der Art.
Und dann fallen die beiden raus. So, und da gibt es
verschiedene Lösungen. Also wir lernen in dieser Vorlesung drei B-Simulationen kennen.
Irgendjemand hat sich mal den Spaß gemacht zu zählen.
Es gibt derzeit, wo so um die 4,
500 Formen der B-Simulation. Eine sehr einfache historisch,
auch sehr alte Variante von Milner ist, zu fordern,
dass man sagt, initiale Tau-Transition,
also die wie in unserem Problem hier, die vorne stehen,
Ja, die werden niemals eliminiert.
Das heißt, eine ganz am Anfang, die auch Entscheidungscharakter
haben kann, bleibt einfach. Und die sagt man,
naja, da muss, die muss wirklich beantwortet werden.
Das heißt, es gibt so gewisse Problemfälle, die kann man
sich jetzt angucken, damit jetzt keine Äquivalenz mehr erzeugt.
Wenn man mal hier guckt, A plus Tow-Delta,
das taune initiale Tow-Aktion, die wird nicht eliminiert.
Oder nehmen wir mal das dritte Beispiel A plus Tau
B und A plus
Sowas ähnliches, wie wir eben hatten. Die beiden Therme
sind auch nicht mehr äquivalent, denn die initiale Tower-Aktion vor
dem B kann auf der rechten Seite nicht beantwortet werden.
So B und Tau B, dass die nicht mehr äquivalent sind,
das ist ja genau unser Beispiel von oben.
Ja, das war ja gewissermaßen der Ausgangspunkt zu sagen,
da will ich keine Äquivalenz mehr haben,
damit ich überhaupt noch eine Chance habe auf Kongruenzeigenschaft.
Okay, wie sieht das jetzt aus, wenn man das
tatsächlich definieren möchte? Wir definieren jetzt eine neue Verzweigungsbisimulation,
die nennen wir jetzt Initiale, Verzweigungsbisimulationen im Englischen,
rootet,
Branching,
Das ist wieder eine binäre Relation. Und da sieht man,
wieder vier Bedingungen, aber es sind vier Bedingungen,
sieht man gleich in der ersten Zeile,
die auf die Definition von Brunching-Bisimulation zurückgreifen.
Das heißt, was eine initiale Verzweihungs-Bisimulation ist,
wird nicht vollständig von null an definiert,
sondern mit Hilfe der vorhin gerade definierten Brunching-Bisimulation.
So, und die Verschärfung sieht man jetzt,
wenn nicht zwei B-Similare Therme P und Kuh ab und P
macht eine Aktion A und wird zu P-Strich,
Bei einer normalen A-Aktion muss der andere auch mit der A-Aktion antworten.
Und das ist das Besondere, wenn es eine Tower-Aktion ist,
dann auch, A, kann entweder eine normale,
atomare Aktion sein oder ein Tau.
In beiden Fällen fordere ich, dass das direkt beantwortet wird.
Ich fordere nämlich, dass Kuh mit dieser Aktion zu Kuhstrich wird.
Die andere Bedingung erlaubte ja den Fall, naja,
wenn P mit Tau zu P-Strich wird,
muss Kuh gar nichts machen.
Hauptsache, Kuh ist B-Similat zu dem Neuentstehenden P-Strich
Ja, das erlaube ich nicht mehr,
sondern ich fordere explizit auf der rechten Seite eine Aktion.
Am Anfang muss also was passieren. Und jetzt kommt das Besondere,
was dann kommt, ja, das muss nicht mehr Routed-Brunching-Biseminar sein,
so wie man das erwarten könnte,
sondern es muss nur noch Brunching-Biseminar sein, wie in der alten Definition.
Das heißt, die Bedingung, dass die beiden aneinander simulieren können,
P und Q, nur für den ersten Schritt wird das gefordert.
Nur die erste A-Aktion von den zwei Prozessen P und Q,
ganz am Anfang, die muss direkt beantwortet werden können,
danach macht man wieder eine Rekursion auf die Brunching-P-Simulation.
Zweitens ist das Gleiche nur aus der Sicht von Q,
drittens sagt zwei bisimlare Therme,
einer terminiert dann auch der andere, also jetzt direkt,
nicht mehr über eine Folge von Tauaktionen.
Und viertens das Gleiche wie drittens. Und dann Notation,
zwei Prozesse heißen Initialverzweihungs-B-Simular, wenn es eine solche B-Simulation Groß-B
gibt, die diese Eigenschaften hat.
Und notiert wird das als Doppelfeil mit dem Index RB,
The Routed Brunching,
die Simulation
Das heißt, wir haben jetzt plötzlich drei B-Simulationen am Wickeln.
Wir können nicht einfach eine vergessen,
weil wir gesehen haben, kann ich akzematisiert werden.
Die dritte B-Simulation macht ja einen Rückgriff auf die zweite.
Deswegen haben wir alle drei jetzt noch im Programm.
Ja, was passiert da? Jetzt fragen wir uns,
was können wir damit machen? Die Äquivalenzen hängen irgendwie zusammen
. Das folgende Lämmer, oder dieses Lämmer hier sagt,
das normale B-Simulation eine Teilmenge ist, von der Rooted Banshing-Bisimulation.
Das heißt, wenn zwei Therme B-Similar sind, Dann sind sie
auch rooted, blanching. Bisimular. Und wenn zwei Therme,
rooted blanching B-Similar sind, dann sind sie auch B-Similar.
Aber nicht umgekehrt. Saß in die Umkehrung nicht gelten,
ist klar, wir haben eben gerade etwas definiert, was Tauaktionen unterscheidet.
Wir haben also zum Beispiel das so gerade hingebastelt,
dass Tau A und A nicht mehr das Gleiche ist.
Für normale Brunching-B-Simulationen sind sie äquivalent.
Für Rooted Brunching nicht. Also weiß ich schon mal,
rooted Brunching ist eine echte Teilmenge
Der Brunching-Bisimulation. Und ich weiß auch, naja,
bei normaler Bi-Simulation zu Routed Brunching, bei normaler Bi-Simulation werden zwei Therme,
wenn eine eine Toweraktion enthält und der andere nicht,
die werden unter Garantien nie in Verbindung gesetzt,
weil normale Bisimulation fordert immer, dass eine Toweraktion beantwortet werden kann,
wenn einer gar keine Toweraktion hat,
dann hat er nichts zu antworten.
Das heißt, die normale, die Simulation ganz links,
wird nie zwei Therme, wo nur einer einen Tau hat,
in Verbindung setzen,
die Routed Brunching macht das schon
Dann müssen nur tausend von der einen Seite durch Tauss auf
der anderen Seite geeignet beantwortet werden. So, das ist
die erste Zeile. Wenn ich jetzt diese drei Relationen mir angucke,
und das ist das Nette, in einem Fragment,
also einem Teilkalkül, in dem gar keine Tauss vorkommen.
Also ich betrachte jetzt nur noch Therme ohne Tau.
Zum Beispiel in ACP. Das war ja gerade der
letzte Kalkül ohne Tau. Wenn ich das da mache,
dann ist die Aussage, alle drei Equalenzen bedeuten das Gleiche
Und das ist gewissermaßen Qualitätskriterium. Das sagt nämlich,
wenn kein Tau vorkommt, dann habe ich mir etwas definiert,
dass genau die gleiche Verhaltensäquivalenz beschreibt. Also rooted Brunching B-Simulation,
setzt zwei Therme genau dann gleich, wenn es die normale Bisimulation tut,
unter der Voraussetzung, dass gar keine Taus da sind.
Es wäre ein bisschen merkwürdig,
wenn ich mir eine Äquivalenz definiert hätte,
eine neue rooted Brunching,
und die wird plötzlich mehr Therme oder weniger Therme in Verbindung setzen,
als es die normale Bisimulation tut,
auf den gleichen Thermen wohlgemerkt
Also taufreie Therme. Für die eine sind sie äquivalent,
für die andere nicht. Das wäre merkwürdig. Also die
zweite Zeile ist gewissermaßen unsere Rückversicherung, dass wir etwas Vernünftiges definiert haben.
Dass auf taufreien Therben nämlich die das Gleiche bedeuten. Ja,
und diese Vergleich, dieser Vergleich zwischen Relation bedeutet ja nur,
wenn eine Relation größer ist, dann setzt sie mehr Therme gleich.
Also Umkehrung heißt das Rooted Brunching,
Bisimulation setzt weniger Therme gleich als die Bahnching-Visimulation.
So wie wir das haben wollten,
einige Therme sind halt nicht mehr äquivalent
Gut. Bislang ist noch nicht viel gewonnen. Jetzt müssen wir uns überlegen,
kommt da vielleicht etwas raus, was eine Kongruenz ist?
Ja, vielleicht. Also, mehr Fallen wird es nicht mehr geben.
Also, didaktisch gesehen muss das die Relation sein, die
eine Kongruenz ist. Und sie isst auch eine Kongruenz.
Bis dahin haben wir es getrieben. Das nächste ist jetzt aber,
wir müssen mal gucken, wie sieht das jetzt mit Rekursionen aus?
Bei Rekursionen müssen wir auch Knoch ran.
Da stellt man dann fest, Rekursionen eindeutige Lösbarkeit,
das geht nicht so glatt weiter wie bislang.
Da müssen wir also auch nochmal
was machen
Denn wir hatten ja bislang lineare Rekursionen,
lineare Rekursionen waren genau die Rekursionen, die dazu führten,
dass es immer eine Lösung gibt,
das war auch schon bei Geschützter der Fall,
aber auch eine, die ich immer generieren kann.
Unser Kakül-ACP mit Rekursionsaxium war ja korrekt und vollständig nur für
lineare Rekursionen. Wenn ich allgemein geschützte Rekursionen verwendete,
war der Kakül leider nur korrekt, aber nicht vollständig.
Was schlichtweg daran liegt, dass nur lineare Rekursionen mir garantieren,
dass ich sowas wie endliche Automaten habe
So, wo ist er jetzt das Problem? Das Problem ist,
wenn ich die Spezifikation X, Tau X habe,
die hat ja erstmal das Muster einer linearen Rekursion.
Linear war sie dann, wenn auf der rechten Seite irgendwas Atomares steht, gefolgt von der Variablen.
Und hier steht ja im Prinzip X gleich Tau X,
das ist ja auf der rechten Seite was Atomares,
so ein Tau und ein X. Wenn wir das also sagen würden,
das ist linear,
dann kann man jetzt spaßeshalber Tau erstmal als Lösung ausprobieren.
Es ist ein beliebiger Term, man setzt das ein Dann
steht auf der linken Seite ja X, also tau-S.
Und auf der rechten Seite tau-Tau-S. Und die Frage ist nur
, ist das rooted Brunching-B-Simular? Und die Antwort ist,
ja, es ist. Denn die linke Tau-Aktion wird auf
der rechten Seite durch eine Tau-Aktion direkt beantwortet.
Und übrig bleibt S und Tau-S. Und diese beiden Therme sind,
und das müssen sie auch sein, nach Definition, Brunching-B-Simular.
Denn alles, was essen kann, wird auf der rechten
Seite durch ein Tau und die entsprechende Aktion beantwortet.
Und das Tau auf der rechten Seite führt dazu,
dass es übrig bleibt
Und auf der linken Seite auch S steht.
Nicht STOS. Kriegen wir nicht hin. Die beiden Prozesse,
die ich da habe, TOS und TauTOS,
die sollen, rooted Branching, Bisimilar sein.
Und das sind sie, denn umroutet Branching, Bisimilar zu sein,
ist ja die Aussage, die erste Aktion wird direkt beantwortet.
Das erste Tau wird auf der rechten Seite durch ein Taubereck beantwortbar sein.
Und dann, das ist die zweite Bedingung,
das, was übrig bleibt,
ist S auf der linken Seite und TOS
auf der rechten
Und diese beiden müssen nur noch, in Anführungszeichen,
Brunching B-Seminar sein. Und das sind sie auch. Eimer
S und auf der rechten Seite noch ein Tau davor,
Tau S, das sind zwei Brunching, B-Seminare Therme.
Da sieht man einfach alles, was der Linke thermen kann.
Also was in S irgendwie losgehen kann, eine A-Aktion,
mit auf der rechten Seite gekontert durch einmal tauende Aktion.
Und das ist nach Definition ausreichend. Und in beiden Fällen
landet man direkt im Nachfolgezustand S-Strich.
Und die sind dann
immer b-Seminar
Oder, ich mache auf der rechten Seite eine Aktion,
da ist nur eine möglich, nämlich Tau.
Was bleibt aber übrig, rechts, ein S?
Und das wird jetzt gekontert auf der rechten Seite durch gar nichts tun.
Auf der linken Seite wird es gekontert durch gar nichts tun und
links steht S und das ist offensichtlich verhaltensgleich zu dem Nachfolger S.
So, man sieht also, wenn man die Definitionen durchgeht,
diese beiden Therme, Tau S und Tautor S sind rooted Brunching B-Seminar.
So, das ist das erste wichtig an dieser Überlegung und das zweite ist,
Das war jetzt ein beliebiger Prozess, THOS.
Es war beliebig. Das heißt, ich habe mir gerade
unendlich viele Lösungen generiert, die meine Gleichungsspezifikation XTOX lösen.
Und das ist jetzt überraschend, denn die linearen waren
gerade von der Bauart als Spezialfall der Geschützten.
Und die Geschützten lieferten immer eindeutige Lösungen. Modulobi-Simulation.
Jetzt habe ich hier aber unendlich viele nicht bisimilare Lösungen.
Das heißt, in diesem Fall ist linear nicht ausreichend,
um zu garantieren, dass ich eine eindeutige Lösung habe.
Dieses Tau als atomare Aktion zu betrachten,
ist also nicht mehr angemessen. Was wir machen müssen,
ist jetzt also bei diesen Tau-Aktionen nochmal genauer hinzugucken und das,
was ich geschützte Rekursionen nennen möchte, dass ich da nochmal ran muss.
Das heißt, leider muss ich da jetzt
nochmal überprüfen und muss an der Definition nochmal nacharbeiten.
Und was da rauskommt, ist eine neue Definition.
Wir nennen eine rekursive Spezifikation linear, wenn sie im Prinzip
so aussieht wie das, was ich vorher schon linear genannt habe.
Also auf der rechten Seite Atom- und Variable,
plus plus Atomvariable oder Atom plus Atom plus Atom.
Nur, dass ich als Atome jetzt auch taut zulasse,
also die AIs und BIs, die dürfen alle auch tau sein.
Das heißt, was linear ist, daran drehe ich gerade nicht,
sondern bin ich sogar sehr großzügig und sage, alles,
was früher als atomare betrachtet wurde, da glaube ich jetzt atomare oder auch tau.
Jetzt kommt die zweite Bedingung, die ist die Verschärfung,
also eine linear rekursive Spezifikation,
die waren vorher automatisch geschützt
Vorher, ohne Tau-Aktionen, war linear immer ein Spezialfall der geschützten Rekursion.
Die geschützten waren immer schon ausreichend für Eindeutigkeit. Hier definiere
ich aber jetzt verschärft, was das Geschützte sein soll.
Also nenne ich eine rekursive Spezifikation eh erst dann geschützt,
wenn es da drin keine unendliche Folge von Tau-Transitionen gibt,
die gewissermaßen immer im Gleichungssystem bleiben.
Das heißt, ich komme von der Lösung von X
zu einer Lösung von X-Strich zur Lösung X2-Strich,
nur durch Tau-Aktionen bleibe ich immer in den Lösungen von
irgendwelchen Variablen in diesem Gleichungssystem
Das heißt, ich kann mich unendlich lange damit beschäftigen,
Tau-Aktionen auszuführen, ohne jemals aus dem Ganzen rauszuspringen.
Das heißt, ich springe einfach nur von Variable zu Variable,
aber mache niemals eine echte Aktion. Das muss ich ausschließen,
sobald ich mich immer nur mich intern beschäftigen kann,
ist ganz klar, dass ich unendlich viele Lösungen haben muss,
dann sind nämlich Zyklen der Länge zwei, drei,
vier, fünf, ist sie egal,
wie viele Tau-Zyklen ich mache,
die sind alle nicht unterscheidbar.
Das heißt,
Schleifen von größeren Schleifen zu unterscheiden,
wäre da nicht mehr möglich
Okay, jetzt habe ich also diese verschärfte Bedingung noch hinzugepackt
und jetzt kann ich beides zusammen machen, Bedingung eins,
zwei zusammen, dann habe ich geschützte lineare rekursive Spezifikationen.
Und wenn ich die jetzt betrachte,
dann sind das genau die Spezifikationen,
die eine eindeutige Lösung haben, Modulo, Verzweihungsvisionation,
also Eindeutigkeit war ja immer Modulobisimulation und jetzt interessiert mich natürlich die neue B-Simulation am meisten,
also die initiale Verzweihungsvisimulation.
Also die dritte,
die jetzt für die Tau-Aktion
irgendwas weiß
Und wenn ich mich darauf jetzt einschränke,
also nur noch solche betrachte, dann bekomme ich die Aussage,
dass erst mal meine neue Bisimulation, die initiale Verzweigungsbisimation,
tatsächlich eine Konkurrenzstellation ist.
Und zwar für ganz ACPTO, zusammen mit rekursiver Spezifikation,
vorausgesetzt, sie ist geschützt und linear. Das heißt,
wir haben tatsächlich das bekommen, was wir haben wollen.
Wir können jetzt also hoffen, dass wir auf die
nächste Folien gehen können, wo jetzt Axomatisierung steht.
Dass wir also Aktionen angeben können, dass das Ganze Eingleichungssystem überführt.
Und da gibt es wieder eine ganze Menge Gleichung,
die jetzt erstmal an die neuen Operatoren rangehen.
Und unser neuer Kalkül AC Petau,
das ist der Kalkül, da habe ich Tau-Aktionen,
den Abstraktionsoperator und ich habe geschützte lineare Rekursionen zur Verfügung.
Und jetzt frische Axiome. Und V, das ist die Besonderheit.
Bislang war V immer eine atomare Aktion und jetzt lassen wir
in Zukunft auch V, da darf auch Tau stehen.
In allen alten Aktionen darf auch Tau vorkommen
Und jetzt haben wir die ersten beiden Aktionen, B1 und B2,
die genau charakterisieren, wann Tauaktionen überflüssig sind und wann nicht.
Das erste Aktionen sagt, wenn da eine Aktion V kommt und
danach ein Tau, dann ist das Tau nicht mehr entscheidend.
Das hat keinen Entscheidungscharakter mehr für die Verzweigung. Das heißt,
das hintere Tau, das kann einfach gestrichen werden,
nur V bleibt übrig. Diese Gleichung führt dazu,
dass eine Sequenz von Vs, von Tau aus,
dass die immer auf einen Tau kontrahiert wird.
Denn in dieser Gleichung B1 kann V ja auch Tau sein.
Dann habe ich als Spezialfall Tau mal Tau ist gleich Tau.
Das heißt, mehr als Eintau kriege ich immer zurück auf eins.
Aber ob ich ein Tau wegkriege, ist nicht klar aus diesen Aktionen.
Das eine bleibt im Zweifelsfall da. Und da gucken wir mal,
dass zweite Aktion B2, das ist ein bisschen komplexer,
das sagt mir unter gewissen Umständen kriegt man auch ein einziges Tau noch weg.
Nämlich dann, wenn irgendwo vorne eine Aktion V steht,
da sieht man auf der linken und rechten Seite dergleichen,
beides fängt mit V an
Das ist wichtig. Wir haben ja rooted Brunching,
die Simulation, also initiale Verzweihungssimulationen,
initial müssen die beide also mit dem gleichen Therm anfangen.
Da führt kein Weg dran vorbei, dass bei beiden am Anfang V steht.
Danach kann man sich jetzt fragen, was ist danach?
Und wenn ich jetzt die beiden Therme anschaue,
die hinter dem V stehen, dann steht auf der linken Seite
taumal X plus Y plus X und auf der anderen Seite...
Nur X plus Y. Warum ist das sinnvoll?
Naja, von rechts nach links
Die rechte Seite kann ja alles ausfüllen, was X ausführen kann.
Das kann die Linke auch. Denn da steht plus X
, als der zweite Semant. Und auf der rechten Seite
kann die auch alles ausführen, was Y ausführen kann.
Das kann die linke Seite auch. Sie muss nur eine Tau-Aktion
davor machen. Aber das darf ich nach Routed Banshing-Bisimulation,
nachdem ich den Initialen Aspekt V erledigt habe,
mache ich ja mit normaler Branching-P-Simulation weiter
Und was ich dann bekomme, ist die Möglichkeit,
eine Aktion, die Y zu Y-Strich macht,
mit einer Aktion tau, at zu Y-Strich werden zu lassen.
Und das kann die linke Seite. Das heißt,
diese Tau-Aktion da, die ist in Ordnung.
Und wenn ich das Ganze von links nach rechts betrachte,
ja, da kann ich dann ein X ausführen,
das kann nicht rechts auch, oder ich führe ein Tau aus,
lande dann bei X plus Y und das ist exakt der Therm,
der auch rechts steht.
Dass ich also nach einer Tau-Aktion wieder das Gleiche machen kann,
ist klar,
da bleibt bei beiden mich X plus Y
dann stehen
So. Von daher das, was im B2
als gleich angesehen wird, ist tatsächlich auch gedeckt.
Das ist eine korrekte Akzematisierung. Ein Aktion,
das auch tatsächlich rooted, brunching by simulation beschreibt.
Und die restlichen fünf, die beschreiben das Verhalten des Abstraktionsoperators.
Der Abstraktionsooperator sagt, wenn vor meiner atomaren Aktion V
eine Abstraktionsooperator TAI steht, gibt es zwei Möglichkeiten.
Entweder V ist nicht, denn I soll also gar nicht versteckt werden.
Ja, dann ist das Ist dieser Operator die Identität?
Verdeckend von V ist dann Gleichfau. Oder V ist eine
zu verdeckende Aktion, ist also Element von I.
Dann wird dieser Therm umgeschrieben zu Tau selbst. Das heißt,
das Verdecken einer zu verdeckenden Aktion führt zum internen Verhalten Tau.
Naja, und verdecken beim Deadlock die dritte Gleichung, bringt nichts.
Also verklemmt ist verklemmt, auch wenn ich da was verdecke.
Ein Nicht-Beobachter, achtbarer Deadlock, dessen Interne ich kenne,
ist immer noch
ein Deadlock
Was ich dennoch sehe, verdecken in der Alternative,
ist die Alternative des Verdeckten.
Und das Verdecken in Sequenzen ist die Sequenz des Verdeckten.
Also da habe ich mal Distributivität vom Tau-Operator und Plus
und auch Distributivität von Tau-Operator und Malen.
Ist linear an diesen beiden. Kann ich gewissermaßen ausklappern. So,
also habe ich neue Aktionen, dass sie korrekt sind.
Kann man jetzt glauben. Erstaunlich ist eher,
dass Aktion B2 und B1 schon ausreicht,
um das gesamte Verhalten aller Tau-Aktionen
zu bestreiten
Dass also die Aktionen nur richtiges behaupten, glauben mir, vielleicht.
Also ich glaube es. Und was mir schwerer erstmal fällt,
ist sofort zu sehen oder zu glauben, dass das Ganze auch vollständig ist.
Aber so sei ich versichert, wenn ich diesen Kalkül ACPTA nehme,
mit Abstraktionen und tatsächlich nur geschützter, linearer Rekursion,
dann bekomme ich etwas, das ist nicht nur korrekt,
sondern tatsächlich auch vollständig in Bezug auf die initiale Verzweiflungsbisonation.
Er behauptet also nur korrekte Dinge und alles,
was Initialverzweihungsbisimilar ist,
kann ich
auch tatsächlich
damit nachweisen
Und damit habe ich schon eine ganze Menge gewonnen.
Ich kann jetzt also externes und internes Verhalten mit diesem Tau-Apparator beschreiben.
Und das gucken wir uns mal am Beispiel an,
so einen kleinen Tandem-Puffer. Was ist ein Tandem-Puffer?
So ein einfaches Mini-Beispiel. Ich habe wieder drei Kanäle.
Bei eins schiebe ich was rein. Diese Box ist jetzt
ein Puffer der Kapazität 1. Auf dem Kanal kann auch
nur eins reingehen. Bei drei möchte ich synchron kommunizieren.
Das heißt, der interne Kanal, etwas gesendet,
aber synchron hat auch Empfang
Und auf zwei wird dann das Ganze wieder ausgegeben.
Wird da also nur durchgeschoben. So, das heißt,
ich habe die Elemente Read im Cent.
Und was da gelesen wird, das Datum,
das lassen wir mal weg, dann wird das ein Tick einfacher.
So. Irgendwelche Datenelemente, D aus einer Grundmenge groß gelter.
Wenn ich die beiden jetzt habe, dann kann ich mir überlegen,
wie verhält sich das, wenn ich den Tandem-Puffer in der Mitte,
also den Kanal 3 nicht mehr sehe.
Und da möchte ich ja zeigen, dass der sie so verhält,
wie ein Puffer der Kapazität 2,
wenn ich das nach außen betrachte
Gut, also warum man das macht, keine Ahnung,
aber man kann das machen und man kann daran illustrieren,
dass man internes,
so ein externes Verhalten hat,
extern verhält sich das Ganze wie ein Puffer der Kapazität 2 und die Implementation ist eine Verschraubung,
zweier Puffer der Kapazität 1. Also implementiert durch zwei Prozesse,
Q1 und Q2 und Q1 macht so etwas wie,
er liest auf 1 und schreibt auf 3 und ist dann wieder er selbst.
Das heißt, Puffer Größe eins, denn erst muss er
auf drei was ausgeliefert haben, bevor er wieder sein Verhalten Neues startet.
Das heißt, ein auf eins gelesenes Datum muss auf drei
wieder ausgegeben werden. Und Q2 verhält sich ganz genauso,
nur dass er eben auf anderen Kanälen liest und schreibt,
der liest nämlich auf drei,
schreibt dann auf zwei und ist dann wieder er selbst.
Die beiden Prozesse sind eigentlich im Prinzip die gleichen.
Nur, dass ich ein paar Indizes vertauscht habe.
Die linke Box schreibt eben auf 1 und 3
irgendwie rum und die rechte Box auf 3 und 2,
ansonsten machen sie exakt
das Gleiche
Und wenn ich jetzt sage, es gibt nur ein Datenelement,
dann werden die Therme ein bisschen einfacher,
dann kann ich die Summe weglassen, dann sage ich also,
Q1 ist R1 S3, Q1 und Q2 ist R3 S2, Kurzby.
Zwei rekursive Spezifikationen und beide haben so ein zyklisches Verhalten,
also für Q1 komme ich zu R mit R1 zu einem Zustand,
in dem geht noch S3, bevor ich wieder Q1 bin,
das heißt nach einer Rückaktion S3 bin ich wieder dort.
Das ist der Prozesskraft dazu und oh Wunder,
für Q2 sieht er genauso aus,
nur halt mit R3 und
So, die beiden kann ich jetzt zusammenpacken und natürlich muss ich
sie so geeignet zusammenpassen, packen, dass ich sage,
schreiben auf drei und lesen auf drei, ist immer eine synchrone Aktion.
Also ich werde jetzt sagen, ich nehme Q1,
davon die Lösung und nehme die Lösung von Q2,
komponiere sie parallel, Sorge mit dem Verdeckungsoperator dafür,
dass sie in der Mitte auf drei synchron kommunizieren und hinterher verstecke ich alle Aktionen,
die auf drei irgendwas tun.
Das heißt, extern ist nur noch die Aktivität auf eins
und zwei
So packe ich das jetzt zusammen. Also beide Puffer Q1
und Q2, die werden jetzt synchronisiert. Ich sage,
also Gamma ist S3, R3 zusammen, ergibt C3. Das,
was ich eben gesagt habe, ist beide Prozesse parallel kombiniert.
Q2 parallel zu Q1, dann sage ich S3 und R3
dürfen alleine nicht mehr stattfinden, nur noch synchron.
Und ganz außenrum sage ich dann,
dass ich die Aktion C3 aber bitteschön nicht mehr sehen will.
Dass da auf drei was passiert,
das soll jetzt nicht mehr
da sein
Okay, das kann ich machen und ich erhalte jetzt einen Prozess,
der tut was. Um was er tut von dem Verhalten,
was sich da recht kompliziert, implementiert habe,
die mittlere Gleichung ist jetzt also ein Therm, der eine Implementation beschreibt.
Von dem wollen wir jetzt beschreiben, beweisen,
dass sein Verhalten das Gleiche ist, wie das eines Puffers
der Kapazität 2. Und der würde durch folgendes Gleichungssystem beschrieben.
Wenn der Puffer leer ist, kann ich nur was lesen.
Ich bin also mit R1, denn im Zwischenzustand Y,
in Y bin ich im Zustand,
Puffer ist mit einem Datenelement gefüllt
Wenn ich in diesem Zwischenzustand Y bin, kann ich
Folgendes machen. Entweder ich lese noch mal auf eins,
dann bin ich im Zustand Z, der mir sagt,
zwei Dinge sind gefüllt. Oder ich liefere das bei S2 aus,
schreibe also wieder, dann ist der Puffer wieder leer.
Ich kehre also zurück zu X und starte das Ganze neu.
Und wenn ich im Zustand Z bin, also voll,
schon zwei Dinge da,
dann kann ich nichts mehr lesen,
kann also nur noch ausliefern auf zwei,
dann ist der Puffer nur noch von der Größe eins
gefüllt,
lande ich also wieder bei
Habe also eine solche Lösung, die da nur vorkommen kann.
Von X gehe ich mit Lesen auf 1 zu Y. Und habe da die Möglichkeit,
entweder noch mal zu lesen, um es bei Z anzukommen.
Und jedes ausliefernde Schreiben reduziert halt das,
was da drin ist, um eins.
Und an den Enden kann ich eben nicht lesen oder nicht schreiben.
Das geht nicht. Wenn nichts da ist,
kann das nicht ausgeliefert werden und wenn es voll ist,
kann ich nichts mehr annehmen.
Gut, dieses Verhalten soll jetzt in Beziehung gesetzt werden.
Das kann man jetzt tatsächlich
sich überlegen
Da wollen wir uns überlegen, wie verhält sich denn das gesamte System?
Und da nehmen wir mal unser neues gepufferte System. Und stellen wir fest,
wenn wir den Tower-Apparator nicht haben, dann hat der Ausdruck,
der da übrig bleibt, also nur Verdecken von S3,
R3 auf Parallel Q2 Q1, folgendem Prozess Graf.
Ja, und das sieht schon ganz gut aus,
der kann mich nur einmal lesen,
denn was intern tun,
denn entweder ausliefern bei zwei oder nochmal was lesen und dann ausliefernden
landet er aber bei mittleren Thermen,
weil er ja da noch
eine Kapazität eins hat
Das sieht noch nicht ganz so aus wie dieses XYZ auf der linken Seite.
Ist auch ganz klar, das linke hat drei Zustände,
das Recht hat vier Zustände. Aber ich weiß ja,
wenn ich dem Taueroperator da rumherum mache,
dann habe ich ja eine Aktion,
die gar nicht sichtbar ist und diese beiden Aktionen zusammen,
die werden ja dann als ein Knoten wahrgenommen.
Und dann sieht das ja schon ganz schön so aus wie das,
was ich gern hätte, muss ich nur den Grafen noch umdrehen.
Dann habe ich mich oben das X mit R1,
wird das denn zum großen gelben Kasten,
das ist mein
Und da kann ich entweder mit S2 rausgehen oder mit R1
nach unten. Und da ist es ungefähr mein Set.
Und das kann nur mit S2 zum mittleren Block zurückgehen.
Das heißt, hat schon eine ziemlich ähnliche Optik.
Das heißt, auf dieser Ebene der Prozessgrafen ist es uns klar.
Und jetzt werden wir größenwahnsinnig und wollen es nachrechnen.
Wir nehmen jetzt also alle Aktionen, die wir zur Verfügung
haben, sind nicht gerade wenige, unrechnen aus.
Was nämlich erstmal Q2 parallel zu Q1 ist.
Hier nochmal
die Erinnerung
Q1 war ja auf eins lesen, auf drei ausliefern und wieder zurücksetzen.
Q2 war das Gleiche, nur erst auf drei lesen,
dann auf zwei ausliefern, wieder zurücksetzen.
Und wenn ich den Parallelitätsopperator benutze, dann kommt raus,
naja, das kann ich in zwei Left-Merch zerlegen und ein Communication-Merch.
Also drei Therme, so wie wir das schon öfter gemacht haben.
Und jetzt kann ich mit dem rekursiven Definitionsprinzip die rechten Seiten der Gleichung einsetzen.
Also im ersten Thermen kann ich statt Q2 schreiben,
R3 mal erst zwei mal Q2,
denn das ist die rechte Seite
Für die Variable Q2. Und genauso kann ich das bei Q1
machen und beim Communication auch. Das hat dann den Vorteil beim
Left Merch, steht jetzt eine atomare Aktion jeweils links.
Die brauche ich beim Left Merch. In meinem Communication Merch stehen
sowohl links- und rechtsatomare Aktionen, die ich jetzt synchronisieren kann. Das heißt,
wenn ich da die definitorischen Gleichungen anwende von Left Merch und Communication Merch,
dann weiß ich Left Merch, da klammere ich das R3 aus,
übrig bleibt S2 Q2 und jetzt normal parallel zu Q1,
einem anderen Left-Merch, klammere ich R1 aus und übrig bleibt erst 3 Q1, parallel, normal jetzt zu Q2.
Und R3 R1 steht Delta, weil das nicht geht,
aber übrig bleibt es 2, S3, Q2 Q2 Q1 jeweils noch danach.
Und wenn ich das jetzt weiter umforme,
dann erhalte ich also,
weil das Delta vor irgendetwas immer noch Delta ist und plus Delta ignoriert werden kann,
das kann ich wegschmeißen,
bleibt also nur die Summe der ersten beiden Therme übrig
So, da habe ich also schon mal eine Vereinfachung bekommen für die ersten beiden Thermen.
Die Parallelen. Und da packe ich jetzt den Verdeckungsoperator drumherum und rechne weiter.
Also das, was ich da jetzt habe, ist einfach,
denn ich setze das, was ich eben hatte,
ein, nur mit dem Verdeckungsoperator drumherum.
Das, was jetzt in der Klammer steht,
ist das, was wir eben ausgerechnet haben. So,
jetzt nehme ich den Verdeckungsoperator, wende das an auf beide,
also erstmal darf ich das über das Plus rüberziehen,
dann darf ich das R3 in der Sequenz,
darf ich
das ausklammern
Und dann stelle ich fest, Mensch, Delta, verdeckt ja R3.
Und wenn ich das auf R3 anwende, bleibt Deadlock übrig.
Delta verdeckt aber nicht R1. Also bleibt er eins nach der Anwendung übrig.
Und Delta, mal irgendwas, ist mal eine Verklemmung.
Das heißt, den ersten Sesumanten kann ich wegschmeißen.
Es bleibt nur der zweite Semant übrig.
Also habe ich hier einen Therm ganz oben.
Und hier unten habe ich den gleichen Therm fast nochmal,
wenn man genauer hinguckt,
nur R1 und jetzt einen neuen Therm
Wiederverdeckung, aber erst 3 Q1 Q2. Und wenn man das jetzt nochmal vergleicht hier,
habe ich genau einen Übergang bewiesen, nämlich,
dass ich da von dem Oberen, das,
was wir mal vielleicht als X identifiziert haben,
mit einer R1-Aktion zu etwas kommen,
was sich als Y-Aktion identifiziert hat.
Gut, und da rechnen wir beim nächsten Mal
weiter und gucken mal, wo das Ganze dahin führt.
Bis da