Results 1 
2 of
2
Implementing a Normalizer Using Sized Heterogeneous Types
 Journal of Functional Programming, MSFP’06 special issue
"... In the simplytyped lambdacalculus, a hereditary substitution replaces a free variable in a normal form r by another normal form s of type a, removing freshly created redexes on the fly. It can be defined by lexicographic induction on a and r, thus, giving rise to a structurally recursive normalize ..."
Abstract

Cited by 13 (2 self)
 Add to MetaCart
(Show Context)
In the simplytyped lambdacalculus, a hereditary substitution replaces a free variable in a normal form r by another normal form s of type a, removing freshly created redexes on the fly. It can be defined by lexicographic induction on a and r, thus, giving rise to a structurally recursive normalizer for the simplytyped lambdacalculus. We generalize this scheme to simultaneous substitutions, preserving its simple termination argument. We further implement hereditary simultaneous substitutions in a functional programming language with sized heterogeneous inductive types, Fωb, arriving at an interpreter whose termination can be tracked by the type system of its host programming language.
A Solution to the PoplMark Challenge using de Bruijn indices in Isabelle/HOL
"... We present a solution to the PoplMark challenge designed by Aydemir et al., which has as a goal the formalization of the metatheory of System F<:. The formalization is carried out in the theorem prover Isabelle/HOL using an encoding based on de Bruijn indices. We start with a relatively simple ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
We present a solution to the PoplMark challenge designed by Aydemir et al., which has as a goal the formalization of the metatheory of System F<:. The formalization is carried out in the theorem prover Isabelle/HOL using an encoding based on de Bruijn indices. We start with a relatively simple formalization covering only the basic features of System F<:, and explain how it can be extended to also cover records and more advanced binding constructs. We also discuss different styles of formalizing the evaluation relation, and how this choice influences executability of the specification.