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.
Through active engagement and completion of course activities, students will be able to:
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.
CS:2210 with a minimum grade of C- and CS:2230 with a minimum grade of C-.
MWF 11:30am - 12:20pm, W268 Chemistry Building
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
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.
Most of the information about the class, including handouts and assignments, will be available from the class web site:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Unless otherwise noted, this course abides to the general university policies for courses. Make sure you familiarize yourself with them.