Algebraische Beschreibung paralleler Prozesse

Größe: px
Ab Seite anzeigen:

Download "Algebraische Beschreibung paralleler Prozesse"

Transkript

1 Algebraische Beschreibung paralleler Prozesse Prof. Dr. W. Vogler Universität Augsburg WS 2011/2012

2 INHALTSVERZEICHNIS 2 Inhaltsverzeichnis 1 Einführung Parallele Systeme und Kommunikation Erste Beispiele Puffer Puffer Puffer mit Ack(nowledgment) Zahlenverarbeitung Fließband Zusammenfügen der Komponenten mit Parallelkomposition Semaphore Basis-Definitionen Aktionen CCS Transitionssysteme als operationale Semantik Sorten Reduktion des voll(ständig)en CCS auf Basis-CCS Gleichungsgesetze Dynamische Gesetze Statische Gesetze Expansion Starke Bisimulationen und starke Äquivalenz Starke Bisimulation Gesetze für Kongruenzeigenschaften Schwache Bisimulation und Beobachtungsäquivalenz Schwache Bisimulation Anwendung - ein einfacher Scheduler 38 7 Beobachtungskongruenz Definition und erste Eigenschaften Gesetze für = Axiome für endliche Prozesse Eine Schneller-als-Relation 47

3 1 EINFÜHRUNG 3 1 Einführung Dieses Vorlesungsskript beruht in erster Linie auf [1] sowie einer LATEX-Mitschrift von Hörern dieser Vorlesung im WS 03/04, denen ich sehr dankbar bin. Formale Systemmodelle bieten eine klare Implementationsgrundlage für die Softwareentwicklung. Mit ihrer Hilfe lässt sich bereits eine Simulation wie auch ein Model-Checking noch vor Beginn der Implementierungsphase durchführen. Damit lässt sich prüfen, ob sich das endgültige Produkt spezifikationskonform verhält; hierbei ist eine Spezifikation eine Sammlung erwünschter Eigenschaften. In dieser Vorlesung werden formale Modelle paralleler (nebenläufiger) Systeme anhand der Prozess-Algebra CCS beschrieben; die Terme einer Prozess-Algebra kann man sich als erweiterte rationale bzw. reguläre Ausdrücke vorstellen. Systemmodelle können abstrakter oder implementierungsnäher sein; letztere können z.b. die Aufteilung in parallele Komponenten beschreiben. In diesem Sinn kann CCS als Spezifikationsund als einfache Programmiersprache verstanden werden. 1.1 Parallele Systeme und Kommunikation Zunächst gehen wir davon aus, dass prinzipiell kein Unterschied zwischen einem System und einem Teilsystem besteht. Man wählt sich für die Betrachtung einfach eine für die aktuelle Zielsetzung geeignete Detailebene. So interessieren bei der Analyse von Prozessen in einem Unternehmen beispielsweise nicht die Organe der einzelnen Mitarbeiter. Das Verhalten der (Teil-)Systeme (Prozesse) besteht aus ihren Aktionen: Nachrichten (Der Benutzer eines Computers teilt diesem mit, dass er den C-Compiler starten soll; vgl. [1], Seite 13f.) autonom (Der Computer berechnet x := 1.) Dies kann oft als Kommunikation von Teilsystemen verstanden werden. (Im Beispiel: zwischen dem Prozessor und dem Hauptspeicher) Kommunikation: (i) FIFO-Kanal (First in - first out): Der Sender schreibt Nachrichten in einen Puffer, aus dem diese dann an den Empfänger weitergeleitet werden. (ii) Shared Memory: Sender und Empfänger teilen sich einen gemeinsamen Speicherbereich. Der Empfänger kann die Nachrichten mehrfach aus dem Speicher auslesen.

4 1 EINFÜHRUNG 4 (iii) Die Algebra CCS (CALCULUS OF COMMUNICATING SYSTEMS) verwendet Kommunikation per Handschlag (Rendezvous), eine gemeinsame Aktion zweier Prozesse. Während in (i) und (ii) aktive und passive Prozesse unterschieden werden, werden hier grundsätzlich alle Prozesse als aktiv betrachtet. In (i) sendet der aktive Sender an den passiven Puffer; ob der Puffer gegenüber dem Empfänger aktiv oder passiv ist, ist Geschmackssache. In (ii) sind Sender und Empfänger aktiv gegenüber dem passiven Speicher. Modellierung von (i) und (ii) in CCS: je 3 Prozesse: 1. send(5): gemeinsame Aktion von Sender und Puffer 2. write 5 into x: gemeinsame Aktion von Sender und Speicher 1.2 Erste Beispiele Wir führen zunächst eine Variante mit Variablen und Werten ein; später behandeln wir fast ausschließlich eine abstraktere Variante Puffer Ein Puffer bietet zwei Kommunikationsmöglichkeiten (Ports). Seine Beschreibung stützt sich auf zwei Prozessnamen C und C. Prozessnamen können auch als Prozedurnamen verstanden werden; genau wie letztere können sie Parameter haben. C in(x).c (x) C (x) out(x).c Das Verhalten eines Prozessnamens wird mit definiert. Auf der rechten Seite des Definitionspfeils steht ein Prozess, der dem Rumpf einer Prozedur/Methode entspricht. Hierbei tauchen noch einige unbekannte Symbole auf:

5 1 EINFÜHRUNG 5 in(x): Rendezvous, bei dem der Wertxam Portin empfangen wird out(x): Rendezvous, bei dem der Wert x am Port out gesendet wird; der Querbalken wird für Ausgaben verwendet. in(x).c (x): Rendezvous ausführen, dann sich wiec (x) verhalten. Der Punkt. ist das Symbol für Prefixing, eine einfache Form der Hintereinanderausführung. in(x).c (x) ist ein CCS-Term. Ein Ablauf des Systems ist z.b.: C in(42) C (42) out(42) C Dies bedeutet, dass der Port in mit dem Wert 42 angesprochen und damit der Pufferprozess C mit diesem Wert aufgerufen wird, der dann 42 ausgibt und wieder zum Prozess C wird. Also:C beschreibt den leeren Puffer,C (x) denxspeichernden Puffer. Wir betrachten also dasselbe System in verschiedenen Zuständen als verschiedene Prozesse, die ja auch unterschiedliches Verhalten zeigen. Bemerkung. Wir haben bereits den Parameter x in obigem Beispiel verwendet. Wie in Programmiersprachen auch besitzen Variablen in CCS verschiedene Bindungsbereiche (= scope): in(x).p : x ist hierbei eine Variable in P (mit Bindungsbereich P ). C (x)...:xist eine Variable der rechten Seite und dort gebunden. out(x).p : In diesem Fall ist x nicht gebunden und damit eine freie Variable. Der Wert von x ergibt sich erst durch eine Bindung weiter außen. Alternativ ließe sich der 1-Puffer auch mit folgender Definition beschreiben, in der kein weiterer (Unter-)Prozess mehr aufgerufen wird Puffer C in(x).out(x).c Als nächstes betrachten wir einen Puffer der Kapazität 2: Buff 2 in(x).buff 2 (x) Buff 2 (x) in(y).buff 2 (x,y)+out(x).buff 2 ( ) Buff 2 (x,y) out(x).buff 2 (y) ( ) In diesem System taucht zum ersten Mal das Symbol + auf, das einer nicht-deterministischen Auswahl (einem logischen oder) entspricht. Welche Option ausgewählt wird, wird erst zum Zeitpunkt der ersten Aktion entschieden, welche eventuell von der Umgebung beeinflußt wird. Prefixing. bindet stärker als +. Beachte: in( ): scope von x ist rechte Seite scope von y ist Buff 2 (x,y) in( ): Buff 2 (y) ist Aufruf von Buff 2 (x): formaler Parameter x, Wert y bei Aufruf.

6 1 EINFÜHRUNG 6 Buff 2 kann als Spezifikation eines Zwei-Puffers gesehen werden, der sich durch eine Verkettung C C von zwei 1-Puffern C implementieren läßt (vgl. obigen Flussgraphen). Das Symbol beschreibt eine Verkettung, welche die Ports out und in verbindet. Zusätzlich werden diese Ports internalisiert, so daß von außerhalb des Systems kein weiterer Zugriff auf diese Ports erfolgen kann (s.u.). Der Korrektheitsbeweis zeigt C C = Buff 2, wobei die Terme syntaktische ungleich ( ) sind Puffer mit Ack(nowledgment) In einigen Fällen ist eine weitere Form der Kommunikation zwischen Prozessen erforderlich, bei der keine Parameterübergabe stattfindet. Ein Prozess möchte beispielsweise eine Bestätigung für eine Datenübergabe erhalten. Dies ließe sich folgendermaßen formalisieren: D in(x).out(x).ackout.ackin.d Bemerkung. Die beiden Bestätigungsaktionen ackin und ackout besitzen dabei keine Parameter, sind reine Synchronisation der Prozesse. Daher besitzen sie eigentlich keine Richtung. Bei der Verknüpfung D D zweier Prozesse D müssen out mit in und ackout mit ackin verbunden werden. Die Verknüpfung D D hat ein Problem: sie kann Ändert man die Definition leicht ab in D so ist die neue Prozesskette D D in der Lage,

7 1 EINFÜHRUNG Zahlenverarbeitung Ein CCS-Prozess ist jedoch nicht nur in der Lage, Nachrichten zu übertragen, er kann intern auch Berechnungen durchführen, beispielsweise eine Eingabe verdoppeln: Doppeln in(x).out(2 x).doppeln Fließband Wir betrachten zwei Arbeiter, die Objekte mit einem kleinen Hammer K oder einem großen Hammer H bearbeiten. Es ist leicht einzusehen, dass ein Wettbewerb um die Hämmer entsteht. Dieser führt zu einem nicht-deterministischen Prozess. H geth.busyh K getk.busyk BusyH puth.h BusyK putk.k (Erster Buchstabe groß: Prozess, klein: eine Aktion.) Offenbar sind diese Definitionen sehr ähnlich. Jobber in(job).start(job) Start(job) if hard(job) then U seh(job) else U set ool(job) {hard(job) : boolean} UseTool(job) UseH(job)+UseK(job) U seh(job) geth.puth.f inish(job) U sek(job) getk.putk.f inish(job) F inish(job) out(done(job)).jobber {done: Funktion auf Objekten; done(job) = fertiges Objekt} Eine Sorte von P ist eine Menge von Aktionen, die alle Aktionen von P umfasst. Beispiele. H : {geth, puth} (H hat Sorte {geth, puth}) K : {getk,putk} Jobber : {in,out,getk,geth,putk,puth}

8 1 EINFÜHRUNG Zusammenfügen der Komponenten mit Parallelkomposition Zunächst betrachten wir das Teilsystem Jobber H. Dies bedeutet, dass Jobber und H parallel agieren, wobei komplementäre Aktionen (z.b. geth, geth) gemeinsam ausgeführt werden können, jedoch nicht müssen: geth ist auch ohnegeth möglich, da ein zweiter Jobber vorhanden sein könnte, der auch H nehmen will. Für die Sorten von Prozessen, die parallel ausgeführt werden (P Q), gilt: P Q : L M, wenn P : L und Q : M. Wir bringen nun eine zweite Instanz eines Jobbers ins Spiel. Dadurch verändert sich das Teilsystem zu (Jobber H) Jobber. Der Flussgraph legt nahe, dass die Parallelkomposition kommutativ und assoziativ ist, also z.b. H Jobber = Jobber H ist. Dies können wir erst zeigen, wenn = (im Sinne von gleichem Verhalten) definiert ist. Die Terme an sich sind verschieden ( ). Ebenso sollte + kommutativ und assoziativ sein. Die Aktionen für geth und geth beispielsweise können auch von anderen Prozessen aufgerufen werden; das war gerade sehr nützlich, soll aber im weiteren vermieden werden. Dazu werden die Aktionen internalisiert, so dass sie von außen nicht mehr zugreifbar sind. ((Jobber H) Jobber) \ {geth,puth} Der Restriktions-Operator \ bewirkt, dass die angegebenen Aktionen und deren Komplemente mit keinem weiteren Port verbunden werden können. Einzeln können diese Aktionen nicht mehr ausgeführt werden, wohl aber geth, geth zusammen (siehe weiter unten, τ). Restriktion verkleinert die Sorte des Prozesses genau wie der identisch geschriebene Mengenoperator. Die nachfolgenden Rümpfe von Fließband sind gleich: Fließband (((Jobber H) Jobber)\{getH,putH} K)\{getK,putK} = (Jobber Jobber H K)\{getH,putH,getK,putK} In CCS lassen sich Terme mit Hilfe algebraischer Gesetze umformen. 1.4 Semaphore Ein nützliches Konzept aus der Programmierung ist die Verwendung von Semaphoren. Definition 1.1. Ein Semaphor bestimmt sich durch Sem get.put.sem. Ein Semaphor ist offenbar ähnlich zu den Prozessen H und K. Zur Beschreibung der Ähnlichkeit dient eine Umbenennungsfunktion, die Aktionen auf Aktionen abbildet, wobeif(a) = b f(a) = b. Dabei seia = a, so daß auch f(in) = out möglich ist. ( f(in) = out) Wir schreiben a 1 / b1,, an / bn fürf mitf(b i ) = a i,f(b i ) = a i und f(a) = a sonst. Beispiel. get geth get geth. Eine Beschreibung von H und K mittels Umbenennung (Relabelling) würde so aussehen: H = Sem[ geth / get, puth / put ] K = Sem[ getk / get, putk / put ]

9 1 EINFÜHRUNG 9 Der Operator läßt sich damit so beschreiben: C C (C[ m / out ] C[ m / in ])\{m}

10 2 BASIS-DEFINITIONEN 10 2 Basis-Definitionen 2.1 Aktionen In (Basis)-CCS existieren keine Aktionen mit Parametern, sondern nur einfache Synchronisationen wie z.b.geth, was jedoch keine Einschränkung darstellt. Definition 2.1. A: Menge von Aktionsnamen a,b,c Ā: Menge der Co-Aktionen a,b,c; es seia = a L = A A: Menge der (Port-)Beschriftungen l, m, n (L steht für label.) Die Idee der Verhaltensbeschreibung ist, dass Prozesse Aktionen ausführen und dabei in einen anderen Zustand übergehen, also ein anderer Prozess werden: Beispiel. H geth BusyH, BusyH puth H Sei nun A a.a, A c.a, B c.b, B b.b. FürA B erhalten wir: es gilt A a A, also A B a A B; ferner A c A, also A B c A B. Rendezvous: A und B führen c und c zusammen aus. Dabei verschmelzen c und c zu einer internen, unbeobachtbaren Aktion (hidden action); es genügt eine interne Aktion τ. Bsp.:A c A,B c B, also A B τ A B. Definition 2.2 (Act). Die Menge der Aktionen α,β,γ... ist Act = L {τ} (disjunkte Vereinigung). Die Restriktion \ c verbietet c, erlaubt aber dennoch weiterhin τ. Damit ergeben sich folgende Transitionen für (A B)\c: Also erzwingt \ c eine Synchronisation über c. Wir sehen : (A B)\c = a.τ.c mit C b.a.τ.c +a.b.τ.c Dabei wurde die Parallelkomposition eliminiert. Mit dem Gesetz α.τ.p = α.p ergibt sich (A B)\c = a.d mitd b.a.d +a.b.d. Gilt auch einfach τ.p = P? Beispiel. Vergleiche die beiden Terme A a.a + τ.b.a und B a.b + b.b MitP = τ.p würde A = B folgen, aber: Durch τ kann sich A autonom in A verwandeln. Wenn jetzt die Umgebung a verlangt, tritt eine Verklemmung ein. Dies kann mit B nicht geschehen. Also ist A B und i.a. P τ.p! (Widerspruch zu endlichen Automaten).

11 2 BASIS-DEFINITIONEN CCS Definition 2.3. Gegeben sei eine Menge K von Prozessnamen A, B,... und eine Menge X von Prozessvariablen X, Y,... (nur technisch) Ein CCS-Term ist ein Prozessname, eine Variable, oder 1. α.e,α Act (Präfix) 2. i I E i (Auswahl) 3. E 1 E 2 (Parallelkomposition) 4. E\L,L L (Restriktion) 5. E[f] (Umbenennung, Relabelling), f ist eine Umbenennungsfunktion: f : L L; f(l) = l f(l) = l ; f(τ) = τ wobei E,E i (i I), E 1 und E 2 CCS-Terme sind. E ist die Menge aller CCS-TermeE,F,... Bei 2) handelt es sich um ein verallgemeinertes +. Für I = {1,2} schreiben wir auch E 1 +E 2. I kann unendlich oder auch sein; dann ist i E i =: 0 =: Nil (Nil ist der inaktive Prozess). Basisprozesse, die syntaktisch keine anderen Prozesse enthalten, sind also N il, Prozeßnamen und Variablen. Bindungsstärke: regelt das Weglassen und Wiederergänzen von Klammern 4. und 5. binden stärker als 1; 1. bindet stärker als 3; 3. bindet stärker als 2. Für 4. und 5. ist keine Unterscheidung nötig: E[f]\L kann nur (E[f])\L sein und ist E\L[f]. Beispiel. R+a.P b.q\l (b.q)\{b} b.(q\{b}) Definition 2.4. Ein Prozess ist ein CCS-Term ohne (freie) Variablen (hier: alle Variablen frei). P ist die Menge der ProzesseP,Q,... Wir nehmen an, dass für jeden Prozessnamen eine Definition der FormA P gegeben ist. Diese kann auch rekursiv (A a.a) oder verschränkt rekursiv sein (A a.a, A b.a) Definition 2.5. Für (E i ) i I schreiben wir eventuell auch kurz Ẽ. Ist (X i) i I eine Menge von Variablen, so bezeichnet { E i / Xi : i I} bzw. Ẽ/ X die simultane syntaktische Substitution der (freien) X i durch E i für alle i I. Beispiel. (a.x +b.y c.y){ (a.y) / X, Nil / Y } Die Zeichenkette (a.x +b.y c.y){ (a.y) / X, Nil / Y } ist kein Prozessterm, sie beschreibt aber einen daher.

12 2 BASIS-DEFINITIONEN Transitionssysteme als operationale Semantik Die operationale Semantik gibt zu jedem Zustand ( E) an, welche Aktionen möglich sind und welche Zustände sich bei einer Aktion ergeben können. Definition 2.6. Ein (beschriftetes) Transitionssystem (S,B,{ b b B}) besteht aus einer Menge S von Zuständen, einer Menge B von Transitionsbeschriftungen und einer Transitionsrelation b S S für jedes b B. Alternativen: äquivalent ist: eine Transitionsrelation S B S Eventuell gibt es einen Startzustand s 0 S Hier: S = E und B = Act. Ziel: Definition von α Vorgehen: Das Verhalten eines Terms, z.b.e F, lässt sich aus dem Verhalten der Komponenten, hier E und F, ableiten. WennE α E (ein Übergang ist), dann auch E F α E F. (Structured Operational Semantics, Plotkin). Schreibweise: E α E E F α E F Dabei ist oben die Voraussetzung, unten die Folgerung angegeben. (SOS-Regeln; Herleitungsregeln wie in der Logik). ( ) α α Act ist die Familie kleinster Relationen, die die folgenden Regeln erfüllen: Act α.e α E Com 1 Com 2 E α E E F α E F F α F E F α E F (keine Voraussetzung, Axiom) E l E,F l F Com 3 E F τ (l τ, z.b.l = a,l = a und E führt Co-Aktion aus) E F Sum j Res Rel E j i I E α i E j E j α E α E E\L α E \L E α E E[f] f(α) E [f] (j I) (Nebenbedingung) (α L L) Name P α P A α P (A P)

13 2 BASIS-DEFINITIONEN 13 Bemerkung. Sum für I = {1, 2} auch: Für Nil i E i gibt es keine anwendbare Regel, also Beispiel. ((a.e +b.nil) a.f)\a τ (E F)\a Zum Beweis ein Herleitungsbaum: Act a.e a E Sum 1 a (a.e +b.nil) E a.f a F Act Com 3 (a.e +b.nil) a.f τ E F Res τ (τ {a,a}) ((a.e +b.nil) a.f)\a (E F)\a Welche Übergänge gibt es überhaupt? Versuch, den Herleitungsbaum zu konstruieren: Res, α a,a und G G \a und ((a.e +b.0) a.f)\a α G (a.e +b.0) a.f α G Com 1,Com 2 oder (s.o.)com 3 ;Com 2 nicht möglich Com 1 : a.e +b.0 α...α a,a, also α = b, a.e +b.0 b 0 G 0 a.f ((a.e +b.0) a.f)\a b (0 a.f)\ a einziger weiterer Übergang! Beispiel. Ein Zufallsgenerator für natürliche Zahlen: Random Satz 2.7. Die E α E gemäß obiger Definition sind genau die Übergänge mit (endlichem) Herleitungsbaum. Die Familie ist also eindeutig definiert.

14 2 BASIS-DEFINITIONEN 14 Aussagen A für alle E α E kann man mit Transitionsinduktion (Induktion über die Tiefe des Herleitungsbaums bzw. über die Länge der Herleitung) beweisen. Es gibt einen Fall für jede Regel. Verankerung entspricht dem (oder einem) Axiom. Für α zeigt man A direkt. E E Beispiel. Ind.schritt für den Fall Rel: Sei E[f] f(α) E [f] wegen E α E, und die Aussage A(E α E ) gilt nach Induktion. Zeige damit A(E[f] α E [f]). Restbaum E α E E[f] f(α) E [f] Hier noch ein, etwas abschreckendes, Beispiel für Herleitungen: Beispiel. A a 0.0 A[f] mitf : a i a i+1. CCS entspricht einem Transitionssystem; zu jedem E ist aber nur der von E erreichbare Teil interessant. Hier: Transitionssystem ist Grundlage aller Verhaltensbegriffe keine explizite Parallelität im Verhalten. Herleitung einer Transition eventuell langwierig Arbeiten mit CCS auch ohne eine Herleitung ( Gesetze / Axiome für = ). FallsE α E, dann heißt (α,e ) direkte Folge von E α eine Aktion von E E ein α-folgeterm von E Analog definiert man für E α 1 α n E (α 1 α n,e ) eine Folge von E α 1 α n eine Aktionsfolge von E E ein (α 1 α n -)Folgeterm von E Wir schreiben auch E α 1 α n E in diesem Fall; ferner E α 1 α n, falls E : E α 1 α n E ; Speziell: n=0, also E λ E, und λ ist eine Aktionsfolge, E ein Folgeterm von E für alle E. Wir erwarten: Haben E 1 und E 2 dieselben direkten Folgen (und damit im wesentlichen dieselben Folgen), so sind sie sicher verhaltensgleich (bisher undefiniert). τ ist intern (unbeobachtbar), daher ist interessant: Aus s Act entsteht ŝ L durch Entfernen aller τ s. Speziell: τ τ = λ.

15 2 BASIS-DEFINITIONEN 15 Für s = α 1 α n Act ist E = s E, falls E( ) τ α 1 τ ( ) (α i = τ möglich) E = s wie oben. α n ( τ ) E, Falls s Act und E ŝ = E (!), dann ist E ein s-nachkomme von E. (Beispielsweise haben P und τ.p speziell P als τ-nachkommen.) ŝ Uns interessiert vor allem =. Für s L ist s = ŝ und E = ŝ E dasselbe wie E = s E s. = mit s Act \L ist eher technisch. Beispiel. E ab = E bedeutet E τm aτ n bτ p E E = λ E bedeutet E = τa E bedeutet 2.4 Sorten Definition 2.8. E hat (semantische) Sorte L L, falls alle Aktionen von E und seinen Folgetermen in L {τ} liegen; E : L. Folgerung. L ist Sorte von E für alle E α E gilt: α L {τ} und L ist Sorte von E. Eigentlich hätten wir gerne die kleinste Sorte von E. Es ist aber generell unentscheidbar, ob ein ProzessP je die Aktionlausführen kann. (vergleiche hierzu Turingmaschinen und den Satz von Rice aus der Theoretischen Informatik) Syntaktische Sortenzuweisung: Definition 2.9. Gegeben seien Sorten L(A) L, A K (Konstanten) und L(X) L, X X. Dann ist die syntaktische Sorte L(E), E E, definiert durch: L(l.E) = {l} L(E), L(τ.E) = L(E) L( i I E i) = i I L(E i), ( L(Nil) = L(E F) = L(E\L) = L(E[f]) = Dabei sei vorausgesetzt, dass für alle A P gilt: L(P) L(A) Beispiel. L(a.b.0) = {a, b}, L((a.b.0)\a) Für A a.b.a ist L(A) = {a} unmöglich, denn dann wäre L(a.b.A) = {a, b} {a}. L(A) = {a, b, c} ist ok. (L(A) = L ist immer zulässig, aber wenig hilfreich!) Idee: Rate als syntaktische Sorte und korrigiere iterativ gemäß L(P). In diesem Beispiel funktioniert das; im abschreckenden Beispiel von oben terminiert es nicht. Lemma SeiE α E. Dann gilt:

16 2 BASIS-DEFINITIONEN 16 (i) α L(E) {τ} (ii) L(E ) L(E) Beweis. durch Transitionsinduktion (Transitionen sind induktiv definiert) Betrachte die letzte Regel im Herleitungsbaum von E α E. 1. Act : E α.e (Blatt im Herleitungsbaum Induktionsanfang) Nach Definition ist L(E) = {α} L(E ) für α τ, L(E) = L(E ) für α = τ (jeweils (i) und (ii) prüfen!) 2. Sum j : E i E i und E j α E (mit einem niedrigeren Herleitungsbaum) Nach Induktionsvoraussetzung ist α L(E j ) {τ} und L(E ) L(E j ). Nach Definition sehen wir, dass L(E j ) L(E). 3. Com 1 : E E 1 E 2, E E 1 E 2 und E 1 α E 1 Nach Induktionsvoraussetzung istα L(E 1 ) {τ} und L(E 1 ) L(E 1); mitl(e) = L(E 1 ) L(E 2 ) und L(E ) = L(E 1 ) L(E 2) L(E 1 ) L(E 2 ) = L(E). 4. Com 2, Com 3, Res, Rel: ähnlich 5. Name : E A mita P und A α E wegen P α E. Nach Induktionsvoraussetzung ist α L(P) {τ} und L(E ) L(P). DaL(P) L(A), ist L(E ) L(A). Satz Für alle E E gilt: E : L(E). Beweis. Seiαeine Aktion eines Folgeterms F von E. Wegen Lemma 2.10 (i) gilt α L(F) {τ}. Die wiederholte Anwendung von Lemma 2.10 (ii) ergibt L(F) L(E). FallsE keine Variablen, Namen oder Umbenennungen enthält, ist die syntaktische Sorte von E einfach die Menge der freien (nicht durch Restriktionen gebundenen) Portbeschriftungen. Wir kürzen oft α.n il durch α ab. Beispiel. P ((a+b.c)\c) ((b+c.d)\d) L(P) =

17 2 BASIS-DEFINITIONEN Reduktion des voll(ständig)en CCS auf Basis-CCS volles CCS: Aktionen und Namen mit Parameter gut für Anwendungen und Beispiele schwierig für Beweise Annahme: Alle Parameter-Werte liegen in V. Definition 2.12 (Volle CCS-Terme E + ). Jeder Prozessname A K habe eine Stelligkeit (# Parameter). Es seien Ausdrücke e (expression) und boolesche Ausdrücke b aus Daten-Variablen x,y,... und Konstanten über V und geeigneten Operationssymbolen gegeben. E + enthält alle X X, alle A(e 1,...,e n ), wobei A Stelligkeit n hat, und zue, E i E + : 1. a(x).e, a(e).e, τ.e (a A) 2. i I E i 3. E 1 E 2 4. E\L (L L) 5. E[f] (f eine Umbenennungsfunktion) 6. if b then E {if b thene else E ˆ= if b then E + if b thene } Zu jedem A K mit Stelligkeit n gibt es eine DefinitionA(x 1,...,x n ) E, wobei diex i verschieden sind und E keine Prozess-Variablen und keine freien Daten-Variablen außer x 1,...,x n enthält. (Bindung durch a(x). ; also keine globalen Datenvariablen, die außerhalb der Prozedur A definiert sind) Beispiele. 1. C in(x).c (x) und C (x) out(x).c (x frei inc (x), aber nicht inin(x).c (x);xfrei inout(x).c) Der Name C mit Parameter x wird zur Familie (C v ) v V. Analog wird out zu einer Familie(out v ) v V von Aktionen. Aus der einen (symbolischen) Definition von C wird eine Familie von Definitionen: C v out v.c (v V) C stellt eine Auswahl dar: C v V in v.c v 2. Even(x) if x gerade then out(x).0 wird zu Even 2n und Even 2n+1 (Kennen wir den Wert von x, so auch den Wert von x gerade.) Übersetzung: F E + ˆF E Zul im vollen CCS gibt es eine Familie(l v ) v V von eigenen Portbeschriftungen; zu A K : (Aṽ)ṽ V n Wir betrachten F E + mit freien Daten-Variablen x i bzw. x nur, wennf Teilterm von E

18 2 BASIS-DEFINITIONEN 18 ist. 1. in einer Definition A( x) E bzw. 2. in a(x).e 1. wird zu FamilieAṽ E{ṽ/ x },ṽ V n ; die x i sind nicht mehr frei ine{ṽ/ x }. 2. wird zu v V a v. E{ v / x },xnicht frei in E{ v / x }. Konsequenz: Wir übersetzen also nur F E + ohne freie Daten-Variablen: Ist F a(e).e oder A(e 1,...,e n ) oder if b then E, so kann man e, e i, b auswerten zu e, e i V bzw. b {T,F}. Übersetzungen: F X X a(x).e v V av.ê{v / x } a(e).e a e.ê { e V} τ.e τ.ê i I E i i I Êi E 1 E 2 Ê 1 Ê2 E\L Ê\{l v : l L, v V} E[f] ifbthene Ê[ f], mit f(l v ) = { f(l) v {Ê T, falls b = 0 F A(e 1,...,e n ) A e1,..., e n Beispiel. V = N, F in(x).if x < 3 then out(x).0 F Konsequenz: Wir arbeiten nach Wunsch mit (vollem) CCS oder Basis-CCS. Wir betrachten hier volles CCS nur als intuitive abkürzende Schreibweise für CCS; die Übersetzung gibt den Prozessen des vollen CCS eine Semantik. Alternative: Semantik direkt definieren; dann kann/sollte man beweisen, dass die Übersetzung korrekt ist, weile und Ê dieselbe Semantik haben. Basis-CCS: keine Daten-Variablen/-Ausdrücke, also keine Substitution, keine Auswertung von Ausdrücken, kein if a und a sind völlig symmetrisch

19 3 GLEICHUNGSGESETZE 19 3 Gleichungsgesetze Ziel: Angabe und Anwendungen von Gleichungen (rein syntaktisch) (Obwohl (verhaltens-) gleich bisher undefiniert!) Gesetze für: statisch: statische Operationen dynamische Operationen Kombinationen aus statischen und dynamischen Operationen Komposition, Restriktion, Umbenennung SOS-Regeln haben die Form: α E 1 i1 E α i1,...,e m im E im α op(e 1,...,E n ) op(e 1,...,E n) wobei op ein Operationssymbol; i 1,...,i m {1,...,n} und E i E i für alle anderen i Grobe Termstruktur bleibt erhalten dynamisch: Präfix, Auswahl, Namen (0-stellige Operationen) verschwinden beim Ausführen einer Aktion 3.1 Dynamische Gesetze Satz 3.1 (Monoid-Gesetze). ( P rozesse P, Q, R) (i) P +Q = Q+P (ii) (P +Q)+R = P +(Q+R) (iii) P +P = P (Idempotenz) (iv) P +Nil = P (neutrales Element) Beweisidee. gleiche direkte Folgen Wegen i), ii) und iv) istσ-summe sinnvoll. Satz 3.2 (τ-gesetze). (i) α.τ.p = α.p (ii) P +τ.p = τ.p (iii) α.(p +τ.q)+α.q = α.(p +τ.q) Korollar 3.3. P +τ.(p +Q) = τ.(p +Q) Beweis. Einschub. Was ist ein Beweis für P = Q? Genaugenommen sindp,q,... inp +Q = Q+P,... Variable. Eine Gleichung ist also ein Paar (E 1,E 2 ) E E.

20 3 GLEICHUNGSGESETZE 20 Definition 3.4. Gegeben sei eine Menge G von Gleichungen. Dann ist ein Beweis von F 1 = F 2 eine Herleitung mit folgenden Regeln: E = E reflexiv E = E E = E symmetrisch 3. E = E, E = E E = E transitiv E 1 = E 1,...,E n = E n op(e 1,...,E n ) = op(e 1 (op: Operationssymbol),...,E n ) Substitution Ein Term darf in jedem Kontext durch einen gleichen ersetzt werden. E = E E{Ẽ/ X} = E {Ẽ/ X} ({Ẽ/ X} eine Substitution) E = E falls (E,E ) G Instantiierung von Variablen Beachte: {Ẽ/ X} ist kein CCS-Operator. 4. läßt die Grobstruktur gleich; 5. verändert sie. Beispiel. P +τ.p = τ.p (6) τ.p = P +τ.p (2) (1) (5) P = P τ.(p +Q) = (P +Q)+τ.(P +Q) P +τ.(p +Q) = P +((P +Q)+τ.(P +Q)) (4) Folgerung. Wegen muss = eine Äquivalenzrelation sein. Wegen 4. sogar eine Kongruenz; vgl. z.b. Satz Im allgemeinen ist τ.p P, s.o. α.(p +Q)? = α.p +α.q (Entscheidung zwischen P und Q fällt bereits bei α) Dann wäre z.b. a.b 3.1(iv) = a.(b.0+0) = a.b.0+a.0 a.b und a.b+a haben dieselben Aktionsfolgen, abera.b+a a Also im Allgemeinem. 0 verklemmt, a.b a b nicht. Nun zua P. Oft trittainp auf, d.h.p E{ A / X }, wobeie genau die VariableX enthält. Wir erwarten: Da A E{ A / X }, gilt A = E{ A / X }, d.h. A löst die Gleichung X = E. Ferner wäre es gut, wenn A die einzige Lösung wäre, d.h. Q = E{ Q / X } A = Q. Beides soll auch bei verschränkter Rekursion gelten, d.h. für Gleichungssysteme X = Ẽ. Dabei ist P eine Lösung, wenn P = Ẽ{ P/ X}, d.h.

21 3 GLEICHUNGSGESETZE 21 Definition 3.5. Sei E E. X ist sequentiell in E, falls jeder Teilausdruck F von E, der X enthält, die Form F X oder F F 1 +F 2 oder F α.f hat. X ist bewacht (guarded) in E, wenn jedes Auftreten von X in E in einem Teilausdruck l.f, l L (also l τ), liegt. Beispiele. X inτ.x +a.(b+x)+b c X ina.x b X inτ.(a b+b.(c+τ.x)) Satz 3.6. (i) Wenn A P, dann gilt A = P. (ii) Falls die E i, i I, nur die Variablen X i, i I, enthalten und diese bewacht und sequentiell in allen E i sind, dann gilt: Wenn P = Ẽ{ P/ X} und Q = Ẽ{ Q/ X}, dann P = Q. (Wenn das Gleichungssystem X = Ẽ lösbar, dann eindeutig.) Beispiel. A a.a,b a.a.b Behauptung: A = B 3.2 Statische Gesetze Satz 3.7. (i) P Q = Q P (ii) P (Q R) = (P Q) R (iii) P 0 = P Satz 3.8. (i) P \L = P, falls L(P) (L L) = (wobei L(P) syntaktische Sorte von P ist) (ii) P \K \L = P \ (iii) P[f]\L = P \ [f] (iv) (P Q)\L = P \L Q\L, falls (sonst verlieren P, Q eventuell Kommunikationsmöglichkeiten)

22 3 GLEICHUNGSGESETZE 22 Satz 3.9. (i) P[id] = P (ii) P[f] = P[f ], falls f L(P) = f L(P) (iii) P[f][f ] = (iv) (P Q)[f] = P[f] Q[f], falls (sonst gewinnen P, Q eventuell Kommunikationsmöglichkeiten; kann z.b. P a und Q b ausführen, so können für f = a / b P[f] und Q[f] mittels a und a kommunizieren) Die Umbenennung ist meist injektiv. Speziell in P[ l 1 /l1,..., l n /ln ] sind meist alle l i, l i, l i, l i verschieden und l i, l i L(P). (D.h. f(l i) = l i = f(l i ) schadet nicht!). Dann ist 3.9 (iv) anwendbar und ( l 1 /l1,..., l n / ln ) = ( l n/ ln )... ( l 1 /l1 ), (Gleichheit von Funktionen, Funktionskomposition) d.h. P[ l 1 /l1,..., l n /ln ] = P[ l 1 /l1 ]...[ l n /ln ] nach Satz 3.9 (iii). Korollar Seien a,b,c L. (entgegen sonstiger Konvention, dass l L und a,b,c bzw. a,b,c Act; zur Erinnerung: τ L) (i) P[ b / a ] = P, falls a,a, L(P) (ii) P \a = P[ b / a ]\b, falls b,b L(P) (α-konversion: Umbenennung gebundener Größen) (iii) P \a[ b / c ] = P[ b / c ]\a, falls {b,c} {a,a} =. Beweis. (i) P[ b / a ] 3.9(ii) = P[id] 3.9(i) = P (ii) P[ b / a ]\b = P \{a,b} [ b / a ] (3.8 (iii) mitl = {b}, f = ( b / a )) = P \b\a [ b / a ] (3.8 (ii)) = P \a [ b / a ] (3.8 (i) mitl = {b}) = P \a (3.10 (i)) (iii) 3.8 (iii) mitl = {a}, f = ( b / c ). Beispiel. C C C C C := (C[ mid / out ] C[ mid / in ])\mid, wobei mid,mid L(C) Dies ist ein Beispiel für die Standard Concurrent Form (SCF) (P 1 [f 1 ]... P n [f n ])\L siehe auch Fließband (Abschnitt 1.2.5): (Jobber Jobber Sem[ puth / put, geth / get ]... )\{geth,puth,...}

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Stefan Lucks Diskrete Strukturen (WS 2009/10) 57 2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32,

Mehr

5.1 Drei wichtige Beweistechniken... 55 5.2 Erklärungen zu den Beweistechniken... 56

5.1 Drei wichtige Beweistechniken... 55 5.2 Erklärungen zu den Beweistechniken... 56 5 Beweistechniken Übersicht 5.1 Drei wichtige Beweistechniken................................. 55 5. Erklärungen zu den Beweistechniken............................ 56 Dieses Kapitel ist den drei wichtigsten

Mehr

I. Aussagenlogik. Aussagenlogik untersucht Verknüpfungen wie "und", "oder", "nicht", "wenn... dann" zwischen atomaren und komplexen Sätzen.

I. Aussagenlogik. Aussagenlogik untersucht Verknüpfungen wie und, oder, nicht, wenn... dann zwischen atomaren und komplexen Sätzen. I. Aussagenlogik 2.1 Syntax Aussagenlogik untersucht Verknüpfungen wie "und", "oder", "nicht", "wenn... dann" zwischen atomaren und komplexen Sätzen. Sätze selbst sind entweder wahr oder falsch. Ansonsten

Mehr

2. Universelle Algebra

2. Universelle Algebra 2. Universelle Algebra Die Theorie der universellen Algebra verallgemeinert die Theorien der klassischen Algebren. Obwohl ursprünglich nur eine Sorte betrachtet wurde, werden wir hier gleich den mehrsortigen

Mehr

Zusammenfassung. Satz. 1 Seien F, G Boolesche Ausdrücke (in den Variablen x 1,..., x n ) 2 Seien f : B n B, g : B n B ihre Booleschen Funktionen

Zusammenfassung. Satz. 1 Seien F, G Boolesche Ausdrücke (in den Variablen x 1,..., x n ) 2 Seien f : B n B, g : B n B ihre Booleschen Funktionen Zusammenfassung Zusammenfassung der letzten LV Einführung in die Theoretische Informatik Woche 6 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 Satz 1 Seien F, G Boolesche Ausdrücke

Mehr

Mathematik 1. Lösungsvorschläge zum 2. Übungsblatt

Mathematik 1. Lösungsvorschläge zum 2. Übungsblatt Hochschule Regensburg Fakultät Informatik/Mathematik Christoph Böhm Wintersemester 0/0 Wirtschaftsinformatik Bachelor IW Informatik Bachelor IN Vorlesung Mathematik Mathematik Lösungsvorschläge zum Übungsblatt

Mehr

11. Primfaktorzerlegungen

11. Primfaktorzerlegungen 78 Andreas Gathmann 11 Primfaktorzerlegungen Euch ist sicher aus der Schule bekannt, dass sich jede positive ganze Zahl a als Produkt a = p 1 p n von Primzahlen schreiben lässt, und dass diese Darstellung

Mehr

Modul Diskrete Mathematik WiSe 2011/12

Modul Diskrete Mathematik WiSe 2011/12 1 Modul Diskrete Mathematik WiSe 2011/12 Ergänzungsskript zum Kapitel 4.2. Hinweis: Dieses Manuskript ist nur verständlich und von Nutzen für Personen, die regelmäßig und aktiv die zugehörige Vorlesung

Mehr

Wortproblem für kontextfreie Grammatiken

Wortproblem für kontextfreie Grammatiken Wortproblem für kontextfreie Grammatiken G kontextfreie Grammatik. w Σ w L(G)? Wortproblem ist primitiv rekursiv entscheidbar. (schlechte obere Schranke!) Kellerautomat der L(G) akzeptiert Ist dieser effizient?

Mehr

Prozessalgebren (CCS & CSP) Vortragender: Tim Michaelis

Prozessalgebren (CCS & CSP) Vortragender: Tim Michaelis Prozessalgebren (CCS & CSP) Vortragender: Tim Michaelis Begriffsklärung: Prozess Prozess = Abfolge von Aktionen = Aufeinanderfolge von Zuständen Äussere Eigenschaften sequentiell oder parallel? kooperierend

Mehr

7. Ringe und Körper. 7. Ringe und Körper 49

7. Ringe und Körper. 7. Ringe und Körper 49 7. Ringe und Körper 49 7. Ringe und Körper In den bisherigen Kapiteln haben wir nur Gruppen, also insbesondere nur Mengen mit lediglich einer Verknüpfung, untersucht. In der Praxis gibt es aber natürlich

Mehr

Diskrete Strukturen und Logik WiSe 2007/08 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de

Diskrete Strukturen und Logik WiSe 2007/08 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de Diskrete Strukturen und Logik WiSe 2007/08 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Diskrete Strukturen und Logik Gesamtübersicht Organisatorisches Einführung Logik & Mengenlehre

Mehr

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik

Mehr

Beispiel. Bsp.: Betrachte Schlussweise in: (3) folgt aus (1) und (2), siehe z.b. Resolutionsregel. was ist mit folgender Schlußweise:

Beispiel. Bsp.: Betrachte Schlussweise in: (3) folgt aus (1) und (2), siehe z.b. Resolutionsregel. was ist mit folgender Schlußweise: Theoretische Informatik: Logik, M. Lange, FB16, Uni Kassel: 5.4 Prädikatenlogik mit Gleichheit Resolution 192 Beispiel Bsp.: Betrachte Schlussweise in: 1 Wenn es regnet, dann wird die Straße nass. R N

Mehr

Zusammenfassung. 1 Wir betrachten die folgende Signatur F = {+,,, 0, 1} sodass. 3 Wir betrachten die Gleichungen E. 4 Dann gilt E 1 + x 1

Zusammenfassung. 1 Wir betrachten die folgende Signatur F = {+,,, 0, 1} sodass. 3 Wir betrachten die Gleichungen E. 4 Dann gilt E 1 + x 1 Zusammenfassung Zusammenfassung der letzten LV Einführung in die Theoretische Informatik Woche 7 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 1 Wir betrachten die folgende Signatur

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Einführung in die Theoretische Informatik Woche 10 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 Zusammenfassung Zusammenfassung der letzten LV Satz Sei G = (V, Σ, R, S) eine kontextfreie

Mehr

Programmiersprachen und Übersetzer

Programmiersprachen und Übersetzer Programmiersprachen und Übersetzer Sommersemester 2010 19. April 2010 Theoretische Grundlagen Problem Wie kann man eine unendliche Menge von (syntaktisch) korrekten Programmen definieren? Lösung Wie auch

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 8: kontextfreie Grammatiken Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2009/2010 1/37 Überblick Kontextfreie Grammatiken

Mehr

Motivation. Motivation

Motivation. Motivation Vorlesung Modellierung nebenläufiger Systeme Sommersemester 2012 Universität Duisburg-Essen Was sind nebenläufige Systeme? Ganz allgemein: Systeme, bei denen mehrere Komponenten/Prozesse nebenläufig arbeiten

Mehr

Codierungstheorie Rudolf Scharlau, SoSe 2006 9

Codierungstheorie Rudolf Scharlau, SoSe 2006 9 Codierungstheorie Rudolf Scharlau, SoSe 2006 9 2 Optimale Codes Optimalität bezieht sich auf eine gegebene Quelle, d.h. eine Wahrscheinlichkeitsverteilung auf den Symbolen s 1,..., s q des Quellalphabets

Mehr

Der λ-kalkül. Frank Huch. Sommersemester 2015

Der λ-kalkül. Frank Huch. Sommersemester 2015 Der λ-kalkül Frank Huch Sommersemester 2015 In diesem Skript werden die Grundlagen der Funktionalen Programmierung, insbesondere der λ-kalkül eingeführt. Der hier präsentierte Stoff stellt einen teil der

Mehr

Logik für Informatiker

Logik für Informatiker Logik für Informatiker 2. Aussagenlogik Teil 3 30.04.2012 Viorica Sofronie-Stokkermans Universität Koblenz-Landau e-mail: sofronie@uni-koblenz.de 1 Letztes Mal Aussagenlogik Syntax: welche Formeln? Semantik:

Mehr

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik Grundlagen der Informatik II Teil I: Formale Modelle der Informatik 1 Einführung GdInfoII 1-2 Ziele/Fragestellungen der Theoretischen Informatik 1. Einführung abstrakter Modelle für informationsverarbeitende

Mehr

5 Eigenwerte und die Jordansche Normalform

5 Eigenwerte und die Jordansche Normalform Mathematik für Physiker II, SS Mittwoch 8.6 $Id: jordan.tex,v.6 /6/7 8:5:3 hk Exp hk $ 5 Eigenwerte und die Jordansche Normalform 5.4 Die Jordansche Normalform Wir hatten bereits erwähnt, dass eine n n

Mehr

Wie kann man die Korrektheit reaktiver Systeme gewährleisten?

Wie kann man die Korrektheit reaktiver Systeme gewährleisten? Korrektheit durch modulare Konstruktion Wie kann man die Korrektheit reaktiver Systeme gewährleisten? Ansatz: Durch systematische Konstruktion (Schlagwort: strukturierte Programmierung für parallele Programmiersprachen)

Mehr

Semantik von Formeln und Sequenzen

Semantik von Formeln und Sequenzen Semantik von Formeln und Sequenzen 33 Grundidee der Verwendung von Logik im Software Entwurf Syntax: Menge von Formeln = Axiome Ax K ist beweisbar Formel ϕ beschreiben Korrektkeit Vollständigkeit beschreibt

Mehr

Grammatiken. Einführung

Grammatiken. Einführung Einführung Beispiel: Die arithmetischen Ausdrücke über der Variablen a und den Operationen + und können wie folgt definiert werden: a, a + a und a a sind arithmetische Ausdrücke Wenn A und B arithmetische

Mehr

2.11 Kontextfreie Grammatiken und Parsebäume

2.11 Kontextfreie Grammatiken und Parsebäume 2.11 Kontextfreie Grammatiken und Parsebäume Beispiel: Beispiel (Teil 3): Beweis für L(G) L: Alle Strings aus L der Länge 0 und 2 sind auch in L(G). Als Induktionsannahme gehen wir davon aus, dass alle

Mehr

Theoretische Informatik

Theoretische Informatik Theoretische Informatik Einheit 1 Mathematische Methodik 1. Problemlösen 2. Beweistechniken 3. Wichtige Grundbegriffe Methodik des Problemlösens Klärung der Voraussetzungen Welche Begriffe sind zum Verständnis

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910

Mehr

Algebra. Patrik Hubschmid. 8. Oktober 2013

Algebra. Patrik Hubschmid. 8. Oktober 2013 Algebra Patrik Hubschmid 8. Oktober 2013 Inhaltsverzeichnis 1 Fortführung der Gruppentheorie 7 1.1 Sylowsätze.................................... 7 3 Vorwort Dieses Skript zur Vorlesung Algebra im Wintersemester

Mehr

Seminar Model-Based Testing - Preorder. Marcel Bosling

Seminar Model-Based Testing - Preorder. Marcel Bosling Seminar Model-Based Testing - Preorder Marcel Bosling 1 / 34 Inhaltsverzeichnis Systeme, Prozesse und LTS Ausgewählte Preorder Trace Preorder Observable Testing Preorder Testing Preorder Conformance Testing

Mehr

Formale Methoden in der Informatik Wiederholung klassische Logik Konkrete Datentypen (algebraische Strukturen) Abstrakte Datentypen

Formale Methoden in der Informatik Wiederholung klassische Logik Konkrete Datentypen (algebraische Strukturen) Abstrakte Datentypen Was bisher geschah Formale Methoden in der Informatik Wiederholung klassische Logik Konkrete Datentypen (algebraische Strukturen) Abstrakte Datentypen Syntax: Signatur Semantik: Axiome (FOL-Formeln, meist

Mehr

Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben

Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben Dieses Dokument soll mehr dazu dienen, Beispiele für die formal korrekt mathematische Bearbeitung von Aufgaben zu liefern, als konkrete Hinweise auf typische Klausuraufgaben zu liefern. Die hier gezeigten

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Kapitel 6: Induktives Vorgehen Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische

Mehr

Modellierung verteilter Systeme (Grundlagen der Programm- und Systementwicklung II)

Modellierung verteilter Systeme (Grundlagen der Programm- und Systementwicklung II) Modellierung verteilter Systeme (Grundlagen der Programm- und Systementwicklung II) 05 -Kommunizierende Prozesse PD Dr. Bernhard Schätz Lehrstuhl für Software und Systems Engineering, Fakultät für Informatik

Mehr

Formale Sprachen und Grammatiken

Formale Sprachen und Grammatiken Formale Sprachen und Grammatiken Jede Sprache besitzt die Aspekte Semantik (Bedeutung) und Syntax (formaler Aufbau). Die zulässige und korrekte Form der Wörter und Sätze einer Sprache wird durch die Syntax

Mehr

Endlicher Automat (EA)

Endlicher Automat (EA) Endlicher Automat (EA) siehe auch Formale Grundlagen 3 1 Motivation: Automaten für die Modellierung, Spezifikation und Verifikation verwenden! Definition Ein Endlicher Automat A = (S,I,Σ,T,F) besteht aus

Mehr

Nichtlineare Optimierung ohne Nebenbedingungen

Nichtlineare Optimierung ohne Nebenbedingungen Kapitel 2 Nichtlineare Optimierung ohne Nebenbedingungen In diesem Abschnitt sollen im wesentlichen Verfahren zur Bestimmung des Minimums von nichtglatten Funktionen in einer Variablen im Detail vorgestellt

Mehr

Funktionale Programmierung. Funktionale Programmierung: Vorlesungsüberblick. Eigenschaften rein funktionaler Programmierung

Funktionale Programmierung. Funktionale Programmierung: Vorlesungsüberblick. Eigenschaften rein funktionaler Programmierung Funktionale Programmierung 1 Funktionale Programmierung: Vorlesungsüberblick 1. Funktionale Programmierung Prinzipien funktionaler Programmierung Funktionale Programmierung in prozeduralen Sprachen Rekursive

Mehr

Reaktive Programmierung Vorlesung 16 vom 14.07.2015: Theorie der Nebenläufigkeit

Reaktive Programmierung Vorlesung 16 vom 14.07.2015: Theorie der Nebenläufigkeit 18:13:55 2015-07-14 1 [16] Reaktive Programmierung Vorlesung 16 vom 14.07.2015: Theorie der Nebenläufigkeit Christoph Lüth & Martin Ring Universität Bremen Sommersemester 2015 2 [16] Organisatorisches

Mehr

Informatik IC2. Balazs Simon 2005.03.26.

Informatik IC2. Balazs Simon 2005.03.26. Informatik IC2 Balazs Simon 2005.03.26. Inhaltsverzeichnis 1 Reguläre Sprachen 3 1.1 Reguläre Sprachen und endliche Automaten...................... 3 1.2 Determinisieren.....................................

Mehr

Entwurf von Algorithmen - Kontrollstrukturen

Entwurf von Algorithmen - Kontrollstrukturen Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer

Mehr

Also kann nur A ist roter Südler und B ist grüner Nordler gelten.

Also kann nur A ist roter Südler und B ist grüner Nordler gelten. Aufgabe 1.1: (4 Punkte) Der Planet Og wird von zwei verschiedenen Rassen bewohnt - dem grünen und dem roten Volk. Desweiteren sind die Leute, die auf der nördlichen Halbkugel geboren wurden von denen auf

Mehr

Entwicklung eines korrekten Übersetzers

Entwicklung eines korrekten Übersetzers Entwicklung eines korrekten Übersetzers für eine funktionale Programmiersprache im Theorembeweiser Coq Thomas Strathmann 14.01.2011 Gliederung 1 Einleitung

Mehr

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel. Kontextfreie Kontextfreie Motivation Formale rundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen Bisher hatten wir Automaten, die Wörter akzeptieren Frank Heitmann heitmann@informatik.uni-hamburg.de

Mehr

Kapitel 5: Applikative Programmierung

Kapitel 5: Applikative Programmierung Kapitel 5: Applikative Programmierung In der applikativen Programmierung wird ein Programm als eine mathematische Funktion von Eingabe-in Ausgabewerte betrachtet. Das Ausführen eines Programms besteht

Mehr

7. Formale Sprachen und Grammatiken

7. Formale Sprachen und Grammatiken 7. Formale Sprachen und Grammatiken Computer verwenden zur Verarbeitung von Daten und Informationen künstliche, formale Sprachen (Maschinenspr., Assemblerspachen, Programmierspr., Datenbankspr., Wissensrepräsentationsspr.,...)

Mehr

Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395

Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395 Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395 Turing-Machine Wir suchen ein Modell zur formalen Definition der Berechenbarkeit von Funktionen und deren Zeit- und Platzbedarf. Verschiedene Modelle

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen. 1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik

Mehr

Formale Sprachen, reguläre und kontextfreie Grammatiken

Formale Sprachen, reguläre und kontextfreie Grammatiken Formale Sprachen, reguläre und kontextfreie Grammatiken Alphabet A: endliche Menge von Zeichen Wort über A: endliche Folge von Zeichen aus A A : volle Sprache über A: Menge der A-Worte formale Sprache

Mehr

Binäre Suchbäume (binary search trees, kurz: bst)

Binäre Suchbäume (binary search trees, kurz: bst) Binäre Suchbäume (binary search trees, kurz: bst) Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binärbaum T mit n := M Knoten Jeder Knoten v von T ist mit einer Zahl m v M markiert.

Mehr

Elemente der Analysis II

Elemente der Analysis II Elemente der Analysis II Kapitel 3: Lineare Abbildungen und Gleichungssysteme Informationen zur Vorlesung: http://www.mathematik.uni-trier.de/ wengenroth/ J. Wengenroth () 15. Mai 2009 1 / 35 3.1 Beispiel

Mehr

Diskrete Mathematik für Informatiker

Diskrete Mathematik für Informatiker Diskrete Mathematik für Informatiker Markus Lohrey Universität Siegen Wintersemester 2014/2015 Lohrey (Universität Siegen) Diskrete Mathematik Wintersem. 2014/2015 1 / 344 Organisatorisches zur Vorlesung

Mehr

Optimalitätskriterien

Optimalitätskriterien Kapitel 4 Optimalitätskriterien Als Optimalitätskriterien bezeichnet man notwendige oder hinreichende Bedingungen dafür, dass ein x 0 Ω R n Lösung eines Optimierungsproblems ist. Diese Kriterien besitzen

Mehr

3. Die Eigenschaften der reellen Zahlen II: Geordnete Körper

3. Die Eigenschaften der reellen Zahlen II: Geordnete Körper 32 Andreas Gathmann 3. Die Eigenschaften der reellen Zahlen II: Geordnete Körper Wir haben bisher von den reellen Zahlen nur die Körpereigenschaften, also die Eigenschaften der vier Grundrechenarten ausgenutzt

Mehr

Spezifikation der zulässigen Parameter. Bemerkungen: Bemerkungen: (2) Design by Contract:

Spezifikation der zulässigen Parameter. Bemerkungen: Bemerkungen: (2) Design by Contract: Spezifikation der zulässigen Parameter Bemerkungen: Bei jeder (partiellen) Funktion muss man sich überlegen und dokumentieren, welche aktuellen Parameter bei einer Anwendung zulässig sein sollen. Der Anwender

Mehr

Seminar über Software Model Checking Vortrag zum Thema Predicate Abstraction

Seminar über Software Model Checking Vortrag zum Thema Predicate Abstraction Seminar über Software Model Checking Vortrag zum Thema Predicate Abstraction Robert Mattmüller Betreuer: Prof. Dr. Stefan Leue Wintersemester 2003/2004 1. Dezember 2003 1 Software Model Checking Predicate

Mehr

Kapitel 4. Euklidische Ringe und die Jordansche Normalform. 4.1 Euklidische Ringe

Kapitel 4. Euklidische Ringe und die Jordansche Normalform. 4.1 Euklidische Ringe Kapitel 4 Euklidische Ringe und die Jordansche Normalform 4.1 Euklidische Ringe Die Ringe der ganzen Zahlen, Z, sowie Polynomringe über Körpern, K[X], wobei K ein Körper ist, haben die folgenden Gemeinsamheiten:

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm 1 Vom Problem zum Programm Ein Problem besteht darin, aus einer gegebenen Menge von Informationen eine weitere (bisher unbekannte) Information zu bestimmen. 1 Vom Problem zum Programm Ein Algorithmus ist

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen. 1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik

Mehr

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83 9.. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83 Die Grundfrage bei der Anwendung des Satzes über implizite Funktionen betrifft immer die folgende Situation: Wir haben eine Funktion f : V W und eine Stelle x

Mehr

4.2 Die Behandlung diskreter Zeitaspekte unter Synchroniehypothese

4.2 Die Behandlung diskreter Zeitaspekte unter Synchroniehypothese Zeit in Prozeßalgebra Synchroniehypothese: Aktionen des Systems brauchen keine Zeit. Einbau einer diskreten Uhr. 1 Beispiel Doppelte Maus-Clicks Angenommen, wir wollen ein Programm schreiben, das doppelte

Mehr

Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at

Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Inhalt SWP Funktionale Programme (2. Teil) Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Interpreter für funktionale Sprache

Mehr

Erinnerung/Zusammenfassung zu Abbildungsmatrizen

Erinnerung/Zusammenfassung zu Abbildungsmatrizen Erinnerung/Zusammenfassung zu Abbildungsmatrizen Thomas Coutandin (cthomas@student.ethz.ch) 7. November 2 Abbildungsmatrizen Im Folgenden betrachten wir stets endlich dimensionale K-Vektorräume (K irgend

Mehr

Programmieren ++ Begleitende Übungen zu Veranstaltungen + Umsetzen des Algorithmus in ein lauffähiges Programm

Programmieren ++ Begleitende Übungen zu Veranstaltungen + Umsetzen des Algorithmus in ein lauffähiges Programm Studienanforderungen Studiengang Maschinenbau Programmieren Begleitende Übungen zu Veranstaltungen Umsetzen des Algorithmus in ein lauffähiges Programm Studiengang Bauingenieurwesen Programmieren Begleitende

Mehr

5. Übungsblatt (Musterlösung)

5. Übungsblatt (Musterlösung) Universität Konstanz Mathematische Grundlagen der Informatik Fachbereich Informatik & Informationswissenschaft WS 2015/2016 Prof. Dr. Sven Kosub / Dominik Bui, Franz Hahn, Fabian Sperrle 5. Übungsblatt

Mehr

Entscheidungsprobleme. Berechenbarkeit und Komplexität Entscheidbarkeit und Unentscheidbarkeit. Die Entscheidbarkeit von Problemen

Entscheidungsprobleme. Berechenbarkeit und Komplexität Entscheidbarkeit und Unentscheidbarkeit. Die Entscheidbarkeit von Problemen Berechenbarkeit und Komlexität Entscheidbarkeit und Unentscheidbarkeit Wolfgang Schreiner Wolfgang.Schreiner@risc.uni-linz.ac.at Research Institute for Symbolic Comutation (RISC) Johannes Keler University,

Mehr

Lenstras Algorithmus für Faktorisierung

Lenstras Algorithmus für Faktorisierung Lenstras Algorithmus für Faktorisierung Bertil Nestorius 9 März 2010 1 Motivation Die schnelle Faktorisierung von Zahlen ist heutzutage ein sehr wichtigen Thema, zb gibt es in der Kryptographie viele weit

Mehr

Foundations of Systems Development

Foundations of Systems Development Foundations of Systems Development Vergleich und Zusammenfassung Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer WS 2007/08 2 Ziele Wichtige Aspekte von algebraischen Spezikationen

Mehr

Analysis I für Studierende der Ingenieurwissenschaften

Analysis I für Studierende der Ingenieurwissenschaften Fachbereich Mathematik der Universität Hamburg WiSe 2015/16 Prof. Dr. M. Hinze Dr. P. Kiani Analysis I für Studierende der Ingenieurwissenschaften Lösungshinweise zu Blatt 2 Aufgabe 1: (12 Punkte) a) Beweisen

Mehr

Was bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell):

Was bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell): Was bisher geschah deklarative Programmierung funktional: Programm: Menge von Termgleichungen, Term Auswertung: Pattern matsching, Termumformungen logisch: Programm: Menge von Regeln (Horn-Formeln), Formel

Mehr

Vorlesung Theoretische Informatik

Vorlesung Theoretische Informatik Vorlesung Theoretische Informatik Automaten und Formale Sprachen Hochschule Reutlingen Fakultät für Informatik Masterstudiengang Wirtschaftsinformatik überarbeitet von F. Laux (Stand: 09.06.2010) Sommersemester

Mehr

Kapitel 3. Natürliche Zahlen und vollständige Induktion

Kapitel 3. Natürliche Zahlen und vollständige Induktion Kapitel 3 Natürliche Zahlen und vollständige Induktion In Kapitel 1 haben wir den direkten Beweis, den modus ponens, kennen gelernt, der durch die Tautologie ( A (A = B) ) = B gegeben ist Dabei war B eine

Mehr

Universität Koblenz-Landau, Abteilung Koblenz FB 4 Informatik. Seminar Entscheidungsverfahren für logische Theorien. Endliche Modelle.

Universität Koblenz-Landau, Abteilung Koblenz FB 4 Informatik. Seminar Entscheidungsverfahren für logische Theorien. Endliche Modelle. Universität Koblenz-Landau, Abteilung Koblenz FB 4 Informatik Seminar Entscheidungsverfahren für logische Theorien Tobias Hebel Koblenz, am 18.02.2005 Inhaltsverzeichnis 1 Einleitung... 3 2 Grundlagen...

Mehr

Vorlesung. Funktionen/Abbildungen 1

Vorlesung. Funktionen/Abbildungen 1 Vorlesung Funktionen/Abbildungen 1 1 Grundlagen Hinweis: In dieser Vorlesung werden Funktionen und Abbildungen synonym verwendet. In der Schule wird eine Funktion häufig als eindeutige Zuordnung definiert.

Mehr

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme und Grammatikregeln

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme und Grammatikregeln Stefan Brass: OOP (Java), 3. Syntaxdiagramme und Grammatikregeln 1/32 Objektorientierte Programmierung Kapitel 3: Syntaxdiagramme und Grammatikregeln Stefan Brass Martin-Luther-Universität Halle-Wittenberg

Mehr

Was ist ein Compiler?

Was ist ein Compiler? Was ist ein Compiler? Was ist ein Compiler und worum geht es? Wie ist ein Compiler aufgebaut? Warum beschäftigen wir uns mit Compilerbau? Wie ist die Veranstaltung organisiert? Was interessiert Sie besonders?

Mehr

Rechnen mit Klammern

Rechnen mit Klammern Rechnen mit Klammern W. Kippels 22. August 2015 Inhaltsverzeichnis 1 Gesetze und Formeln zum Rechnen mit Klammern 3 1.1 Kommutativgesetze.............................. 3 1.2 Assoziativgesetze...............................

Mehr

Kapitel 4: Analyse von Petrinetzen

Kapitel 4: Analyse von Petrinetzen Kapitel 4: Analyse von Petrinetzen 1. Beispiele 2. Analyseansatz 3. Markierungsgraph 4. Beschränktheit 5. State Space Explosion: Beispiel 6. Komplementbildung 7. Zusammenhängend 8. Tot, lebendig, verklemmungsfrei

Mehr

Pumping-Lemma. Beispiel. Betrachte die kontextsensitive Grammatik G mit den Produktionen. S asbc abc CB HB HB HC HC BC ab ab bb bb bc bc cc cc.

Pumping-Lemma. Beispiel. Betrachte die kontextsensitive Grammatik G mit den Produktionen. S asbc abc CB HB HB HC HC BC ab ab bb bb bc bc cc cc. Pumping-Lemma Beispiel Betrachte die kontextsensitive Grammatik G mit den Produktionen S asbc abc CB HB HB HC HC BC ab ab bb bb bc bc cc cc. Sie erzeugt z.b. das Wort aabbcc: S asbc aabcbc aabhbc aabhcc

Mehr

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant?

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant? Übersicht Aktuelle Themen zu Informatik der Systeme: Nebenläufige Programmierung: Praxis und Semantik Einleitung 1 2 der nebenläufigen Programmierung WS 2011/12 Stand der Folien: 18. Oktober 2011 1 TIDS

Mehr

Wie kann man beweisen, dass (H, ) eine Gruppe ist?

Wie kann man beweisen, dass (H, ) eine Gruppe ist? Wie kann man beweisen, dass (H, ) eine Gruppe ist? Wie kann man beweisen, dass (H, ) eine Gruppe ist? (zb wenn die Multiplikation mit Hilfe einer Tabelle gegeben ist) Wie kann man beweisen, dass (H, )

Mehr

Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20.

Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20. Übersicht Datenstrukturen und Algorithmen Vorlesung 5: (K4) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.informatik.rwth-aachen.de/i2/dsal12/ 20.

Mehr

3. Zusammenhang. 22 Andreas Gathmann

3. Zusammenhang. 22 Andreas Gathmann 22 Andreas Gathmann 3. Zusammenhang Eine der anschaulichsten Eigenschaften eines topologischen Raumes ist wahrscheinlich, ob er zusammenhängend ist oder aus mehreren Teilen besteht. Wir wollen dieses Konzept

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Algorithmen und deren Programmierung Prof. Dr. Nikolaus Wulff Definition Algorithmus Ein Algorithmus ist eine präzise formulierte Handlungsanweisung zur Lösung einer gleichartigen

Mehr

Didaktik der Zahlbereiche 4. Die Menge der ganzen Zahlen. Mathematikunterricht in der Jahrgangsstufe 7. Zahlbereichserweiterungen in der Hauptschule

Didaktik der Zahlbereiche 4. Die Menge der ganzen Zahlen. Mathematikunterricht in der Jahrgangsstufe 7. Zahlbereichserweiterungen in der Hauptschule Zahlbereichserweiterungen in der Hauptschule Didaktik der Zahlbereiche 4 Dr. Christian Groß Lehrstuhl Didaktik der Mathematik Universität Augsburg Wintersemester 2006/07 Natürliche Zahlen, : Klasse 5 positive

Mehr

Studienarbeit: Komposition von Web Services. Luhme IX Christian Stahl

Studienarbeit: Komposition von Web Services. Luhme IX Christian Stahl Studienarbeit: Komposition von Web Services Luhme IX Christian Stahl Motivation Warum ist Komposition von WS wichtig? Idee von WS geschuldet Weshalb ist Komposition von WS problematisch? 1. Syntaktische

Mehr

Theoretische Grundlagen des Software Engineering

Theoretische Grundlagen des Software Engineering Theoretische Grundlagen des Software Engineering 11: Abstrakte Reduktionssysteme schulz@eprover.org Reduktionssysteme Definition: Reduktionssystem Ein Reduktionssystem ist ein Tupel (A, ) Dabei gilt: A

Mehr

Beispiellösungen zu Blatt 111

Beispiellösungen zu Blatt 111 µ κ Mathematisches Institut Georg-August-Universität Göttingen Beispiellösungen zu Blatt 111 Aufgabe 1 Ludwigshafen hat einen Bahnhof in Dreiecksform. Markus, Sabine und Wilhelm beobachten den Zugverkehr

Mehr

TECHNISCHE UNIVERSITÄT MÜNCHEN. Abzählbarkeit, Injektivität, Sürjektivität und Bijektivität

TECHNISCHE UNIVERSITÄT MÜNCHEN. Abzählbarkeit, Injektivität, Sürjektivität und Bijektivität TECHNISCHE UNIVERSITÄT MÜNCHEN Zentrum Mathematik Prof. Dr. Friedrich Roesler Ralf Franken, PhD Max Lein Lineare Algebra 1 WS 26/7 en Blatt 4 13.11.26 Abzählbarkeit, Injektivität, Sürjektivität und Bijektivität

Mehr

Bestimmung einer ersten

Bestimmung einer ersten Kapitel 6 Bestimmung einer ersten zulässigen Basislösung Ein Problem, was man für die Durchführung der Simplexmethode lösen muss, ist die Bestimmung einer ersten zulässigen Basislösung. Wie gut das geht,

Mehr

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung Wintersemester 2009/10 Prof. Dr. Dr. h.c. Manfred Broy Unter Mitarbeit von Dr. K. Spies, Dr. M. Spichkova, L. Heinemann, P.

Mehr

w a is die Anzahl der Vorkommen von a in w Beispiel: abba a = 2

w a is die Anzahl der Vorkommen von a in w Beispiel: abba a = 2 1 2 Notation für Wörter Grundlagen der Theoretischen Informatik Till Mossakowski Fakultät für Informatik Otto-von-Guericke Universität Magdeburg w a is die Anzahl der Vorkommen von a in w Beispiel: abba

Mehr

Rekursionen (Teschl/Teschl 8.1-8.2)

Rekursionen (Teschl/Teschl 8.1-8.2) Rekursionen (Teschl/Teschl 8.1-8.2) Eine Rekursion kter Ordnung für k N ist eine Folge x 1, x 2, x 3,... deniert durch eine Rekursionsvorschrift x n = f n (x n 1,..., x n k ) für n > k, d. h. jedes Folgenglied

Mehr

5 Logische Programmierung

5 Logische Programmierung 5 Logische Programmierung Logik wird als Programmiersprache benutzt Der logische Ansatz zu Programmierung ist (sowie der funktionale) deklarativ; Programme können mit Hilfe zweier abstrakten, maschinen-unabhängigen

Mehr

Geometrische Mannigfaltigkeiten

Geometrische Mannigfaltigkeiten Geometrische Mannigfaltigkeiten Thilo Kuessner Abstract Kurzfassung der Vorlesung: Definitionen, Beispiele und Sätze, keine Beweise. Definition 1. Ein topologischer Raum ist eine Menge X mit einer Familie

Mehr

4 Kongruenz und Modulorechnung

4 Kongruenz und Modulorechnung 4 Kongruenz und Modulorechnung 39 4 Kongruenz und Modulorechnung In unserer Zeitrechnung haben wir uns daran gewöhnt, nur mit endlich vielen Zahlen zu rechnen. Es ist gerade 3 Uhr und in 50 Stunden muss

Mehr

7 Untergruppen, Faktorgruppen, Ideale, Restklassenringe

7 Untergruppen, Faktorgruppen, Ideale, Restklassenringe 7 Untergruppen, Faktorgruppen, Ideale, Restklassenringe und Homomorfismen Wir verallgemeinern den Übergang von Z zu Z/m. Sei im folgenden G eine (additiv geschriebene) abelsche Gruppe, H eine Untergruppe.

Mehr