Results 1 
4 of
4
A SizeAware Type System with Algebraic Data Types  With proofs of soundness and decidability
, 2008
"... We present a sizeaware type system for a firstorder functional language with algebraic data types, where types are annotated with polynomials over size variables. We define how to generate typing rules for each data type, provided its user defined size function meets certain requirements. As an e ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
We present a sizeaware type system for a firstorder functional language with algebraic data types, where types are annotated with polynomials over size variables. We define how to generate typing rules for each data type, provided its user defined size function meets certain requirements. As an example, a program for balancing binary trees is type checked. The type system is shown to be sound with respect to the operational semantics in the class of shapely functions. Type checking is shown to be undecidable, however, decidability for a large subset of programs is guaranteed.
Normalization by hereditary substitutions
"... We analyze a normalization function for the simply typed λcalculus based on hereditary substitutions, a technique developed by Pfenning et al. The normalizer is implemented in Agda, a total language where all programs terminate. It requires no termination proof since it is structurally recursive wh ..."
Abstract
 Add to MetaCart
We analyze a normalization function for the simply typed λcalculus based on hereditary substitutions, a technique developed by Pfenning et al. The normalizer is implemented in Agda, a total language where all programs terminate. It requires no termination proof since it is structurally recursive which is recognized by Agda’s termination checker. Using Agda as an interactive theorem prover we establish that our normalization function precisely identifies βηequivalent terms and hence can be used to decide βηequality. An interesting feature of this approach is that it is clear from the construction that βηequality is primitive recursive.
Author manuscript, published in "Mathematically Structured Functional Programming 2010 (2010)" Hereditary Substitutions for Simple Types, Formalized
, 2012
"... We analyze a normalization function for the simply typed λcalculus based on hereditary substitutions, a technique developed by Pfenning et al. The normalizer is implemented in Agda, a total language where all programs terminate. It requires no termination proof since it is structurally recursive wh ..."
Abstract
 Add to MetaCart
We analyze a normalization function for the simply typed λcalculus based on hereditary substitutions, a technique developed by Pfenning et al. The normalizer is implemented in Agda, a total language where all programs terminate. It requires no termination proof since it is structurally recursive which is recognized by Agda’s termination checker. Using Agda as an interactive theorem prover we establish that our normalization function precisely identifies βηequivalent terms and hence can be used to decide βηequality. An interesting feature of this approach is that it is clear from the construction that βηequality is primitive recursive.