let s' = aux ctx s in
C.Lambda (n, s', aux ((decl n s')::ctx) t)
| C.LetIn (n,s,t) ->
- let s' = aux ctx s in
- C.LetIn (n, s, aux ((def n s')::ctx) t)
+ (* the term is already in weak head normal form *)
+ assert false
| C.Appl (h::l) -> C.Appl (h::(List.map (aux ctx) l))
| C.Appl [] -> assert false
| C.Const (uri,exp_named_subst) ->
List.map (fun (n,t) -> n,aux ctx t) exp_named_subst)
| C.MutCase (sp,i,outt,t,pl) ->
C.MutCase (sp,i, aux ctx outt, aux ctx t, List.map (aux ctx) pl)
+(*CSC: to be completed, I suppose *)
| C.Fix _ -> t
| C.CoFix _ -> t