CS218 and CS318: HigherOrder Logic Programming
Lecture Schedule and Reading List
There are 19 lectures in all this quarter, and the plan for these is
provided below.
Relevant references for each lecture are also indicated; links through
WWW are provided where these are available. Not all the
literature mentioned will be covered in class. References annotated as
(Main) contain necessary material, unannotated references contain
relevant material that will be touched upon and references with the
annotation (Aux) are listed only for further reading. Some of
these readings are apt sources for term papers and class presentations
if this becomes a component of the required work.
I stress that a lecture schedule set out at the beginning of
the course is always a tentative one and this one is no
different. Modifications will be made based on the preparedness of
students and on specific interests expressed by them. (A request in
this regard: Please let the instructor know early of any special
topics related to the title of the course that you would like
discussed.) The lectures will be delivered in seminar style, i.e. they
will tend to overview topics, skipping details such as proofs. These
details will usually be found in the references and it is a good idea
to familiarize yourself with the listed literature for a lecture
before the lecture.
Lectures 1 and 2
 Topic
 An informal introduction to lambda Prolog and its new
programming language features: scoping mechanisms,
higherorder programming, lambda terms as data structures.
 References

 G. Nadathur and D.
Miller, HigherOrder Logic Programming. To appear in
Handbook of Logic in AI and Logic Programming,
D. Gabbay, C. Hogger and A. Robinson (eds.) Only Section
2. (Main)
 G. Nadathur, B. Jayaraman
and K. Kwon, Scoping Constructs in Logic Programming. To
appear in Journal of Logic Programming. Only Section
2. (Main)

D. Miller, Abstractions in Logic Programming. In
Logic and Computer Science , P Odifreddi (ed.), Academic
Press, pp 329  359, 1990.
Lectures 3, 4 and 5
 Topic
 Introduction to a higherorder logic; simply typed lambda
terms, lambda conversion, logical constants and formalization
of their semantics via proof rules, comparison to firstorder
logic, predicate quantification, general and standard
semantics.
 References

 G. Nadathur and D.
Miller, HigherOrder Logic Programming. To appear in
Handbook of Logic in AI and Logic Programming,
D. Gabbay, C. Hogger and A. Robinson (eds.). Only Section
3. (Main)
 Other references include [And71], [Chu40], [Hen50] in
first reference.
Lectures 6, 7 and 8
 Topic
 Uniform proofs as a foundation for logic programming, Horn
clause logic as an abstract logic programming language,
hereditary Harrop formulas
 References


D. Miller, G. Nadathur, F. Pfenning and A. Scedrov, Uniform
Proofs as a Foundation for Logic Programming, Annals of
Pure and Applied Logic 51: 125  157, 1991. (Main)
 D. Loveland and G. Nadathur,
Proof Procedures in Logic Programming. To appear in
Handbook of Logic in AI and Logic Programming,
D. Gabbay, C. Hogger and A. Robinson (eds.). Only Section
2. (Main)
Lectures 9, 10 and 11
 Topic
 Higherorder hereditary Harrop formulas, development of a
proof procedure, tagged higherorder unification
 References


D. Miller, G. Nadathur, F. Pfenning and A. Scedrov, Uniform
Proofs as a Foundation for Logic Programming, Annals of
Pure and Applied Logic 51: 125  157, 1991. (Main)
 G. Nadathur, A Proof
Procedure for the Logic of Hereditary Harrop
Formulas, Journal of Automated Reasoning 11: 115145,
1993. (Main)
 G. Nadathur and D.
Miller, HigherOrder Logic Programming. To appear in
Handbook of Logic in AI and Logic Programming,
D. Gabbay, C. Hogger and A. Robinson (eds.) Only Section 6.
(Main)
 G. Huet, A Unification Algorithm for Typed lambdaCalculus,
Theoretical Computer Science 1:2757, 1973. (Main)
 W. Snyder and J. Gallier, HigherOrder Unification
Revisited: Complete Sets of Transformations, Journal of
Symbolic Computation 8: 101  140, 1989.

D. Miller, Unification under a Mixed Prefix, Journal of
Symbolic Computation 14: 321  358, 1992.
 W. Goldfarb, The Undecidability of the SecondOrder
Unification Problem, Theoretical Computer Science
13:225230, 1981. (Aux)
 G. Huet, The Undecidability of Unification in Third Order
Logic, Information and Control 22:257  267,
1973. (Aux)
 G. Huet and B. Lang, Proving and Applying Program
Transformations Expressed with SecondOrder Patterns,
Acta Informatica 11: 31  55, 1978. (Aux)
 G. Dowek, ThirdOrder Matching is Decidable, Annals of
Pure and Applied Logic 69: 135  155, 1994. (Aux)
Lectures 12 and 13
 Topic
 Lambda Prolog as a programming language based on higherorder
hereditary Harrop formulas. Applications of lambda Prolog in
higherorder programming and metaprogramming. Higherorder
abstract syntax
 References
 G. Nadathur and D.
Miller, HigherOrder Logic Programming. To appear in
Handbook of Logic in AI and Logic Programming,
D. Gabbay, C. Hogger and A. Robinson (eds.) Sections
7, 8 and 9 will be covered in Lectures 6, 7 and 8. (Main)

D. Miller and G. Nadathur, A Logic Programming Approach to
Manipulating Formulas and Programs. In Proceedings of the
IEEE Symposium on Logic Programming, September 1987, pages
379  388. (Main)

F. Pfenning and C. Elliott, HigherOrder Abstract Syntax. In
Proceedings of the ACM SIGPLAN '88 Symposium on Language
Design and Implementation, June 1988, pages 199  208.
 A. Felty and D. Miller, Specifying Theorem Provers in a
HigherOrder Logic Programming Language. In Proceedings of
the Ninth International Conference on Automated Deduction,
E. Lusk and R. Overbeek (eds.), May 1988,
SpringerVerlag LNCS 310, pages 61  80.

D. Miller and G. Nadathur, Some Uses of HigherOrder Logic in
Computational Linguistics. In Proceedings of the 24th Annual
Meeting of the Association for Computational Linguistics,
June 1986, 247  255. (Aux)
 A. Felty, Specifying and Implementing Theorem Provers in
a HigherOrder Logic Programming Language, Ph.D. Thesis,
University of Pennsylvania, August 1989. Available as UPenn
Tech Report MSCIS8953. (Aux)
 J. J. Hannan, Investigating a ProofTheoretic MetaLanguage
for Functional Programs, Ph.D Thesis, University of
Pennsylvania, January 1991. Available as UPenn Technical
Report MSCIS9109. (Aux)
 R. Pareschi, TypeDriven Natural Language Analysis,
Ph.D. Thesis, University of Edinburgh, 1989. (Aux)
 S. Dietzen, A language for HigherOrder Explanation
Based Learning, Ph.D. Thesis, School of Computer Science,
Carnegie Mellon University, 1991. Available as CMU Technical
Report CMUCS92110. (Aux)
Lectures 14 and 15
 Topic
 A ``demo'' of the lambda Prolog system and an illustration of
its specific metalanguage applications. (It is hoped that you
would have already tried out the lambdaProlog system before
these lectures  the main purpose of the class time will be
to focus attention on some of the intended applications and
not to introduce you to lambdaProlog programming.)
 References
 Handout to be given in a previous lecture.
 A. Felty and D. Miller, Specifying Theorem Provers in a
HigherOrder Logic Programming Language. In Proceedings of
the Ninth International Conference on Automated Deduction,
E. Lusk and R. Overbeek (eds.), May 1988,
SpringerVerlag LNCS 310, pages 61  80. (Main)
Lecture 16 and 17
 Topic
 Further discussions of metalanguage aspects, the sublanguage
L_lambda and its applications
 References

 G. Nadathur and D.
Miller, HigherOrder Logic Programming. To appear in
Handbook of Logic in AI and Logic Programming,
D. Gabbay, C. Hogger and A. Robinson (eds.) Focus on Sections
8 and 9. (Main)

D. Miller, A Logic Programming Language with
lambdaAbstraction, Function Variables, and Simple
Unification, Journal of Logic and Computation 1(4): 497 
536, 1991. (Main)

T. Nipkow, Functional Unification of HigherOrder Patterns.
In Proceedings of the Eighth Annual {IEEE} Symposium on Logic in
Computer Science, M. Vardi (ed), 1993.
Lecture 18 and 19
 Topic
 Implementation issues related to lambda Prolog, clause
scoping and backtracking, lambda term representation,
higherorder unification and branching
 References

 G. Nadathur, B. Jayaraman
and K. Kwon, Scoping Constructs in Logic Programming. To
appear in Journal of Logic Programming.
 G. Nadathur, B. Jayaraman and
D. S. Wilson, Implemention Considerations for HigherOrder
Features in Logic Programming, Duke Technical Report
CS199316.
 K. Kwon and
G. Nadathur, An Instruction Set for HigherOrder Hereditary
Harrop Formulas (Extended Abstract), Proceedings of the
Workshop on the lambda Prolog Programming Language,
Philadelphia, 1992. Proceedings available as UPenn Technical
Report MSCIS9286.
 G. Nadathur and
D.S. Wilson, A Notation for Lambda Terms I:
A Generalization of Environments, Duke Technical Report
CS199403. (Aux)
 G. Nadathur, A Notation for
Lambda Terms II: Refinements and Applications, Duke
Technical Report CS199401. (Aux)
 M. Abadi, L. Cardelli, P.L. Curien and J.J. Levy,
Explicit Substitutions. In Proceedings of the Seventeenth
Annual ACM Symposium on Principles of Programming Languages,
ACM Press, pages 31  46, January, 1990. (Aux)
 G. Dowek, T. Hardin and C. Kirchner, HigherOrder
Unification via Explicit Substitutions. Proceedings of
the Tenth Annual Symposium on Logic in
Computer Science, D. Kozen (ed.), IEEE Computer Society
Press, June 1995, pages 366374. (Aux)