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

Copyright(C) 2015 Richard Eisenberg
LicenseBSD-style (see LICENSE)
MaintainerRichard Eisenberg (eir@cis.upenn.edu)
Stabilityexperimental
Safe HaskellNone
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.