Use a named representation of binding in heap_lang.
We can use a named representation because we only substitute closed values. This idea is borrowed from Pierce's Software Foundations. The named representation has the following advantages: * Programs are much better readable than those using De Bruijn indexes. * Substitutions on closed terms (where all variables are explicit strings) can be performed by a mere simpl instead of Autosubst's asimpl. The performance of simpl seems better than asimpl. * Syntactic sugar refolds better.
Showing
- README 0 additions, 1 deletionREADME
- heap_lang/heap_lang.v 59 additions, 36 deletionsheap_lang/heap_lang.v
- heap_lang/lifting.v 12 additions, 11 deletionsheap_lang/lifting.v
- heap_lang/sugar.v 29 additions, 54 deletionsheap_lang/sugar.v
- heap_lang/tests.v 46 additions, 45 deletionsheap_lang/tests.v
Loading
Please register or sign in to comment