184.747 Software Model Checking
Diese Lehrveranstaltung ist in allen zugeordneten Curricula Teil der STEOP.
Diese Lehrveranstaltung ist in mindestens einem zugeordneten Curriculum Teil der STEOP.

2017W, VU, 4.0h, 6.0EC, wird geblockt abgehalten
TUWEL

Merkmale

  • Semesterwochenstunden: 4.0
  • ECTS: 6.0
  • Typ: VU Vorlesung mit Übung

Ziele der Lehrveranstaltung

Im Rahmen der Vorlesung werden die Studenten den praktischen Umgang mit existierenden Verifikationstools (so wie CBMC) erlernen und einen eigenen Model Checker entwickeln (Programmiererfahrung in C oder C-aehnlichen Sprachen notwendig!).

Inhalt der Lehrveranstaltung

Die Vorlesung beschäftigt sich mit der automatischen Verifizierung von Programmen. Der Fokus liegt hierbei auf den algorithmischen Aspekten der Verifikation. Die Vorlesung setzt sich aus zwei Teilen zusammen:

Im ersten Teil behandeln wir die Verifikation von Modellen mit einem endlichen Zustandsraum (z.B. manuell erstellte Abstraktionen, Zustandsdiagramme, Kontrollsoftware in eingebetteten Systemen).

Im zweiten Teil der Vorlesung erweitern wir diese Ansätze, um die Verifikation von parallelen Programmen und Programmen, deren Zustandsraum nicht a priori beschränkt ist, zu ermöglichen.

Weitere Informationen

Die Vorlesung beginnt am 10. Oktober. Wir empfehlen interessierten Studenten, die Keynote Vorträge der FMCAD Konferenz zu besuchen (am 3. und 4. Oktober jeweils um 9 Uhr im Kuppelsaal der TU Wien). Die Vorträge behandeln Anwendungen von Formaler Verifikation in der Industrie (Amazon und TTTech).

ECTS Breakdown: ECTS 6.0 = 150 Std.

Vorlesungseinheiten: 24 Std.

Vor- / Nachbereitung: 24 Std.

Implementierung der Übungsbeispiele: 3 x 33 Std.

Abgabegespräche: 3 Std.

Die Einfuehrungsvorlesung findet am 10. Oktober statt.

Inhalt der Vorlesungseinheiten:


The Basics

The first part of the course covers semantics and the encodig of transition functions.

- Introduction and motivation: Outline of the course, the necessity for automated verification (software desasters), success stories, and potention future applications

- One small step for a man: Small step semantics: Hoare logic and Dijkstra's predicate transformers, Kripke structures, encoding transition functions.

 

Part I

From single step transitions to bounded model checking, specifying reachability and temporal logic properties, and the computation of fixed points.

- Bounded Model Checking: Specifying and checking reachability/safety properties, unwinding transition functions, completeness conditions (reachability/recurrence diameter). Shows how BMC can be applied to check safety properties for software ("local" rather than "monolitic" transition functions). Discusses application for automated test-case generation.

- Decision Procedures: How do we decide the instances of formulas generated by BMC? Satisfiability (SAT) checking, Satisfiability-Modulo-Theory (SMT) solvers, Binary Decision Diagrams (BDDs)

- Approximating Fixed Points (Craig Interpolation): Approximating Fixed Points with Craig Interpolation

- Partial Order Reduction (optional): Reducing the size of the state-space for concurrent models by means of partial order reduction (POR)

 

Part II: To infinity and beyond

Shows how the ideas presented in part I can be applied to infinite state systems (and actual software programs rather than models) by means of abstraction. Introduces static analysis using abstract interpretation, predicate abstraction, and interpolation-based software model checking. The course may cover advanced concepts such as rely/guarantee reasoning for parallel programs (Owicki-Gries) and temination proving, if time permits.

- the Concept of Abstraction (Abstract Interpretation): Static analysis of programs using abstraction and abstract domains. Disjunctive domains and loss of precision.

- Predicate Abstraction and Automated Refinement: Tracking facts about program states using first-order logic predicates.Automatically refining abstractions using Counterexample-Guided Abstraction-Refinement (CEGAR)

- Lazy Abstraction, Interpolation-based Software Model Checking: Contemporary techniques for predicate abstraction and automated refinement

- Concurrent Software Hoare logic for parallel programs with shared memory. Owicki-Gries, Cliff Jones' rely-guarantee reasoning (compositional reasoning). Automatic refinement of environment assumptions. Global vs. local invariants and ghost variables. Also addresses incomplete approaches such as context-bounded model checking.

Vortragende Personen

Institut

LVA Termine

TagZeitDatumOrtBeschreibung
Di.13:00 - 14:3010.10.2017 - 23.01.2018EI 2 Pichelmayer HS - ETIT Software Model Checking
Do.13:30 - 15:0012.10.2017 - 25.01.2018EI 2 Pichelmayer HS - ETIT Software Model Checking
Software Model Checking - Einzeltermine
TagDatumZeitOrtBeschreibung
Di.10.10.201713:00 - 14:30EI 2 Pichelmayer HS - ETIT Software Model Checking
Do.12.10.201713:30 - 15:00EI 2 Pichelmayer HS - ETIT Software Model Checking
Di.17.10.201713:00 - 14:30EI 2 Pichelmayer HS - ETIT Software Model Checking
Do.19.10.201713:30 - 15:00EI 2 Pichelmayer HS - ETIT Software Model Checking
Di.31.10.201713:00 - 14:30EI 2 Pichelmayer HS - ETIT Software Model Checking
Di.07.11.201713:00 - 14:30EI 2 Pichelmayer HS - ETIT Software Model Checking
Do.09.11.201713:30 - 15:00EI 2 Pichelmayer HS - ETIT Software Model Checking
Di.14.11.201713:00 - 14:30EI 2 Pichelmayer HS - ETIT Software Model Checking
Do.16.11.201713:30 - 15:00EI 2 Pichelmayer HS - ETIT Software Model Checking
Di.21.11.201713:00 - 14:30EI 2 Pichelmayer HS - ETIT Software Model Checking
Do.23.11.201713:30 - 15:00EI 2 Pichelmayer HS - ETIT Software Model Checking
Di.28.11.201713:00 - 14:30EI 2 Pichelmayer HS - ETIT Software Model Checking
Do.30.11.201713:30 - 15:00EI 2 Pichelmayer HS - ETIT Software Model Checking
Di.05.12.201713:00 - 14:30EI 2 Pichelmayer HS - ETIT Software Model Checking
Do.07.12.201713:30 - 15:00EI 2 Pichelmayer HS - ETIT Software Model Checking
Di.12.12.201713:00 - 14:30EI 2 Pichelmayer HS - ETIT Software Model Checking
Do.14.12.201713:30 - 15:00EI 2 Pichelmayer HS - ETIT Software Model Checking
Di.19.12.201713:00 - 14:30EI 2 Pichelmayer HS - ETIT Software Model Checking
Do.21.12.201713:30 - 15:00EI 2 Pichelmayer HS - ETIT Software Model Checking
Do.11.01.201813:30 - 15:00EI 2 Pichelmayer HS - ETIT Software Model Checking
LVA wird geblockt abgehalten

Leistungsnachweis

Es wird von den Studenten erwartet, sich auf die Vorlesung vorzubereiten und die relevanten Publikationen zu lesen.

Die Note ergibt sich aus der Note für ein praktisches Projekt, das von den Studenten implementiert wird, und aus der Mitarbeit während der Vorlesung.

LVA-Anmeldung

Von Bis Abmeldung bis
18.09.2017 00:00 22.12.2017 23:59 02.02.2018 23:59

Curricula

StudienkennzahlVerbindlichkeitSemesterAnm.Bed.Info
066 504 Masterstudium Embedded Systems Keine Angabe
066 931 Logic and Computation Gebundenes Wahlfach
066 937 Software Engineering & Internet Computing Gebundenes Wahlfach
066 938 Technische Informatik Gebundenes Wahlfach

Literatur

Vizel et al.: Boolean Satisfiability Solvers and Their Applications in Model Checking
Proceedings of the IEEE, Volume: 103 Issue: 11, 2015

D'Silva et al.: A Survey of Automated Techniques for Formal Software Verification
IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, Volume 27, Issue 7, 2008

Weitere Informationen

Sprache

Englisch