Skolemizarea
Această intrare sau secțiune despre matematică nu citează sursele necesare sau cei prezenți sunt insuficienți . |
În logica matematică , spune Skolem în formă normală , aplicarea algoritmului Thoralf Skolem care transformă o propoziție în formă normală într-o afirmație universală. Propoziția în cauză, după aplicarea algoritmului lui Skolem, pierde echivalența semantică cu propoziția inițială. Este interesant, totuși, să vedem că rămâne neschimbată satisfacția .
O propoziție α ∈ L (limbă) este o propoziție universală dacă:
- α este o afirmație (Nu există variabile libere)
- α este în formă normală și singurii cuantificatori, dacă există, sunt de tip ∀.
Exemplu de propoziții universale.
- A (b) ∧ C (a)
- ∀x∀y (A (y) ∧ ⌉C (x))
NB Algoritmul Skolem nu menține echivalența semantică. Propoziția rezultată din aplicarea algoritmului Skolem este satisfăcătoare dacă propoziția normală de pornire este satisfăcătoare.
Algoritmul lui Skolem
- Transformarea în formă normală prenex . Cuantificatorii (∀, ∃) trebuie grupați la începutul propoziției. ∀x ∃x 1 2 3 ∀x (...)
- Determinați variabilele libere și legate. Nu trebuie să existe variabile libere în propoziție, dacă există, trebuie efectuată o înlocuire.
- Dacă Q 1 (primul cuantificator) este ∀ se trece direct la pasul următor.
Dacă Q 1 este ∃ atunci ștergeți ∃x 1 și înlocuiește fiecare apariție a x 1 α o constantă în sine care nu apare deja în α. Exemplu: ∃x∀y (A (a, x) ∧ B (b, x, y)) devine ∀y (A (a, c) ∧ B (b, c, y))
După cum puteți vedea cu ușurință, am eliminat cuantificatorul ∃ și am înlocuit variabila x cu constanta c.
Alegerea constantei c nu este întâmplătoare, deoarece „a” și „b” erau deja utilizate. - Voi examina Q n
- Dacă Q este un n ∀ începe de la acest punct cu Q n + 1.
- Dacă Q n este atunci ∃ cazurile pot fi următoarele:
- Dacă cuantificatorul Q n-1 a fost de tip ∃ sau ∃x n-1 ∃x n atunci punctul anterior se repetă cu ∃x n, înlocuind, totuși, pentru fiecare apariție a variabilei x n un functor care revizuiește toate variabilele utilizate anterior de cuantificatori ∀.
După cum se poate vedea până când apar cuantificatori ∀ tip de înlocuire a variabilelor x n ale constantelor simple. - Dacă cuantizatorul Q n-1 este de tip or sau n-1 ∀x ∃x ∃x n n se șterge și înlocuiește fiecare apariție a lui x n în α cu un funcțional f () care ia în considerare variabilele utilizate de cuantificatori ∀ care o precedă. Dacă ar fi ∀y∀z∃u (α) ar trebui mai întâi să șterg ∃u apoi să înlocuiesc în propoziția α variabila u cu functorul f (y, z) (functorul nu trebuie să existe deja).
- Dacă cuantificatorul Q n-1 a fost de tip ∃ sau ∃x n-1 ∃x n atunci punctul anterior se repetă cu ∃x n, înlocuind, totuși, pentru fiecare apariție a variabilei x n un functor care revizuiește toate variabilele utilizate anterior de cuantificatori ∀.
După cum puteți vedea cu ușurință, am eliminat cuantificatorul ∃ și am înlocuit variabila y cu functorul g (x).
Alegerea variabilei aleatoare x nu se vede că x 1 în acest caz este exact x.
Exemplu practic
∃x∀y∀z∃u∀t∃v (α)
- Șterg ∃x și în interiorul lui α înlocuiesc x cu constante (care nu au fost deja utilizate)
Deveniți ∀y∀z∃u∀t∃v (α 1) (α 1 este propoziția noastră după aplicarea înlocuirii)
- Omit cele două cuantificatoare ∀ și șterg ∃u amintind să înlocuiesc fiecare apariție a lui u în α 1 cu un functor (care nu a fost deja utilizat) care revizuiește variabilele utilizate anterior de cuantificatorii ∀. În cazul nostru va fi h (z, y).
Deveniți ∀y∀z∀t∃v (α 2) (α 2 este propoziția noastră după aplicarea substituției u -> h (z, y))
- Rămâne doar un ultim cuantificator existențial (∃), ștergerea și înlocuirea în α 2 a tuturor aparițiilor unui functor v care analizează toate variabilele utilizate de cuantificatorul ∀ utilizat anterior. Înlocuirea va fi v -> i (y, z, t).
Algoritmul se va termina atunci când cuantificatoarele sunt toate de tipul ∀.