As an application of a system designed for concurrent program verification, we describe a formalization and mechanical proof of the correctness of Ben-Ari's incremental garbage collection algorithm. The proof system is based on the Manna-Pnueli model of concurrency and is implemented as an extension of the Boyer-Moore prover. The correctness of the garbage collector is represented by two theorems, stating (a) that nothing except garbage is ever collected (safety), and (b) that all garbage is eventually collected (liveness). We compare our mechanized treatment with several published proofs of the same results.
Full paper: ps, pdf (appeared in Formal Aspects of Computing 6: 359-390, 1994.)