Many lectures will be interactive demos. Lecture material will not always be available, since we'll deviate from the ``script.'' But I will post here such material as I think helpful. Homework assignments will be announced in class; I will try to update the links here as we go but do not assume you can pass this course by just doing the work mentioned here!.
.lisp
file with your series of defuns in it. Some of the functions you must define
are already defined as functions in the "ACL2" package. You should just change
the names of your functions. For example, when you're asked to define
update-nth, you may define instead my-update-nth.I, namely this file.zp,
natp, +, -, *,
mod, etc. I discussed Problem 39 (page 15), the
tree-copy proof (page 16), and Problem 41 (page 17) and the
theorem that (equal (len (app a b)) (+ (len a) (len b))).
mapnil
is
(defun mapnil (x)
(if (consp x)
(cons nil (mapnil (cdr x)))
nil))
Problem-44 and
Problem-61 in the Recursion
and Induction Solutions. You will note that the proofs involve some
lemmas, specifically the lemmas identified in the :in-theory
hints.(len x) = (len1 x 0)
by first proving (natp n) -> (+ (len x) n) = (len1 x n).stacks and ending with
nth-update-nth (lines 692 - 756).
X X X X
X X X X X X X X
50 55 60 65 70 75 80 85 90 95 100
INVOKESTATIC, RETURN, XRETURN, and
INVOKEVIRTUAL. and them to the JVM's. The main difference is
involement of type signatures in the JVM versionsINVOKESPECIAL to our M5. To do the subsequent
examples, you should reload and recertifyirun to step through my solution to Problem Set 10.
Then I discussed INVOKEVIRTUAL, following the script in
lecture19.lispTHROW in
m5.lisp. The example I used is in
lecture22.lisp