Это звучит как описание декларативного языка (в частности, языка логического программирования), наиболее известным примером которого является Пролог. Я понятия не имею, является ли Пролог распараллеливаемым.
По моему опыту, Prolog отлично подходит для решения проблем удовлетворения ограничений (тех, где есть набор условий, которые должны быть выполнены) - вы определяете свой входной набор, определяете ограничения (например, порядок, который должен быть наложен на ранее неупорядоченные входы), но возможны патологические случаи, и иногда процесс логического вывода занимает очень много времени.
Если вы можете определить свою проблему в виде булевой формулы, вы можете добавить к ней решатель SAT, но учтите, что задача 3SAT (булево назначение переменных по предложениям с тремя переменными) является NP-полной, и ее первый порядок -Logic старший брат, проблема квантифицированной логической формулы (которая использует экзистенциальный квантификатор, а также универсальный квантификатор), является PSPACE-полной.
Есть несколько очень хороших доказателей теорем, написанных на OCaml и других языках FP; здесь это целая куча.
И, конечно, всегда есть линейное программирование с помощью симплекс-метода.