Гиперповерхностью называется проективное многообразие, определяемое одной формой (однородным многочленом). Кривая на плоскости и поверхность в трехмерном пространстве – это гиперповерхности. Предполагается, что гиперповерхность задана свободной от квадратов формой над полем характеристики нуль, в котором арифметические операции вычислимы за полиномиальное число битовых операций, например, над полем рациональных чисел [1]. Точка называется особой, если все первые частные производные этой формы обращаются в нуль. Поиск особой точки сводится к поиску нетривиального решения системы однородных алгебраических уравнений. В малых размерностях эта задача легко решается посредством символьных вычислений, например, в Maple или MathPartner [2]. Однако в больших размерностях задачи распознавания гладкости и поиска особой точки на кубической гиперповерхности алгоритмически трудные.
Обсуждая вычислительную сложность, мы рассматриваем символьные вычисления, где не происходит ни округления числовых значений, ни приближения мероморфных функций рациональными. Работая над расширением поля рациональных чисел, методы компьютерной алгебры нельзя заменить численными методами. Если не оговорено противное, временем работы алгоритма называется число арифметических операций над полем, операций сравнения и копирования чисел, а также операций над индексами. Более формально, мы рассматриваем вычисления на обобщенных регистровых машинах над некоторым полем [3]. Если каждая арифметическая операция над полем вычислима за полиномиальное число битовых операций, вычислимость за полиномиальное время на обобщенной регистровой машине над этим полем, вообще говоря, не влечет вычислимость за полиномиальное число битовых операций, поскольку запись ответа может иметь экспоненциальную длину.