Recursion and Induction CS 389R

A UT CS Graduate Course

Course Information

Location: GDC 7.808 (South building)
Time: Tuesdays and Thurdays, from 12:30pm to 2:00pm
Unique Number: 52325
Google Group: utexas-cs389r-spring2017
Professor: Warren A. Hunt, Jr.
Office: GDC 7.818 (South building)
Office Hours: Tuesdays and Thursdays, from 2:15pm to 3:45 pm, GDC 3rd floor atrium
Email: hunt at cs dot utexas dot edu
Teaching Assistant: Ben Selfridge
TA Office: GDC 7.814F (South building)
TA Hours: Mondays and Wednesdays, from 12:00pm to 1:30pm, GDC 3rd floor atrium
Also available by request.
TA Email: ben nospace self at cs dot utexas dot edu
Reserved study room: GDC 7.808 (South building)
Reserved room times: Monday through Thursday, from 2:00pm to 3:30pm

This course concerns itself with mathematically modeling computation and analyzing these models. Modeling and analysis are critical skills when building software of any size, generally, it much cheaper to fix conceptual errors before anything is implemented. We will see how to model different systems and how program analysis can be used to help in the development of hardware and software systems.

A series of increasingly difficult problems will be assigned. Some of these problems will be discussed in class. Class participation is expected, and student grades will, in part, reflect each student's contributions. Not showing up for class is a sure way to have a student's class-participation grade lowered. There will be two in-class exams and several in-class quizzes. Each student will work on a project proposed by the student. Students will present their projects in class at the end of the semester, and they will give interim reports.

We will first learn something about the ACL2 logic . We will write recursive definitions and use induction to analyze them; this will take several weeks. The next part of the course will be spent formalizing the syntax and semantics of a language to specify and decide Boolean functions. We will discuss the specification and implementation of a SAT solver and checker.

The remainder of the semester will be spent considering other topics involving the use of ACL2 to specify complex systems (e.g., phylogenetics, hardware description languages, microprocessor specifications, regular expressions). Students may also present problems of general interest.

The rate outlined by the class syllabus is aggressive; that is, my zeal to transmit as much information early in this course will be tempered by the rate at which the class can absorb the information being presented. Thus, the dates of homework assignments will be set dynamically to reflect our progress; homework problems concerning a specific topic will not be due until at least a week after that topic has been discussed in class.

Each student will propose a project topic on which to work prior to the spring break. In the later part of the course, the demands from homework assignments will be reduced with students spending more of their time on their projects.

There will be two exams given. Homework will (generally) be assigned each week, and due either nine days or two weeks later (with some exceptions). The weighting of the grades for the various aspects of the course are: in-class exams - 30% (15% for the first exam and 15% for the last exam), homework - 30%, class project - 30%, and class participation 10%. The lowest homework grade will be dropped in the computation of the final homework grade. Homework will not be accepted late. Projects must be submitted by the last day of our class (May 5th). The examinations must be taken at the scheduled time.


Date Topic Reading Homework Materials from Class
January 17
Course Introduction, Example Uses Recursion and Induction Notes
Sections 1-7
Homework 1 assigned sum-to-n.c
January 19
Basic Concepts Recursion and Induction Notes
Sections 8-9
Lecture Notes
January 24
Definitions, Axioms Recursion and Induction Notes
Sections 10-11
Homework 2 assigned Lecture Notes
January 26
Axioms, Terms as formulas, Definitions (revisited) Lecture Notes
January 31
Structural Recursion Homework 1 due
Lecture Notes
February 2
Structural Induction Homework 3 assigned Lecture Notes
February 7
Structural Induction and ACL2 Proof Checker Homework 2 due Lecture Notes
February 9
Structural Induction and ACL2 Proof Checker continued Recursion and Induction Notes
Sections 12-13
Lecture Notes
February 14
Peano Arithmetic and ACL2 Arithmetic Recursion and Induction Notes
Sections 14-15
Homework 3 due
Homework 4 assigned
Lecture Notes
February 16
Inadequacies of Structural Recursion Recursion and Induction Notes
Sections 16-17
Lecture Notes
Two problems from class
February 21
Guest Lecture: Dr. J Moore
"The Method" and JVM Modeling
Lecture Notes
February 23
Ordinals, Definitional Principle, and Induction Principle Homework 4 due
Homework 5 assigned
February 28
A Boolean Expression Language: BDDs A Boolean Expression Language
Introduction to the Theorem Prover
March 2
March 7
In-Class Project Proposals Homework 5 due
Homework 6 assigned
March 9
In-Class Project Proposals
March 14
Spring Break
March 16
Spring Break
March 21
Project Proposal Summaries ALU Specification and Proof Example
March 23
Hardware Modeling v-adder-example.lisp DE2 HDL Description
See Texas Instruments TTL Data Manual
March 28
SAT Solver/Checker example project and modeling Homework 6 due Example SAT Proposal
In-Class SAT Model
March 30
SAT Solver/Checker example project and modeling, continued
April 4
Interim Project Reports and Questions
April 6
Interim Project Reports and Questions
April 11
Hardware Description Language Specification
April 13
Hardware Description Language Proofs
April 18
Verified Hardware Circuit Specification Generation
April 20
The FM9001 Microprocessor Specification and Verification
April 25
Review, general disuccsion questions
April 27
Final Exam
May 4
Final student presentations
May 6
Final student presentations


Homework will generally be assigned regularly. You should bring your finished homework to class; we may discuss it or we may work a problem or two during class. Late homework is not accepted, but note that your lowest homework grade will be dropped. Assignments will appear here as the semester progresses. Please show your work -- partial credit cannot be awarded if just an incorrect answer is given. Each homework must have a homework cover sheet attached to the front. Only write the information requested on this cover sheet; do not include your UT ID number nor your Taxpayer ID number.


There are no specific prerequisites for this class. Students are expected to have graduate standing, or to have received the instructor's permission to take this class.

In general, the information found in Code of Conduct is a good guide on how to conduct yourself in this class. Additional general information about College of Natural Sciences (CNS) class coursework and procedures can be found in Vice Provost Laude's memorandum to the CNS faculty.

This course should comply with the requirements of the University and the State of Texas. Texas House Bill 2504 specifies a number of items regarding course materials and instructor qualifications: Hunt. In addition, the material contained in the class webpages are designed to be compliant with Gretchen Ritter's (Vice Provost for Undergraduate Education and Faculty Governance) August 3, 2012, memorandum. Ritter's memorandum also addresses issues concerning campus safety and security. Please familiarize yourself with this information, and let us know if you believe the class Website does not comply with these requirements.

Any scholastic dishonesty will be referred to the Dean of Students Office. The following passage is taken from the University of Texas at Austin Information Handbook for Faculty.

    The Discipline Policies Committee believes that in most cases of scholastic dishonesty the student forfeits the right to credit in that course, and that a penalty of "F" for the course may be warranted. In addition to the academic penalties assigned by a faculty member, the Dean of Students or the hearing officer may assign one or more of the University discipline penalties listed in the "General Information" bulletin, Appendix C, Sections 11-501 and 11-502. Certain types of misconduct, such as a student substituting for someone else on an exam or having someone substitute for the student, submitting a purchased term paper, or altering academic records, have usually involved a penalty of suspension from the University.

As a reminder, the "UT Code of Conduct" is included below, and additional information on-line where one may find additional information (through additional links) about what constitutes plagiarism, cheating, etc. Specifically, the Academic Policies and Procedures of UT Austin may be consulted if you have any questions.

    The core values of the University of Texas at Austin are learning, discovery, freedom, leadership, individual opportunity, and responsibility. Each member of the University is expected to uphold these values through integrity, honesty, trust, fairness, and respect toward peers and community.

We fully support the University's scholastic honesty policies, and we will follow the University's policies in the event of any scholastic dishonesty. If you are ever unsure whether some act would be considered in violation of the University's policies, do not hesitate to ask your instructors or other University academic representatives.

Students with disabilities may request appropriate academic accommodations from the Division of Diversity and Community Engagement, Services for Students with Disabilities, 512-471-6259, or follow this link.

A notice regarding accommodations for religious holidays. By UT Austin policy, you must notify us of your pending absence at least fourteen days prior to the date of observance of a religious holy day. If you must miss a class, an examination, a work assignment, or a project in order to observe a religious holy day, you will be given an opportunity to complete the missed work within a reasonable time after the absence.

The following recommendations regarding emergency evacuation from the Office of Campus Safety and Security, 512-471-5767, or see the safety office website.

Occupants of buildings on The University of Texas at Austin campus are required to evacuate buildings when a fire alarm is activated. Alarm activation or announcement requires exiting and assembling outside. Familiarize yourself with all exit doors of each classroom and building you may occupy. Remember that the nearest exit door may not be the one you used when entering the building. Students requiring assistance in evacuation shall inform their instructor in writing during the first week of class. In the event of an evacuation, follow the instruction of faculty or class instructors. Do not re-enter a building unless given instructions by the following: Austin Fire Department, The University of Texas at Austin Police Department, or Fire Prevention Services office.

Information about emergency evacuation routes and emergency procedures is available.