glambda-1.0.2: A simply typed lambda calculus interpreter, written with GADTs

Copyright(C) 2015 Richard Eisenberg
LicenseBSD-style (see LICENSE)
MaintainerRichard Eisenberg (rae@cs.brynmawr.edu)
Stabilityexperimental
Safe HaskellSafe
LanguageHaskell2010

Language.Glambda.Shift

Description

de Bruijn shifting and substitution

Synopsis

Documentation

shift :: forall ts2 t ty. Exp ts2 ty -> Exp (t ': ts2) ty Source #

Convert an expression typed in one context to one typed in a larger context. Operationally, this amounts to de Bruijn index shifting. As a proposition, this is the weakening lemma.

subst :: forall ts2 s t. Exp ts2 s -> Exp (s ': ts2) t -> Exp ts2 t Source #

Substitute the first expression into the second. As a proposition, this is the substitution lemma.