Classes: | Mondays and Wednesdays, 3:30pm–5:20pm DMC 209 · https://usc.zoom.us/j/93506992296 Note the Zoom classroom we will be using for class! |
Piazza: | https://piazza.com/usc/spring2024/csci625 |
Instructor: | Mukund Raghothaman (raghotha@usc.edu) |
Office hours: | Mondays, 5:30pm–6:30pm, or by appointment |
This course is about the theory and practice of algorithmic program verification. We will discuss how programmers can prove that their code is correct, and how this process may be automated. We will study SAT and SMT solvers, and learn how to use them and how they work. These are sophisticated reasoning engines, and their use increasingly impacting other areas of computer science. We will see how they can be used to build automatic program synthesizers, which produce code that is correct-by-construction. [Syllabus]
Prerequisites: First, the course will expect a certain amount of mathematical maturity from its students, at least at the level of CSCI 170, and preferably at the level of CSCI 270. Second, we will be reasoning about code: we expect that the student will already be proficient in writing it.
Note: The syllabus and schedule listed on this webpage are tentative, and may be updated as the course progresses. Please check back regularly!
The course will consist of four homework assignments and an open-ended project, graded equally. The homework assignments are intended to develop familiarity with the material covered in class. In the project, you will apply and extend ideas from the course to a research problem of your choice. The project may be done either alone or in pairs. Please consult the instructor for feedback while choosing project topics.
Jan 8 | Course introduction, motivation, logistics [Slides], [Recording] |
Jan 10 | Propositional logic, satisfiability and validity [Notes], [Recording] |
Jan 15 | No class. Martin Luther King Jr. Day. |
Jan 17 | Basics of SAT solvers: DPLL and unit propagation. Solving 2-SAT in polynomial time [Recording] |
Jan 22 | Conflict-Driven Clause Learning, branching heuristics [Notes], [Recording] |
Jan 24 | Solving Horn-SAT and 2-SAT in polynomial time [Recording] |
Jan 29 | Binary decision diagrams [Slides by Sanjit Seshia], [Recording] |
Jan 31 | Introduction to Satisfiability Modulo Theories (SMT). Solvers for LRA, difference logic [Recording] |
Feb 5 | Theory of equality, EUF, congruence closure [Recording] |
Feb 7 | DPLL(T), the Nelson-Oppen procedure [Recording] |
Feb 12 | Introduction to program synthesis [Recording] |
Feb 14 | Counter-example guided inductive synthesis (CEGIS) [Recording] |
Feb 19 | No class. President's Day. |
Feb 21 | Paper presentations! Jacqueline and Chenyu talked about QBF solvers, Paul talked about
neural network verification, and Tooba and Yuzhou talked about model counting. [Recording] |
Feb 26 | More paper presentations! Tooba and Yuzhou finished talking about model counting, and
Sara and Matin talked about learning good decision heuristics. [Recording] |
Feb 28 | The enumerative SyGuS solver [Recording] |
Mar 4 | Prioritized search [Recording] |
Mar 6 | Introduction to program verification [Recording] |
Mar 11 | No class. Spring Break. |
Mar 13 | No class. Spring Break. |
Mar 18 | Paper presentations: Paul talked about jungloids, and Chenyu and Jacqueline presented
Myth [Recording] |
Mar 20 | More paper presentations: Tooba and Yuzhou talked about conflict-driven program
search, and Matin and Sara talked about proving unrealizability [Recording] |
Mar 25 | Introduction to Hoare logic [Recording] |
Mar 27 | Hoare triples and proving properties of flowchart programs [Recording] |
Apr 1 | Weakest preconditions, strongest postconditions [Recording] |
Apr 3 | The Hoare rules [Recording] |
Apr 10 | Automatic invariant inference [Recording] |
Apr 15 | Proving program termination [Recording] |
Apr 17 | Lots of presentations! Sara and Matin talked about CHC solving, Tooba and Chenyu
talked about ICE learning, Yuzhou and Jacqueline talked about incorrectness logic, and
Paul talked about using Farkas' Lemma for invariant generation [Recording] |
Apr 22 | Disjunctive termination arguments [Recording] |
Apr 24 | Student project presentations |
From Dornsife's academic conduct policy: Plagiarism—presenting someone else's ideas as your own, either verbatim or recast in your own words—is a serious academic offense with serious consequences. Please familiarize yourself with the discussion of plagiarism in SCampus in Part B, Section 11, "Behavior Violating University Standards." Other forms of academic dishonesty are equally unacceptable. See additional information in SCampus and university policies on scientific misconduct, here.
Discrimination, sexual assault, intimate partner violence, stalking, and harassment are prohibited by the university. You are encouraged to report all incidents to the Office of Equity and Diversity / Title IX Office here, and / or to the Department of Public Safety. This is important for the health and safety of the whole USC community. Faculty and staff must report any information regarding an incident to the Title IX Coordinator who will provide outreach and information to the affected party. The sexual assault resource center webpage fully describes reporting options. Relationship and Sexual Violence Services webpage provides 24/7 confidential support.
Note on collaborative work: For collaborative projects, students are expected to have equal distribution of work. If there is any perceived imbalance in the collaborative project, the student should bring this to the attention of the instructor or the teaching assistant.
Assistance with writing and disabilities: Several USC's schools provide support for students who need help with scholarly writing. Check with your advisor or program staff to find out more. Students whose primary language is not English should check with the American Language Institute which sponsors courses and workshops specifically for international graduate students. The Office of Disability Services and Programs provides certification for students with disabilities and helps arrange the relevant accommodations. If an officially declared emergency makes travel to campus infeasible, USC Emergency Information will provide safety and other updates, including ways in which instruction will be continued by means of Blackboard, teleconferencing, and other technology.
Last updated: Wed Apr 24 02:34:12 PM PDT 2024