Results 1 
2 of
2
Implementing a normalizer using sized heterogeneous types
 In Workshop on Mathematically Structured Functional Programming, MSFP
, 2006
"... 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 7 (1 self)
 Add to MetaCart
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.
Noname manuscript No. (will be inserted by the editor) A Solution to the PoplMark Challenge using de Bruijn indices in Isabelle/HOL
"... the date of receipt and acceptance should be inserted later Abstract 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 encodi ..."
Abstract
 Add to MetaCart
the date of receipt and acceptance should be inserted later Abstract 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. 1