Declarative Programming and (Co)Induction

PhD Course at DIBRIS

Instructors

Davide Ancona, DIBRIS (davide.ancona@unige.it)

Elena Zucca, DIBRIS (elena.zucca@unige.it)

Where: DIBRIS - Università degli Studi di Genova - via Dodecaneso, 35.

Length: 20 hours

The course will take place on 23 June - 27 June. Because of the compressed format, the course may be of interest for PhD students of other universities. The (free) registration is mandatory and requires sending an email to instructors before June 16.

Description

The course is a self-contained introduction to functional programming, logic programming, and the use of induction and coinduction.

We will cover both foundational (inference systems, induction and co-induction, lambda calculus, type system and semantics) and practice/implementation (languages Haskell and Prolog) aspects in dealing with finite and infinite objects.

The course is organized in two modules.

Exam

Either a small project, or a seminar on the subject of the course.

Tentative schedule

Aulaweb If you owe an UnigePass account, you can access the Aulaweb module of the course.

Course material

Module 1: Slides on Induction

Module 1: Slides on Haskell

Module 1: First lab on Haskell

Module 1: Slides on Small Step Semantics, Lambda Calculus and Type Systems

Module 1: Slides on Haskell, continued

Module 1: Second lab on Haskell

The course is part of the activities of the SEPL research program.