Сделал более корректное сравнение в HalfsetVallue.IsValid