MAP/i - Foundations of Computing

Option I: Program Semantics, Verification, and Construction

Program Semantics, Verification, and Construction

(Previous instance: 2007/2008)

2008/2009

Course coordinator: Nelma Moreira (nam(AT)ncc(DOT)up(DOT)pt)

Lecture 1

Lambda Calculus

Date:

07/10/08

Notes:

* Lcalc.pdf

Lecture 2

Deduction Systems and Intuitionism

Date:

13/10/08

Notes:

* psvc02.pdf

Lecture 3

Type systems and the Curry-Howard isomorphism

Date:

21/10/08 (tuesday, 15h-18h)

Notes:

Lecture 4

Operational Semantics

Bibliography:

Semantics with Applications, H. Nielson and F. Nielson. (online version)

Date:

27/10/08 (Monday, 10h-13h) Sala 1

Lecture 5

Denotational Semantics

Date:

03/11/08 (Monday, 10h-13h) Sala 1

Bibliography:

Semantics with Applications, H. Nielson and F. Nielson. (online version)

Lecture 6

Proof assistants based on type theory

Date:

11/11/08 (tuesday, 15h-18h) Sala 1

Notes:

Lecture 7

Extensions of Pure Type Systems

The Coq proof assistant

Date:

17/11/08 (Monday, 10h-13h) Sala 1

Notes:

Material:

Lecture 8

Functional Program Verification in Coq

Date:

24/11/08 (Monday, 10h-13h) Sala 1

Notes:

Lecture 9

Hoare logic and interface specification languages

Date:

15/12/00 (Monday, 10h-13h) Sala 1

Slides:

(see next lecture)

Lecture 10

Verification conditions and program verification in practice

Date:

5/01/09 (Monday, 10h-13h) Sala 1

Slides

Lecture 11

Introduction to the mathematics of program construction

Date:

12/01/09 (Monday, 10h-13h) Sala 1

Topics:Overview of the scientific method applied to software design.Correct by verification versus correct by construction. Calculate versus invent & verify.The e=m+c equation: description versus calculation. Point-free (PF) and point-wise (PW) notations. PF-transform for (algebraic) reasoning.

Analogy with the Laplace transform (historical perspective). Binary relations as a building block for logic in computer science. Introduction to the binary relation calculus.

Notes:

  • Theory and applications of the PF-transform Lectures 1-2 (01-56) (slides of the LerNET? doctoral school at Piriapolis, Uruguay, 2008)
  • Full tutorial paper: (LNCS)

Lecture 12

PF-transform: when everything becomes a relation

Date:

19/01/09 (Monday, 10h-13h) Sala 1

Topics:

Taxonomy of binary relations. Functions. Conditions and coreflexives. PF-transform of n-ary relations. Products and Sums. Universal constructions and properties. Extended static checking (ESC) in the PF-style. Induction-free calculation of preconditions and invariants. Three case studies.

Notes:

Lecture 13

Constructive proofs and program calculation

Date:

26/01/09 (Monday, 10h-13h) Sala 1

Topics:

A PF-approach to polymorphic type checking. Reynolds' relation on functions. The free-theorem of polymorphic functions in one equation. Inductive predicates and relations. The catamorphism concept. Universal property and its corollaries. Mutual recursion. Calculation of for/while loops from systems of mutually recursive equations over linear types.

Notes:

  • Theorems for free: a (calculational) introduction (slides)

  • Relational algebra: a Kleene algebra central to the mathematics of program construction (slides)

r23 - 24 Sep 2010 - 16:39:02 - JoseNunoOliveira
This site is powered by the TWiki collaboration platform Copyright © by the contributing authors. Ideas, requests, problems? Send feedback.
Syndicate this site RSSATOM