Fall 98, CSE 520: Lectures
The following is the summary of lectures given so far.
For each lecture you find the list of topics covered,
and the reference material.

Thu, Aug 27:
Overview of the Syllabus.
Contents of the course.
The Lambda Calculus: syntax and alphabeta conversion.
[Barendregt84, 2.1
or Barendregt92, 2.1.
Notes]

Tue, Sep 1:
The theorem
of Kleene (all recursive functions are lambdadefinable).
[Barendregt84, 6.13
or Barendregt92, 2.2.
Notes]
 Thu, Sep 3:
Betareduction. The theorem of ChurchRosser (confluence).
Consistency of the Lambda Calculus.
[Barendregt84, 3.12
or Barendregt92, 2.3].
A brief overview of programming languages based on the
Lambda Calculus. The type system of Curry.
[Barendregt92, 3.1]
[Notes]
 Tue, Sep 5
Lecture given by Prof. Dale Miller.
Sequent calculus; foundations of logic programming;
computation as proof search.
 Thu, Sep 10:
Lecture given by Prof. Dale Miller.
Sequent calculus; foundations of logic programming;
computation as proof search (Continued).
[Miller98,
pp. 114 (Sections 13)]
[Gallier93,
Section 4]
 Tue, Sep 15:
Lecture given by Prof. Dale Miller.
Proof search with Horn Clauses; introduction to the Terzo
implementation of lambda Prolog.
Running Terzo.
Terzo's
home page.
Lambda Prolog's
home page.
Slides used in class:
modules in lambda Prolog;
syntax of lambda Prolog.
[Miller98,
Section 4]
 Thu, Sep 17:
Lecture given by Prof. Dale Miller.
Hereditary Harrop Forumulas. Using HHF in lambda Prolog to encode
abstractions inside data. Encoding and reasoning with lambdaabstractions.
Examples: representing firstorder formula and untyped lambdaterms.
Slides used in class.
[Miller98,
Section 5].
Read the short survey paper on the lambdatree syntax
[Miller_Palamidessi98].
 Tue, Sep 22:
Lecture given by Prof. Dale Miller.
Abstract syntax issues and examples. Unification in "Llambda"
(also called higherorder pattern unification).
Slides used in class.
Some modules and short interaction with Terzo.
 Thu, Sep 24:
Examples of typing in the Curry's type system.
Most general type. First order unification.
[Notes]
 Tue, Sep 29:
The MartelliMontanari unification algorithm for firstorder terms.
[Apt_Pellegrini, Section 2]
The subject reduction theorem for the system of Curry.
The system of Church and the Symply Typed Lambda Calculus.
Relation between the system of Church and the system of Curry.
[Barendregt92, 3.2]
[Notes]
 Thu, Oct 1:
PCF (Programming Computable Functions):
an extension of the Lambda Calculus with integers,
booleans, and some primitives.
Eager and Lazy evaluation for PCF.
Some examples of lazy programs on streams.
[Notes][Further (optional) reading:
Winskell93, Ch 11, and
Mitchell96, Ch 2]
 Tue, Oct 6:
Soundness and completeness issues for the eager and the lazy semantics.
Simulating lazy programs in ML.
Constructing lambda Prolog interpreters for the eager and the lazy PCF.
[Notes]
 Thu, Oct 8:
The Polymorphic Typed Lambda Calculus (version a' la Curry)
[Barendregt92, 4.14].
Weak polymorphism in ML: a restrictions on higherorder types which
makes typeability decidable.
The CurryHoward isomorphism:
types as formulas, terms as proofs, and computation as proofnormalization.
[Gallier95]
 Tue, Oct 13:
Explanation of projects for the course.
Illustration of modalities and preliminary list of subjects.
[Projects].
 Thu, Oct 15:
Introduction to the Theory of Concurrency. [Notes]
[Milner89, Preface, 1.13].
 Tue, Oct 20:
A Calculus of Communicating Systems.
Syntax and transition rules.
Example: a system of two processes communicating via
a onecell buffer. Example: implementing
a twocells buffer
by using two onecell buffers.
[Milner89, Ch. 2].
 Thu, Oct 22:
Equivalence of processes.
Strong bisimulation.
Example: verification of correspondence
between the specification and the implementation of a twocells
buffer.
Bisimulation is an equivalence relation.
Algebraic laws of bisimulation.
Expansion law.
Bisimulation is a congruence.
[Milner89, Ch. 4].
 Tue, Oct 27:
Examples of strongly bisimilar processes.
Synchronization tree semantics.
Correspondence between bisimulation and synchronization trees.
Examples of processes not strongly bisimilar,
but still undistinguishable by any observer.
Testing equilavence. Failure semantics.
Correspondence between
testing equilavence and failure semantics.
(Completed) trace equivalence and trace congruence.
Correspondence between testing equilavence
and trace congruence.
[vanGlabbeek90].
 Thu, Oct 29:
Weak bisimulation and observation congruence.
Properties of observation congruence.
Towards an equality theory for proving
bisimulation and observation congruence.
[Milner89, Ch. 3, 5].
 Tue, Nov 3:
Equations with unique solutions.
Axioms for bisimulation and observation congruence.
Soundness of the axiomatization.
Completeness of the axiomatization for finite and regular processes.
Use of axiomatization for proving correctness of
intermediate CCS implementation.
(Specification in CCS (using choice) >
Intermediate specification in CCS without choice
> Implementation in a "real" language, e.g. Java.)
[Milner89, Ch. 3, 5].
 Thu, Nov 5:
An extended example: Specification and intermediate
implementation in CCS of a scheduler, and proof of correctness
(= proof of bisimulation between
the two definitions).
[Milner89, Ch. 5].
 Tue, Nov 10:
More project proposals:
 The Eratosthenes' Sieve (design in CCS and implementation in Java)
 The Hamming sequence (design in CCS and implementation in Java)
 Decidability of bisimulation (overview project)
 Congruence property of Bisimulation (overview project)
Example of CCS design: The Alternating Bit Protocol.
[Milner89, Ch. 6].
 Thu, Nov 12:
The Alternating Bit Protocol (Cont.ed).
[Milner89, Ch. 6].
The picalculus. Motivations and syntax.
[Milner_Parrow_Walker92
,
Milner_Parrow_Walker93 ]
 Tue, Nov 17:
The picalculus. Structural rules and operational semantics.
Early and Late bisimulation.
[Milner_Parrow_Walker92
,
Milner_Parrow_Walker93 ]
 Thu, Nov 19:
Asynchronous vs. synchronous communication. Motivations for considering a
theory of asynchronous communication.
Calculi for Asynchronous Communication:
Expressive power of the asynchronous picalculus: the HondaTokoro
encoding of the output prefix [Notes].
 Tue, Nov 24:
Expressive power of the asynchronous picalculus: the NestmannPierce
encoding of the inputguarded choice
[Nestmann_Pierce96].
The full picalculus is strictly more expressive than the
asynchronous picalculus. Proof based on the impossibility
of the asinchhronous picalculus to express a system for leader election
in a symmetric network [Palamidessi97].
 Thu, Dec 3:
Alternative Models of Concurrency
The Gamma Language
[Banatre_LeMetayer].
The Chemical Abstract Machine
[Berry_Boudol].
The Linda paradigm and the coordination languages
[Carriero_Gelenter89,
Carriero_Gelenter92].
Concurrent Constraint Programming
[FGMP97].
 Tue, Dec 8:
The sigmacalculus
(a calculus of Objects).
Sintax. Operational semantics (reduction and conversion).
Example of "moving points". Encoding of the lambda calculus into the
sigmacalculus. Weak reduction semantics.
[Abadi_Cardelli96, Ch 6].
 Thu, Dec 10:
The sigmacalculus.
Fixed point operator.
Type system for the sigmacalculus.
Subject reduction. Unicity of types.
Existence of typeable terms not (weakly) normalizing.
Subtyping.
[Abadi_Cardelli96, Ch 7, 8].