Implementing a normalizer using sized heterogeneous types

  • Authors:
  • Andreas Abel

  • Affiliations:
  • Institut für Informatik, Ludwig-Maximilians-Universität München, München, Germany

  • Venue:
  • MSFP'06 Proceedings of the 2006 international conference on Mathematically Structured Functional Programming
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

In the simply-typed lambda-calculus, 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 simply-typed lambda-calculus. 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ω∧, arriving at an interpreter whose termination can be tracked by the type system of its host programming language.