let compsubst1 s2 s1 =
  (List.map (fun (x,t) -> (x,apply_subst s2 t)) s1)@
  let vars_s1=(List.map fst s1) in
    (List.filter (fun (x,t)-> not (List.mem x vars_s1)) s2)