казваме, че една формула е елементарна дизюнкция, ако тя се представя във вида L1 L2 … Ln, n 0, където L1, L2, …, Ln са литерали;
казваме, че една формула е в конюнктивна нормална форма, ако тя има вида D1 & D2 & … & Dn, n 0, където D1, D2, …, Dn са елементарни дизюнкции;
за всяка безкванторна формула F, която не е атомарна дефинираме преработено отрицание -F:
ако F = true, -F = fail;
ако F = fail, -F = true;
ако F = G, -F = G;
ако F = G1 G2 … Gn, n > 1, -F = G1 & G2 & … & Gn;
ако F = G1 & G2 & … & Gn, n > 1, -F = G1 G2 … Gn;
ясно е, че за всяка формула F, която не е атомарна е изпълнено:
F -F;
за всяка безкванторна формула F дефинираме заменящо множество на F:
ако F е елементарна дизюнкция, заменящото множество на F е { F};
нека F не е елементарна дизюнкция; тогава F може да се представи във вида F = F1 F2 … Fn, където n > 0, тъй като fail е елементарна дизюнкция; при това, ако n = 1 можем да считаме, че F1 не е дизюнкция с повече от един член;
тъй като F не е елементарна дизюнкция,
то Fi не е литерал за някое i { 1, 2, …, n };
ако Fi = true, заменящото множество на F е ;
ако Fi = fail, заменящото множество на F е
{ F1 … Fi-1 Fi+1 … Fn}; при това n > 1, тъй като F не е елементарна дизюнкция;
ако Fi = G, заменящото множество на F е
{ F1 … Fi-1 -G Fi+1 … Fn}; при това G не е атомарна формула, тъй като Fi не е литерал, така че -G е дефинирано;
ако Fi = G1 & G2 & … & Gk, k > 1, заменящото множество на F е
{ F1 … Fi-1 Gj Fi+1 … Fn| j = 1, 2, …, k };
ако Fi = G1 G2 … Gk, k > 1, заменящото множество на F е
{ F1 … Fi-1 G1 G2 … Gk Fi+1 … Fn}; при това n > 1, тъй като при n = 1 имаме, че F1 не е дизюнкция с повече от един член;
съвсем лесно се вижда, че ако F е безкванторна формула, конюнкцията на елементите на кое да е заменящо множество на F е еквивалентна на F; например, в горните означения, ще покажем това в случая Fi = G1 & G2 & … & Gk, k > 1; заменящото множество на F е { F1 … Fi-1 Gj Fi+1 … Fn| j = 1, 2, …, k };
нека S е структура, v е оценка на променливите в S;
да предположим, че F S, v = 1; тогава Fj S, v = 1 за някое
j { 1, 2, …, n }; нека j i; тогава формулите в заменящото множество са дизюнкции, които имат член Fj, така че тези формули са вярни в S при оценката v конюнкцията им е вярна в S при оценката v; ако j = i, то (G1 & G2 & … & Gk)S, v = 1
G1, G2, …, Gk са вярни в S при оценката v; тогава формулите в заменящото множество са дизюнкции, които имат член Gm за някое m { 1, 2, …, k }, така че тези формули са вярни в S при оценката v конюнкцията им е вярна в S при оценката v;
обратно, нека конюнкцията на формулите в заменящото множество е вярна в S при оценката v; тогава тези формули са вярни в S при оценката v и тъй като тези формули са дизюнкции, то във всяка от тях поне един член е верен в S при оценката v;
ако за някоя формула този член е Fj за някое
j { 1, …, i-1, i+1, …, n } F е вярна в S при оценката v, тъй като F е дизюнкция, която има член Fj; ако за всички формули този член е Gm, m = 1, 2, …, k, то Fi = G1 & G2 & … & Gk е вярна в S при оценката v F е вярна в S при оценката v, тъй като F е дизюнкция, която има член Fi;
Теорема: За всяка безкванторна формула съществува еквивалентна формула в конюнктивна нормална форма;
Доказателство: нека F е безкванторна формула;
ще посочим алгоритъм, по който се построява еквивалентна на F формула в конюнктивна нормална форма;
-
M = { F };
-
за всяка формула от множеството M образуваме заменящо множество; нека M е обединението на получените заменящи множества;
-
ако M се състои само от елементарни дизюнкции, към 4.; иначе M = M, към 2.;
-
нека G е конюнкцията на всички формули от M; търсената формула е G; край;
ясно е, че G е в конюнктивна нормална форма, тъй като на последната стъпка M се състои само от елементарни дизюнкции;
на всяка стъпка, конюнкцията на формулите от M е еквивалентна на формулата F съгласно горните съображения, така че на последната стъпка получаваме, че F G;
не е трудно да се покаже, че алгоритъмът завършва след краен брой стъпки – достатъчно е да се дефинира по подходящ начин сложност на формула и да се покаже, че на всяка стъпка от алгоритъма сложността на формулите в M строго намалява, докато те не се преобразуват в елементарни дизюнкции;
Сподели с приятели: |