let restrict i x s =
  try
    let b = fst(Map.find x s.find) in  
      Trace.msg (to_string i) "Restrict" x Term.pp;
      {find = Map.remove x s.find;
       inv = Map.remove b s.inv;
       use = Use.remove x b s.use}
  with
      Not_found -> s