You are on page 1of 22

Kovásznai Gergely

Eszterházy Károly Egyetem

Az informatika logikai alapjai

Elsőrendű logika bevezetése és


szintaxisa
0. rendű VS 1. rendű logika

0. rendű logika: Az ítéletváltozók paraméternélküliek.


szeretem a sört:
szeretem a bort:

1. rendű logika: Az ítéletváltozók paraméteresek. A paraméterek


objektumok (termek).
szeretem a sört:
szeretem a bort:
Predikátumok, konstansok, változók

Predikátum: Paraméterezett állítás.


szeretem -et:
szereti -t:
Konstans: Nevesített term.

: sör, : bor, :rántott hús, : Gábor

Változó: Helyettesíthető bármilyen termmel.

𝑥, 𝑦 , 𝑧 ,…
Predikátum programozói szemmel

Predikátum = Logikai (bool) függvény


Példák:

Fontos: Predikátumok paraméterei termek (objektumok).


Következmény: Predikátumok nem ágyazhatók egymásba! Típushibát
eredményezne.
Kvantorok

Hogyan fejezzük ki?

Gábor mindent/valamit szeret:


Gábort mindenki/valaki szereti:

Az változót „kötni” kell a két kvantor közül valamelyikkel:


• : univerzális kvantor = „minden”, „mindegyik”, „bármelyik”
• : egzisztenciális kvantor = „létezik”, „van olyan”, „valamelyik”
Kvantorok

Gábor mindent szeret:


Van, aki szereti Gábort:
Gábor valamit szeret:
Gábort mindenki szereti:
Mindenki szeret valakit:
Van olyan ember, aki mindenkit szeret:
Kvantorok programozói szemmel

Kvantor = bool függvény ciklussal

Példa: Egzisztenciális kvantor –


bool P(object x) { … }

bool ExistsP(object[] a) {
foreach (object x in a)
if (P(x))
return true;
return false;
}
Logikai operátorok

A már ismert operátorok:


• Kvantor hatáskörében:
Van olyan ember, akit Gábor szeret, de aki őt
nem szereti:

• Kvantoros formulák összekapcsolására:

Ha nincs 2-vel osztható szám, akkor nincs 4-


gyel osztható sem:
Formalizálási feladatok

Feladatmegoldás…
Függvények

Mindenki szereti a saját apját:


Függvény: Termekkel paraméterezett és termet ad vissza. Egyértelmű
hozzárendelés.

apja:

Mindenki szereti a saját apját:


Formalizálási feladatok függvényekkel

Feladatmegoldás…
Definíciók

Definíció (1. rendű logikai nyelv):


Egy formális 3-as, ahol
• : változók (megszámlálható) halmaza
• : predikátumok halmaza,
• : függvények halmaza
▫ Minden predikátumhoz és függvényhez adott egy
paraméterszám.

A 0-paraméteres függvényeket nevezzük konstansoknak.


Definíciók

Definíció (Term):
Egy term a következő kifejezés lehet:
• változó
• , ahol és minden term

Minden term a fenti szabályok véges sokszori alkalmazásával áll elő.


Termek szintaktikai helyessége

Feladatmegoldás…
Definíciók

Definíció (Formula):
1. Atom: , ahol és minden term
2. Negáció: Ha formula, akkor is formula.
3. Ha és formulák, akkor ezek is formulák:
• Konjunkció:
• Diszjunkció:
• Implikáció:
• Ekvivalencia:
• Kizáró vagy, XOR:
Definíciók

… (folytatás)

4. Ha és formula, akkor ezek is formulák:


• Univerzálisan kvantált:
• Egzisztenciálisan kvantált:

Minden formula a fenti szabályok véges sokszori alkalmazásával áll elő.


Formulák szintaktikai helyessége

Feladatmegoldás…
Kvantoros formulák

∀𝑥𝐴
kvantor kvantor
hatásköre
kvantor által kötött
változó

• Meddig tart a kvantor hatásköre?


• Lehetnek ugyanolyan nevű kötött változók?
• Átnevezhetők-e a kötött változók?
• Lehet nem kötött (szabad) egy változó?
Kvantor hatásköre

• Meddig tart a hatáskör?


▫ Egyszerű zárójelszámlálással meghatározható.
Feladatmegoldás…

• Programozással való kapcsolat:


▫ Kvantor = Ciklus (foreach)
▫ Hatáskör = Ciklus törzse
▫ Kötött változó = Ciklusváltozó
• Plusz zárójelezéssel bővíthető a hatáskör.
Kötött változók átnevezése

• A kvantor által kötött változó átnevezhető, de a hatáskörbe tartozó


összes előfordulását át kell nevezni!
• Az eredetivel ekvivalens formulát kapunk.

Feladatmegoldás…
Kötött és szabad változó-előfordulások

Definíció (Kötött változó-előfordulás):


Egy változó-előfordulás kötött, ha egy vagy kvantor hatáskörében
található.

Definíció (Szabad változó-előfordulás):


Egy változó-előfordulás szabad, ha nem kötött.

Feladatmegoldás…
Formula paraméterei

Definíció (Formula paramétere):


Egy változó paramétere egy formulának, ha van szabad előfordulása -
ben.

paramétereinek halmazát -fel jelöljük.

Feladatmegoldás…

You might also like