Contribution: GC
Formal Verification of an Incremental Garbage Collector
Authors
- Solange Coupet-Grimal and Catherine Nouvet
Description
We specify an incremental garbage collection algorithm and we give a formal proof of its correctness. The algorithm is represented as an infinite transition system and we establish safety and liveness properties. This work relies on an axiomatization of LTL and is based on a co-inductive representation of programs executions. Although motivated by integrating the dynamic memory management to the Java Card platform, this study applies more generally to real-time embedded systems and to devices with virtually infinite memory.
Keywords
linear temporal logic, finite sets, co induction, garbage collection
README
Abstract: We specify an incremental garbage collection algorithm and we give a formal proof of its correctness. The algorithm is represented as an infinite transition system and we establish safety and liveness properties. This work relies on an axiomatization of LTL and is based on a co-inductive representation of programs executions. Although motivated by integrating the dynamic memory management to the Java Card platform, this study applies more generally to real-time embedded systems and to devices with virtually infinite memory. This work is documented in an article entitled Formal Verification of an Incremental Garbage Collector to appear in the Journal on Logic and Computation A postcript version can be found at this URL http://www.lif.univ-mrs.fr/~solange/publications Contents card : axiomatisation of finite sets gc: specication of the garbage collector lemma-step: properties of transitions lib_arith: arithmetic lemmas liveness: proof of liveness property logique: axiomatization of LTL mesure: existence and properties of a measure on the states reachable: definition of reachability safety: proof of a safety property
Available files
- GC.mesure.parameters_card.html
- GC.lemma_step.lemma_mark.html
- GC.safety.nogreyaccnblackn.html
- GC.safety.accnotfree.html
- GC.lib_arith.lib_S_pred.html
- GC.logique.well_founded.html
- GC.mesure.grey_card.html
- GC.lemma_step.lemma_call.html
- GC.mesure.safe_card.html
- GC.lemma_step.lemma_remove.html
- GC.card.card_facts.html
- GC.lemma_step.lemma_step.html
- GC.liveness.until_zero.html
- GC.liveness.liveness.html
- GC.lib_arith.lib_minus.html
- GC.lemma_step.lemma_alloc.html
- GC.card.card.html
- GC.lemma_step.lemma_stop.html
- GC.liveness.notacc_init.html
- GC.reachable.reachable.html
- GC.safety.safety.html
- GC.mesure.white_card.html
- GC.liveness.notacc_white_ancestor.html
- GC.liveness.notacc_black_nogrey.html
- GC.mesure.black_card.html
- GC.lemma_step.lemma_add.html
- GC.lemma_step.lemma_free.html
- GC.logique.LTL.html
- GC.lib_arith.lib_plus.html
- GC.mesure.unicite_mes.html
- GC.gc.gc.html
- GC.mesure.mesure.html
- GC.gc.parameters.html
- GC.liveness.notfree_notacc.html
- GC.safety.sweepnogrey.html
- GC.liveness.fairstr.html
- GC.safety.rtgreyorblack.html
- GC.lemma_step.lemma_free1.html
- GC.lib_arith.lemme_arith.html
- GC.liveness.notacc_white_nogrey.html
- GC.safety.noedgeblacktowhite.html
- GC.lemma_step.lemma_end.html
