[Я сделал это в правильный ответ, потому что кто-то дал это -1]
Если какое-либо предложение разрешено добавлять, то язык будет пустым - очевидно, что к любой выполнимой формуле можно добавить 3-предложение c, составленное из переменных, которые не появляются в F : F ∪ { c } будет выполнимым.FcFF∪{c}
Если добавленные предложения должны использовать переменные , то язык находится в P.F
Обоснование заключается в следующем:
Возьмем любой , то есть F ∈ S A T и для любого 3-п с о переменных F , F ∪ { C } ∈ U N S T . Скажите c = l 1 ∨ l 2 ∨ l 3 ∉ F , где l i - литерал. Поскольку F ∪ { c } является UNSAT, все модели F должны иметь l iF∈LF∈SATcFF∪{c}∈UNSATc=l1∨l2∨l3∉FliF∪{c}F (для i = 1 , 2 , 3 ) - потому что если в некоторой модели, например, l 1 = 1 , то она будет удовлетворять c, и поэтому F ∪ { c } . Теперь предположимчто существует другое условие C ' , которое так жекак с , но с одним или более буквальным переворачивается такимчто с ' ∉ F , скажем , гр ' = ¬ л 1 ∨ л 2 ∨ л 3li=0i=1,2,3l1=1cF∪{c}c′cc′∉Fc′=¬l1∨l2∨l3, Тогда по тому же аргументу все модели должны иметь l 1 = 1 . Таким образом, необходимым условием для F ∈ L является то, что для каждого предложения c ∈ F есть ровно 6 других предложений в F, которые используют три переменные c - давайте назовем эти подмножества из 7 предложений F- блоков . Обратите внимание, что каждый блок подразумевает уникальное удовлетворяющее присваивание его переменным. Когда это необходимое условие выполнено, F либо однозначно выполнимо, либо неудовлетворительно. Два случая можно различить, проверяя, являются ли назначения, подразумеваемые блоками FFl1=1F∈Lc∈FFcF FF Столкновение, которое можно четко сделать в линейном времени.