Homework Assignment 4 CS 389r Unique Number: 51350 Spring, 2025 Given: February 11, 2025 Due: February 20, 2025 This homework asks that you use the ACL2 Proof Builder to perform mechanical proofs for problems 40, 41, 43, 44, and 45. We will discuss the ACL2 Proof Builder in class on February 11th and 13th. In addition, this homework asks for hand-written solutions to problems 48 and 49. You should work these proofs out on paper, and turn in your work. Your proofs should look similar to the example proof of: (equal (tree-copy x) x) given in the R-AND-I-STRUCTURAL-INDUCTION section of the online, class notes. It is important that you identify the variable(s) on which you are inducting, and that you make clear how you are using the Principle of Structural Induction. Like HW 3, this homework will take quite a bit of time -- but this homework is less labor intensive than HW 3. One may use the ACL2 system on any of the public Linux machines. For a list of the ~170 available machines, see: https://apps.cs.utexas.edu/unixlabstatus/ When you have logged into one of these computers, the following command will start ACL2: /p/bin/acl2 To use the proof builder, see the ACL2 documentation for the proof builder: https://www.cs.utexas.edu/~moore/acl2/v8-6/combined-manual/?topic=ACL2____PROOF-BUILDER We will use a subset of the available commands; see: https://www.cs.utexas.edu/~moore/acl2/v8-6/combined-manual/?topic=ACL2____PROOF-BUILDER-COMMANDS-SHORT-LIST For your homework, you may not use these proof-builder commands: ACL2-pc::bash ACL2-pc::prove These two commands allow access to the automated portion of the ACL2 system; this would make your homework solutions a one-step process. Although not needed for this assignment, you may use these two commands only with the restrictions below. ACL2-pc::= ACL2-pc::claim For the ``ACL2-pc::='' command, you may not provide any arguments. For the ``ACL2-pc::claim'' command, your second argument must be 0.