Adrian Dapprich: Bachelor's Thesis

Saarland University Computer Science

Generating Infrastructural Code for Terms with Binders using MetaCoq

Advisor: Andrej Dudenhefner

Summary

When formalizing languages with binders (think lambda abstractions or logical quantifiers) one often needs to reason about substituting values for the bound variables. In contrast to paper proofs where "obvious" rules about substitutions can be informally used, when one mechanizes such a language in Coq one often needs to write some amount of theoretically uninteresting but necessary infrastructure lemmas about substitution.
The Autosubst project of Kathrin Stark is a solution to this problem by automatically generating for a given input language the inductive types for the language, definitions of the substitution operation and infrastructure lemmas about substitutions.
This bachelor thesis is then concerned with two things: First, building a reimplementation of Autosubst in the OCaml language (the implementation language of Coq) in order to reuse code from the Coq code base and second, reimplementing Autosubst again in MetaCoq, a library enabling metaprogramming inside Coq. We will then also evaluate the usability and performance of the two approaches in case studies.
A partial Autosubst implementation in OCaml already existed from the author's ACP project. The MetaCoq implementation will be implemented from scratch.

Goals

Maybe Goals

Resources

References


Legal notice, Privacy policy