code: def hit(self, to_hit):
          
  
          # translating objects to variables
          to_hit = list(map(lambda obj: self.idpool.id(obj), to_hit))
  
          # a soft clause should be added for each new object
          new_obj = list(filter(lambda vid: vid not in self.oracle.vmap.e2i, to_hit))
  
          # new hard clause
          self.oracle.add_clause(to_hit)
  
          # new soft clauses
          for vid in new_obj:
              self.oracle.add_clause([-vid], 1)
docs: This method adds a new set to hit to the hitting set solver. This
              is done by translating the input iterable of objects into a list of
              Boolean variables in the MaxSAT problem formulation.
  
              :param to_hit: a new set to hit
              :type to_hit: iterable(obj)