* http://cs.unibo.it/helm/.
*)
+(* TODO unify exceptions *)
+
exception CicReductionInternalError;;
exception WrongUriToInductiveDefinition;;
exception Impossible of int;;
| (k, e, ens, (C.LetIn (_,m,t) as t'), s) ->
let m' = RS.compute_to_env ~reduce ~unwind k e ens m in
reduce (k+1, m'::e, ens, t, s)
- | (_, _, _, C.Appl [], _) -> raise (Impossible 1)
+ | (_, _, _, C.Appl [], _) -> assert false
| (k, e, ens, C.Appl (he::tl), s) ->
let tl' =
List.map
fl1 fl2 true
| (C.Cast _, _) | (_, C.Cast _)
| (C.Implicit, _) | (_, C.Implicit) ->
- raise (Impossible 3) (* we don't trust our whd ;-) *)
+ assert false
| (_,_) -> false
end
in