Это называется straight-line program и в булевом случае обычно переформулируется в терминах схем из функциональных элементов.
Итак, задача: Дана схема, реализующая некоторую функцию

(

)
Определить, является ли эта функция биекцией.
Сведем к этой задаче уже упоминавшуюся задачу о тавтологии.
Пусть задана формула, построим по ней схему, у которой выход формулы просто размножен на

выходов (это делается по формуле линейно) и прикрутим к выходам этой схемы дополнительно еще несколько операций так, чтобы

(

- i-й вход,

- i-й выход,

- новый i-й выход). Для этого потребуется

новых элементов, так что это тоже линейно.
Эта схема реализует биекцию тогда и только тогда, когда исходная формула тавтологична на всем

без набора

(ну тут уж совсем техничская деталь доказать полиномиальнцю эквивалентность тавтологии и тавтологии без одного набора)
Т.о., поставленная задача coNP-трудна.
-- Вс май 16, 2010 16:43:52 --Эта задача также лежит в coNP, т.к. ф-я

биекция тогда и только тогда. когда отображает различные точки в различные. Легко построить полиномиальную недетерминированную машину, которая останавливается на всех путях вычисления тогда и только тогда, когда выполняется это условие (выбираем недетерминированно два различных набора и вычисляем значения на них)
Значит, эта задача coNP-полна.