let trivial_pp_term ~context ~subst ~metasenv =
let rec aux ctx = function
| C.Rel m ->
- (try List.nth ctx m
- with Not_found -> " -" ^ string_of_int (m - List.length context))
+ (try List.nth ctx (m-1)
+ with Failure _ -> " -" ^ string_of_int (m - List.length context))
| C.Const r -> R.string_of_reference r
- | C.Prod (name,s,t) -> " \Pi "^name^":"^aux ctx s^"."^aux (name::ctx) t
- | C.Lambda (name,s,t) -> " \lambda "^name^":"^aux ctx s^"."^aux (name::ctx) t
+ | C.Prod (name,s,t) -> "(\Pi "^name^":"^aux ctx s^"."^aux (name::ctx) t^")"
+ | C.Lambda (name,s,t) ->
+ "(\lambda "^name^":"^aux ctx s^"."^aux (name::ctx) t^")"
| C.LetIn (name,ty,t,b) ->
- " let "^name^":"^aux ctx ty^":="^aux ctx t^" in "^aux (name::ctx) b
+ "(let "^name^":"^aux ctx ty^":="^aux ctx t^" in "^aux (name::ctx) b^")"
| C.Match (_,oty,t,pl) ->
- " match " ^ aux ctx t ^ " return " ^ aux ctx oty ^ "[" ^
- String.concat "|" (List.map (aux ctx) pl) ^ "]"
+ " match " ^ aux ctx t ^ " return " ^ aux ctx oty ^ "[" ^
+ String.concat "|" (List.map (aux ctx) pl) ^ "]"
| C.Appl l -> "("^String.concat " " (List.map (aux ctx) l) ^")"
| C.Implicit _ -> "?"
| C.Meta (n,_) -> "?"^string_of_int n