% The literal translation of the LF signature into Elf % omitting implicit quantifiers. % This is not operationally adequate, because of the % wrong order of subgoals. eval : exp -> exp -> type. % Natural Numbers ev_z : eval z z. ev_s : eval E V -> eval (s E) (s V). ev_case_z : eval E1 z -> eval E2 V -> eval (case E1 E2 E3) V. ev_case_s : eval E1 (s V1') -> eval (E3 V1') V -> eval (case E1 E2 E3) V. % Pairs ev_pair : eval E1 V1 -> eval E2 V2 -> eval (pair E1 E2) (pair V1 V2). ev_fst : eval E (pair V1 V2) -> eval (fst E) V1. ev_snd : eval E (pair V1 V2) -> eval (snd E) V2. % Functions ev_lam : eval (lam E) (lam E). ev_app : eval E1 (lam E1') -> eval E2 V2 -> eval (E1' V2) V -> eval (app E1 E2) V. % Definitions ev_letv : eval E1 V1 -> eval (E2 V1) V -> eval (letv E1 E2) V. ev_letn : eval (E2 E1) V -> eval (letn E1 E2) V. % Recursion ev_fix : eval (E (fix E)) V -> eval (fix E) V.