(*CSC: dovrebbe diventare da sinistra verso destra: *)
(*CSC: t{a=a/A;b/a} ==> \H:a=a.H{b/a} ==> \H:b=b.H *)
(*CSC: per la roba che proviene da Coq questo non serve! *)
-let subst_vars exp_named_subst =
+let subst_vars exp_named_subst t =
(*
debug_print (lazy ("@@@POSSIBLE BUG: SUBSTITUTION IS NOT SIMULTANEOUS")) ;
*)
List.map (function (uri,t) -> (uri,substaux k t)) exp_named_subst' @
(filter_and_lift exp_named_subst)
in
- substaux 1
+ if exp_named_subst = [] then t
+ else substaux 1 t
;;
(* subst_meta [t_1 ; ... ; t_n] t *)