Skip to main content
Cornell University


In addition to basic first-order logic, when taught by Computer Science this course involves elements of Formal Methods and Automated Reasoning.

Formal Methods is concerned with proving properties of algorithms, specifying programming tasks and synthesizing programs from proofs.

We will use formal methods tools such as interactive proof assistants (see

We will also spend two weeks on constructive type theory, the language used by the Coq and Nuprl proof assistants.

CS Topics include:

  • formal methods
  • automated reasoning
  • interactive proof assistants
  • constructive type theory

Meeting Times:Tue/Thr 1:25pm - 2:40pm

Location: Thurston 202

Instructor: Robert Constable
rc at cs dot cornell dot edu
Office: 320 Gates Hall
Office Hours: TBA

TA: Siva Somayyajula
sks266 at cornell dot edu
Hours: See the calendar

Texts & Resources



Homework Policies

Homework is to be brought to class.

Cornell University has a Code of Academic Integrity, with which you should be familiar. Violations of this code are treated very seriously by Cornell and can have long-term repercussions. In this course, you are encouraged to discuss the content of the course with other students, and you may also discuss homework problems with other students. However, you must do your own work, write up assignments yourself, and if you discuss a problem with another student, you are expected to document this fact in your write-up. It is a violation of the code to copy work, including programs, from other students; it is also a violation to use solutions to homework problems from previous iterations of the same course. Note that Cornell holds responsible for the code violation both the recipient and the donor of improper information.