CS218 and CS318: Higher-Order 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,
higher-order programming, lambda terms as data structures.
- References
-
- G. Nadathur and D.
Miller, Higher-Order 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 higher-order logic; simply typed lambda
terms, lambda conversion, logical constants and formalization
of their semantics via proof rules, comparison to first-order
logic, predicate quantification, general and standard
semantics.
- References
-
- G. Nadathur and D.
Miller, Higher-Order 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
- Higher-order hereditary Harrop formulas, development of a
proof procedure, tagged higher-order 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: 115-145,
1993. (Main)
- G. Nadathur and D.
Miller, Higher-Order 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 lambda-Calculus,
Theoretical Computer Science 1:27-57, 1973. (Main)
- W. Snyder and J. Gallier, Higher-Order 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 Second-Order
Unification Problem, Theoretical Computer Science
13:225-230, 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 Second-Order Patterns,
Acta Informatica 11: 31 - 55, 1978. (Aux)
- G. Dowek, Third-Order 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 higher-order
hereditary Harrop formulas. Applications of lambda Prolog in
higher-order programming and meta-programming. Higher-order
abstract syntax
- References
- G. Nadathur and D.
Miller, Higher-Order 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, Higher-Order 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
Higher-Order Logic Programming Language. In Proceedings of
the Ninth International Conference on Automated Deduction,
E. Lusk and R. Overbeek (eds.), May 1988,
Springer-Verlag LNCS 310, pages 61 - 80.
-
D. Miller and G. Nadathur, Some Uses of Higher-Order 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 Higher-Order Logic Programming Language, Ph.D. Thesis,
University of Pennsylvania, August 1989. Available as UPenn
Tech Report MS-CIS-89-53. (Aux)
- J. J. Hannan, Investigating a Proof-Theoretic Meta-Language
for Functional Programs, Ph.D Thesis, University of
Pennsylvania, January 1991. Available as UPenn Technical
Report MS-CIS-91-09. (Aux)
- R. Pareschi, Type-Driven Natural Language Analysis,
Ph.D. Thesis, University of Edinburgh, 1989. (Aux)
- S. Dietzen, A language for Higher-Order Explanation
Based Learning, Ph.D. Thesis, School of Computer Science,
Carnegie Mellon University, 1991. Available as CMU Technical
Report CMU-CS-92-110. (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
Higher-Order Logic Programming Language. In Proceedings of
the Ninth International Conference on Automated Deduction,
E. Lusk and R. Overbeek (eds.), May 1988,
Springer-Verlag 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, Higher-Order 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
lambda-Abstraction, Function Variables, and Simple
Unification, Journal of Logic and Computation 1(4): 497 -
536, 1991. (Main)
-
T. Nipkow, Functional Unification of Higher-Order 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,
higher-order 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 Higher-Order
Features in Logic Programming, Duke Technical Report
CS-1993-16.
- K. Kwon and
G. Nadathur, An Instruction Set for Higher-Order Hereditary
Harrop Formulas (Extended Abstract), Proceedings of the
Workshop on the lambda Prolog Programming Language,
Philadelphia, 1992. Proceedings available as UPenn Technical
Report MS-CIS-92-86.
- G. Nadathur and
D.S. Wilson, A Notation for Lambda Terms I:
A Generalization of Environments, Duke Technical Report
CS-1994-03. (Aux)
- G. Nadathur, A Notation for
Lambda Terms II: Refinements and Applications, Duke
Technical Report CS-1994-01. (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, Higher-Order
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 366--374. (Aux)