* http://cs.unibo.it/helm/.
*)
-exception UnificationFailure of string;;
+type failure_msg
+
+exception UnificationFailure of failure_msg;;
exception Uncertain of string;;
-exception AssertFailure of string;;
+exception AssertFailure of failure_msg;;
+
+val failure_msg_of_string: string -> failure_msg
+val explain_error: failure_msg -> string
(* fo_unif metasenv context t1 t2 *)
(* unifies [t1] and [t2] in a context [context]. *)
(* The returned substitution can be directly *)
(* withouth first unwinding it. *)
val fo_unif :
- Cic.metasenv -> Cic.context -> Cic.term -> Cic.term ->
- Cic.substitution * Cic.metasenv
+ Cic.metasenv -> Cic.context ->
+ Cic.term -> Cic.term -> CicUniv.universe_graph ->
+ Cic.substitution * Cic.metasenv * CicUniv.universe_graph
(* fo_unif_subst metasenv subst context t1 t2 *)
(* unifies [t1] and [t2] in a context [context] *)
(*CSC: fare un tipo unione Unwinded o ToUnwind e fare gestire la
cosa all'apply_subst!!!*)
val fo_unif_subst :
- Cic.substitution ->
- Cic.context -> Cic.metasenv -> Cic.term -> Cic.term ->
- Cic.substitution * Cic.metasenv
+ Cic.substitution -> Cic.context -> Cic.metasenv ->
+ Cic.term -> Cic.term -> CicUniv.universe_graph ->
+ Cic.substitution * Cic.metasenv * CicUniv.universe_graph