let add unif unif_combi (to_purify : bool) (n : int) (t : term)
(tas : t_subst list) (subs : t_subst list) =
let rec add_sub tas = function
| s::suite ->
( match valeur n s with
(* No substitution for the variable n *)
| Var(nn) ->
(try add_sub ((add_elem to_purify nn t s)::tas) suite with
| No_Solution -> add_sub tas suite
| NeedXorUnification(nn,tt,ss) ->
add_sub (merge tas (unif_combi false (Var nn) tt [ss])) suite
)
| tt -> add_sub (merge tas (unif to_purify tt t [s])) suite )
| _ -> tas
in
add_sub tas subs