The University of Iowa

CS:4890 Topics in Computer Science II

Introduction to Automated Reasoning

Spring 2024

Syllabus

Course Description and Goals

Automated reasoning is a branch of Artificial Intelligence concerned with the study and automation of logical reasoning. It is often referred to as Automated Theorem Proving because many logical problems can be recast as mathematical theorems to be proven by a computer program. Automated reasoning technology is a backend technology that has enabled substantial progress in many areas in computer science and beyond, including hardware and software verification, program synthesis, cyber-security, fault analysis, planning, and analysis of biological systems. This course provides an introduction to the theory and practice of automated reasoning, focusing on a particularly successful flavor of it called Satisfiability Modulo Theories (SMT). We will start with propositional logic and the propositional satisfiability (SAT) problem, which are a basic form of SMT. We will then move to first-order logic reasoning expressible as constraint solving in specific logical theories relevant to SMT applications, such as the theories of linear arithmetic over reals and integers, uninterpreted functions, bit vectors, and arrays. Finally, we will consider the general problem of checking the satisfiability of arbitrary first-order formulas in a theory or in a combination of them. The course will include many examples of practical applications of the presented automated reasoning techniques, as well as a one or two lectures from guest speakers who will illustrate some uses of SMT in industry.

Learning Objectives

Through active engagement and completion of course activities, students will be able to:

  1. Understand the syntax, semantics, and properties of different logical languages for encoding different decision problems;
  2. Understand and prove properties about popular automated reasoning methods and procedures;
  3. Get hands-on experience in using off-the-shelf automated reasoning tools;
  4. Understand the roles of automated reasoning in real-world applications such as software/hardware verification and synthesis;
  5. Get exposure to formal methods literature and engage in formal methods research.

Students should be prepared to put in considerable time and effort into reading to become familiar with the course's topics, and into homework and exercises to gain experience with the techniques seen in class.

Prerequisites

CS:2210 with a minimum grade of C- and CS:2230 with a minimum grade of C-.

Lectures

MWF 11:30am - 12:20pm, W268 Chemistry Building

Instructors

Prof. Cesare Tinelli (lecturer)
1 Jessup Hall, Room C
(319) 335-0735
cesare-tinelli@uiowa.edu
DEO: Alberto Segre, 14G MLH, alberto-segre@uiowa.edu

Kartik Sabharwal (TA)
kartik-sabharwal@uiowa.edu

Drop-in Hours

Students are invited to drop by during the hours listed below to discuss questions about the course material or concerns. The instructors are also available by appointment if you are unable to attend the scheduled drop-in hours.

Prof: Tue 3:00pm-4:30pm (Zoom), Thu 4:00pm-5:30pm (201C MLH), and by appointment.

TA: Mon 10:00am-11:00am, Wed 1:00pm-2:00pm, Fri 2:00pm-3:00pm (all in 1B JH), and by appointment.

Online Resources

Most of the information about the class, including handouts and assignments, will be available from the class web site:

http://www.cs.uiowa.edu/~tinelli/classes/4980/Spring24

We will also use Piazza, a class discussion service, for announcements, questions and discussions, and ICON for homework submissions and grade posting. Lectures will be recorded and recordings will be available to registered students on UICapture.

Note that lecture recordings are the intellectual property of the instructor, and they may not be shared, reproduced, or uploaded to any online environment without the explicit, written consent of the instructor. Doing so is a breach of the Code of Student Conduct and, in some cases, a violation of the Federal Education Rights and Privacy Act (FERPA).

Students are expected to check both the class web site and the Piazza discussion board on a regular basis (at least every other day) for announcements regarding the course.

Textbook and Readings

There no required textbook for the course. We will use a variety of reading materials all of which will be made available through the course web site or ICON.

Weekly readings will be posted in the Lectures section and updated as the course progresses. Readings may include various class notes and handouts, papers on automated reasoning, and material on how to use selected AR tools.

Computer Accounts and Software

You may find it useful to use your account on the CS remote servers. Alternatively, you are welcome to use your own computer for course work but you are responsible for installing any necessary software. We regret that we maybe not be able to provide assistance for any problems with your own installation.

Homework Assignments

There will be four graded homework assignments, to be done individually or in teams of 2, and a course project, to be done in teams of 2-3 people.

For team assignments and the project, every team member will be expected to be involved in all aspects of the assignment (no dividing up the work). The whole team is responsible for the work submitted. Although the work is shared, each students will receive an individualized grade. Team members will be asked to submit an evaluation of how well they and their teammates performed as team members. Each evaluation is confidential and will be be incorporated into the calculation of the individual grade.

Exams

There will be two midterm exams and no final exam. The midterms will be take-home exams and students will have 24h to complete them held in class during class time. Both exams will test student's knowledge of basic concepts, terms, and general techniques discussed in the course. More information will be posted on the Exams section at least a week before each exam. In preparation for each exam, it is strongly recommended that students complete all the readings and homework assigned until then.

Class Participation

Regular and prompt attendance is expected for this course. Since a substantial percentage of your grade (10%) will be based on class attendance and participation, it is in your interest to attend every class and be ready to make significant contributions to in-class discussions. Participation includes being up to date with the course readings so as to be able to answer questions from the instructor and actively contribute to the solution of in-class exercises.

Grading

The weighting of items in grade determination will be the following:

Item Weight
In-class Participation 10%
Homework 30%
Midterms 35%
Course Project 25%

The following cutoffs will be used to determine letter grades. In the ranges below, x stands for your total score at the end of the semester. Final scores near a cutoff will be individually considered for the next higher grade. Plus(+) and minus(-) grades will also be given; their cutoffs will be determined at the end of the semester. A+ will be given to scores close or above 100%.

Score Grade
88 ≤ x < 100 A
75 ≤ x < 88

B

60 ≤ x < 75 C
50 ≤ x < 60 D
00 ≤ x < 50 F

Grades are not curved in this course. It is theoretically possible for everyone in the class to get an A (or an F). Your final grade depends only on your own final score and not on that of others.

Academic Excellence and Workload

The University of Iowa expects students to set high academic standards for themselves and work hard towards achieving them. You can achieve true academic excellence only through dedicated work. An average workload of 6 hours a week besides class attendance should be considered the norm for this course. More effort might be needed depending on your background, predisposition and academic ambition.

Academic Honesty and Misconduct

All students in CLAS courses are expected to abide by the CLAS Code of Academic Honesty. In particular, under no circumstances should you pass off someone else's work as your own. Undergraduate academic misconduct will be reported by instructors to CLAS according to these procedures. Graduate academic misconduct will be reported to the Graduate College according to Section F of the Graduate College Manual.

This course assumes that work submitted by students will be generated by the students themselves, working individually or in groups. This means that the following will be considered violations of academic integrity: a student has another person/entity do the writing of any substantive portion of an assignment or exam for them; this includes hiring a person or a company to write homework or exam solutions, and using artificial intelligence applications like ChatGPT.

In addition, the following is also explicitly disallowed.

Graded Homework: Sharing solutions of graded homework between teams or copying someone else's work, including posted solutions from previous editions of the course, is not allowed. Doing that will result in a zero on the assignment and a report to the CS Department's chair and the College.
You are allowed and encouraged to discuss with students in other teams concepts and ideas that relate to the class and the homework assignments. However, it is important to ensure that these discussions do not lead to the actual exchange of written material.
For team assignments, all members of a team are responsible for the submitted team work and will be disciplined equally in case of academic dishonesty. So make sure you are fully aware of what is being submitted if you are not the submitter.

Exams: The midterm exams are individual tests. Each student must complete them without any help from others. Exam answers showing strong similarities and/or duplication may receive a fail grade and the students involved will be reported to the Department and the College.

If you are unclear about what constitutes academic dishonesty bit is your responsibility to contact the instructors or consult the CLAS policy (online version). Be aware that repeated academic dishonesty offenses lead to suspension or expulsion from the University.

General Course Policies

Communicating with the Instructors: We welcome questions related to the course. Students are strongly encouraged to post their class-related questions on Piazza (publicly or privately, as appropriate) rather than emailing questions to the teaching staff. Questions sent by email will receive lower priority. We are committed to answer all questions posted on Piazza within 24 hours.
We will make any course-related announcements on Piazza and will occasionally send direct email notifications to all students in the class. Students are responsible for all official correspondences sent to their UI email address (uiowa.edu) and must use this address for any communication with instructors outside of Piazza. For the privacy and the protection of student records, UI faculty and staff can only correspond by email with UI addresses.

Drop-in Hours: Students are invited to connect/drop by during the posted drop-in hours to discuss questions about the course material or concerns. The instructors are also available by appointment if your are unable to attend the drop-in hours.

Assigned Readings: Students are expected to study all the material assigned as required readings, even if that material is not explicitly discussed in class or in the homework.

Additional Readings and Discussions: Students are encouraged to go over any specifically suggested readings and consult any relevant materials beyond those provided on the course's web site. They are also encouraged to discuss the course topics with their classmates. It is a genuinely helpful learning activity having to formulate one's own thoughts about the material well enough to express them to others.

Attendance and Absences: Lectures will be taught in person, with occasional (ungraded) in-class exercises and other forms of active participation. Students are expected to attend all lectures and, in case they cannot attend a lecture, timely watch its recorded version. Students do not need to communicate their absences to the instructors unless these are due to long-term illness (so that suitable arrangements can be made if possible). However, they are responsible for all announcements made in class and material covered there regardless of whether they attended/watched the lecture or not.

Extra Credit: No extra-credit assignments or tests will be given on an individual basis, although they maybe given to the whole class.

Make-up Exams: Make-up exams will be offered only if there is a serious, documented reason for not being able to take a scheduled exam, and if the request is made at least a week before the exam.

Regrading: Students thinking a graded assignment or test has been misgraded and deserves a regrading are invited to let the instructors know. The instructors welcome and will give full consideration to all well motivated regrading requests.

Student Complaints: Students with a complaint about a grade or a related matter should first discuss the situation with the instructors, and finally with the Department Chair (DEO).
Undergraduate students should contact CLAS Undergraduate Programs for support when the matter is not resolved at the previous level. Graduate students should contact the CLAS Associate Dean for Graduate Education and Outreach and Engagement when additional support is needed.

Drop Deadline: Students may drop an individual course before its drop deadline; after this deadline they will need collegiate approval. When you drop a course, a “W” will appear on your transcript. The mark of “W” is a neutral mark that does not affect your GPA. Directions for adding or dropping a course and other registration changes can be found on the Registrar’s website. Undergraduate students can find policies on dropping CLAS courses here. Graduate students should adhere to the academic deadlines and policies set by the Graduate College.

University Policies

Unless otherwise noted, this course abides to the general university policies for courses. Make sure you familiarize yourself with them.