docs: def remove_technique(self, tech):
          """
          Remove an exploration technique from a list of active techniques.
  
          :param tech:    An ExplorationTechnique object.
          :type tech:     ExplorationTechnique
          """
          if not isinstance(tech, ExplorationTechnique):
              raise SimulationManagerError
  
          def _is_overriden(name):
              return getattr(tech, name).__code__ is not getattr(ExplorationTechnique, name).__code__
  
          overriden = filter(_is_overriden, ('step', 'filter', 'selector', 'step_state', 'successors'))
          hooks = {name: getattr(tech, name) for name in overriden}
          HookSet.remove_hooks(self, **hooks)
  
          self._techniques.remove(tech)
          return tech