%%% Translation to representation using de Bruijn indices %%% Version restricted to pure lambda-calculus %%% Author: Frank Pfenning, based on [Hannan & Pfenning 92] trans : env -> exp' -> exp -> type. %name trans C. vtrans : val -> exp -> type. %name vtrans U. % Functions tr_lam : trans K (lam' F) (lam E) <- {w:val} {x:exp} vtrans w x -> trans (K ; w) F (E x). tr_app : trans K (app' F1 F2) (app E1 E2) <- trans K F1 E1 <- trans K F2 E2. % Variables tr_1 : trans (K ; W) 1 E <- vtrans W E. tr_^ : trans (K ; W) (F ^) E <- trans K F E. % Values vtr_lam : vtrans (clo K (lam' F)) (lam E) <- trans K (lam' F) (lam E).