| C.MutCase (uri,n1,ty,te,patterns) ->
let connames_and_argsno =
(match fst(CicEnvironment.get_obj CicUniv.empty_ugraph uri) with
- C.InductiveDefinition (dl,_,_,_) ->
+ C.InductiveDefinition (dl,_,paramsno,_) ->
let (_,_,_,cons) = get_nth dl (n1+1) in
List.map
(fun id,ty ->
(* this is just an approximation since we do not have
reduction yet! *)
- let rec count_prods =
+ let rec count_prods toskip =
function
- C.Prod (_,_,bo) -> 1 + count_prods bo
+ C.Prod (_,_,bo) when toskip > 0 ->
+ count_prods (toskip - 1) bo
+ | C.Prod (_,_,bo) -> 1 + count_prods 0 bo
| _ -> 0
in
- id, count_prods ty
+ id, count_prods paramsno ty
) cons
| _ -> raise CicPpInternalError
)