Written Assignment #2
=====================
Due 3/29 at 11:59pm, submit via Blackboard
In either LaTeX or in a .txt file:
0) Write separation-logic specifications, in the form of pre- and post-conditions,
for the following list-manipulating programs:
- list_sum (sums the elements of a null-terminated input list)
- list_reverse (reverses the elements of a null-terminated input list, as in class)
- list_append (appends two lists)
- tree_sum (sums the elements of a binary tree)
Give complete definitions for any predicates you use in specifications.
For example, to specify list_sum, you'll need a specification in SL for
"List" [a list datastructure in memory] as well a mathematical
characterization of sequences.
1) Prove in separation logic -- in the form of an annotated program in an
Imp-like imperative language -- that the four programs listed in 0) meet
their specifications.
2) Work on your final projects! [0) and 1) should be relatively easy.]