Beim letzten Mal hatten wir gesehen, dass ACP, also die Algebra,
kommunizierender Prozesse, dass die eine korrekte und vollständige Aksymatisierung besitzt.
Und dazu musste man wieder zeigen, wie Simulation,
so wie sie kennen, eine Kongruenz bezüglich aller Operationen,
die wir jetzt haben, ist,
also bezüglich plus mal Parallelität in drei verschiedenen Ausprägungen und dem neuen zugekommenen Verdeckungsoperator.
Und deswegen konnten wir hoffen, dass es
eine Aktomatisierung gibt und diese Aksymatisierung haben wir auch gefunden.
Und wieder gab es Normalformen, mit diesen Normalformen konnte man jetzt beweisen,
dass der Kakül nicht nur korrekt ist, sondern auch die Vollständigkeit folgte daraus.
Und nun kann man sich fragen, die Normalform,
ist das jetzt mehr als ein theoretisches Handwerkszeug oder ist das praktisch?
Und dazu stellen wir uns mal die Frage,
wenn wir jetzt zwei Therme haben, den Therm S,
der ganz harmlos ist, zwei A's, parallel zu zwei Bs, zu zwei Cs.
Und hier ist der Therm Tee, der ist,
ich habe nur die ersten, die dritte Komponente getauscht.
Und ich habe auf die Klammerung verzichtet, weil eine Eigenschaft des Ganzen wird sich zeigen,
ist die Assoziativität und Komutativität, aber ich könnte auch eine ähnliche Klammerung vorgeben.
Aufgrund unseres Grundverständnisses, was der Parallelopperator tut,
sehen wir also sofort ein, Parallelität ist kommutativ,
deswegen muss ich da nur zweimal durchtauschen, sinngemäß,
dann vertausche ich hinten B und Cs,
dann stehen die Cs in der Mitte, dann tausche ich nochmal.
A's und Cs aus und dann nochmal hinten wieder Bs und
A's und dann ist alles an der neuen Position.
Deswegen sollte das B-Similar sein, das kann man denn auch nachrechnen,
sobald man weiß, dass Therme zueinander,
wenn sie parallel komponiert werden, dass das kommutativ und assistiv ist.
Und man müsste das eigentlich auch nachprüfen können,
denn so funktioniert der Beweis, indem wir Normalformen prüfen.
Also Äquivalenz ist überprüfbar, indem wir die Normalform von S
und die Normalform von Tee ausrechnen und hinterher überprüfen,
ob diese beiden zueinander AC äquivalent sind.
Die ist im Prinzip möglich. Im Prinzip aber auch nur,
wir können jetzt mal denn für diesen einen Term es die Normalform.
Der ist ja noch nicht sagen, womt.
Also ein Term der A und dann ein A ausführt,
parallel zu einem Term der B und dann B ausführt,
parallel zu einem Term der C&C ausführt.
Also drei Prozesse, die exakt zwei gleiche Schritte machen, die parallel komponiert.
Und dann können sie noch kommunizieren. Also es gibt das Sykrone,
Kommunizieren von A, B, von B,
C, auch von A, C. Naja,
wenn ich die Normalform für diesen kleinen Term ausrechne,
der ist bewusst gewählt,
denn dessen Normalform passt gerade noch auf diese Folie
Naja, da habe ich, konnte ich nicht widerstehen,
habe ich also gestern nochmal ein kleines Werkzeug geschrieben,
ist das ausrechnet, das habe ich nicht zu Fuß gemacht.
Und ich habe mal vereinfacht angenommen, dass jede synchrone Aktion
von A, B und C ein E ist.
Deswegen kommt dir nochmal ein E vor. Das heißt,
man sieht schon, selbst wenn diesen sehr einfachen Therm,
ist das gerade noch auf dieser Seite darstellbar.
Wenn ich das jetzt für Tee mache, das genau so aussehen,
vielleicht in einer anderen Reihenfolge und dann muss ich fleißig nachvollziehen,
ob diese beiden Thermen gleich sind,
modular C,
also modulo Vertauschung
Die nächste Variante wäre jetzt gewesen, ich mache 3As,
3Bs und 3Cs parallel zueinander. Ja, aber so einen
kleinen Fonds habe ich in meinem Programm nicht mehr,
um dann noch die Normalform anzuzeigen.
Selbst mit einem 4-Punkt-Fonds passt die Normalform dann nicht mehr drauf.
Wenn man das ausdruckt in einem Buch, sind das,
glaube ich, drei Seiten. Von daher ist natürlich die Möglichkeit,
normal von zu brechen und zu vergleichen eine eher theoretische.
Für viele Beispiele wird das nicht mehr praktisch machbar sein.
Das passt entweder gar nicht mehr in den Speicher hinein oder Ja,
ist vielleicht ein wenig mühselig, sodass man auf den Gedanken kommt,
ist ein wenig effizienter zu versuchen.
Und die effizientere Variante wäre dann,
dass man innerhalb der Prozessalgebraten mit den Gleichungen operiert und nicht erst,
sagen wir mal, die dümmstmöglichste Normalisierung darstellt,
sondern versucht zwischendurch mal einen Therm zu entdecken bei dem Umform,
der dann vielleicht gleich ist.
Das sind doch eine ganze Menge Umformungsschritte, die hier passieren.
Vielleicht kann man ja zwischendurch mal einen gemeinsamen Therm erwischen,
wo die beiden leichter als Äquivalent nachzuweisen sind
Gut, das noch als kleiner Schlenker,
der uns sagt, welchen Stellenwert Normalform haben,
sobald wir Parallelität und nebenläufige Prozesse betrachten,
dann wird das mich sehr schnell sehr unübersichtlich,
sehr komplex in dieser Inter-Living-Semantik, wo verschiedenste Abläufe möglich sind.
Und eine zweite Formkomplexität in das Ganze zu bringen,
ist jetzt nicht nur terminierende Prozesse zu betrachten,
denn bislang haben wir gesehen,
ein Basic-Process-Allgebrad terminiert alles,
in PAP,
Parallelkompositionen terminiert,
immer noch alles
In ACP habe ich noch den Deadlock-Operator als neue Variante.
Ich kann also Verklemmung produzieren, aber dann ist es halt
nicht eine normale Termination, sondern eine Ungewünschte.
Aber immer noch ein endlicher Prozess. Beim letzten Termin haben wir gesagt,
gut, jetzt haben wir eine Möglichkeit, unendliches Verhalten zu beschreiben durch Rekursionsoperatoren.
Wenn ich also einen unendlichen Prozess,
einen ganz Einfachen wie A, B, A,
B, A, B, immer so weiter beschreiben möchte,
dann kann ich das dadurch tun, dass ich sage,
naja,
der soll ein Transitionssystem haben,
das aus zwei Zuständen besteht
Und zwischen denen wird immer hin und her gewechselt.
Und da ich ja natürlich nicht mit meiner Prozessallgebracht Transitionssysteme definieren will,
sondern Therme, muss ich das mit Hilfe eines anderen Systems machen,
wenn der Algebra, ist das typischerweise so, dass man jetzt ein Gleichungssystem.
In unserem Fall wäre ein passendes Gleichungssystem ein rekursiv aufeinander bezogenes,
nämlich, dass ich sage X,
es soll ein Prozess werden oder sein, der sich so verhält,
dass er nach einem A-Schritt zum Prozess Y wird.
Und umgekehrt Y fällt sich nach einem B-Schritt weder Prozess X. Dann sieht man,
wenn ich das jetzt damit vergleiche, mit dem Prozessgrafen da oben,
wenn ich im oberen Knoten starte,
das ist offensichtlich das Y, dann mache ich ein B,
bin im unteren Knoten X und X hat jetzt die Eigenschaft,
ein A ausführen zu können und geht wieder zu Y zurück.
Das heißt, was wir wollen, ist mit Hilfe solcher Gleichungssysteme,
das wollen wir lösen und wir sagen,
Lösungen sind jetzt Prozessgrafen, wie sie da oben stehen.
So, im allgemeinen Fall ist es eben so,
dass ich nicht zwei Variablen XY habe,
sondern ich habe eine Sequenz X1 bis XN.
Und ich habe für jede dieser Variablen einen definierenden Thermen auf der rechten Seite,
einen Thermen T1 von X1 bis 6N. Und das soll die
Kurznotation dafür sein, dass ich Prozessthermen im ACP-Kalkül habe.
Und dort sind freie Variablen X1 bis XN erlaubt.
Die können mehrfach vortreten, auftreten, vorkommen oder auch gar nicht. Im Beispiel hatte ich also X,
das wäre das X1 und der Thermen T1 ist jetzt A mal Y,
ist also ein Thermen in den Variablen X und Y.
Und meine Variablen X 2 ist Groß Y und Thermen X,
ist BF mal X,
ist auch ein Thermen in X und Y. Kommt halt nur eine Variable jeweils vor.
Und das hätte ich gerne,
das ist erstmal eine Gleichung, die ich lösen muss,
deswegen das Ausrufezeichen
Und jetzt muss man definieren, was soll jetzt eine Lösung eines solchen Gleichungssystems sein.
Das soll ein Prozess sein oder eine Menge von Prozessen P1
bis PN, die, wenn man sie hier einsetzt,
das ganze gleiche System lösen. Also ein wenig formaler,
wir nennen Prozesse P1 bis PN eine Lösung der rekursiven Spezifikation,
also genau der von eben, jetzt schematisch geschrieben,
als XEs gleich einem Thermen,
T-I und I ist von 1 bis N laufend.
Und zwar genau dann sind die Prozesse Lösungen,
wenn ich das einsetze für XEs
Steht da ja PI. Und auf der rechten Seite steht
der Therm TI. Und da habe ich P1 bis PN
eingesetzt. Wenn jetzt die linke und die rechte Seite,
ja im gewissen Sinne gleich sind und die Gleichheit,
die uns interessiert, ist hier die Bi-Simulation.
Also Prozesse, die, wenn ich sie einsetze,
dazu führen, dass linke und rechte Seite Bi-Simulat zueinander sind.
Das will ich eine Lösung nennen. Dabei muss ich offensichtlich Prozesse,
mit Prozessen meine ich Prozessgrafen in die Therme einsetzen und damit das vernünftig ist,
meine ich damit, wenn ich einen Thermen auf Prozesse loslasse,
dass ich das eben operatorenweise auch auf Prozessen machen kann.
Ich kann also Prozesse multiplizieren, ich kann einen Prozess addieren,
ich kann Prozesse parallel verknüpfen,
wenn ich einen Prozess grafen und noch einen habe und ich verknüpfe die mit Sequenz meinetwegen,
da muss ich an den Prozess grafen, die hintereinander hängen.
Und das ist auch sehr konsistent mit dem,
was ich machen würde, wenn der Prozess durch einen Therm beschrieben wird.
Denn wenn ich zwei Prozessgrafen hintereinander hänge,
dann ist das genau der Prozessgraf von P1 mal
In dem Sinne ist, dass also alles konsistent,
ich kann die Operatoren auf den Prozessgrafen definieren.
Und wenn ich mir die Würze angucke,
dann steht dort plötzlich die Verknüpfung mit dem Operator. So,
jetzt ist die Frage, jetzt weiß ich,
was nur Lösung ist, aber ich weiß noch nicht,
ob alle Gleichungssysteme, die ich mir so denken kann,
alle rekursiven Spezifikationen, ob die immer eine Lösung haben oder nicht.
Und ob sie eindeutig ist. Und die Eindeutigkeit der Lösung
kann sowieso nur modono der Bisimulationsequalenz geschehen.
Warum? Angenommen, ich habe eine Lösung,
P1 bis PN und ich habe eine zweite Lösung,
Q1 bis QN
Wenn PI jeweils nicht unterscheidbar ist von QI, also PISB-Simulat,
zur QI, dann ist offensichtlich der Fall,
dass beide Lösungssätze, P1 bis PN und Q1 bis QN,
das rekursive Spezifikationsschema lösen werden.
Denn Prozesse, die B-Seminar sind,
auf der linken Seite sind nicht zu unterscheiden,
wenn ich sie einsetze auf der rechten Seite,
sind sie nicht zu unterscheiden,
weil ich ja weiß,
dass B-Simulation
eine Kongruenz ist
So, in dem Sinne weiß ich sofort, wenn ich B-Seminare setze,
von solchen Lösungen habe, dann kann ich da nichts unterscheiden.
Das heißt, ich packe in die Lösungsmenge,
wenn es überhaupt eine Lösung P1 bis PN gibt,
dann sind auch alle Therme Q1 bis QN,
die jeweils paarweise dazu B-Seminar sind, auch Lösung.
So, und wenn ich eine Lösung habe,
und ich weiß, X ist Äquivalent zu X plus X,
also auch X plus X plus X,
dann heißt das, ich kriege unendlich viele Lösungen,
wenn es überhaupt eine gibt.
Gut, da diese Art der Unendlichkeit aber nicht gewollt ist,
sagen wir,
wir meinen Eindeutigkeit jetzt
immer nur Modulo dieser B-Simulations-Ick verletzt
Das heißt, alle Lösungssätze, die zueinander bisemilar sind,
die zählen nicht mehrfach, sondern die zählen nur einmal.
Denn die kann ich eh nicht unterscheiden.
Erst wenn ich einen Zweitungslösungs, einen zweiten Lösungssatz habe,
der nicht mehr bisemilar zum ersten ist,
erst dann will ich von einer zweiten Lösung sprechen.
In diesem Sinne sind also Äquivalenzklassen von Prozessen Lösung. Ja,
das machen wir nicht immer so ganz exakt,
sondern wir sprechen von P1 bis PN, von der Lösung,
meinen aber implizit immer die Menge aller Prozesse,
die jetzt dazu bisemilar wären
Gut, und jetzt ist die Frage, kann ich das erwarten,
dass ich mindestens eine Lösung habe und höchstens eines,
das wäre die Eindeutigkeit, was für eine Spezifation praktisch wäre,
mindestens eine Lösung wäre gut, damit ich das überhaupt implementieren kann,
höchstens eine ist sinnvoll, damit das,
was ich dahin geschrieben habe, nicht vielfältig interpretiert werden kann.
Spezifikation sollen eindeutig sein. So, ein erstes Beispiel dafür ist,
unsere Spezifikation, die wir vorhin betrachtet haben,
X soll AY sein und Y BX,
genau das gleiche System, das wir eingangs hatten,
Das hat als einzige Lösung im Sinne der Bisimilarität einzig.
Die beiden Prozesse, X wird mit A zu Y,
mit B zu X, mit A zu Y und so weiter.
Das ist die Lösung fakes. Dieser Prozess.
Und für Y genau das gleiche in Grün,
nur dass ich mit Y anfange und dann mit B zu X.
Und dann mit A zu Y und so weiter gehen.
Alle Prozesse, die diese Struktur haben oder dazu Bisimilar sind,
das sind jetzt Lösungen. Und sonst gibt es keine weiteren.
Außerdem B-Seminar. Ein weiteres Beispiel ist, Der Prozess X,
Gleich Y, Y, ist gleich AX.
Da sieht man auf den ersten Blick intuitiv, das Y
ist relativ überflüssig. Ja, wenn X gleich Y,
Y gleich AX ist, dann könnte ich das verketten,
dann stünde da ja nur X, ist gleich AX.
So, der einzige Prozess, der das erfüllt,
ist ein Prozess, der immer A macht,
weil er nach einem A-Schritt ja wieder er selber sein soll.
Also hat ein Prozess die Form X, wird mit einem A zu X,
mit einem A zu X und so weiter.
Ja, und Y ist irrelevant für Y,
das kommt da gar nicht drin vor
Alles jeweils Modulobi-Simulation. Jetzt, gucken wir uns mal an,
wie sieht das mit Eindeutigkeit in Existenz aus?
Und wenn Sie jetzt die einfache Spezifikation X gleich X,
die ist von allen Prozessen erfüllbar.
Jeder Prozess ist für sich selbst bisimilar. Deswegen egal,
was ich da einsetze, jeder Prozess erfüllt diese Spezifikation.
Das heißt, wir haben hier ein Beispiel für eine Spezifikation,
die eine Lösung hat, aber leider unendlich viele,
weil ich unendlich viele Prozesse ab.
Es gibt unendlich viele nicht-bisimilare BPA-Therme. Man ist ganz einfach,
A ist nicht wie Simulat zu A mal A,
ist nicht wie Simulat zu A, mein armer A und so weiter.
Also das ist das Einfachste. Beispiel, um zu zeigen,
da sind unendlich viele Therme gibt, die nicht bisimulär zueinander sind.
Wenn ich die rekursive Speziation X ist gleich A plus X,
also ein Tick konkreter mache, dann weiß ich,
nach jedem, immer wenn ich bei X bin,
dann kann ich ein A ausführen und dann terminiere ich Oder ich bin wieder bei X.
Das heißt, jeder Prozess P, der die Chance hat,
mit einem A zu terminieren, ist eine Lösung.
Was auch immer dieser Prozess sonst noch machen kann.
Und danach kehrt er wieder zu sich selbst zurück.
So, und es gibt eine ganze Menge Prozesse,
die wieder selbst werden. Also auch eine... Ja,
für X könnte ich jetzt alles einsetzen.
Ich nehme also einen Prozess, der hat irgendwie einen Teilterm,
den ich nicht arbeite,
abarbeite und A terminiere.
Nächstes Beispiel
Wenn ich das A jetzt dummerweise hinten anschreibe, sagt,
X ist gleich XA. Wenn ich das paar Mal einsetze,
was passiert dann, dann steht da X,
ist gleich X mal X A. Nochmal eingesetzt mit X
gleich dreimal X hintereinander und A.
Das kann ich also beliebig lange treiben. Ich weiß,
ein Prozess ist äquivalent zu einer beliebig häufigen Iteration von sich selbst
und danach ein
Beliebig häufig heißen, es gibt keine Obergrenze,
wie oft der Prozess selbst schleift, aber danach kommt ein A.
Und das führt dazu, dass alle nicht terminierenden Prozesse Lösungen davon sind.
Denn ein terminierender Prozess, wenn ich den da einsetze,
der hat nicht die Eigenschaft,
dass er in allen Abläufen das Gleiche ist,
wie dieser Prozess, an dem hinten noch ein A folgt.
Der ist ja um eins länger.
Die rechte Seite hat ja noch ein A,
hinten hat dann auf diesem Pfad
die Länge plus eins
Und auf der linken Seite nur die alte Länge. Das heißt,
bei Terminierenden habe ich gar keine Lösung, das kann er nicht erfüllt sein.
Bei Nicht-Terminierenden ist es nicht so schlimm. Also gewissermaßen nach
einer Endlosschleife noch ein A dran, das stört mich.
Das merke ich nicht. Und das sind tatsächlich Lösungen. Wenn ich mich beispielsweise X,
dem Prozess B, B, B, B,
B immer so weiter ansätze, und das unendlich oft,
wenn ich das einsetze, B, Hochomega, meinetwegen,
ist gleich,
Beo,
Omega A,
weil das A da hinten
gar keinen Effekt mehr hat
Und diesen Prozess kann ich auch leicht generieren,
zum Beispiel durch eine rekrusive Spezifikation.
Das hatten wir, können wir uns leicht denken,
das ist die Spezifikation, X ist gleich BX.
Der kehrt nach einer B-Aktion wieder zu sich selbst zurück.
Das heißt, solche unendlichen Prozesse kann ich auch spezifizieren.
Was nehmen wir also mit? Es gibt Beispiele für Gleichungssysteme,
die unendlich viele Lösungen haben und es gibt welche,
die haben vielleicht auch gar keine Lösung mehr.
Das Anscheinung ist gleich da
Antwort oder. Und dann kommt Arnie mehr.
Also wenn ich die unendliche Sequenz von Bs da einsetze,
dann kann man was hinterschreiben, das kommt ja nie.
Also steht da zwar, aber nach erreiche ich ja nie nach endlicher Zeit.
In dem Sinne stört er dann nicht. Wir sind jetzt
also auf der Suche nach einer Art von Gleichungssystemen,
die mir garantieren, dass die Lösung existiert und eindeutig ist.
Und solche Gleichungssysteme, die existieren, wenn ich geschützte Rekursions verwende.
Und das ist eine spezielle Art und Weise,
wann es eine rekursive Spezifikation geschützt. Sie ist geschützt dann,
wenn die rechten Seiten von diesen Spezifikationen eine spezielle Form haben. Wenn ich also den Therm-TI betrachte,
in den Variablen X1 bis 6N, dann möchte ich,
dass der entweder die Form hat oder ich ihn umformen kann durch Substitutionen,
durcheinander einsetzen, dass er immer mit einem Atom beginnt,
also mit A1, Und dann einen Therm, einen irgendwie gearteten Therm S1, der die Variablen enthält.
Davon kann es endlich viele geben. Also das geht bis
AK mal, Therm SK. Und was auch erlaubt ist,
dass dieser Therm da hinten leer ist.
Also ich darf auch noch Therme B1, B2 bis BL haben.
Wenn die rechte Seite TI genau eine solche Darstellung besitzt oder
eine solche Ungeführung werden kann,
dann will ich sie geschützt nennen
Und solche dekrusiven Spezialisationen,
die geschützt sind, für die wollen wir dann zeigen,
dass dort vielleicht sogar Eindeutigkeit und Existenz gegeben ist.
Gucken wir uns mal ein Beispiel an.
Wir nehmen mal die Gleichung, Spezifikation für XYZ.
X sagt, X soll parallel zu Y,
X ist gleich Parallelität von Y und Z sein.
Y fällt sich wie Z oder terminiert mit einem A.
Und Z fällt sich nach einem BBZ
Und dann ist eben noch die Synchronisationsbedingung gegeben,
dass AB und BB miteinander synchronisiert werden dürfen.
Und das ist dann die Aktion 10. Jetzt gucken wir uns
die rechten Seiten an. Für Z sehe ich,
aha, das ist ein Therm, der beginnt mit einer
atomaren Aktion B. Hat also schon die gewünschte Form.
Da muss ich also nichts mehr machen. X auf der
rechten Seite steht Y parallel Z. Parallelität war nicht erlaubt.
Und für Y steht da Z plus A.
Das A ist in Ordnung
Ja, aber das Z beginnt leider nicht mit einem Atom.
Das ist nicht erlaubt. Das heißt, da muss ich jetzt irgendwie ran.
Ich darf jetzt aber Umfangsschritte machen. Der erste Umfang muss Schritt,
den ich machen kann, ist, dass ich sage,
naja, Y ist Z plus A,
aber ich weiß ja, das Z gleich BZ ist.
Und das darf ich da einsetzen. Wenn ich das mache,
dann steht da, Y ist gleich BZ plus A.
Und das hat dann die gewünschte Form. Das heißt,
die gleiche für Y, die kriege ich auch in
die Normalform,
die ich brauche
Und jetzt X ist Y parallel zu Z. Das muss sich
jetzt umformen. Ich muss also da die entsprechenden rechten Seiten
für Y und Z einsetzen und dann mit der Aktione das,
was ich da habe, BZ plus A und parallel zu BZ,
das muss ich jetzt weiter umschreiben.
Ja, muss ich jetzt auspacken. Wie sieht das aus?
Parallelität muss ich also durch Left Merch und Communication Merch ersetzen.
Dann steht dort linke Seite, Left Merch BZ oder
Genau umgekehrt oder beide synchron. Und dann weiß ich,
beim Left-Merch darf ich die Summen auf der linken Seite ausklammern,
habe ich also nur noch BZ, mal rechte Seite und alternativ dazu.
A, Left-Merch-BZ, die anderen Left-Merch-Therme bleiben,
denn ich kann, muss ja immer von links was nehmen,
das heißt, im mittleren Thermen BZ, Left-Merch,
BZ plus A, dann darf ich nicht ausklammern.
Dieser Therm bleibt so. Und beim Communication-Merch,
da darf ich wieder links wie rechts ausklammern,
deswegen kriege ich da zwei Therme BZ zu BZ und A zu BZ.
Und jetzt schaue ich die Left Merch-Therme an, BZ,
Left Merch BZ, das ist B,
auf jeden Fall auf der linken Seite muss ich zuerst ausführen und dann wird der ZBZ dazu.
A, Left Merch BZ ist, na gut,
der weiß sich, da vorne steht nur ein Zeichen,
ein A, dann kann ich das in der Sequenz umformen,
also A, BZ.
Dann steht da BZ, Left Merch,
Summe BZ plus A, da kann ich das B jetzt
ausführen und den Rest wieder zusammenfassen,
normalen Parallelitätsopperator
Und wenn BZ, mit BZ kommunizieren soll, dann weiß ich,
weil B und B in der Kommunikation C ist,
da kommt dann also zehnmal Set, Parallel, Z raus.
Und wenn A und B miteinander synchron kommunizieren,
kommt auch ein C raus und das Z bleibt übrig.
Und jetzt habe ich einen Therm,
wenn man mal guckt, das ist eine Summe.
Eins, zwei, drei, vier, fünf Summanten.
Und jeder Summant beginnt in diesem Fall mit einer atomaren Aktion.
B-A-B-C-C. Das heißt, durch diese Umformungsschritte kriege ich auch die
rechte Seite der Gleichung für X in die Form,
die ich brauche
Das heißt, ich habe nachgeweisen,
alle drei Gleichungen in diesem System teilgleich und können umgeformt werden,
sodass sie dieses Muster erfüllen für eine Guardet-Recursion.
Das heißt, das ganze System, was ich initial hatte,
das ist eine geschützte, rekursive Spezifikation.
Was kann ich damit jetzt machen? Ich halte erst mal fest,
die Dinger tun das, was ich gerne hätte.
Wann immer ich eine rekursive Spezifition habe,
Wenn sie geschützt ist, besitzt sie eine eindeutige Lösung.
Monologie-Simulation. Das ist das, was uns interessiert. Wenn ich
die Dinge annehme, dann habe ich eindeutig eine Lösung.
Theoretisch ist es auch noch interessant, das sind alle eindeutig lösbaren Systeme.
Das heißt, wenn ein System überhaupt eindeutig lösbar ist,
dann hat sie die Form geschützter Rekussion.
Das heißt, wenn vorne nicht eine atomare Aktion steht,
dann habe ich keine eindeutigen Lösungen. Letztendlich war ich dann,
es erlaube, dass unendlich oft ein Therm durch sich selbst
ersetzt werden kann und euch den anderen.
Das heißt, da passiert dann operational gesehen auch nicht.
Wenn wir uns auf solche eindeutig lösbaren Gleichungssysteme beschränken,
und das tun wir im Folgenden, dann können wir ja von der Lösung sprechen.
Sie ist ja eindeutig Modologie-Simulation. Und dann können wir,
wenn wir eine rekursive Spezifikation eh haben und sie ist geschützt,
dann können wir die Lösung jetzt mit einem neuen Term bezeichnen.
Und wir sagen, die Lösung der Variable XI in diesem Gleichungssystem
eh mit notiert als Spitze, Klammer auf, X-I-N-E-Spitze, Klammer zu.
Ja, so notiere ich mir die Lösung für die Variable X-I.
Ich weiß ja, es gibt eine Lösung und ich sage,
um dafür einen Namen zu haben, so sieht sie aus.
Naja, so sieht sie aus, ist gut,
wir wissen noch gar nicht, wie das Verhalten ist,
um erstmal das Verhalten rekursiver Spezifikation zu definieren,
müsste ich wieder dem Ganzen Transitionsregeln geben.
Ich muss wissen, wie verhält sich eigentlich die Lösung
Eine Gleichungsspezifikation eh. Und da gibt es zwei relativ einleuchtende
Regeln. Eine für Termination eine für Nicht-Termination.
Und beide haben die gleiche Idee. Wenn ich beweisen kann,
dass die rechte Seite einer Gleichungsspezifikation, also der Term-TI,
und da habe ich schon die Lösung X-1 bis X-N eingesetzt.
Wenn ich für den beweisen kann, den rechten Term,
der ist ja ein bisschen komplexer, typischerweise,
und hält mehr Informationen, wenn ich für den beweisen kann,
dass er mit einer V-Aktion terminieren kann
Dann darf ich auch sagen, dass die linke Seite das tun kann.
Denn linke und rechte Seite sollen ja zueinander gleich sein.
Das heißt, wenn die rechte Seite terminieren kann, dann auch die linke.
So, und das ist deswegen für uns die sinnvolle Reihenfolge.
Ich kann es natürlich auch genau symmetrisch machen.
Ich könnte auch sagen, wenn ich weiß,
X kann mit V terminieren, Xi, kann das?
Dann auch die rechte Seite. Könnte ich auch machen,
ist in Folgen, weil ich das typischerweise nie beweisen kann.
Wie sollte ich aus der Luft beweisen können,
dass Xi mit V terminiert?
Ich weiß über Xi noch
gar nichts
Das heißt, diese Reihenfolge wäre nicht sinnvoll.
Wenn ich einen Term habe, von einer Guarded Recursion,
einer geschützten Rekursion, dann weiß ich ja wenigstens, aha,
der hat so eine Form einer Summation von irgendwelchen Thermen,
die alle mit einer atomaren Aktion stattfinden.
Und hinten stehen vielleicht sogar einzelne Atome,
so ein B-B-1 oder B-2. Wenn ich Sündentherm habe,
der diese Sündenform hat, dann ist doch halbwegs klar,
dass ich mit einem B dann auch terminieren kann.
Das sehe ich dem Therm auf der rechten Seite direkt an.
Das kann man dann beweisen
Und von daher, weil dieser Therm auf der rechten Seite
mehr Informationen liefert, als der auf der linken Seite,
es ist sinnvoll, so rum die Beweisregel zu stricken.
Andersrum wird es nicht stören, da wird man aber nie anwenden können.
Das ist sinnvoll, weil ich weiß, dass die linke und
die rechte Seite zueinander gleich sind. In ähnlicher Form,
weil sie auch die zweite Form, wenn ich weiß,
die rechte Seite wird zu irgendeinem neuen Therm Y,
weil ich weiß, die rechte und linke Seiten sollen gleich sein,
kann ich auch sagen,
dass die linke Seite jetzt die Möglichkeit hat,
mit einem V zu diesem neuen Therm Y
zu sein
Also kann ich das verkürzen, indem ich sage,
das Verhalten eines Thermes TI in den Lösungen, ja,
wenn ich weiß, wie sich der fällt,
auf der rechten Seite der Therm, dann weiß ich auch,
wie die Lösung XI sich verhält.
Und damit kann man jetzt schon eine ganze Menge beweisen.
Man kann jetzt nämlich das Eingangsbeispiel mal überprüfen.
Da hatten wir ja gesehen, für unsere prekursive Spezifikation
X ist gleich A, Y und Y BX,
da stellen wir erst mal fest,
diese rekursive Spezifikation ist tatsächlich geschützt
Beide rechten Seiten beginnen mit einem Atom. Da ist eine endliche Summe von Dingen,
die mit einem Atom beginnen. Der Prozess graf,
das wollen wir jetzt rauskriegen, hat jetzt genau die Form,
wenn ich die Lösung von X habe und ein A ausführe,
dann kommt die Lösung von Y raus.
Und wenn ich die mit der Lösung von Y anfange,
komme ich zur Lösung von X mit einem B-Schritt.
Das müsste sich doch jetzt nachweisen lassen.
Also leiten wir mal so einen Übergang her,
den A-Übergang, dass ich Lösung von X in E mit
einem A zur Lösung von Y
in E überführen kann
Wie sieht das aus? Also rechts oben noch mal aufgeschrieben,
dass diesen Prozessgrafen für daneben stehende gleichen Systemen,
das wollen wir zum Zerleiten, jetzt nur eine A-Aktion,
die B-Aktion läuft da genau symmetrisch dazu,
da muss ich nur XY vertauschen im Wesentlichen.
Wie kann man den Beweis jetzt stricken? Na,
ich will eine A-Aktion machen,
das heißt es sinnvoll mit einem Aktion anzufangen,
das mir eine A-Aktion auch erlaubt,
das ist das erste Aktion A0,
das sagt ja mit einem beliebigen,
atomaren V komme ich mit einer V-Aktion zur Termination
Hier wünsche ich mir immer für V das Kleinar. So,
und was ich als nächstes mache, ich wende jetzt die
Beweisregel an, dass ich da rechts was hinterscheiden darf.
Also ich darf rechts was ran multiplizieren. Ich darf also sagen,
wenn ich A zur Termination führen kann,
dann kann ich jetzt rechts ein Y dran multiplizieren und kommen
vom Produkt X mal Y mit einem V-Schritt zu Y.
Und Übungen kann ich jetzt auch als Spezialfall zur Lösung von
Groß Y in dem Gleichen System ewählen.
Das heißt, ich kann ableiten,
dass A mal Lösungen von Y mit einem A zur Lösung
von Y wird
Und was haben wir jetzt,
wenn man jetzt in das Gleichungssystem eh selbst schaut,
steht auf der linken Seite, A-Mahl-Lösung von Y.
Was ist das? Das ist exakt das,
was in einem gleichen System auf der rechten Seite fähig steht.
Da steht mich x, ist gleich A mal Y.
Also A mal Y habe ich dort oben stehen und im Moment
im Beweis habe ich A mal Lösung von Y. Also genau das gleiche Muster.
Und nun sagt mir, meine Schlussregel,
dass wenn ich die rechte Seite einer Spezifikation gefunden habe,
ich das durch die linke Seite ersetzen darf.
Das heißt, A-Mail-Lösung von Y in E,
wenn ich weiß, das wird zu Therm Y,
dann darf ich da die linke Seite einsetzen.
Das ist dann die Lösung von X. Und ich weiß,
das wird auch mit einem V zu Y. V ist hier wieder A.
Und der Therm auf der rechten Seite, damit das passt,
lese ich ab, muss die Lösung von Y sein.
Insgesamt bekomme ich also, wenn ich das so ersetze,
arme Lösung von Y wird ersetzt.
Ich bekomme also die Lösung von X,
widme deinem A-Schritt zur Lösung von
Und das kann ich machen,
weil die rechten Seiten hier passend sind,
wenn ich die rechte Seite der Gleichung gefunden habe,
dann darf ich sie ersetzen durch die linke Seite, dergleiche.
Das ist das ganze Geheimnis. Und die rechte Seite bietet mir typischerweise mehr Informationen an,
der Therm A mal Y ist ein bisschen einfacher,
da kriege ich was raus.
Ich kriege mich insbesondere raus, dass ein Therm A mal
Y A ausführen kann. Und diese Informationen,
die reicht mir, um dann zu sagen, okay,
das kann auch die linke Seite
ein A ausführen
Das heißt, so baue ich mir langsam meine ganzen Übergänge her.
Was kann man damit jetzt alles spezifizieren? Boah,
eine ganze Menge, gucken wir uns mal ein Beispiel an.
Multi-Mengen, gucken wir mal an.
Da gibt es verschiedene Sachen, eine Multi-Menge, Englisch-Back.
Und dann nehmen wir nur die Elemente 0 und 1. Eine Multi-Menge,
die heißt so, weil das sowas ist wie eine Menge,
nur dass Elemente mehrfach vorkommen können.
Also deswegen Englisch, Beutel, Back.
Ich kann die 0 paar Mal reinpacken und kann sie später
auch genauso oft aus dem Beutel rausholen
Die Menge, in der dreimal die Null drin ist,
unterscheidet sich ja nicht von der Menge,
in der einmal die Null drin ist.
Bei einer Multimenge, wo das Multiple Vorkommen möglich ist,
dort wird eben Buch geführt, wie oft es rein oder rausgegangen ist.
Und damit wir Multimengen jetzt modellieren können im Prozess allgebracht,
fügen wir jetzt atomare Aktionen hinzu.
Wir sagen, wir haben die Innenaktion in null und in eins.
Das bedeutet einfach, die Null wird einmal noch hinzugefügt oder
die Eins entsprechend. Und wenn da welche drin sind,
dann kann durch Out0 und Out 1 auch was rausgenommen werden.
Wobei die Reihenfolge unerheblich ist. Hauptsache, in der Vergangenheit sind
hinreichend viele mal reingelegt worden. Dann kann ich auch wieder
welche rausnehmen. Das heißt, wenn ich links oben starte,
dann gehen von dem Knoten ganz links oben zwei Pfeile ab.
Der Pfeil, der nach rechts geht, der ist mit in null beschriftet.
Das heißt, erstmal ist der Beutel eher und dann packe
ich eine Null rein. Wenn eine Null drin ist,
habe ich die Möglichkeit, sie gleich wieder reinzunehmen.
Das ist ja wieder leer. Oder wenn ich eine Null reingepackt habe,
kann ich auch noch fallen nach unten, eine Eins reinpacken.
Dann habe ich sowohl eine Null als auch eine Eins.
Ich kann auch die Reihenfolge umdrehen. Ich kann erst im leeren Beutel starten,
eine Eins hinzupacken, dann bin ich links unten und dann
eine Null hinzu, wenn ich rechts unten,
habe ich auch eine Eine Null und eine Eins drin.
Wenn ich im Zustand rechts unten bin,
kann ich also bei einer Null,
eine Eins in einer beliebigen Reihenfolge die beiden wieder rausnehmen.
Ich kann also nach links gehen,
dann nehme ich zuerst die Null wieder raus und
dann kann ich
nach oben gehen
Dann nehme ich die Eins raus. Oder ich kann erst
die Eins rausnehmen und dann die Null.
Beide Reihenfolgen sind möglich. Deswegen kriegt dieses kleine Quadrat.
Natürlich muss ich nicht aufhören. Ich kann auch munter weiter
Nullen einfügen. Das heißt, wenn ich nach rechts anbaue,
dieses Schema, dann erhalte ich einen Beutel,
in dem ganz viele Nullen drin sind.
Also was noch dargestellt ist, ist 1, 2,
3, 0 sind hinzugefügt worden.
Das ist, wenn ich nur nach rechts gehe.
Und genauso viele kann ich dann wieder entnehmen.
Und natürlich kann ich das Gleiche auch mit Einsen machen und
dann kann ich die Ebene vollpflastern
Das heißt, ich habe ein Koordinatensystem und jede Koordinate,
jeder Kuller entspricht genau dem Füllstand, nach rechts ist die Anzahl
der Nullen aufgetragen und nach unten die Anzahl der Einzelnen.
Und jeder Weg, den ich jetzt gehen kann,
zurück zum Startpunkt, der führt jetzt dazu,
dass ich den Beutel wieder gelehrt habe.
Und zwar jeder tut es. Was ich nicht machen kann,
ich kann nicht links oberhalb von dem Startpunkt kommen.
Ein Beutel der Leer ist noch Lehrer, kann ich den nicht machen.
Das heißt, ich kann höchstens so viel raus, nämlich reingetan haben.
Und das Muss ich jetzt irgendwie eine Gleichungsspezifikation reinpacken?
Das ist ja ein endliches System, man sieht,
dass der Prozessgraf dessen, was ich beschreiben möchte, ist unendlich groß.
Hat jetzt aber eine halbwegs einfache, nekusive Spezifikation. Wir sagen nämlich,
es kann Folgendes passieren, wenn ich irgendwo bin,
also irgendein Beutel X habe, der hat jetzt meinetwegen schon Füllstand.
Stellen wir uns das mal so vor. Was kann dann
passieren? Naja, er könnte im Zweifel zwar leer sein,
deswegen sollte ich mal lieber nichts rausnehmen. Was ich aber machen kann,
ich kann Folgendes sagen, Ich kann eine Null hinzupacken,
dann weiß ich, ist schon was drin.
Und danach verhält sich das ganze System so, dass ich sagen kann,
wie die Parallelkomposition von X und der Möglichkeit eine Null wieder rauszunehmen.
Das heißt, ich gehe ein nach rechts,
habe jetzt die Möglichkeit, genauso wieder weiterzumachen,
merke mir aber, indem ich rechts noch mal parallel dazu komponiere,
einmal out null, wie viel Null neid drin sind.
Das heißt, der Parallelopperator wird gewissermaßen so taktisch als Puffer
jetzt verwendet, um zu speichern,
wie oft ist es denn drin
Was ich mit der Null machen kann, kann ich auch mit der Eins machen.
Ich kann also alternativ dazu sagen, deswegen ein zweiter Therm.
Ich packe eine Eins hinzu in eins und dann bin ich in einem Zustand,
der sich so verhält wie X, wobei ich parallel noch
die Zusatzmöglichkeit habe, jetzt die Eins wieder zu entfernen.
Und da sieht man angenommen, ich nehme den linken Therm,
ich packe eine Null hinzu.
Ich gehe also einen nach rechts. Und wenn ich mich dann entscheide,
gleich die Null wieder rauszunehmen, dann lande ich wieder bei X,
also in dem Zustand, den ich vorher habe.
Wenn ich paar Mal jetzt meinetwegen irgendwas hinzufüge,
also ein paar Mal die Null, Dann habe ich den Therm X parallel zu.
Outnull, Outnull, Outnull, Altnull. Ja,
so oft wie ich jetzt die Null hinzugeparkt habe. Und wenn ich das gemischt macht,
habe ein paar eins und ein paar Null hinzugefügt,
dann habe ich X ist parallel zu Outnull,
Out eins, Outnull, Outnull, Out eins,
Out eins, irgendwas in der Art.
Und bei dieser Codierung ist ganz hilfreich. Die Reihenfolge spielt
keine Rolle. Parabilitätsoperator ist ja assoziativ und kommutativ.
Von daher ist es auch egal, in welcher Reihenfolge ich
was reinpacke. Ich kann es in beliebige andere Reihenfolgen
wieder rausnehmen
Ja, aber ich kann nicht mehr rausnehmen, als ich
schon mal zuvor reingepackt habe. Gut, das heißt,
mit einer sehr kleinen, rekursive Spezifikation, wir beachten,
sie ist geschützt, sie beginnt immer mit einem Atom,
mit einer Innenaktion jeweils.
Mit dieser kleinen Zeile für eine Variable X
kann ich also das gesamte Verhalten eines Unendlichen Systems beschreiben.
Also es ist nicht nur so, dass das System
unendlich viele Abläufe erlaubt, also auch nicht terminierende.
Ganz klar. Ich kann irgendwo in die Mitte laufen und
dann munter im Kreis, immer wieder paralen,
paar raus,
paar rein,
paar raus
Das heißt, nicht nur die Abläufe sind hier unendlich,
da ich ja die ganze Ebene, den ganzen Quadranten,
den positiven Quadranten vollpflastere auf diese Art und Weise,
ist sogar mein Prozessgraf unendlich groß.
Also zwei Formen von Unendlichkeit, die einfachere Unendlichkeit,
ein unendlicher Ablauf. Wie wir mit unserem AB-System kennengelernt haben,
ist das aber auch mit endlichen Transitionssystemen möglich.
Wenn ich zwei Zustände habe, die im Kreis verbunden sind,
kann ich auch da unendlich lange laufen, ohne zu terminieren.
Hier haben wir auch noch die zweite schlimmere Feuerunendlichkeit.
Nämlich die, die sagt, ja ja,
aber du hast auch unendlich viele Zustände.
Gut, das ist die größere, schlimmere Form der Unendlichkeit.
Da kommen wir nochmal drauf zurück. Diese beiden Formen von Unendlichkeit
wollen wir später nochmal unterscheiden. Und jetzt wollen wir natürlich damit rechnen,
wir wollen gerne die rekursiven Spezifizieren lösen können und das
mit Hilfe von Aktionen wollen wir es behandeln.
Und am liebsten hätten wir jetzt gerne Dass wir korrekte und vollständige
Aksymatisierung hinkriegen. Das war eine Feststellende ist so eine Sache,
das vollständig zu machen für unendliche Prozesse, könnte schwierig werden.
Zumindest könnte es schwierig werden, solange wir noch nicht die Turing-Simulation eingeschränkt haben.
Wenn unsere rekursive Spezifikation erlaubt, das Verhalten einer Turing-Maschine zu beschreiben.
So nach dem Motto, eine Turing-Maschine ist etwas,
das sie nach einem Input schreiben verhält und danach wieder sie selbst ist.
Das kann man ja ganz grob gesehen als rekursive Spezifikation formulieren
Wenn ich das machen könnte, müsste man sich in Metall nochmal anschauen,
dann ist es nicht zu erwarten, dass ich eine vollständige Aktomatisierung hinbekommen kann.
Denn wenn ich eine vollständige Aktomatisierung hinbekäme,
der hätte ja alles immer eine, immer einen Beweis,
also zwei Verhaltensgleiche, Therme, so eine Therme,
die B-Similar sind, für die könnte ich immer nachweisen,
dass sie das sind.
So, jetzt könnte ich mich fragen,
naja, ist diese Touring-Maschine B-Similar,
muss man noch nachdefinieren zu einer,
die immer hält
Wenn ich das entscheiden könnte mit einem Aktionensystem, vollautomatisch,
am besten noch, dann könnte ich das Halteproblem entscheiden.
Da ich das nicht kann, ist es relativ unwahrscheinlich,
wenn das alles so klappt, wie ich das eben skizziert habe,
dass ich eine korrekte und vollständige Aksymatisierung im Allgemeinen Fall kriegen kann.
Das heißt,
später müssen wir wohl irgendwie noch mal auf rekrusive Spezifikationen,
die nicht nur eindeutig lösbar sind, runter,
sondern die müssen auch ziemlich einfache Lösungen sein.
Tobi-Maschinenmächtigkeit musste ausgeschlossener. Jetzt gucken wir uns noch mal
zwei Aktionen an. Wir nehmen wieder an unser gleichen System
Die rekursive Spezifation E sei gegeben, wie immer,
nämlich als Satz von Gleichung in der Form X1
ist gleich dem Thermen T1 und das Ganze bis XN
ist gleich TN und die Therme sind eben Variablen behaftet.
Und jetzt definiere ich nur zwei neue Aktionen in mir hinzu.
Das erste Aktion ist das Rekursives Definitionsprinzip, also ein Definitionsprinzip für Rekursion.
Das sagt einfach nur aus, dass auch aksymatisch gesehen linke und rechte Seite gleich sind.
Die Lösung von X ist Äquivalent zur der rechten Seite,
in der Spezifikation. Also Lösung von XINE ist gleich,
dem Therm-TI mit den Argumenten X1 bis XN, jeweils als Lösung.
Das heißt, wenn ich eine Lösung habe,
dann ist sie genauso gut wie die rechte Seite ihrer Definition in der Spezifikation.
Das heißt, aus der Spezifikation, wenn ich da was habe,
dann mache ich aus der Spezifikationsgleichung, also die,
die ich mal mit dem Ausrufezeichen formuliert habe,
Eigentlich müsste über dem gelben Kasten bei der Rekordsieben-Spitzsituation eh,
da wird ja das Ausrufezeichen stehen.
Dass RDP-Aktion sagt, dass wir dieses jetzt in der Äquivalenz
übernehmen dürfen, in unserem Gleichungskalkül.
Nur, dass sich jetzt aus X Lösungen von X machen muss.
Wenn ich das so übertrage, dann weiß ich, okay,
dass Pattern in eh, wenn ich das durch Lösung ersetze von X,
dann gilt es auch als Aktion.
So, praktisch verwendet man das so, wenn ich schon
eine Lösung habe, dann kann ich sie irgendwie noch weiter umbauen?
Kann ich also sagen, entweder,
ich habe irgendwas gefunden für die rechte Seite, weiß ich was,
naja, dann gilt es auch für die Linke oder auch umgekehrt.
Das zweite Aktion muss uns jetzt irgendwie was verraten, wie ich überhaupt Lösungen bekomme.
Denn diese Aktion gibt uns noch keine. Sagt nur,
was wir mit einer vielleicht vorhandenen Lösung machen können.
Das zweite Aktion, das sagt, dass sie aus der Spezifikation das rausholen kann.
Dekursives Spezifikationsprinzip RSP. Wenn ich nämlich folgendes Kunststück vollbringen kann,
dass ich Therme Y1 bis YNN finde, wie auch immer.
Und ich stelle fest, Y1 ist gleich dem Therm T1
und das Ganze weiter bis YNN ist gleich dem Therm TN,
jeweils eingesetzt mit den Variablen Y1 in N.
Dann habe ich ja etwas gefunden,
dass exakt die Form meines gleichen Systems eh hat.
Wenn man nach oben guckt, dann steht da immer XIs gleich, TI.
Und hier habe ich irgendeinen konkreten Therm Y,
in der Prozessalgebrach, und der ist gleich dem Therm TI,
wenn ich den Satz aller Y Easter einsetze
Das heißt, ich nehme mal an,
ich habe eine Gleichung und diese Gleichung,
oder ich habe eigentlich einen Satz von Gleichung, nämlich für jede Variable eine.
Und ich konnte nachweisen, dass ich endgleichung finden kann,
die genau das Muster im Gleichungssystem eh wieder aufweisen.
Wenn ich also dieses Muster wiedergefunden habe,
dann schreie ich Hurra, ich habe eine Lösung gefunden,
genau dieses Schema habe ich gefunden,
und das übersetzt sich so, dass ich dann sagen kann,
okay,
dann ist YI ja gleich
der Lösung von XINE
Und da steht sie, jetzt weiß ich mich plötzlich,
gibst du und I waren ja schon da.
Also praktisch gesehen verwenden wir die Gleichung eher von rechts nach links.
Wenn wir sagen, ja, jetzt haben wir die Möglichkeit zu sagen,
was die Lösung von XI ist, nämlich YI.
Was habe ich damit? Jetzt habe ich etwas,
eine Möglichkeit gefunden, wenn die Spezifikation sich part mit Gölten
in Gleichung, dann habe ich tatsächlich eine Lösung gefunden.
Diese beiden Aktionen, die reichen in einigen Fällen jetzt aus,
um mir Lösung zu generieren und damit zu arbeiten
Wie das geht, wollen wir uns mal angucken anhand eines Beispiels.
Wie arbeite ich jetzt mit den beiden Aktionen? Hörert,
nehmen wir da mal ein einfaches Beispiel. E ist gleich
x-mal AX. Ist geschützt. Wir wollen ja nur mit geschützten Rekursionen arbeiten,
was da für einen Prozess rauskommt, können wir uns schon denken,
nämlich einer, der beliebig häufig As ausführt.
Ja, der Prozessgraf ist folgendermaßen. Ich habe
einen Knoten und der hat eine Arschschleife auf sich selbst.
Also die Lösung von x führt mit einer A-Aktion wieder auf die Lösung von X zurück.
Und mehr passiert da nicht. Das ist so die Lösung,
die einfachste, naheliegende Lösung, die da rauskommt.
Sowas können wir jetzt machen an dieser Stelle.
Wir können erst mal feststellen, ich habe nur eine Variable,
also X ist X1 in diesem Fall, nach dem Schema.
Und wenn ich jetzt RDP anwende, dann kann ich damit
Schluss folgern, selbst wenn ich noch nicht weiß,
wie die Lösung von X aussieht.
Ich kann schon mal feststellen, die Lösung von X sind E,
ist äqualent zur Lösung von XE,
wenn dann A davor steht
Also die rechte Seite, nur mit Lösungen notiert.
Die Lösung von X ist gleich Amal-Lösung von X. Ja,
oder vielleicht noch ein bisschen kürzer geschrieben,
weil das eh oftmals klar ist,
auf den Folien lasse ich das gerne mal weg.
Also eine Lösung von X ist gleich Amal-Lösung von X.
So kann ich damit arbeiten, ob mir das jetzt nun gerade was bringt,
sei mal dahingestellt, aber das wäre eine Möglichkeit.
Sowas kann ich jetzt machen? Ich könnte das auch irgendwie
irgendwas herleiten. Also wenn ich meinetwegen irgendwie herausgefunden hätte,
für ein anderes Gleichungssystem, also für irgendwas mit Y.
Im anderen gleichen System. Da hätte ich rausgefunden,
Y ist gleich A mal Lösung von Y. Dann stelle ich fest, Mensch,
das hat genau das Muster von dem gleichen System eh da ganz oben.
Und dann schließe ich daraus, Mensch, wenn das passt,
dann ist doch die Lösung von Y im Muster vorkommt,
identisch mit der Lösung von X.
Bei RDP
Entschuldigung. Also an dieser Stelle sage ich einfach,
linke Seite, das ist X in E als Lösung.
Und RDP sagt, das ist jetzt gleich der rechten Seite,
dem Therm, der definiert, was X ist.
Wenn ich jetzt hochgucke, was ist das,
was ist T1 oder T, das ist Amal X.
Das heißt, wenn ich das jetzt ersetze,
dann sagt mir RDP, das ist T1,
wenn ich da die Lösung einsetze,
also Amal Lösung von
Also steht da nur, linke Seite ist gleich rechter Seite, aber für die Lösung.
RDP macht den Schritt von der abstrakten Spezifikation, da steht nur X.
Hin zu dem Gleichen, nur dass ich X ersetze durch Lösung von X.
Optisch gesehen kommen da nur die Spitzenklammern rum.
Und RSP gibt mir tatsächlich Lösungen. Dazu muss ich aber
natürlich irgendwie mal kreative Vorleistung erbracht haben,
Ich muss nämlich gezeigt haben, dass Y gleich A,
Y ist, in irgendeinem anderen gleichen System, wie auch immer.
Aber irgendwie muss das da sein, wenn das aber tatsächlich
da ist, dann kann ich daraus Schluss folgern.
Mensch, jetzt habe ich eine Lösung für X gefunden.
Dann diese Lösung von Y passt genau auf das Muster,
dass mein gleicheres System in E hat.
Weil das gewissermaßen der etwas gedanklich trickreichere Weg ist,
gucken wir da nochmal ein Beispiel nach.
Wir nehmen jetzt einfach mal eine Lösung, von Z,
die interessiert uns und das gleiche System, das wir betrachten wollen,
ist, Z ist gleich A my Z.
Das kommt uns altbekannt vor. Das hatten wir nämlich eben
nur, das X-Bar und nicht Z. Mit RDP,
darf ich jetzt sagen, okay, linke Seite,
gleich rechter Seite, da z gleich AZ ist,
ist auch die Lösung von Z gleich A mal Lösung von Z.
Immer im gleichen System von Gleichung. Wenn ich das nochmal
mache, dann kriege ich noch einen Arthur vor uns.
Also es ist auch gleich A mal
Mal Lösung von Z. So, dann kann ich jetzt noch umklammern,
wenn ich möchte, also vorne steht zwei As und Lösung von Z.
Also insgesamt steht da die Lösung von Z, ist gleich A,
mal A und dann die Lösung von Z. Gut,
das ist jetzt irgendwie eine Erkenntnis,
die irgendeine Lösung für Z ist.
Das läuft mit RDP, wo ich sage, linke Seite,
davon die Lösung ist gleich rechte Seite mit den Lösungen eingesetzt.
Also ich benutze die Spezifikation,
um mir gleich,
um zu zaubern
So eigentlich interessiert mich das aber nicht, sondern das war gewissermaßen nur die Vorübung.
Denn eigentlich, ohne dass ich das jetzt verraten habe,
interessiert mich nicht die gleiche im Z, gleich A-Mile-Set,
sondern mich interessiert was anderes.
Mich interessiert in Wirklichkeit eine gleiche, nämlich mit X.
Aus RSP kann ich mich jetzt schlussfolgern.
Wie sieht RSP nochmal aus? Das ist die Aussage,
wenn ich irgendetwas habe, Y1 bis YNN,
dass so ein Muster erfüllt,
Y-N-I ist gleich T-I,
ein Term in den Ys
Dass sich da mit dem Y-I eine Lösung von XI im Gleichungssystem haben.
So, was stellen wir jetzt fest? Ich habe eben doch,
wenn man ganz oben guckt, festgestellt,
dass ich dort mit der Lösung von Z irgendetwas habe,
das passt super auf das Muster.
Irgendwas ist gleich A, mal A, mal irgendwas.
Also passt das unheimlich gut zu dem Gleichungssystem, das hier steht.
X ist gleich A, mal A, mal X. Das heißt,
in der ersten Hälfte habe ich mir nur etwas bewiesen,
was gut zu dieser zweiten Gleichung passt.
X ist gleich A, my armer X. So,
und jetzt sagt mir RSP, wunderbar,
du hast irgendwie eine Gleichung, die passt dazu.
Das heißt, das Y hier, das ist genau meine Lösung von Z.
Und was ich jetzt schließen kann, ist, da Z,
da wunderbar auf das Muster passt, ist die Lösung von Z.
In irgendeinem Gleichungssystem, das eigentlich gar nicht wichtig ist für uns,
ist diese Lösung von Z identisch mit der Lösung von X.
In dem Gleichungssystem X ist gleich A,
my armer
Und das ist intuitiv auch halbwegs klar,
denn beide Seiten beschreiben einen Prozess, der nur As ausführen kann.
Der Prozess mit Z beschreibt vielleicht etwas,
was eine Arschleife auf sich selbst hat.
Und der Prozess X auf der rechten Seite beschreibt etwas,
was nach einem A in einem Zustand ist,
der mit noch einem A wieder zu sich selbst führt.
Beide Prozessgrafen sind aber etwas, was eine beliebig lange A-Sequenz
nur laut. Das heißt, das Verhalten der beiden ist
nicht terminierend und endlich viele As
So, auf diesem Weg kriege ich mit RSP,
also aus meiner Spezifikation, also etwas in x gleich armer, armer x.
Das ist die Spezifikation, die mich interessiert. Und einer Gleichung,
die darauf passt und die Gleichung, die darauf passt,
steht ganz oben, Lösung von Z ist A mal A mal Lösung von Z.
Wenn ich das beides habe, dann kann ich damit
eine neue Lösung in diesem Fall für x generieren.
Ja, das ist ein bisschen um die Ecke
das Ganze gelöst
Ich habe in diesem Fall zwei Gleichungssysteme und man muss feststellen,
dass das interessierende Gleichungssystem, das von X ist.
So, können wir weitermachen? Keiner hindert uns daran.
Wir könnten zum Beispiel anders rechnen,
wir nehmen wieder Set im gleichen System.
Also die Gleichung, laute Z ist gleich A mal
Z. Und RDP können wir meinetwegen auch dreimal hintereinander anwenden.
Dann bekommen wir schließlich dreimal das ausgeklammerte A und dann wieder
Z, also Z,
davon die Lösung ist gleich
Ah, mei, ah, mei, ah, mal Lösung von Z. Okay.
Das heißt, wir haben da etwas bekommen,
das passt ganz gut auf das Muster einer gleichen Spezifikation,
die sagt, was ist denn die Lösung von Y ist gleich 3a mal
Y. Ja, ich hätte gerne eine Lösung für Y in
dem gleichen System Y und ist gleich A auch 3 mal Y.
Und da stellen wir fest, Mensch, dafür passt das
ganz gut. Dafür ist das eine Lösung. Ja,
denn laut dem Spezifikationsprinzip ist jetzt Z, die Lösung von Z,
identisch mit der Lösung von Y für dieses Gleichungssystem Y ist gleich A,
mal A, mal A, Y. Wenn ich das so präsentiere,
dann ist es gewissermaßen rückwärts eigentlich, wie ich das sowas finde.
Eigentlich starte ich zuerst mit dem gleichen System für Y
und frage mich, was könnte da eine Lösung sein?
Und durch mehr oder weniger Zufall oder Erfahrung schaffe ich es jetzt
mit einem anderen gleichen System und Z und einem anderen Satz von Gleichungen herauszufinden,
dass ich mit Z, wenn ich da eine Lösung habe für,
dass das identisch ist, mit der Lösung von Y, was ich eigentlich haben will.
Eigentlich gewissermaßen verläuft meine Suche genau rückwärts. Ich überlege,
was muss RSP liefern, wie muss das aussehen und überlege mir dann,
wie kriege ich das? So, und jetzt habe ich
zwei gleiche und die kann ich auch zusammensetzen wie gewohnt.
Ich kann jetzt also feststellen, dass diese drei Lösungen von X,
Y und Z in ihren jeweiligen Gleichungssystemen,
die alle unterschiedlich aussehen, Einmal ist es X,
ist gleich 2a, mal X,
einmal hieß es Z, ist gleich.
A, mal Z. Einmal ist es Y, gleich 3a,
mal Y. Alle drei Gleichungssysteme haben aber die gleiche Lösung.
In allen drei Fällen ist es für mich ein Prozess,
der nicht terminieren kann und lauter As macht.
Dann nehme ich viele. Noch ein Beispiel. Ehemann nur ausgerechnet,
Z, die Lösung von Z,
wenn nicht die Gleichungsspezifikation, Z,
das vielleicht A mal Z hätte
Ich kann das jetzt variieren und nehme das Gleiche im System.
Z ist gleich AZ oder B. Das heißt,
ich möchte jetzt einen Prozess beschreiben, der immer terminieren kann.
Ja, sobald ich irgendwo bin in dem Prozess,
habe ich stets die Möglichkeit, auszusteigen.
Mit B ist dann auch Schluss. Der Prozessgraf für eine
solche Spezifikation sieht eben so aus, dass ich sagen kann,
wenn ich die Lösung von Z habe, dann kann ich einen A machen.
Dann bin ich wieder bei Z. Dann kann ich noch
einen Arm machen. Das heißt, ich kann beliebig nach
rechts gehen, bin also immer im gleichen Zustand
Und kann dein Alternativ immer auch ein B wählen, nach unten gehen.
So, das kann ich entweder so aufmalen oder ich sage, naja,
die alle Knoten in der oberen Zeile sind ja identisch.
Das heißt, eigentlich habe ich dort den Knoten Lösung von Z,
der mit einer Schleife an der A dran steht,
wieder zu sich selbst führt.
Oder ich habe einen Fall B, der zur Termination führt.
Das war eine andere Variante und ich nehme das jetzt
so ähnlich wie eben mit zwei As.
Also weiter geschützte Rekursion, ich sage jetzt,
Ich betrachte Z mit AZ plus B und A, AZ plus B.
Ja, der untere Prozess graf für AZ plus B ist da dargestellt.
Und wenn ich da jetzt noch was reinmogel, dann starte ich mit Z,
kann ich terminieren mit einem B oder mit einem A,
komme ich jetzt nicht wieder zurück, sondern ich komme zu AZ.
Und erst dann, die Klammer sollte auch andersrum sein,
das A muss draußen stehen,
mit einem A komme ich wieder zu Z zurück
Und in AZ kann ich nicht B ausführen.
Die einzige Möglichkeit, die ich habe,
ist A. Natürlich kann ich im Z wiederum das B ausführen.
Das ist ja der gleiche Zustand, den ich eben habe.
Und so geht das immer weiter. Wiederholt sich
also die ganze Schose von vorn. Das heißt,
bei diesem Prozess merkt man gleich, es ist ein Unterschied,
ob ich Z-gleich, AZ schreibe oder Z-gleich A mal AZ.
Weil ich den Kontext habe von Plus B.
Diese rekursive Spezifikation beschreibt einen stets terminierenden
Oder stets mit der Potenzialität zu terminieren, ausgestatteten Prozess.
Er hat beide Prozesse erlauben, die unendliche Abfolge von Ars.
Aber sie erlauben auch immer den Prozess,
der nach endlich vielen Ars ein B unternimmt und einen terminiert.
Das wird erlaubt, aber rot und blau unterscheidet sich eben
in der Anzahl der Ars.
Der rote Prozess kann nach beliebig vielen Ars ein B ausführen.
Der blaue Prozess kann nur nach einer geraden Anzahl von Ars
ein B zur Termination ausführen.
Er enthält also ungefähr
die Hälfte
Der Ablaufsequenz. Das heißt, bei Prozessen,
und so wird es meistens sein, die terminieren können,
da ist es also schon ein Unterschied, wie die gleichen Spezifikationen aussehen.
Das lernen wir also an diesem Beispiel,
dass die XYZ-Lösung hier gleich waren, obwohl die Gleichungssysteme anders waren,
war ein Artefakt, was schlichtweg daran lag,
dass der Prozess, der da beschrieben war,
einer, der nicht terminierte.
Sobald Terminationen ins Spiel kommen, werden natürlich Prozesse,
die as ausführen und dann wieder da sind oder zwei ausführen
und dann wieder da sind,
natürlich unterscheibar
Ich habe doch, Z ist gleich A-A-Z plus B.
Und jetzt habe ich die Auswahl. Entweder gehe ich in
diese Rekursion rein oder ich nehme sofort das B.
Und das gilt für jeden Moment, wo da Z steht.
Nein, deswegen habe ich auch am Anfang die Möglichkeit zu Terminen.
Das Ganze kann man jetzt wunderbar kombinieren mit Operatoren,
die wir schon hatten. Also zum Beispiel im Heiding.
Ich kann jetzt also Zwei rekrusive Spezifikationen nehmen. X ist gleich.
Also X ist die Lösung in X ist gleich AX.
Das komponiere ich parallel mit dem Gleichen in Grün nur für B,
also der Lösung von Y in der Reco-Sieben-Spezifikation.
Y ist gleich B Y. Das heißt, ich habe links den Prozess,
der macht nur As rechts den Prozess, der macht nur Bs.
Und jetzt habe ich den Verdeckungsoperator davor, der die atomare
Aktion A ausblendet und auch B ausblendet. Das heißt,
das Einzige, was übrig bleiben kann, ist Synchrone-Aktionen,
die die beiden zusammen machen, also Gamma von AB.
Wenn wir uns angucken, wie sehen die Prozesse aus? X,
naja, das ist ein Prozess, der immer mit As macht,
also eine Arschleife gefangen ist, Y hat eine B-Schleife.
Und was kommt da raus? Das wissen wir ja im Prinzip ja schon,
haben uns überlegt, wenn ich sage,
das Synchrone kommunizieren von A und B, wenn das zählt,
dann kommt da ein Prozess Z raus, der nur eine C-Schleife erlaubt.
Immer wieder das Synchron kommunizierende Zeh. Deswegen Machen wir mal folgende Hypothese oder folgende Idee haben wir,
dass die linke Seite identisch ist mit der Lösung von Z in der Gleichung,
Z ist gleich zehnmal Z. Denn die Gleichung Z ist gleich zehnmal Z,
wenn ich das löse, kommt ja genau dieser Neue Prozess,
Graf im Z heraus und von dem haben wir uns ja überlegt,
dass der die Lösung sein müsste, die da beschrieben wird.
Gut, also das müssten wir herleiten können,
dass dies das Verhalten ist dabei
Und sagen wir mal so, wenn wir das herleiten können,
dann ist schon mal wirklich was gewonnen.
Denn der rechte Therm ist jetzt kürzer als der Linke,
ist ein bisschen einfacher. Das heißt, wenn wir wissen,
die beiden sind gleich, verstehen wir die linke Seite besser,
weil die rechte Seite irgendwie kompakter ist, die verstehen wir dann wirklich.
So, in diesem Fall ist es also sinnvoll,
diese Gleichung zu haben, weil die rechte Seite das ist,
was uns interessiert, wer an die linke Seite vielleicht das ist,
was man so als Spezifikation hinschreibt.
Ja, was müssen wir da machen?
Jetzt müssen wir
die Parallelität umschreiben
Mit Left Merch und Communication Merch. Gut, machen wir
mal. Hilft ja nix. Also erstmal nur das,
was in der Klammer vom Heiding-Operator steht.
Nur den Teilausdruck beim Verdecken, und da sehen wir,
okay, das ist dann eine Summe von drei Semantten,
entweder Lösung von X-Left-Merch-Löse von Y oder genau umgekehrt,
oder die synchrone Kommunikation der beiden.
Und jetzt kann ich Folgendes machen,
bei den Left Merch-Sachen, da weiß ich ja,
mich interessiert eh
nur die linke Seite
Und da habe ich jetzt die Gleichung, X gleich AX.
Und davon die Lösung. Jetzt sagt mir mein rekrusives Definitionsprinzip,
ich darf diese Lösung ersetzen durch die rechte Seite in der Spezifikation.
Das heißt, Lösung von X darf ich ersetzen durch Amal-Lösung von X.
Genauso beim zweiten Semanten darf ich Y ersetzen durch Bmal-Lösung von Y.
Das gibt mir RDP. Linke Seite durch rechte Seite
ersetzen. Und bei Communication Merch darf ich das sinnvollerweise,
mache ich es bei beiden und lasse die dann
miteinander kommunizieren
Und das mache ich hier genau, ich ziehe einmal
das A raus und einmal das B und einmal das C.
Und was passiert dann? Dann passiert Folgendes,
dann sehe ich, wenn ich das alles rausziehe,
dann sagt mir ein Aktion vom Left Merch,
wenn da links gerade eins steht, dann darfst du das A rausklammern,
vor die Klammer ziehen und den Rest Therm X und den
Rest Therm Y nehmen und den mit einer normalen parallelen Komposition versehen.
Und bei der zweiten machst du das genauso,
dann steht das B da vorne und in der Klammer an
die Parallelkomposition
Und wenn ich das beim Communication-Merch mache und A und B
synchron kommunizieren lasse, dann kommt der C raus.
Und zum Schluss habe ich wieder die Lösung von X parallel zur Lösung von Y.
So, das kann ich jetzt noch ein bisschen umformen.
Wenn ich damit den Heining-Operator drauf loslasse und dann noch weiß,
dass Parallelkompositionen konmotativ ist, als ich den zweiten Sumanten,
was da beim Parallelitätsooperator steht, umdrehen kann,
dann steht da ja einmal irgendwas plus B mal genau das
Gleiche,
plus zehnmal genau das Gleiche
Und jetzt lasse ich darauf den Heiding-Operator los. Also ich nehme Heiding-Operator auf das,
was ich da eben gerade umgeformt habe. Naja,
und der sagt, okay, da vorne steht ein A,
A, ist aber blockiert, wird also zum Deadlock-Symbol,
irgendwas, was mit dem Deadlock-Symbol beginnt.
Das ist ein Deadlock. Bei B genauso. Also steht
da Deadlock plus Deadlock. Kann ich kontrahieren zu Deadlock.
Deadlock plus irgendwas, ist das irgendwas.
Also es bleibt nur übrig, zehnmal.
Und dann Heiding vom Rest
Was ich jetzt also ausgerechnet habe, ist Verdecken von dem Paralleltern,
ist gleich zehnmal Verdecken von den Paralleltern. Das heißt,
auf der linken und auf der rechten Seite steht fast das Gleiche,
nur dass einmal ein C davor steht.
Diese beiden Dinge sind jetzt gleich. Und wenn ich die jetzt Z nenne,
dann schaut man nochmal nach oben, Mensch,
das passt wie die Faust aufs Auge auf ein Gleichungssystem,
das die Format Z ist gleich zehnmal Z. Das heißt,
ich finde hier das Muster wieder,
dass mir eine Lösung anzeigt für Gleichung der Form Z ist gleich zehnmal Z.
Und RSP sagt mir jetzt, dass das,
was ich hier habe, eine Lösung ist für diese Gleichungsspezifikation
im Z. Und deswegen gilt die erste Zeile.
Da steht nämlich, das, was ich umgeformt habe,
das ist identisch mit der Lösung von Z.
In dem Sinne kann ich das also nachvollziehen,
indem ich hinreichend auf RDP und RSP kombiniere
Gut, jetzt haben wir also Aktione für unsere Rekursion,
jetzt müssen wir uns langsam fragen. Sind die denn korrekt und vollständig?
Und dann machen wir erst mal das, was wir immer tun.
Wir stellen erst mal fest, wir haben nichts Schlimmes gemacht,
als wir die beiden Aktionen hinzugefügt haben und Rekursionen hinzugefügt haben.
Das heißt, alles ist wie vorher,
wenn ich also im Kalkülrechner ACP mit geschützter Rekursion und ich betrachte trotzdem nur die alten Therme,
in ACP, dann versauen mir die neuen Elemente,
die ich jetzt hinzugefügt habe, die mir neue Prozessgrafen ermöglichen,
dann ist damit nichts verändert.
Das heißt, alte Prozessgrafen verändern sich nicht in dieser Re-Definition.
Das ist so das Erste, was wichtig ist. Das Zweite,
was immer noch wichtig ist, dass B-Simulation weiterhin eine Kongruenzrelation ist.
Das muss auch gelten. Damit mit diesen beiden Eigenschaften,
also das eine will man haben,
man möchte im erweiterten Kalkül genauso operieren dürfen wie im Alten,
zumindest eingeschränkt,
wenn ich nur die alten Therme habe
Und zweitens, ich möchte es aksymatisieren.
Deswegen ist es wichtig, dass Bi-Simulation eine Kongruenz ist.
Dann kann ich hoffen, dass ich mit unseren Aktionen etwas mache.
Also erst mal stelle ich fest, ACP mit geschützter Rekursion ist korrekt.
Das heißt, wann immer der Kalkül behauptet,
es gleich Tee, ist das auch eine gültige Bisimulationsbeziehung.
Also es ist B-Simulat zu Tee. So,
das Ganze wäre nicht korrekt, wenn ich darauf verzichten würde,
dass Rekursion geschützt ist.
Also für eine beliebige Rekursion hätten wir da Probleme
So, woran liegt das? Wenn ich die Spezifikation X
gleich X habe, das ist ja eine nicht geschützte Rekursion.
Dann folgt RSP, benden wir an. Ich weiß,
Tee ist immer gleich Tee. Denn im Kalkül gilt Reflexivität
. Da gibt es eine Aktion, dass man sagt,
okay, jetzt ist immer gleich Tee für jedes Tee.
So, also weiß ich schon mal. Tee ist nach RSP
eine Lösung für X in der, im Gleichungssystem X gleich X.
So wie es da in der Mitte steht.
Tee ist gleich der Lösung von
Das gilt jetzt für alle Prozesstherme. Also wissen wir auch,
T1 ist Lösung von X und T2 ist Lösung von X für beliebige T1, T2.
Also weiß ich, wenn ich das zusammensetze, T1 ist gleich T2.
Und das gilt jetzt für beliebiges T1, T2. Was wir gefolgert haben,
wenn ich RSP zulassen würde, bei Beliebiger,
also auch ungeschützter Rekursion, dann wären alle BPA-Therme gleich.
Es gäbe also nur noch semantisch gesehen einen Prozess.
Und das kann nicht sein. Wir wissen,
es gibt nicht
bisimialare Prozesse
Zum Beispiel die Prozesse A und der Prozess B,
die beiden Prozesse verhalten sie unterschiedlich.
Wenn ich das aber so mache, stelle ich fest,
der Prozess T1 gleich A und der Prozess T2 gleich B, die sind gleich.
In dem Sinne wäre das nicht mehr korrekt,
denn es würde zu viele Therme gleichsetzen, nämlich alle.
Also ein Fehler. Man sieht also an dieser Stelle,
es ist ganz wichtig,
dass wir geschützte Rekursionen haben und nicht irgendeine ohne geschützte Rekursion,
wer RSP auf jeden Fall kein Aktionen,
das wir haben sollten.
Gut,
wie sieht das jetzt mit Vollständigkeit aus
Wenn ich ACP mit diesen beiden Aktionen, RSP,
ADP nehme, dann ist es nicht vollständig.
Auch nicht bei geschützter Rekursion. Das liegt im Wesentlichen daran,
dass ich nicht erwarten kann, dass ich mit einem Aktionensystem vollautomatisch das Halteproblem löse.
Genau das, was ich angedeutet habe,
ich könnte dann rekursiv vielleicht Tubing-Maschinen kodieren,
deren Verhalten kodieren und könnte über den Trick des Aktionensystems vielleicht prüfen,
ob eine Tubing-Maschine hält.
Und das wird nicht gehen. Also,
wenn wir tatsächlich zufrieden sind mit einem Aktionensystem,
das zwar korrekt ist, also immer nur wichtige Sachen behauptet.
Aber vielleicht nicht für jedes Paar ST von bisimilaren Thermen auch
einen Beweis führen kann, dass die beiden gleich sind.
Wenn wir sagen, das geht halt nur manchmal, aber nicht immer.
Wenn uns das reicht, dann können wir jetzt so weitermachen.
Wenn wir damit unzufrieden sind,
dann bleibt uns nur der Ausweg, dass wir sagen,
okay, wenn es nicht mal für geschützte Rekursionen geht,
dann muss ich geschützte Rekursionen noch weiter einschränken.
Und ein Spezialfall geschützter Rekursion ist jetzt
die lineare Rekursion
Und eine rekursive Spezialation nennen wir linear.
Wenn wir das Schema der geschützten Rekursion noch weiter einschränken,
da müssen mich die rechten Seiten die Form haben,
atomare Therm, mal Variable plus atomare Therm,
mal Variable plus, endlich viele atomare Thermen.
Das ist jetzt ein Spezialfall bei geschützter Rekursion,
durfte nach dem atomaren ein beliebiger Therm stehen.
Ja, ein beliebiger Therm, der die Variablen X1
bis XN verwendet. Wir sagen jetzt, Das Einzige,
was ich als Therm haben darf, ist wieder die Variable selbst.
Und der Punkt ist, wenn man das mal vergleicht,
das hatten wir schon in FG1, dass sie ziemlich ähnlich auszuregulieren, Grammatiken.
Eine Grammatik, Komski, Hierarchie lässt grüßen,
wenn ich da links ein X habe und ich ersetze es
durch AX oder durch B. Dieses Schema, das hatten wir mal benannt.
Und wir nannten es rechtslineare Grammatik. Wenn nicht,
Jedes Non-Terminal durch höchstens ein Non-Terminal ersetzt wird, dann ist es eine lineare Grammatik.
Und wenn dieses Non-Terminal auf der rechten Seite,
von dem es ja höchstens eins geben kann,
wenn das immer rechts steht in dem Wort,
dann ist das eine rechtslineare Grammatik.
Und genau das haben wir. Das Plus ist jetzt
eine Alternative von Dingen, die ich tun könnte.
In der Grammatik sind das verschiedene Produktionen, die ich habe.
Und diese Einschränkung, die so aussieht wie eine reguläre Grammatik,
erzeugt jetzt, oh Wunder,
auch nur einen regulären Prozess
Also alle Prozesse, die wir jetzt dadurch erzeugen können, haben endliche Prozessgrafen.
Ich hatte ja vorhin gesagt, wir haben zwei Formende in Endlichkeit.
Die einfache Form der Unendlichkeit sind unendlich viele Abläufe zu haben.
Die andere schlimmere Form der Unendlichkeit ist, unendlich viele Zustände auch noch zu haben.
Mit dieser Form der Grammatik erzwingen wir Lösungen, deren Zustandsraum immer endlich ist.
Weil da immer ein endlicher Automat als Lösung rauskommen wird.
Die Sprachen, die durch solche wie reguläre Grammatik behafteten, beschriebenen Gleichungssysteme. Ja,
da kommt immer eine reguläre Menge raus in eine reguläre Menge,
die wird im Wesentlichen durch einen endlichen Automaten,
also ein sehr spezielles Transitionssystem beschrieben.
Und für die ist ja fast alles möglich, ist ja
endlich plötzlich. Das heißt, mit dieser echten Einschränkung,
weil das dann die Lösung so echt klein, kompakt sind,
für endliche Automaten, kann man alles entscheiden,
was man so entscheiden will.
Mit der kriege ich jetzt hin,
dass ACP zusammen mit den Aktionen RDP und RSP
nicht nur korrekt,
das ist klar
Schon für den allgemeineren Fall der geschützten Rekursion war es korrekt.
Nein, für diesen Fall mit linearer Rekursion haben wir sogar eine vollständige Aksymatisierung erreicht.
Sondern das ist jetzt irgendwie ein bisschen besser. Was sie
jetzt noch machen kann, ist, ich kann natürlich sagen,
okay, linear muss sie nicht gleich sein,
sondern ich kann auch Umformung machen auf Gleichungssystem.
Ja, dann wie schon bei geschützter Rekursion kann ich jetzt sagen,
Eine rekossive Spezifikation e-Strich entsteht aus E,
wenn ich die rechten Seiten in den Gleichungen modifiziere.
Und zwar auf zwei verschiedene Arten Weisen. Die erste Variante
ist, ich benutze Axiome in ACP und verändere das.
Also alles außer RDP und RSP können wir jetzt anwenden,
um die rechten Seiten umzufahren.
Außerdem dürfen Rekursionsvariablen durch die rechte Seite ihrer Gleichung ersetzt werden.
Die beiden Möglichkeiten haben wir wieder. Und dann gilt,
dass die Lösung von X in dem neuen gleichen System e-Strich
identisch ist mit der Lösung von X im alten gleichen System.
Gucken wir uns das mal an ein Beispiel. X gleich X,
die Lösung von X in einem System X ist gleich A X plus A X.
Da kann ich zeigen, dass das gleich der Lösung von X
in dem System X ist, Doppel A X ist.
Und das kann ich jetzt umformen, um das zu zeigen,
mache ich Folgendes
Ich kann ja einen linken Gleichungssystem A3 anwenden.
Da steht Idem Potenz X plus X gleich X.
Dann steht da nur noch auf der rechten Seite einmal AX.
Also X ist gleich AX. Gut. Und was kann ich
dann machen? Ich kann X durch die rechte Seite ersetzen.
Also darf ich aus AX, Amal-AX machen. Und
wenn ich dann mit A5 die Reihenfolge der Klammern ändere,
dann habe ich das, was ich haben will.
Also genau eine solche Umformung, wie sie da unten steht,
kann ich auf der rechten Seite machen mit dem gleichen System
Erst beide somannten zusammen kontrahieren, kriege ich den zweiten.
Den dritten kriege ich, indem ich hier X ersetze durch seine rechte Gleichung.
Amaleks. Und wenn ich dann die Klammer noch anders setze,
dann kann ich auch um die beiden führenden Asklamotten reinsetzen.
Und dann bekomme ich also raus, dass die Gleichung,
die jetzt eigentlich habe, ein E-Strich ist X Amal A
gleich X ist.
So in dem Sinne ist dann klar,
dass die beiden Lösungen auch gleich sind
Gut, das ist das für heute.
Jetzt müssen wir eigentlich alles über Prozesse. Beim nächsten Mal
machen wir was Unheimliches, Praktisches, nämlich Abstraktion.
Damit kann man dann erstmal so richtig nett vom internen Verhalten,
von Systemen abstrahieren. Das ist etwas, was wir bislang
nicht können.
Das nächste Woche