Forma preneksowa

Wikipedia:Weryfikowalność
Ten artykuł od 2012-02 wymaga zweryfikowania podanych informacji.
Należy podać wiarygodne źródła w formie przypisów bibliograficznych.
Część lub nawet wszystkie informacje w artykule mogą być nieprawdziwe. Jako pozbawione źródeł mogą zostać zakwestionowane i usunięte.
Sprawdź w źródłach: Encyklopedia PWN • Google Books • Google Scholar • Federacja Bibliotek Cyfrowych • BazHum • BazTech • RCIN • Internet Archive (texts / inlibrary)
Dokładniejsze informacje o tym, co należy poprawić, być może znajdują się w dyskusji tego artykułu.
Po wyeliminowaniu niedoskonałości należy usunąć szablon {{Dopracować}} z tego artykułu.

Forma preneksowa (ang. prenex form lub prenex normal form) – taka postać formuły logicznej, w której wszystkie kwantyfikatory przesunięte są na początek formuły. Inna jej nazwa to przedrostkowa postać normalna.

Każde zdanie rachunku predykatów pierwszego rzędu można sprowadzić do postaci preneksowej. Najpierw należy zmienić nazwy wszystkim zmiennym, które kolidują, na przykład:

( x . R ( x ) ) ( x . R ( x ) ) {\displaystyle (\forall x.R(x))\implies (\exists x.R(x))} na:
( x . R ( x ) ) ( y . R ( y ) ) {\displaystyle (\forall x.R(x))\implies (\exists y.R(y))}

co w żaden sposób nie zmienia znaczenia formuły.

Następnie należy przenosić kwantyfikatory coraz wyżej, zmieniając je na przeciwny za każdym razem, gdy napotkają negację:

( x . R ( x ) ) ( y . R ( y ) ) {\displaystyle (\forall x.R(x))\implies (\exists y.R(y))}
( ¬ x . R ( x ) ) ( y . R ( y ) ) {\displaystyle (\neg \forall x.R(x))\lor (\exists y.R(y))}
x . ( ¬ R ( x ) ( y . R ( y ) ) {\displaystyle \exists x.(\neg R(x)\lor (\exists y.R(y))}
x . y . ( ¬ R ( x ) R ( y ) ) {\displaystyle \exists x.\exists y.(\neg R(x)\lor R(y))}

Jeśli p ( x . q ( x ) ) {\displaystyle p\lor (\forall x.q(x))} czy też p ( x . q ( x ) ) , {\displaystyle p\land (\forall x.q(x)),} i x {\displaystyle x} nie występuje w p {\displaystyle p} (co sobie zagwarantowaliśmy zmieniając nazwy wszystkich kolidujących zmiennych), przeniesienie kwantyfikatora wyżej nie zmienia znaczenia formuły. Można to uogólnić na ogólny operator koniunkcyjny i dysjunkcyjny.

Forma preneksowa jest bardzo wygodna dla komputera, w mniejszym zaś stopniu dla ludzi.

Przykłady

  • x . y . y > x {\displaystyle \forall x.\exists y.y>x} jest w formie preneksowej
  • ( x . R ( x ) ) ( x . R ( x ) ) {\displaystyle (\forall x.R(x))\implies (\exists x.R(x))} nie jest w formie preneksowej.
Encyklopedie internetowe (Postać kanoniczna):
  • Britannica: topic/prenex-normal-form