let update_fresh_terms fresh_terms = 
  List.map2
    (fun g_var c_var ->
      if (List.exists (fun x -> Base x = g_var) fresh_terms) then
        (match g_var with
          Base(Var(i)) -> Prime(Var(i))
        | _ -> Base(Var(0)))
      else
        (match c_var with 
          Prime(_) -> g_var
        | _ -> c_var))