Skolemizarea
Această intrare sau secțiune pe matematică nu citează sursele necesare sau cele prezente sunt insuficiente. |
În logica matematică , skolemizarea este aplicarea algoritmului lui Albert Thoralf Skolem care transformă o propoziție în formă normală într-o propoziție universală. Propoziția în cauză, după aplicarea algoritmului lui Skolem, pierde echivalența semantică cu propoziția inițială. Cu toate acestea, este interesant de observat că satisfacția rămâne neschimbată.
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ă de preness . Cuantificatorii (∀, ∃) trebuie grupați la începutul propoziției. ∀x 1 ∃x 2 ∀x 3 (...)
- 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 ∀ mergem direct la punctul următor.
Dacă Q 1 este ∃ atunci ∃x 1 este anulat și fiecare apariție a x 1 în α este înlocuită cu aceeași constantă 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. - Revizuiesc Q n
- Dacă Q n este a ∀ începem din 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, totuși, înlocuind la fiecare apariție a variabilei x n un functor care revizuiește toate variabilele anterior folosit de cuantificatori ∀.
După cum puteți vedea, până când apar cuantificatori de tip ∀, variabilele x n sunt înlocuite cu constante 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, totuși, înlocuind la fiecare apariție a variabilei x n un functor care revizuiește toate variabilele anterior folosit de cuantificatori ∀.
După cum puteți vedea cu ușurință, cuantificatorul ∃ a fost eliminat, iar variabila y a fost înlocuită cu funcționorul g (x).
Alegerea variabilei x nu este aleatorie, deoarece x 1 în acest caz este doar 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)
Devine ∀y∀z∃u∀t∃v (α 1 ) (α 1 este propoziția noastră după aplicarea substituției)
- 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).
Devine ∀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 (∃), îl șterg și îl înlocuiesc în α 2 pentru toate aparițiile v un funcționar care revizuiește toate variabilele utilizate de cuantificatoarele ∀ utilizate anterior. Înlocuirea va fi v -> i (y, z, t).
Algoritmul se va termina atunci când cuantificatoarele sunt toate de tipul ∀.