1 Transitionssysteme und Verifikation Transitionssysteme Produkte von Transitionssystemen Kripkestrukturen...

Größe: px
Ab Seite anzeigen:

Download "1 Transitionssysteme und Verifikation Transitionssysteme Produkte von Transitionssystemen Kripkestrukturen..."

Transkript

1 Transitionssysteme und Verifikation 3. Transitionssysteme Produkte von Transitionssystemen Automaten und reguläre Sprachen Kripkestrukturen Verifikation und Model-Checking Transitionssysteme in Form von Kripke-Strukturen Kripke-Strukturen von Programmen Wechselseitiger Ausschluss Temporale Logik Syntax und Semantik von LTL-Formeln Syntax und Semantik von CTL- und CTL -Formeln Faire Kripke-Struktur CTL-Model-Checking Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite

2 Ariane 5 4. Juni 996, Kourou / Frz. Guyana, ESA Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite

3 Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 3

4 Die Computer-Pionierin Grace Hopper hat Überlieferungen zufolge diesen Begriff zuerst verwendet. Sie hatte am 9. September 945 eine Motte in einem Relais des Computers Mark II Aiken Relay Calculator gefunden, und das Tier führte zu einer Fehlfunktion. Grace Hopper entfernte die Motte und schrieb in ihr Logbuch: First actual case of bug being found, dazu klebte sie die im Relais gefundene Motte. Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 4

5 Ariane Juni 996, Kourou / Frz. Guyana, ESA Jungfernflug der neuen europäischen Trägerrakete (Gewicht: 740 t, Nutzlast 7-8 t) mit 4 Cluster-Satelliten; Entwicklungskosten in 0 Jahren: DM 800 Millionen Wirkung: 37 Sekunden nach Zünden der Rakete (30 Sekunden nach Liftoff) erreichte Ariane 5 in 3700 m Flughöhe eine Horizontal-Geschwindigkeit von (interne Einheiten). Dieser Wert lag etwa fünfmal höher als bei Ariane 4. Die Umwandlung in eine ganze Zahl führte zu einem Überlauf, der jedoch nicht abgefangen wurde. Der Ersatzrechner (Redundanz!) hatte das gleiche Problem schon 7 msec vorher und schaltete sich sofort ab. Daraus resultierte, dass Diagnose-Daten zum Hauptrechner geschickt wurden, die dieser als Flugbahndaten interpretierte. Daraufhin wurden unsinnige Steuerbefehle an die seitlichen, schwenkbaren Feststoff-Triebwerke, später auch an das Haupttriebwerk gegeben, um die großen Flugabweichungen (über 0 Grad) korrigieren zu können. Die Rakete drohte jedoch auseinanderzubrechen und sprengte sich selbst (39 sec). Ein intensiver Test des Navigations- und Hauptrechners wurde nicht unternommen, da die Software bei Ariane 4 erprobt war. 5

6 Schaden: DM 50 Millionen Startkosten DM 850 Millionen Cluster-Satelliten DM 600 Millionen für nachfolgende Verbesserungen Verdienstausfall für bis 3 Jahre Der nächste Testflug konnte erst 7 Monate später durchgeführt werden -. Stufe beendete vorzeitig das Feuern. Der erste kommerzielle Flug fand im Dezember 999 statt. Der Versuch, neue 4 Cluster-Satelliten zu starten, gelang im Juli und August 000 mit zwei russischen Trägerraketen Ursachen: Der problematische Programmteil wurde nur für die Vorbereitung beim Start und den Start selbst gebraucht. Er sollte nur während einer Übergangszeit aktiv sein, aus Sicherheitsgründen: 50 sec, bis die Bodenstation bei einer Startunterbrechung die Kontrolle übernommen hätte. Trotz des ganz anderen Verhaltens der Ariane 5 wurde dieser Wert nicht neu gesetzt. Nur bei 3 von 7 Variablen wurde ein Überlauf geprüft - für die anderen 4 Variablen existierten Beweise, dass die Werte klein genug bleiben würden (Ariane 4). Diese Beweise galten jedoch nicht für die Ariane 5 und wurden dafür auch gar nicht nachvollzogen. Problem der Wiederverwendung von Software! Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 6

7 Mariner. Juli 96, Cape Canaveral/Florida Start der ersten amerikanischen Venussonde Mariner Trägerrakete Atlas-Agena B (NASA, 5. AAB-Start) Ausschnitt aus dem FORTRAN-Programm zur Steuerung der Flugbahn der Trägerrakete: DO 5 K = CONTINUE Entscheidender Fehler: Punkt statt Komma! Wirkung: DO 5 K =. 3 Wertzuweisung an eine nicht deklarierte Variable Kein Durchlauf der (nicht vorhandenen) Schleife Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 7

8 Folge: Abweichung der Trägerrakete von der vorgesehenen Flugbahn Zerstörung der Rakete nach 90 Sekunden Kosten dieser Wertzuweisung: $ 8.5 Millionen Ursache: Schlechte Programmiersprache wegen Blanks (Zwischenräume) in Namen und Zahlen erlaubt Variablen-Deklaration nicht notwendig. Strukturierte Schleife (END DO) nicht möglich. Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 8

9 AT&T-Telefonnetz 5. Januar 990: 70 Millionen von 38 Millionen Ferngesprächen innerhalb USA konnten 9 Stunden lang nicht vermittelt werden. Schaden: $ 75 Millionen bei AT&T (ohne Folgeschäden) Mehrere $ 00 Millionen bei den Kunden (Versandhandel, Transportunternehmen, Reisebüros usw.) Ursache: Eine Schaltzentrale in New York setzte sich nach einer Fehlfunktion in den RESET-Modus: Ausfall-Meldung an alle anderen Zentralen Neubesetzung interner Tabellen (Reset) OK-Meldung an alle anderen Zentralen Weiterleiten neuer Ferngespräche Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 9

10 Alle Zentralen mußten daraufhin ihre Tabellen ändern. Bei 3 Schaltzentralen kamen aber kurz nach der OK-Meldung mehrere neue Gespräche an Verarbeitung der Meldung und der neuen Gespräche zerstörte Daten, was zum Rechnerausfall führte Im Schneeball-System wurden 9 Stunden lang alle Zentralen lahmgelegt (zu 50% im RESET-Modus) Notlösung: keine OK-Meldungen mehr verschicken Eigentlicher Fehler wurde eine Woche später gefunden: Der break-befehl von C wurde falsch eingesetzt. Existierte seit Programm-Optimierung 4 Wochen vorher. Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 0

11 000 Zeilen 5 Blatt Papier Zeilen 5 cm hoher Stapel 0 Millionen Zeilen 5 m hoher Stapel 00 Millionen Zeilen 300 m hoher Stapel Programmieraufwand (kaum sprachabhängig) TeX 8 Handy Hubble Bodensoftware Luftraum-Überwachung Space Shuttle, auch IIS B- Stealth Bomber Windows 95 Windows NT 4.0 Windows 000 SDI, auch NMD (Schätzung) Telefonsysteme USA mittlere Programmgröße große Programmgröße Zeilen kritische Software Zeilen Millionen Zeilen Fehlerhäufigkeit Millionen Zeilen Normale Software 3 Millionen Zeilen Wichtige Software 4 Millionen Zeilen Medizinische Software 0 Millionen Zeilen Space Shuttle Software 6 Millionen Zeilen 7 Millionen Zeilen 5-00 Millionen Zeilen 00 Millionen Zeilen 50 Zeilen pro Tag 0-0 Zeilen pro Tag - Zeilen pro Tag 5 Fehler pro 000 Zeilen - 3 Fehler pro 000 Zeilen 0. Fehler pro 000 Zeilen < 0. Fehler pro 000 Zeilen Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite

12 Test - Verifikation - Validierung Tests sehr zeitaufwendig 5-85 Stunden Testzeit für 000 Zeilen Keine Interpolation möglich (diskrete Werte) nur die Anwesenheit von Fehlern ist testbar, nie deren Abwesenheit Fehlende Programmteile nicht testbar Fehler in nebenläufigen Programmen nicht reproduzierbar Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite

13 Therac-5 Beschleuniger (0 Geräte seit 983 in USA und Kanada im Einsatz) Software errechnet und steuert Bestrahlungs-Stärke entweder als Elektronenstrahlung (bis 5 MeV) oder als Röntgenstrahlung (mit 00-facher Elektronenstrahlung, Wolfram-Scheibe im Strahl, absorbiert Elektronen, Röntgenstrahlen entstehen) Juni 985, Georgia/USA Elektronenstrahl brannte Loch durch Schulter Krankenhaus lehnte Verschulden ab: "Computer-gesteuert", "Hat schon immer funktioniert" März 986, Texas/USA Patient erhielt zweimal Überdosis, Tod September 986 Hersteller untersuchte das Problem, fand aber nichts April 986, Texas/USA Fehler in derselben Klinik, Patient starb im Mai 986 Zufällig gefundene Ursache: Operator gab den Strahltyp falsch ein ("X-Ray") Maschine schaltete um auf 00-fache Energie Operator korrigierte Fehler in weniger als 8 Sekunden Maschine nahm nur Wolfram-Scheibe aus Strahl heraus Sicherheitsmechanismus schaltete nach 0.3 Sekunden ab Notlösung: Abmontieren der Korrektur-Taste (Up-Key) Korrektur im November 986 (über 0 Modifikationen Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 3

14 (0 Geräte seit 983 in USA und Kanada im Einsatz) Software errechnet und steuert Bestrahlungs-Stärke entweder als Elektronenstrahlung (bis 5 MeV) oder als Röntgenstrahlung (mit 00-facher Elektronenstrahlung, Wolfram-Scheibe im Strahl, absorbiert Elektronen, Röntgenstrahlen entstehen) Juni 985, Georgia/USA Elektronenstrahl brannte Loch durch Schulter Krankenhaus lehnte Verschulden ab: "Computer-gesteuert", "Hat schon immer funktioniert" März 986, Texas/USA Patient erhielt zweimal Überdosis, Tod September 986 Hersteller untersuchte das Problem, fand aber nichts April 986, Texas/USA Fehler in derselben Klinik, Patient starb im Mai 986 Zufällig gefundene Ursache: Operator gab den Strahltyp falsch ein ("X-Ray") Maschine schaltete um auf 00-fache Energie Operator korrigierte Fehler in weniger als 8 Sekunden Maschine nahm nur Wolfram-Scheibe aus Strahl heraus Sicherheitsmechanismus schaltete nach 0.3 Sekunden ab Notlösung: Abmontieren der Korrektur-Taste (Up-Key) Korrektur im November 986 (über 0 Modifikationen) Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 4

15 Space Shuttle (Columbia), April 98:. Startversuch der US-Raumfähre: Abbruch des Starts, da die 4 (alten) IBM-Bordrechner zu unterschiedlichen Ergebnissen kamen und sich nicht synchronisierten Ursache: Eine Verzögerungsbedingung war zwei Jahre zuvor von 50 ms auf 80 ms geändert worden In 000 Stunden Testzeit wurden über 00 Fehler gefunden Beim. Flug traten 4 weitere Fehler auf (Fehler-Manual!) Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 5

16 Model Checking Literatur: E.M. Clarke et al.: Model Checking, The MIT Press, Cambridge, 999, [CGP99] B. Bèrard et al.: Systems and Software Verification: Model-Checking Techniques and Tools, Springer, Berlin, 999, [BBF99] C. Girault, R. Valk: Petri Nets for Systems Engineering, Part III: Verification, Springer, Berlin, 003, [GV03] M. Huth, M. Ryan: Logic in Computer Science, Cambridge Univ. Press, 004, [HR04] C. Baier, J.-P. Katoen: Principles of Model Checking, MIT Press, 008, [BK08] Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 6

17 System: Hardware- und Software-Systeme System-Validierung: - trad itio nel l: Tes ten und Sim ula tion am An fan g bei ein fac hen Feh lern seh r wir ksa m ---> abe r imm er we nig er effe ktiv, we nn kom ple xe und ver bor gen e Feh ler auf tret en, ---> ins bes ond ere bei bei Sys tem en mit Asy nch ron ität, Par alle litä t, Ne ben läu figk eit, ---> Feh ler oft von spe ziel len Zei tpa ram ete rn/n ach rich ten lau fze iten abh äng ig - alte rna tiv: for ma le Ve rifi kat ion ---> um fas sen de Prü fun g ---> alle Zw eig e des Ve rha lten s we rde n gep rüf t Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 7

18 wic htig e Vo rge hen swe isen : ---> Ho are -Sy stem e (Zu sich eru nge n, Inv aria nte n) ---> tem por ale Log ik ---- > An aly se des Zus tan dsr aum es (mo del che cki ng) Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 8

19 Zustandsraum-Analyse/Model Checking Vorteil: ---> ohne besondere Kenntnisse anwendbar ---> bei nicht korrektem System: Generierung von Abläufen die zu den Fehlern führen Nachteil: Abhilfe: ---> Größe des Zustandsraumes ---> symbolisches Model Checking ---> Faltung ---> Symmetrien --->... Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 9

20 Literatur: E.M. Clarke et al.: Model Checking, The MIT Press, Cambridge, 999, [CGP99] B. Bèrard et al.: Systems and Software Verification: Model-Checking Techniques and Tools, Springer, Berlin, 999, [BBF99] C. Girault, R. Valk: Petri Nets for Systems Engineering, Part III: Verification, Springer, Berlin, 003, [GV03] M. Huth, M. Ryan: Logic in Computer Science, Cambridge Univ. Press, 004, [HR04] C. Baier, J.-P. Katoen: Principles of Model Checking, MIT Press, 008, [BK08] Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 0

21 .4 Kripkestrukturen.4. Verifikation und Model-Checking Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite

22 Abbildung.60: Das Alternierbitprotokoll abp-5 Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite

23 Transitionssystem eines Alternierbitprotoko#s (aus einem Petrinetz) Verklemmung Anfangsmarkierung Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 3

24 s5: <.l.> s: <.F.> s5: <.l.> s: <.o.> s8: <.l.> s3_: <..> s5: <.l.> Verklemmung Transitionssystem eines Alternierbitprotoko#s (aus einem Petrinetz) s5: <.l.> s3: <.o.> s5: <.l.> s: <.F.> k i m y = F b e s7: <.l.> s5: <.l.> z = l s5: <.l.> s: <.l.> g s5: <.l.> s0: <.l.> h s5: <.o.> s_: <..> s: <.o.> s5: <.o.> s_: <..> s: <.F.> c s9: s4: s5: <.o.> s_: <..> s0: <.o.> h g a s_: <..> s6: <.l.> Anfangsmarkierung reservoir: <..> s6: <.l.> X y = o d 0 q s5: <.o.> s_: <..> s: <.o.> Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 4

25 Graph generated by PROD in CPN-AMI 64 nodes 08 arcs prod_graph s: <.F.> s5: <.l.> s: <.o.> s5: <.l.> k i s3: <.o.> s5: <.l.> s5: <.l.> s7: <.l.> y = F q z = l q y = F m y = o s: <.F.> s5: <.l.> e b s: <.l.> s5: <.l.> g h s0: <.l.> s5: <.l.> c Transitionssystem eines Alternierbitprotoko#s (aus einem Petrinetz) keine Verklemmung Y s: <.F.> s5: <.o.> s3_: <..> Y g h s0: <.o.> m s5: <.o.> s3_: <..> y = F y = F q s: <.F.> s4: <.l.> s_: <..> s5: <.o.> g m a s0: <.o.> s6: <.l.> s_: <..> s_: <..> s5: <.o.> y s9: = F <.o.> h y = F q d 0 X s: <.F.> s: <.o.> s_: <..> s_: <..> s5: <.o.> s5: <.o.> i k s3: <.o.> s_: <..> s5: <.o.> X y = o m s: <.o.> s_: <..> s5: <.o.> X X s: <.F.> s: <.o.> s5: <.o.> s5: <.o.> reservoir: <..> reservoir: <..> m h Y g s0: <.o.> s: <.o.> y = o m s6: <.l.> s5: <.o.> s5: <.o.> f reservoir: <..> reservoir: y = F <..> s3_: <..> X d 0 q Y X y = F s: <.F.> s: <.o.> s6: <.l.> s5: <.o.> s5: <.o.> s3_: <..> reservoir: m <..> reservoir: <..> y = o s_: <..> k X s5: <.o.> Y i s8: <.o.> Y d 0 s: <.F.> s3: <.o.> s: <.o.> s5: <.o.> s5: <.o.> s5: <.o.> s3_: <..> reservoir: <..> s3_: <..> X Y i f k s3: <.o.> s5: <.o.> s5: <.o.> s8: <.o.> reservoir: <..> s3_: <..> Anfangsmarkierung f Y s: <.F.> s5: <.o.> s9: <.l.> s: <.l.> s5: <.o.> s9: <.l.> s5: <.o.> s3_: <..> s8: <.o.> k i q b s3: <.l.> s5: <.o.> y = l s9: <.l.> y = F s5: <.o.> s7: <.o.> z = o q m e 0 y = F s: <.F.> s5: <.o.> s9: <.l.> s: <.o.> s5: <.o.> s9: <.l.> g h s0: <.o.> s5: <.o.> s9: <.l.> c s4: <.o.> s9: <.l.> s: <.l.> s_: <..> s5: <.l.> s9: <.l.> s: <.F.> s_: <..> s5: <.l.> s9: <.l.> a m X h g X s6: <.o.> s_: <..> s9: <.l.> m s: <.l.> s5: <.l.> s9: <.l.> reservoir: <..> s0: <.l.> s_: <..> s5: <.l.> s9: <.l.> s: <.F.> s5: <.l.> s9: <.l.> reservoir: <..> Y X d s6: <.o.> s: <.l.> s9: <.l.> s_: <..> reservoir: <..> s5: <.l.> s9: <.l.> X d s6: <.o.> s: <.l.> i s9: <.l.> s5: <.l.> s3_: <..> s9: <.l.> reservoir: <..> x = x l = l Y d f i y = l k s3: <.l.> s_: <..> s5: <.l.> s9: <.l.> X y = l k q g X Y y = F y = F s: <.F.> s: <.l.> x = hl m s0: <.l.> s_: <..> s5: <.l.> s5: <.l.> s5: <.l.> s9: <.l.> s9: <.l.> s9: <.l.> s3_: <..> reservoir: <..> y = F h q g Y m X s: <.F.> s0: <.l.> s5: <.l.> s5: <.l.> s9: <.l.> s9: <.l.> reservoir: <..> y = F s3_: <..> m y = F q Y Y y = Fm s: <.F.> s5: <.l.> s9: <.l.> s3_: <..> s: <.l.> s5: <.l.> s9: <.l.> s3_: <..> s_: <..> s5: <.l.> s8: <.l.> s3: <.l.> s5: <.l.> s9: <.l.> reservoir: <..> y = l s: <.F.> s5: <.l.> s9: <.l.> s3_: <..> f X i Y s5: <.l.> s8: <.l.> reservoir: <..> k s3: <.l.> s5: <.l.> s9: <.l.> s3_: <..> Formale Grundlagen der Informatik II s5: <.l.> s3_: <..> s8: <.l.> Kap : Transitionssysteme und Verifikation (Teil ) Seite 5 f Y

26 .4. Transitionssysteme in Form von Kripke-Strukturen Definition.0 Sei TS =(S, A, tr, S 0,S F ) ein Transitionssystem. Eine Zustandsetikettenfunktion ist eine Abbildung E S : S P(AP ), wobei AP eine Menge von atomaren Aussagen ist. Information in den Zuständen! Tee_einfüllen {α }! s 4 Tee Kaffee s 5 s 0 s Kaffee_einfüllen Abb.. " " s s 3 {α, α } {α, α 3 } AP := {α, α, α 3 } durch α = e gezahlt, = Kaffee gewählt definieren. Die Zuord- { } α = Tee gewählt und α 3 = Kaffee gewählt nung ( )=, ( )= usw. ist in Abb Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 6

27 .4. Transitionssysteme in Form von Kripke-Strukturen Definition.0 Sei TS =(S, A, tr, S 0,S F ) ein Transitionssystem. Eine Zustandsetikettenfunktion ist eine Abbildung E S : S P(AP ), wobei AP eine Menge von atomaren Aussagen ist. Information in den Zuständen! Tee_einfüllen {α }! s 4 Tee Kaffee s 5 s 0 s Kaffee_einfüllen Abb.. " " s s 3 {α, α } {α, α 3 } Definition. (Kripke-Struktur ) Eine Kripke-Struktur ist ein endliches Transitionssystem M := (S, A, tr, S 0, {}) mit einelementiger Aktionenmenge (also A = ), linkstotaler Transitionsrelation tr und zusätzlich einer Zustandsetikettenfunktion E S : S P(AP ). D.h es gibt keine Endzustände. Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 7

28 Definition (Kripke-Struktur ) Eine Kripke-Struktur M := (S, S 0,R,E S ) besteht aus a) einer endlichen Zustandsmenge S, b) einer Menge S 0 S von Anfangszuständen, c) einer linkstotalen (Transitions-)Relation R S S und d) einer Zustandsetikettenfunktion E S : S P(AP ), die jedem Zustand s eine Menge E S (s) AP von aussagenlogischen atomaren Formeln zuordnet (die in diesem Zustand gelten). s 0 s S s S :(s, s ) R! Tee_einfüllen Kaffee_einfüllen {α } s 4 Tee Kaffee s 5 s " " s s 3 {α, α } {α, α 3 } Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 8

29 E S (3) = { } { Start,Close, Heat, Error} in der Kripke-Struktur von Abb Kripke-Struktur Mikrowe#enofen Start Close Heat Error start oven open door 3 Start Close Heat Error Start Close Heat Error close door done open door 4 Start Close Heat Error cook open door close door reset start oven start cooking Abb..6 Seite 36 5 Start Close Heat Error 6 Start Close Heat Error warmup Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 9 7 Start Close Heat Error

30 Die Kripke-Struktur kann mittels Prädikaten erster Ordnung repräsentiert werden. Belegung Zustand: s : V D ist eine Abbildung von der Menge der Variablen in eine Wertemenge. Z.B. für die Variablen Menge V = {v, v, v 3 }, wird der Zustand s =< v, v 3, v 3 5 > durch die zugehörige Formel (v = ) (v = 3) (v 3 = 5) represäntiert. repräsentiert S 0 bezeichnet die Formel für den Anfangszustand. Transition: Beziehung zwischen Werten der Variablen vor der Transition (Menge V ) und Werten der Variablen nach der Transition (Menge V ). Wenn R eine Transitionsrelation ist, so bezeichnet R(V, V ) die entsprechende Formel. Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 30

31 Tupel M := (S, S S0,R( R, ES ) mit: den, die Anfangsbedingung gelten. Definition Eine Kripke-Struktur in logischer Darstellung ist ein Tupel M := (S, S0, R, ES ) mit:. S Menge der Belegungen, Belegung = Werte der Variablen. S0 S Menge von Zusta nden, die Anfangsbedingung S0 erfu llen, s S : R(s, s ) R(V, R V ) mit Belegung s fu r V und s fu r V, 3. s, 4. ES (s) Menge der Formeln, die bei Belegung s gelten. gdw. ( S) =, ( ) gdw. ( ) = ) (v ES (s) gdw. s(v) = wahr,) Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) ( Seite 3

32 Beispiel (System mit Kripke-Struktur) Variablenmenge: V = {x, y}, Wertemenge: D = {0, }, System: x := (x + y) mod, Anfangszustand: x =,y =, Das System kann mit zwei Prädikatenformeln beschrieben werden: S 0 (x, y) x = y = R(x, y, x, y ) x = (x + y) mod y = y Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 3

33 S 0 (x, y) x = y = R(x, y, x, y ) x = (x + y) mod y = y Daraus die Kripke-Struktur: M = (S, S 0, R, L) S = D D, S 0 = {(, )}, R = {((, ), (0, )), ((0, ), (, )), ((, 0), (, 0)), ((0, 0), (0, 0))}, L((, )) = {x =, y = },... (,) (0,) Abb..3 (,0) (0,0) Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 33

34 .4.3 Kripke-Strukturen von Programmen Sequentielle Programme als Kripke-Strukturen Exemplarisch fur Programme werden nun Kripke-Struktur a) Zuweisung b) Skip c) Hintereinanderausführung d) bedingte Anweisung e) Schleife Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 34

35 Zur Kennzeichnung von Zuständen erhalten die Programme Zeilennummern. Für Zeilennummern gibt es die Variable pc ( Befehlszähler ). Mit pc = ist gemeint, dass das Programm nicht aktiv ist. Prädikat same(y ) y Y : (y = y) (Y V ) Prädikat pre(v ) beschreibt die Anfangsbelegung der Variablen V. Anfangszustand: S 0 pre(v ) pc = m, mit m als Startzeilenummer. Die Anfangswert Prozedur x C(l, =,y P, l = ). liefert für eine Programmbeschreibung l : x P := die Repräsentation y; RS 0 der (x Transitionen = y = des pc Programms = als = Disjunktion. der prädikatenlogischen Formeln. = l ) l : y := l, l Zeilennummer jeweils vor und nach der Anweisung l 3 y ; Beispiel.8 auf Seite 8 Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 35

36 Die Prozedur C(l, P, l ) liefert für eine Programmbeschreibung P die Repräsentation R der Transitionen des Programms als Disjunktion der prädikatenlogischen Formeln. l, l Zeilennummer jeweils vor und nach der Anweisung pc, pc Befehlszähler - Variable Anfangswert x =,y =. l : x := y; l = =. : y := y ; l 3 S 0 (x = y = pc = l ) Beispiel.8 auf Seite 8 Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 36

37 Zuweisung: C(l, v e, l ) pc = l pc = l v = e same(v \{v}) Hintereinanderausführung:? C(l, (P ; l : P ) 7, l ) C(l, P, l ) C(l, P, l ) (l, P, (l, P, l Anfangswert x =,y =. l : x := y; l = =. : y := y ; l 3 S 0 (x = y = pc = l ) Beispiel.8 auf Seite 8 Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 37

38 Beispiel Anfangswert x =,y =. (ein kleines sequentielles Programm) l : x := y; = =. l : y := y ; pc = l, x =, y = s 0 Abb..4 l 3 Anfangszustand: S 0 (x = y = pc = l ) Beispiel.8 auf Seite 8 Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 38

39 Beispiel Anfangswert x =,y =. (ein kleines sequentielles Programm) l : x := y; = =. l : y := y ; pc = l, x =, y = pc = l, x = 4, y = s s 0 Abb..4 l 3 pc = l 3, x = 4, y = s Transitionsrelation: R C(l,x y, l ) C(l,y y,l 3 ) R C C mitcc(l,x y, l ) pc = l pc = l x = y y = y und C(l,y y,l 3 ) pc = l pc = l 3 y = y x = x Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 39

40 a b c G G G = {(x,y) (x,y) = (a,b) (x,y) = (b,c) (x,y) = (c,a) } G = {(x,y) (x,y) = (a,b) (x,y) = (b,c) (x,y) = (c,a) } Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 40

41 a b b c c a Graph = {(x,y) (x,y) = (a,b) (x,y) = (b,c) (x,y) = (c,a) } a a c c b b Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 4

42 Schleifen-Anweisung: C(l, while b do l : P endwhile, l ) (pc = l pc = l b same(v )) (pc = l pc = l b same(v )) C(l, P, l) (l b b l : P l ) Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 4

43 Skip: C(l, skip, l ) pc = l pc = l same(v ) Bedingte Anweisung: C(l, if b then l : P else l : P endif, l ) (pc = l pc = l b same(v )) (pc = l pc = l b same(v )) C(l, P, l ) C(l, P, l ) (l b b l : P l : P l ) Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 43

44 Nebenläufige Programme als Kripke-Strukturen Programmbeschreibung: P = cobegin P P... P n coend Mit Zeilennummern: P L = cobegin l : P L l... l n : P L n l n; coend Daraus die Formeln, wobei P C = {pc, pc i pc i -Befehlszähler von P i }): S 0 (V, P C) pre(v ) pc = m n (pc i = ) P i sind also am Anfang nicht aktiv. Damit ergibt sich folgende Repräsentation: i= Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 44

45 P L = cobegin l : P L l... l n : P L n l n; coend C(l, P L, l ) (pc = l pc = l... pc n = l n pc = ) Initialisierung (pc = pc = l... pc n = l n pc = l n i= (pc i = )) Termination ( n i= (C(l i, P i, l i ) same(v \V i) same(p C\{pc i }))) Transition von P i Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 45

46 await-anweisung: C(l, await(b),l ) (pc i = l pc i = l b same(v i)) (pc i = l pc i = l b same(v i )) await b warte bis b gilt! b = false b = true busy waiting b (l b l ) Beispielprogramm für wechselseitigen Ausschluss P = m : cobegin P 0 P coend Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 46

47 ========================= Parallele Programme oder Prozesse können zum konsistenten Schreiben auf gemeinsame Daten einen kritischen Abschnitt enthalten, der nicht überlappend ausgeführt werden darf. Dies kommt im nicht-kritischen Abschnitt nicht vor. Die Programme sollen dabei (für den Fall zweier Prozesse P und Q) folgende Eigenschaften erfüllen: A) Die Befehlszähler von P und Q sind nie gleichzeitig in ihren kritischen Abschnitten. Markierungs-Invarianz B) Meldet der Prozess P oder Q den Wunsch zum Eintritt in den kritischen Abschnitt an (wantp = True oder wantq = True), so kann er nach einer gewissen endlichen Zeit tatsächlich in seinen kritischen Abschnitt eintreten. Lebendigkeits-Invarianz liveness property safety property Es gilt immer... Es gilt später einmal... Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 47

48 a#gemeines Programm-Schema Initialisierung m : cobegin P Q coend wobei P : l 0 : while True do Q: l : while True do p i : non-critical section; q i : non-critical section; Eintrittsprotokoll Eintrittsprotokoll p j : critical section; q j : critical section; Austrittsprotokoll : Austrittsprotokoll endwhile l0 endwhile l Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 48

49 wechselseitiger Ausschluss (nach Dijkstra) Ampel = grün: {rot, grün}, m : cobegin P Q coend wobei P : l 0 : while True do Q: l : while True do p 0 : non-critical section; q 0 : non-critical section; p : await wait(ampel = grün); q : await wait(ampel = grün); p 3 : Ampel := rot; q 3 : Ampel := rot; p 4 : critical section; q 4 : critical section; p 5 : Ampel := grün; q 5 : Ampel := grün; endwhile l0 endwhile l keine unteilbare Aktion! keine atomare Aktion! kein WA! Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 49

50 wechselseitiger Ausschluss (nach Dijkstra) Ampel = grün: {rot, grün}, m : cobegin P Q coend wobei P : l 0 : while True do Q: l : while True do p 0 : non-critical section; q 0 : non-critical section; p : await wait(ampel = grün); q : await wait(ampel = grün); p 3 : Ampel := rot; q 3 : Ampel := rot; p 4 : critical section; q 4 : critical section; p 5 : Ampel := grün; q 5 : Ampel := grün; endwhile l0 endwhile l Semaphore test and set keine unteilbare Aktion! keine atomare Aktion! 4. Mutual exclusion in Java Concurrent activations of a method in Java can be made mutually exclusive by prefixing the method with the keyword synchronized. Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 50

51 wechselseitiger Ausschluss (nach Dijkstra) wantp = wantq = F alse : boolean, m : cobegin P Q coend wobei P : l 0 : while True do Q: l : while True do p 0 : non-critical section; q 0 : non-critical section; p : wantp := T rue; q : wantq := T rue; p 3 : await wait(wantq = F alse) q 3 : await wait(wantp = F alse) p 4 : critical section; q 4 : critical section; p 5 : wantp := F alse; q 5 : wantq := F alse; endwhile l0 endwhile l nicht verklemmungs*ei! Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 5

52 wechselseitiger Ausschluss 3 (nach Dijkstra) wantp = wantq = F alse : boolean, m : cobegin P Q coend wobei P : l 0 : while True do Q: l : while True do p 0 : non-critical section; q 0 : non-critical section; p : wantp := T rue; q : wantq := T rue; p 3 : while wantq = T rue do p 3 : while wantp = T rue do wantp := F alse; wantq := F alse; wantp := T rue wantq := T rue endwhile endwhile p 4 : critical section; q 4 : critical section; p 5 : wantp := F alse; q 5 : wantq := F alse; endwhile l0 endwhile l livelock! a+er you - a+er you - Effekt Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 5

53 wechselseitiger Ausschluss + (nach Dijkstra) tie break rule Wer sich zuletzt anmeldet, muss warten! neue Variable last mit Werten und wantp = wantq = F alse : boolean, m : cobegin P Q coend wobei P : l 0 : while True do Q: l : while True do p 0 : non-critical section; q 0 : non-critical section; p : wantp := T rue; q : wantq := T rue; p 3 : await wait(wantq = F alse) q 3 : await wait(wantp = F alse) p 4 : critical section; q 4 : critical section; p 5 : wantp := F alse; q 5 : wantq := F alse; endwhile l0 endwhile l nicht verklemmungs*ei! Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 53

54 wechselseitiger Ausschluss 4 (nach Dijkstra/Dekker/Peterson) Wer sich zuletzt anmeldet, muss warten! neue Variable last mit Werten und wantp = wantq = F alse : boolean, last = last =:integer, m : cobegin P Q coend wobei P : l 0 : while True do Q: l : while True do p 0 : non-critical section; q 0 : non-critical section; p : wantp := T rue; q : wantq := T rue; p : last := ; q : last := ; p 3 : await wait(wantq = F alse q 3 : await wait(wantp = F alse last =); last = ); p 4 : critical section; q 4 : critical section; p 5 : wantp := F alse; q 5 : wantq := F alse; endwhile l0 endwhile l ok? Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 54

55 wechselseitiger Ausschluss 4 (nach Dijkstra/Dekker/Peterson) wantp = wantq = F alse : boolean, last = last =:integer, m : cobegin P Q coend wobei P : l 0 : while True do Q: l : while True do p 0 : non-critical section; q 0 : non-critical section; p : wantp := T rue; q : wantq := T rue; p : last := ; q : last := ; p 3 : await wait(wantq = F alse q 3 : await(wantp = F alse last =); last = ); p 4 : critical section; q 4 : critical section; p 5 : wantp := F alse; q 5 : wantq := F alse; endwhile l0 endwhile l ok! Prüfen durch Model Checking Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 55

56 wantp = wantq = F alse : boolean, last = last = : integer, m : cobegin P Q coend wobei P : l 0 : while True do Q: l : while True do [ p 0 : non-critical section; ] [ q 0 : non-critical section; ] p : wantp := T rue; q : wantq := T rue; p : last := ; q : last := ; p 3 : await wait(wantq = F alse q 3 : await wait(wantp = F alse last = ); last = ); [ p 4 : critical section; ] [ q 4 : critical section; ] p 5 : wantp := F alse; q 5 : wantq := F alse; endwhile l0 endwhile l Im folgenden ist das (reduzierte) Programm in der zuvor eingführten Notation dargestellt. P C = {pc, pc 0, pc }, V = V 0 = V = {wantp, wantq, last} pc 0 nimmt die Werte { {p, p, p} 3, p 5 } an und pc die Werte { {q, q }, q 3, q 5 }. Der Der Anfangszustand ist: ist: S 0 (V, P C) pc = m pc 0 = pc = Die Transitionsrelation ist repräsentiert durch R(V, P C, V, P C ) als Disjunktion der folgenden Formeln: pc = m pc 0 = l 0 pc = l pc = pc 0 = l0 pc = l pc = m pc 0 = pc = C(l 0, P, l0) same(v \V 0 ) same(p C\{pc 0 }) also C(l 0, P, l0) same(pc, pc ) C(l, Q, l) same(v \V ) same(p C\{pc }) also C(l, Q, l) same(pc, pc 0 ) Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 56

57 wantp = wantq = F alse : boolean, last = last = : integer, m : cobegin P Q coend wobei P : l 0 : while True do Q: l : while True do [ p 0 : non-critical section; ] [ q 0 : non-critical section; ] p : wantp := T rue; q : wantq := T rue; p : last := ; q : last := ; p 3 : await wait(wantq = F alse q 3 : await wait(wantp = F alse last = ); last = ); [ p 4 : critical section; ] [ q 4 : critical section; ] p 5 : wantp := F alse; q 5 : wantq := F alse; endwhile l0 endwhile l Dabei ist C(l 0, P, l o) die Disjunktion von folgenden Formeln: pc 0 = l 0 pc 0 = p T rue same(v ) pc 0 = p pc 0 = p wantp = T rue same(v \{wantp }) pc 0 = p pc 0 = p 3 last = same(v \{last}) pc 0 = p 3 pc 0 = p 3 (wantq = F alse last = ) same(v ) pc 0 = p 3 pc 0 = p 5 (wantq = F alse last = ) same(v ) pc 0 = p 5 pc 0 = l 0 wantp = F alse same(v \{wantp }) (Schleifen-Anweisung) (Zuweisung) (Zuweisung) (wait-anweisung) (wait-anweisung) (Zuweisung) C(l, Q, l ) ist entsprechend definiert. Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 57

58 p 5 p s 0 FF p FF s s 3 s 4 s 5 TF TF FT FT p q p q q p q p s s 7 s 8 TF FT p 3 p p q q s 9 s TF s s FT q q 3 p p p 3 q p 5 5 q 5 33 s 5 s 6 33 p q s q 4 p q p 3 3 s 7 s 8 p s q q q q 3 q 5 P : wantp = wantq = F alse : boolean, last = last = : integer, m : cobegin P Q coend wobei l 0 : while True do [ p 0 : non-critical section; ] p : wantp := T rue; p : last := ; p 3 : await wait(wantq = F alse last = ); [ p 4 : critical section; ] p 5 : wantp := F alse; endwhile l0 s 9 q p 3 q s 3 (p i, q j nd die last wantp wantq ) laute q Formale Grundlagen der Informatik 5 II Kap p 5 : Transitionssysteme und Verifikation (Teil ) Seite 58

59 (p i, q j nd die last p 5 wantp wantq ) laute p s 0 FF p FF s s 3 s 4 s 5 TF TF FT FT p q p q q p q p s s 7 s 8 TF FT p 3 p q p s q q q wechselseitiger Ausschluss 4 s 9 q 3 q 5 P : (nach Dijkstra/Dekker/Peterson) wantp = wantq = F alse : boolean, last = last = : integer, m : cobegin P Q coend wobei l 0 : while True do [ p 0 : non-critical section; ] p : wantp := T rue; p : last := ; p 3 : wait(wantq = F alse last = ); [ p 4 : critical section; ] p 5 : wantp := F alse; endwhile l0 4 s TF s s FT q q 3 p 3 q p 5 q p 5 s p q 3 3 p 3 s 8 p s 6 s 9 q p 3 q q 3 Gilt A? Gilt B? verschleppungs*eie temporale Logik Schaltregel!! (finite delay property) Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 59 q 5 p q 5 p s 3 p 5 s (p 5 q 5 ) z (p p 5 ) x y später gilt p 5

60 Die Programme sollen dabei (für den Fall zweier Prozesse P und Q) folgende Eigenschaften erfüllen: A) Die Befehlszähler von P und Q sind nie gleichzeitig in ihren kritischen Abschnitten. B) Meldet der Prozess P oder Q den Wunsch zum Eintritt in den kritischen Abschnitt an (wantp = True oder wantq = True), so kann er nach einer gewissen endlichen Zeit tatsächlich in seinen kritischen Abschnitt eintreten. Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 60

61 4 (p i, q j nd die s 0 FF s s 3 s 4 s 5 TF TF FT FT p q p q q p q p s s 7 s 8 TF FT p 3 p q s TF s s FT q q 3 p 3 q p 5 last p 5 wantp wantq q p 5 p p s p q 3 3 p 3 s 8 p p FF s 6 q q s 9 q p 3 q q 3 s wechselseitiger Ausschluss 4 (nach Dijkstra/Dekker/Peterson) ) laute await q wantp = wantq = F alse : boolean, last = last = : integer, m : cobegin P Q coend wobei l 0 : while True do [ p 0 : non-critical section; ] p : wantp := T rue; p : last := ; p 3 : wait(wantq = F alse last = ); [ p 4 : critical section; ] p 5 : wantp := F alse; endwhile l0 Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 6 q 5 p s 9 q 3 q 5 q 5 p P : s 3 p 5 s 7 Gilt A? (p 5 q 5 ) Gilt B? nie 5 5 z x y

62 Die Programme sollen dabei (für den Fall zweier Prozesse P und Q) folgende Eigenschaften erfüllen: A) Die Befehlszähler von P und Q sind nie gleichzeitig in ihren kritischen Abschnitten. B) Meldet der Prozess P oder Q den Wunsch zum Eintritt in den kritischen Abschnitt an (wantp = True oder wantq = True), so kann er nach einer gewissen endlichen Zeit tatsächlich in seinen kritischen Abschnitt eintreten. Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 6

63 4 (p i, q j nd die s 0 FF s s 3 s 4 s 5 TF TF FT FT p q p q q p q p s s 7 s 8 TF FT p 3 p q s TF s s FT q q 3 p 3 q p 5 last p 5 wantp wantq q p 5 p p s p q 3 3 p 3 s 8 p p FF s 6 q q s 9 q p 3 q q 3 s wechselseitiger Ausschluss 4 (nach Dijkstra/Dekker/Peterson) ) laute await q wantp = wantq = F alse : boolean, last = last = : integer, m : cobegin P Q coend wobei l 0 : while True do [ p 0 : non-critical section; ] p : wantp := T rue; p : last := ; p 3 : wait(wantq = F alse last = ); [ p 4 : critical section; ] p 5 : wantp := F alse; endwhile l0 Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 63 q 5 p s 9 q 3 q 5 q 5 p P : s 3 p 5 s 7 Gilt A? Gilt B? (p p 5 ) nie 5 5 (p 5 q 5 ) z x y später gilt p 5

64 4 (p i, q j nd die s 0 FF s s 3 s 4 s 5 TF TF FT FT p q p q q p q p s s 7 s 8 TF FT p 3 p q s TF s s FT q q 3 p 3 q p 5 last p 5 wantp wantq q p 5 p p s p q 3 3 p 3 s 8 p p FF s 6 q q s 9 q p 3 q q 3 s q wechselseitiger Ausschluss 4 Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 64 q 5 p s 9 q 3 q 5 q 5 p P : s 3 p 5 s 7 (nach Dijkstra/Dekker/Peterson) ) laute await wantp = wantq = F alse : boolean, last = last = : integer, m : cobegin P Q coend wobei l 0 : while True do [ p 0 : non-critical section; ] p : wantp := T rue; p : last := ; p 3 : wait(wantq = F alse last = ); [ p 4 : critical section; ] p 5 : wantp := F alse; temporale endwhile l Logik 0 immer gilt Gilt A? (p 5 q 5 ) z Gilt B? verschleppungs*eie Schaltregel!! (finite delay property) 5 5 (p p 5 ) x y später gilt p 5

System: Hardware- und Software-Systeme

System: Hardware- und Software-Systeme System: Hardware- und Software-Systeme System-Validierung: - trad itio nel l: Tes ten und Sim ula tion am An fan g bei ein fac hen Feh lern seh r wir ksa m ---> abe r imm er we nig er effe ktiv, we nn

Mehr

Kapitel 2: Algorithmen für CTL und LTL

Kapitel 2: Algorithmen für CTL und LTL Kapitel 2: Algorithmen ür CTL und LTL Für eine gegebene Kripke-Struktur M = (S, R, L) und eine gegebene temporal-logische Formel ist zu berechnen: {s S M, s = } M ist hier als Graph explizit gegeben. Algorithmus

Mehr

Informatik I - Programmierung Globalübung Hoare-Kalkül. Thomas Weiler. Fachgruppe Informatik RWTH Aachen. T. Weiler, RWTH Aachen - 1 -

Informatik I - Programmierung Globalübung Hoare-Kalkül. Thomas Weiler. Fachgruppe Informatik RWTH Aachen. T. Weiler, RWTH Aachen - 1 - Informatik I - Programmierung Globalübung 11.11.2003 Hoare-Kalkül Thomas Weiler Fachgruppe Informatik RWTH Aachen T. Weiler, RWTH Aachen - 1 - Ariane 5 Die Ariane 5 ist das jüngste Modell der Trägerrakete

Mehr

1. Einführung in Temporallogik CTL

1. Einführung in Temporallogik CTL 1. Einführung in Temporallogik CTL Temporallogik dient dazu, Aussagen über Abläufe über die Zeit auszudrücken und zu beweisen. Zeit wird in den hier zunächst behandelten Logiken als diskret angenommen

Mehr

AT&T Ausfall des Telefonnetzes in den USA. von Jörg Sesterhenn

AT&T Ausfall des Telefonnetzes in den USA. von Jörg Sesterhenn AT&T Ausfall des Telefonnetzes in den USA von Jörg Sesterhenn Gliederung Was ist passiert? Was waren die Ursachen? Mit welchen Maßnahmen hätte der Fehler verhindert werden können? Was können wir daraus

Mehr

Berechenbarkeit und Komplexität Vorlesung 11

Berechenbarkeit und Komplexität Vorlesung 11 Berechenbarkeit und Komplexität Vorlesung 11 Prof. Dr. Wolfgang Thomas Lehrstuhl Informatik 7 RWTH Aachen 7. Dezember 2014 Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 7.

Mehr

Model Checking I. Lehrstuhl für Software Engineering Friedrich-Alexander-Universität Erlangen-Nürnberg

Model Checking I. Lehrstuhl für Software Engineering Friedrich-Alexander-Universität Erlangen-Nürnberg Model Checking I Yi Zhao Marc Spisländer Lehrstuhl für Software Engineering Friedrich-Alexander-Universität Erlangen-Nürnberg Zhao, Spisländer FAU Erlangen-Nürnberg Model Checking I 1 / 22 1 Inhalt 2 Model

Mehr

{P} S {Q} {P} S {Q} {P} S {Q} Inhalt. Hoare-Kalkül. Hoare-Kalkül. Hoare-Tripel. Hoare-Tripel. Hoare-Tripel

{P} S {Q} {P} S {Q} {P} S {Q} Inhalt. Hoare-Kalkül. Hoare-Kalkül. Hoare-Tripel. Hoare-Tripel. Hoare-Tripel Inhalt Hoare-Kalkül Formale Verifizierung Hoare-Kalkül while-sprache Terminierung Partielle / totale Korrektheit 4.0 Hoare-Kalkül entwickelt von C.A.R. (Tony) Hoare (britischer Informatiker), 1969 formales

Mehr

Software Engineering in der Praxis

Software Engineering in der Praxis Software Engineering in der Praxis Praktische Übungen Marc Spisländer Josef Adersberger Lehrstuhl für Software Engineering Friedrich-Alexander-Universität Erlangen-Nürnberg 10. November 2008 Inhalt Nachlese

Mehr

Entscheidungsverfahren mit Anwendungen in der Softwareverifikation

Entscheidungsverfahren mit Anwendungen in der Softwareverifikation Entscheidungsverfahren mit Anwendungen in der Softwareverifikation SATABS: Predicate Abstraction Dr. Stephan Falke Institut für Theoretische Informatik Dr. Carsten Sinz 01.07.2013 Prädikatabstraktion (Predicate

Mehr

Semantik von Programmiersprachen SS 2017

Semantik von Programmiersprachen SS 2017 Lehrstuhl für Programmierparadigmen Denis Lohner Sebastian Ullrich denis.lohner@kit.edu sebastian.ullrich@kit.edu Semantik von Programmiersprachen SS 2017 http://pp.ipd.kit.edu/lehre/ss2017/semantik Lösungen

Mehr

Computergestützte Modellierung und Verifikation

Computergestützte Modellierung und Verifikation Computergestützte Modellierung und Verifikation Vorlesung mit Übungen SS 2007 Prof. F. von Henke mit Dr. H. Pfeifer Inst. für Künstliche Intelligenz Organisatorisches Vorlesung: Mi 14 16 Raum 3211 Do 14

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 47 Einstieg in die Informatik mit Java Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 47 1 Ausdrucksanweisung 2 Einfache Ausgabeanweisung 3 Einfache Eingabeanweisung,

Mehr

CTL Model Checking SE Systementwurf CTL Model Checking Alexander Grafe 1

CTL Model Checking SE Systementwurf CTL Model Checking Alexander Grafe 1 CTL Model Checking SE Systementwurf CTL Model Checking Alexander Grafe 1 Einführung/Historie Model Checking ist... nur reaktive Systeme werden betrachtet vor CTL Model Checking gab es... Queille, Sifakis,

Mehr

Schleifen in C/C++/Java

Schleifen in C/C++/Java Schleifen in C/C++/Java Alle 3 Sprachen stellen mindestens die folgenden 3 Schleifenkonstruktionen zur Verfügung. In C gibt es auch keine weiteren, C++, Java und C# haben noch weitere nützliche Varianten.

Mehr

Logic in a Nutshell. Christian Liguda

Logic in a Nutshell. Christian Liguda Logic in a Nutshell Christian Liguda Quelle: Kastens, Uwe und Büning, Hans K., Modellierung: Grundlagen und formale Methoden, 2009, Carl Hanser Verlag Übersicht Logik - Allgemein Aussagenlogik Modellierung

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 6.11.07, Weitere Anweisungen Übersicht 1 Verbundanweisung 2 Bedingte Anweisung 3 Auswahlanweisung 4 for Schleife 5 while Schleife 6 do Schleife 7 break Anweisung 8 continue Anweisung 9 Leere

Mehr

Research Collection. Bounded Model Checking was kommt danach? Other Conference Item. ETH Library. Author(s): Biere, Armin. Publication Date: 2000

Research Collection. Bounded Model Checking was kommt danach? Other Conference Item. ETH Library. Author(s): Biere, Armin. Publication Date: 2000 Research Collection Other Conference Item Bounded Model Checking was kommt danach? Author(s): Biere, Armin Publication Date: 2000 Permanent Link: https://doi.org/10.3929/ethz-a-004242422 Rights / License:

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung C Sprachelemente für Übung 2 Typumwandlungen (type casts) Bei Ausdrücken, in denen Operanden mit unterschiedlichem Typ vorkommen, werden diese vom Compiler vor der Ausführung automatisch in einen gemeinsamen

Mehr

1. Motivation. Modelchecking. NuSMV. NuSMV und SMV. 2. Modellierung. Erinnerung (Kapitel II)

1. Motivation. Modelchecking. NuSMV. NuSMV und SMV. 2. Modellierung. Erinnerung (Kapitel II) 1. Motivation Modelchecking V. Ein Modelchecker: NuSMV Motivation und Hintergrund Modellierung Eigenschaften Anwendung Wir kennen jetzt die Grundlagen des Modelcheckings, auch wenn uns noch ganz wesentliche

Mehr

Vorsemesterkurs Informatik

Vorsemesterkurs Informatik Vorsemesterkurs Informatik Vorsemesterkurs Informatik Mario Holldack WS2015/16 30. September 2015 Vorsemesterkurs Informatik 1 Einleitung 2 Aussagenlogik 3 Mengen Vorsemesterkurs Informatik > Einleitung

Mehr

Aussagenlogik. Spezifikation und Verifikation Kapitel 1. LTL und CTL Syntax & Semantik. Aussagenlogik: Syntax. Aussagenlogik: Syntax (Alternative)

Aussagenlogik. Spezifikation und Verifikation Kapitel 1. LTL und CTL Syntax & Semantik. Aussagenlogik: Syntax. Aussagenlogik: Syntax (Alternative) Spezifikation und Verifikation Kapitel 1 Aussagenlogik LTL und CTL & Frank Heitmann heitmann@informatik.uni-hamburg.de Wir haben Eine abzählbare Menge V = {x 1, x 2,...} von aussagenlogischen Variablen

Mehr

Logik. Logik. Vorkurs Informatik Theoretischer Teil WS 2013/ September Vorkurs Informatik - Theorie - WS2013/14

Logik. Logik. Vorkurs Informatik Theoretischer Teil WS 2013/ September Vorkurs Informatik - Theorie - WS2013/14 Logik Logik Vorkurs Informatik Theoretischer Teil WS 2013/14 30. September 2013 Logik > Logik > logische Aussagen Logik Logik > Logik > logische Aussagen Motivation Logik spielt in der Informatik eine

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 25.4.07, Anweisungen Übersicht 1 Ausdrucksanweisung 2 Einfache Ausgabeanweisung 3 Einfache Eingabeanweisung, Vorbereitungen 4 Verbundanweisung 5 Bedingte Anweisung 6 Auswahlanweisung 7 for

Mehr

Abschlusseigenschaften. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Abschlusseigenschaften

Abschlusseigenschaften. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Abschlusseigenschaften Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2012 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Abgeschlossenheit (Definition) Gegeben sei eine Menge M und ein n-ärer

Mehr

Thomas Schirrmann Nebenläufigkeit. Nebenläufigkeit. Vortrag Thomas Schirrmann. Seminar Systementwurf Dozentin Daniela Weinberg

Thomas Schirrmann Nebenläufigkeit. Nebenläufigkeit. Vortrag Thomas Schirrmann. Seminar Systementwurf Dozentin Daniela Weinberg Nebenläufigkeit Vortrag Seminar Systementwurf Dozentin Daniela Weinberg 1 Gliederung 1. Einführung 2. Modellierung 2.1. POMSET 2.2. Transitionssystem 2.3. Petrinetz 2.4. abstraktes nebenläufiges Programm

Mehr

Programmiertechnik Kontrollstrukturen

Programmiertechnik Kontrollstrukturen Programmiertechnik Kontrollstrukturen Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Was sind Kontrollstrukturen? Kontrollstrukturen erlauben es, ein Programm nicht nur Zeile für Zeile auszuführen,

Mehr

Nichtklassische Logiken

Nichtklassische Logiken Nichtklassische Logiken Peter H. Schmitt pschmitt@ira.uka.de UNIVERSITÄT KARLSRUHE Sommersemester 2004 P. H. Schmitt: Nichtklassische Logiken p.1 Inhalt Wiederholung P. H. Schmitt: Nichtklassische Logiken

Mehr

4.1 Motivation. Theorie der Informatik. Theorie der Informatik. 4.1 Motivation. 4.2 Syntax der Prädikatenlogik. 4.3 Semantik der Prädikatenlogik

4.1 Motivation. Theorie der Informatik. Theorie der Informatik. 4.1 Motivation. 4.2 Syntax der Prädikatenlogik. 4.3 Semantik der Prädikatenlogik Theorie der Informatik 3. März 2014 4. Prädikatenlogik I Theorie der Informatik 4. Prädikatenlogik I 4.1 Motivation Malte Helmert Gabriele Röger 4.2 Syntax der Prädikatenlogik Universität Basel 3. März

Mehr

Warum ist Ariane 5 beim Erstflug explodiert?

Warum ist Ariane 5 beim Erstflug explodiert? Warum ist Ariane 5 beim Erstflug explodiert? Was geschah mit Flug 501? Software Engineering I Fallstudie Ariane Flug 501 1998 by Martin Glinz 1 Chronik der Ereignisse Die Software für das Trägheitsnavigationssystem

Mehr

Abstract State Machines

Abstract State Machines Abstract State Machines Patrick Köhnen Seminar Systementwurf Übersicht 1. Historie und Praxis 1.1 Yuri Gurevic 1.2 ASMs in der Praxis 2. Was sind ASMs 2.1 Transitionssystem 2.2 Signatur 2.3 -Algebra 2.4

Mehr

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 4. November 2015 Administratives Zur Abgabe von Übungsaufgaben Nein, wir

Mehr

3.0 VU Formale Modellierung

3.0 VU Formale Modellierung 3.0 VU Formale Modellierung Gernot Salzer Arbeitsbereich Theoretische Informatik und Logik Institut für Computersprachen SS 2016 1 Inhalt 0. Überblick 1. Organisation 2. Was bedeutet Modellierung? 3. Aussagenlogik

Mehr

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Kontrollstrukturen

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Kontrollstrukturen Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Kontrollstrukturen Was sind Kontrollstrukturen Kontrollstrukturen erlauben es, ein Programm nicht nur Zeile für Zeile auszuführen,

Mehr

Betriebssysteme. Vorlesung im Herbstsemester 2010 Universität Mannheim. Kapitel 6: Speicherbasierte Prozessinteraktion

Betriebssysteme. Vorlesung im Herbstsemester 2010 Universität Mannheim. Kapitel 6: Speicherbasierte Prozessinteraktion Betriebssysteme Vorlesung im Herbstsemester 2010 Universität Mannheim Kapitel 6: Speicherbasierte Prozessinteraktion Felix C. Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung

Mehr

Einführung in die Programmierung Wintersemester 2011/12

Einführung in die Programmierung Wintersemester 2011/12 Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Kontrollstrukturen Inhalt Wiederholungen - while

Mehr

Theoretische Informatik SS 03 Übung 5

Theoretische Informatik SS 03 Übung 5 Theoretische Informatik SS 03 Übung 5 Aufgabe 1 Im Buch von Schöning ist auf S. 106-108 beschrieben, wie eine Turing-Maschine durch ein GOTO-Programm simuliert werden kann. Zeigen Sie, wie dabei die Anweisungen

Mehr

Prädikatenlogik - Micromodels of Software

Prädikatenlogik - Micromodels of Software Prädikatenlogik - Micromodels of Software Philipp Koch Seminar Logik für Informatiker Universität Paderborn Revision: 30. Mai 2005 1 Inhaltsverzeichnis 1 Motivation 3 2 Modelle 3 2.1 Definition eines Modells.......................

Mehr

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2011/2012 1 / 25 Operatoren für elementare Datentypen Bedingte Schleifen 2 / 25 Zuweisungsoperator Die Zuweisung von Werten an Variablen

Mehr

Software Engineering. Ariane Flug 501! Fallstudie

Software Engineering. Ariane Flug 501! Fallstudie Martin Glinz Thomas Fritz Software Engineering Fallstudie Ariane Flug 501! 2005-2013 Martin Glinz. Alle Rechte vorbehalten. Speicherung und Wiedergabe für den persönlichen, nicht kommerziellen Gebrauch

Mehr

C++ Teil Schleifen. Man kann bestimme Anweisungen in einem Programm mehrfach ausführen lassen. Dazu gibt es in C++ verschiedene Schleifen.

C++ Teil Schleifen. Man kann bestimme Anweisungen in einem Programm mehrfach ausführen lassen. Dazu gibt es in C++ verschiedene Schleifen. C++ Teil 3 3.3 Schleifen Man kann bestimme en in einem Programm mehrfach ausführen lassen. Dazu gibt es in C++ verschiedene Schleifen. for-schleife for-schleife while-schleife do-while-schleife for ( Ausdruck1;

Mehr

Einführung in die Programmierung mit VBA

Einführung in die Programmierung mit VBA Einführung in die Programmierung mit VBA Vorlesung vom 07. November 2016 Birger Krägelin Inhalt Vom Algorithmus zum Programm Programmiersprachen Programmieren mit VBA in Excel Datentypen und Variablen

Mehr

Optimierungen in einer formalen Semantik Konstantenfaltung und Konstantenpropagation

Optimierungen in einer formalen Semantik Konstantenfaltung und Konstantenpropagation Optimierungen in einer formalen Semantik Konstantenfaltung und Konstantenpropagation http://pp.info.uni-karlsruhe.de/lehre/ss2011/tba/ LEHRSTUHL PROGRAMMIERPARADIGMEN 0 KIT SS Universität 2011 desdenis

Mehr

Schleifen in C/C++/Java

Schleifen in C/C++/Java Schleifen in C/C++/Java Alle 3 Sprachen stellen mindestens die folgenden 3 Schleifenkonstruktionen zur Verfügung. In C gibt es auch keine weiteren, C++, Java und C# haben noch weitere nützliche Varianten.

Mehr

Modellierung & Analyse

Modellierung & Analyse Formale Grundlagen der Informatik II Modellierung & Analyse von Informatiksystemen Rüdiger Valk Arbeitsbereich Theoretische Grundlagen der Informatik (TGI) LV 64-060 Modul IP9 Semester WiSe 2010 Vortragende

Mehr

Einführung in LTL unter MAUDE. Maschine!es Beweisen Einführung in LTL Seit# 1

Einführung in LTL unter MAUDE. Maschine!es Beweisen Einführung in LTL Seit# 1 Einführung in LTL unter MAUDE Mashine!es Beweisen Einführung in LTL Seit# 1 Verifikation eines Systems System- Verhalte% System- Spezifikatio% Mashine!es Beweisen Einführung in LTL Seit# 2 Verifikation

Mehr

Mathematik für Informatiker I

Mathematik für Informatiker I Mathematik für Informatiker I Mitschrift zur Vorlesung vom 19.10.2004 In diesem Kurs geht es um Mathematik und um Informatik. Es gibt sehr verschiedene Definitionen, aber für mich ist Mathematik die Wissenschaft

Mehr

Dank. Theoretische Informatik II. Teil II. Registermaschinen. Vorlesung

Dank. Theoretische Informatik II. Teil II. Registermaschinen. Vorlesung Dank Vorlesung Theoretische Informatik II Bernhard Beckert Institut für Informatik Diese Vorlesungsmaterialien basieren zum Teil auf den Folien zu den Vorlesungen von Katrin Erk (gehalten an der Universität

Mehr

De Morgan sche Regeln

De Morgan sche Regeln De Morgan sche Regeln Durch Auswerten der Wahrheitswertetabelle stellen wir fest, dass allgemeingültig ist; ebenso (p q) p q (p q) p q. Diese beiden Tautologien werden als die De Morgan schen Regeln bezeichnet,

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr

(Aufgaben zu Wertzuweisungen siehe Vorlesungsbeilage S. 49)

(Aufgaben zu Wertzuweisungen siehe Vorlesungsbeilage S. 49) Anweisungen Eine Anweisung ist eine in einer beliebigen Programmiersprache abgefaßte Arbeitsvorschrift für einen Computer. Jedes Programm besteht aus einer bestimmten Anzahl von Anweisungen. Wir unterscheiden

Mehr

Informatik I Übung, Woche 41

Informatik I Übung, Woche 41 Giuseppe Accaputo 8. Oktober, 2015 Plan für heute 1. Fragen & Nachbesprechung Übung 3 2. Zusammenfassung der bisherigen Vorlesungsslides 3. Tipps zur Übung 4 Informatik 1 (D-BAUG) Giuseppe Accaputo 2 Nachbesprechung

Mehr

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn Ideen und Konzepte der Informatik Programme und Algorithmen Kurt Mehlhorn November 2016 Algorithmen und Programme Algorithmus = Schritt-für-Schritt Vorschrift zur Lösung eines Problems. Formuliert man

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Kontrollstrukturen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Kontrollstrukturen Wichtig: bedingte Ausführung

Mehr

Arithmetik in der tcsh

Arithmetik in der tcsh Arithmetik in der tcsh Variablen speichern Zeichenketten (also Strings/Wörter) @ statt set Interpretation als arithmetische Ausdrücke (aus Ziffern, (, ), +, -, *, /, % bestehend) Beispiele: @ var = (3

Mehr

Informatik I Übung, Woche 41

Informatik I Übung, Woche 41 Giuseppe Accaputo 9. Oktober, 2014 Plan für heute 1. Fragen & Nachbesprechung Übung 3 2. Zusammenfassung der bisherigen Vorlesungsslides 3. Tipps zur Übung 4 Informatik 1 (D-BAUG) Giuseppe Accaputo 2 Nachbesprechung

Mehr

Klausur zur Vorlesung Grundlagen der Betriebssysteme

Klausur zur Vorlesung Grundlagen der Betriebssysteme Prof. Dr. L. Wegner Dipl.-Math. K. Schweinsberg Klausur zur Vorlesung Grundlagen der Betriebssysteme 19.2.2004 Name:... Vorname:... Matrikelnr.:... Studiengang:... Hinweise: Bearbeitungszeit 2 Stunden.

Mehr

4. Alternative Temporallogiken

4. Alternative Temporallogiken 4. Alternative Temporallogiken Benutzung unterschiedlicher Temporallogiken entsprechend den verschiedenen Zeitbegriffen LTL: Linear Time Logic Ähnlich der CTL, aber jetzt einem linearen Zeitbegriff entspechend

Mehr

Java: Eine kurze Einführung an Beispielen

Java: Eine kurze Einführung an Beispielen Java: Eine kurze Einführung an Beispielen Quellcode, javac und die JVM Der Quellcode eines einfachen Java-Programms besteht aus einer Datei mit dem Suffix.java. In einer solchen Datei wird eine Klasse

Mehr

Software Engineering I Prof. Dr. Martin Glinz. Fallstudie: Ariane Flug 501. Universität Zürich Institut für Informatik

Software Engineering I Prof. Dr. Martin Glinz. Fallstudie: Ariane Flug 501. Universität Zürich Institut für Informatik Software Engineering I Prof. Dr. Martin Glinz Fallstudie: Ariane Flug 501 Universität Zürich Institut für Informatik Was geschah mit Flug 501? So hätte es aussehen sollen......und so sah es tatsächlich

Mehr

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8 Java 8 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Oktober 2014 JAV8 5 Java 8 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

Grundbegriffe aus Logik und Mengenlehre. Prädikatenlogik

Grundbegriffe aus Logik und Mengenlehre. Prädikatenlogik Grundbegriffe aus Logik und Mengenlehre Prädikatenlogik wohlverstandene Grundlagen, eine formale Sprache zur Beschreibung statischer und dynamischer Gesichtspunkte eines Unternehmens syntaktisch und semantisch

Mehr

Theorie der Informatik. Theorie der Informatik. 6.1 Einführung. 6.2 Alphabete und formale Sprachen. 6.3 Grammatiken. 6.4 Chomsky-Hierarchie

Theorie der Informatik. Theorie der Informatik. 6.1 Einführung. 6.2 Alphabete und formale Sprachen. 6.3 Grammatiken. 6.4 Chomsky-Hierarchie Theorie der Informatik 17. März 2014 6. Formale Sprachen und Grammatiken Theorie der Informatik 6. Formale Sprachen und Grammatiken Malte Helmert Gabriele Röger Universität Basel 17. März 2014 6.1 Einführung

Mehr

Cognitive Interaction Technology Center of Excellence

Cognitive Interaction Technology Center of Excellence Kanonische Abdeckung Motivation: eine Instanz einer Datenbank muss nun alle funktionalen Abhängigkeiten in F + erfüllen. Das muss natürlich immer überprüft werden (z.b. bei jedem update). Es reicht natürlich

Mehr

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl Übung zur Vorlesung Grundlagen Betriebssysteme und Systemsoftware (Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl (gbs-ws11@mailschlichter.informatik.tu-muenchen.de) http://www11.in.tum.de/veranstaltungen/grundlagenbetriebssystemeundsystemsoftwarews1112

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

Allgemeingültige Aussagen

Allgemeingültige Aussagen Allgemeingültige Aussagen Definition 19 Eine (aussagenlogische) Formel p heißt allgemeingültig (oder auch eine Tautologie), falls p unter jeder Belegung wahr ist. Eine (aussagenlogische) Formel p heißt

Mehr

Zusammenfassung. Definition. 1 (x i ) 1 i n Sequenz von Registern x i, die natürliche Zahlen beinhalten. 2 P ein Programm. Befehle: 1 x i := x i + 1

Zusammenfassung. Definition. 1 (x i ) 1 i n Sequenz von Registern x i, die natürliche Zahlen beinhalten. 2 P ein Programm. Befehle: 1 x i := x i + 1 Zusammenfassung Zusammenfassung der letzten LVA Einführung in die Theoretische Informatik Christina Kohl Alexander Maringele Georg Moser Michael Schaper Manuel Schneckenreither Eine Registermaschine (RM)

Mehr

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird. Thomas Studer Relationale Datenbanken: Von den theoretischen Grundlagen zu Anwendungen mit PostgreSQL Springer, 2016 ISBN 978-3-662-46570-7 Dieser Foliensatz darf frei verwendet werden unter der Bedingung,

Mehr

3. Anweisungen und Kontrollstrukturen

3. Anweisungen und Kontrollstrukturen 3. Kontrollstrukturen Anweisungen und Blöcke 3. Anweisungen und Kontrollstrukturen Mit Kontrollstrukturen können wir den Ablauf eines Programmes beeinflussen, z.b. ob oder in welcher Reihenfolge Anweisungen

Mehr

Theorem Proving. Software Engineering in der Praxis. Prädikatenlogik. Software Engineering in der Praxis Wintersemester 2006/2007

Theorem Proving. Software Engineering in der Praxis. Prädikatenlogik. Software Engineering in der Praxis Wintersemester 2006/2007 Seite 1 Theorem Proving Prädikatenlogik Seite 2 Gliederung Warum Theorembeweisen? Wie funktioniert Theorembeweisen? Wie kann mir das Werkzeug KIV dabei helfen? Seite 3 Warum Theorembeweisen? Wie kann man

Mehr

Softwarelösungen: Versuch 4

Softwarelösungen: Versuch 4 Softwarelösungen: Versuch 4 Nichtstun in Schleife wird ersetzt durch zeitweilige Zurücknahme der Anforderung, um es anderen Prozessen zu erlauben, die Ressource zu belegen: /* Prozess 0 */ wiederhole flag[0]

Mehr

Verifizierende Testverfahren

Verifizierende Testverfahren Spezifikation Um einen Algorithmus zu schreiben, muss das zu lösende Problem genau beschrieben sein. Eine Spezifikation ist Verifizierende Testverfahren vollständig, wenn alle Anforderungen/alle relevanten

Mehr

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1 Fachhochschule Stralsund Fachbereich Maschinenbau Lehrgebiet Informatik Prof. Dr.-Ing. Ch.Wahmkow Arbeitsblätter für die Lehrveranstaltung OOP I. Aufbau eines Java-Programmes JAVA 1 Escape-Sequenzen zur

Mehr

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22 C++ Teil 2 Sven Groß IGPM, RWTH Aachen 16. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 2 16. Apr 2015 1 / 22 Themen der letzten Vorlesung Hallo Welt Elementare Datentypen Ein-/Ausgabe Operatoren Sven

Mehr

Unvollständigkeit der Arithmetik

Unvollständigkeit der Arithmetik Unvollständigkeit der Arithmetik Slide 1 Unvollständigkeit der Arithmetik Hans U. Simon (RUB) Email: simon@lmi.rub.de Homepage: http://www.ruhr-uni-bochum.de/lmi Unvollständigkeit der Arithmetik Slide

Mehr

Formale Verifikation von Software. 10. Juli 2013

Formale Verifikation von Software. 10. Juli 2013 Formale Verifikation von Software 10. Juli 2013 Überblick Wann ist formale Softwareverifikation sinnvoll? Welche Techniken gibt es? Was ist Model Checking und wie kann man es zur Verifikation einsetzen?

Mehr

Formale Systeme. Prof. P.H. Schmitt. Winter 2007/2008. Fakultät für Informatik Universität Karlsruhe (TH) Voraussetzungen

Formale Systeme. Prof. P.H. Schmitt. Winter 2007/2008. Fakultät für Informatik Universität Karlsruhe (TH) Voraussetzungen Formale Systeme Prof. P.H. Schmitt Fakultät für Informatik Universität Karlsruhe (TH) Winter 2007/2008 Prof. P.H. Schmitt Formale Systeme Winter 2007/2008 1 / 12 Übungen und Tutorien Es gibt wöchentliche

Mehr

Vorlesung Methoden des Software Engineering. Martin Wirsing. Einheit C.3, 9.12.2004

Vorlesung Methoden des Software Engineering. Martin Wirsing. Einheit C.3, 9.12.2004 Block C (Formale Methoden): Petrinetze 9.12.04 1 Vorlesung Methoden des Software Engineering Block C Formale Methoden Petrinetze Martin Wirsing Einheit C.3, 9.12.2004 Block C (Formale Methoden): Petrinetze

Mehr

Formale Systeme. Modallogik. Prof. Dr. Bernhard Beckert, WS 2016/ KIT Die Forschungsuniversita t in der Helmholtz-Gemeinschaft

Formale Systeme. Modallogik. Prof. Dr. Bernhard Beckert, WS 2016/ KIT Die Forschungsuniversita t in der Helmholtz-Gemeinschaft Formale Systeme Prof. Dr. Bernhard Beckert, WS 2016/2017 Modallogik KIT I NSTITUT F U R T HEORETISCHE I NFORMATIK.kit.edu KIT Die Forschungsuniversita t in der Helmholtz-Gemeinschaft Modale Logik Im Unterschied

Mehr

Logik für Informatiker Logic for computer scientists

Logik für Informatiker Logic for computer scientists Logik für Informatiker Logic for computer scientists Till Mossakowski Wintersemester 2014/15 Till Mossakowski Logik 1/ 24 Die Booleschen Junktoren Till Mossakowski Logik 2/ 24 Die Negation Wahrheitstafel

Mehr

Die Syntax von Java. Ursprünge. Konsequenzen. Das Wichtigste in Kürze. Weiteres Vorgehen. Rund um Java. Sun Microsystems. Borland Software Corp

Die Syntax von Java. Ursprünge. Konsequenzen. Das Wichtigste in Kürze. Weiteres Vorgehen. Rund um Java. Sun Microsystems. Borland Software Corp Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert

Mehr

Logik für Informatiker

Logik für Informatiker Vorlesung Logik für Informatiker 3. Aussagenlogik Syntax und Semantik der Aussagenlogik Bernhard Beckert Universität Koblenz-Landau Sommersemester 2006 Logik für Informatiker, SS 06 p.16 Syntax der Aussagenlogik:

Mehr

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 5. Kontrollstrukturen Allgemein Kontrollstrukturen dienen zur Steuerung des Programmablaufs. (Bemerkung: C und C++ besitzen die selben Kontrollstrukturen.)

Mehr

LOOP-Programme: Syntaktische Komponenten

LOOP-Programme: Syntaktische Komponenten LOOP-Programme: Syntaktische Komponenten LOOP-Programme bestehen aus folgenden Zeichen (syntaktischen Komponenten): Variablen: x 0 x 1 x 2... Konstanten: 0 1 2... Operationssymbole: + Trennsymbole: ; :=

Mehr

Binary Decision Diagrams

Binary Decision Diagrams Hauptseminar Model Checking Binary Decision Diagrams Kristofer Treutwein 23.4.22 Grundlagen Normalformen Als kanonische Darstellungsform für boolesche Terme gibt es verschiedene Normalformen, u.a. die

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Einführung in die Theoretische Informatik Woche 4 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 Zusammenfassung Zusammenfassung der letzten LV Modus Ponens A B B A MP Axiome für

Mehr

Formale Systeme. Modallogik. Prof. Dr. Bernhard Beckert WS 2009/2010 KIT INSTITUT FÜR THEORETISCHE INFORMATIK

Formale Systeme. Modallogik. Prof. Dr. Bernhard Beckert WS 2009/2010 KIT INSTITUT FÜR THEORETISCHE INFORMATIK Formale Systeme Prof. Dr. Bernhard Beckert WS 2009/2010 KIT INSTITUT FÜR THEORETISCHE INFORMATIK KIT University of the State of Baden-Württemerg and National Large-scale Research Center of the Helmholtz

Mehr

Programmieren lernen mit Visual Basic

Programmieren lernen mit Visual Basic Programmieren lernen mit Visual Basic Teil 5: Fallunterscheidungen (Teil 1) Ein paar Operatoren fehlen noch. Zum einen logische Operatoren, die mit Wahrheitswerden arbeiten. Die folgenden drei verwenden

Mehr

3. Klausur Einführung in die Theoretische Informatik Seite 1 von Welches der folgenden klassischen Probleme der Informatik ist entscheidbar?

3. Klausur Einführung in die Theoretische Informatik Seite 1 von Welches der folgenden klassischen Probleme der Informatik ist entscheidbar? 3. Klausur Einführung in die Theoretische Informatik Seite 1 von 14 1. Welches der folgenden klassischen Probleme der Informatik ist entscheidbar? A. Gegeben eine kontextfreie Grammatik G. Gibt es ein

Mehr

Syntax der Prädikatenlogik: Komplexe Formeln

Syntax der Prädikatenlogik: Komplexe Formeln Syntax der Prädikatenlogik: Komplexe Formeln Σ = P, F eine prädikatenlogische Signatur Var eine Menge von Variablen Definition: Menge For Σ der Formeln über Σ Logik für Informatiker, SS 06 p.10 Syntax

Mehr

5. Übung - Kanalkodierung/Programmierung

5. Übung - Kanalkodierung/Programmierung 5. Übung - Kanalkodierung/Programmierung Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen 1. Aufgabe: Kanalkodierung a Folgende Kodes stehen Ihnen zur Verfügung: Kode 1: 0000000 Kode

Mehr

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 16OH21005 gefördert. Die Verantwortung für den Inhalt dieser

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr

Die for -Schleife HEUTE. Schleifen. Arrays. Schleifen in JAVA. while, do reichen aus, um alle iterativen Algorithmen zu beschreiben

Die for -Schleife HEUTE. Schleifen. Arrays. Schleifen in JAVA. while, do reichen aus, um alle iterativen Algorithmen zu beschreiben 18.11.5 1 HEUTE 18.11.5 3 Schleifen Arrays while, do reichen aus, um alle iterativen Algorithmen zu beschreiben Nachteil: Steuermechanismus ist verteilt Übersicht nicht immer leicht dazu gibt es for (

Mehr

Arrays. Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss

Arrays. Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss Arrays FTI 41 2005-09-09 Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss z.b. Dim Werte(x) As Single. Wobei

Mehr

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH 1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH Die Umgebungsvariable CLASSPATH kann im Hamster-Simulator sowohl für Compiler als auch für die Ausführung des Hamster-Programms gesetzt werden: Hierdurch

Mehr