Documente Academic
Documente Profesional
Documente Cultură
1
1
Curs 1 - Sintaxa
Ştefan Ciobâcă
28 Noiembrie 2016
Logică pentru Informatică - Partea a II-a
1. S, tefan Ciobâcă
2. http://profs.info.uaic.ro/~stefan.ciobaca/logica/
3. stefan.ciobaca@gmail.com
4. Consultat, ii - C508, mart, i de la 18 la 20.
Logica de predicate de ordinul I (LP1)
Vreau să modelez ı̂n LP următorul rat, ionament: “S, tiu că dacă sunt
om atunci sunt muritor s, i că sunt om. Deci sunt muritor.”
Fie p, q ∈ A două variabile propozit, ionale.
1. p - “sunt om”
2. q - “sunt muritor”
În logica propozit, ională, p → q, p |= q corespunde rat, ionamentului
de mai sus.
LP1 ı̂n loc de LP - motivat, ie
Vreau să modelez următorul rat, ionament: “S, tiu că dacă cineva
este om atunci acea persoană este muritor. S, tiu că Socrates este
om. Deci Socrates este muritor.”
(imposibil de modelat ı̂n LP).
Privire fugară ı̂n LP1:
1. P(x) - “x este om”
2. Q(x) - “x este muritor”
3. S - “Socrates”
În LP1, avem ∀x.(P(x) → Q(x)), P(S) |= Q(S).
LP1
Exemplu
Fie X = {x, y , z, x1 , x2 , x3 , . . .}. Fie F0 = {c}, F1 = {h} s, i
F2 = {f , g }.
Not, iunea de termen (sau term)
x ∈T y ∈T x3 ∈ T c∈T
h(x) ∈ T h(y ) ∈ T h(c) ∈ T
g (x, y ) ∈ T f (c, c) ∈ T f (c, y ) ∈ T
f (h(x), y ) ∈T g (h(c), h(c)) ∈ T f (c, y ) ∈ T
f g f (x, y ), h(c) , f (c, c) ∈ T
P = P0 ∪ P1 ∪ P2 ∪ . . . .
Definit, ie
Mult, imea At, a formulelor atomice, este definită astfel:
1. P0 ⊆ At,
2. dacă P ∈ Pn (cu n ≥ 1) s, i t1 , . . . , tn ∈ T , atunci
P(t1 , . . . , tn ) ∈ At.
Formule atomice
Exemplu
Fie P0 = {P}, P1 = {Q} s, i P2 = {R} (P3 = P4 = . . . = ∅).
Câteva exemple de formule atomice sunt:
P ∈ At
Q(x) ∈At Q(c) ∈ At Q(f (f (x,y ), c)) ∈ At
R c, x ∈ At R h(x), f (x, y ) ∈ At
R f f (x, y ), f (x, y ) , h(c) ∈ At
Definit, ie
Mult, imea LP1 (formule din logica de ordinul I) este definită
inductiv astfel:
1. At ⊆ LP1;
2. Dacă F ∈ LP1, atunci (¬F ) ∈ LP1 s, i (F ) ∈ LP1;
3. Dacă F1 , F2 ∈ LP1, atunci (F1 ∧ F2 ) ∈ LP1, (F1 ∨ F2 ) ∈ LP1;
4. Dacă F ∈ LP1 s, i x ∈ X , atunci (∀x.F ) ∈ LP1 (s, i
(∃x.F ) ∈ LP1).
notat, ie
N.B. Vom considera următoarele notat, ii: F1 → F2 = ¬F1 ∨ F2 ,
notat, ie notat, ie
F1 ← F2 = F2 → F1 , F1 ↔ F2 = (F1 → F2 ) ∧ (F2 → F1 ).
Exemplu
P ∈LP1
Q(x) ∈ LP1 R h(x), f (x, y ) ∈ LP1 (¬Q(f (x, y ))) ∈ LP1
(P ∧ Q(x)) ∈ LP1 Q(x) ∨ R h(x), f (x, y ) ∈ LP1
(Q(x) → R(x, y )) ∈ LP1 ((Q(x) ∧ P) ∨ Q(y )) ∈ LP1
(∀x.(Q(x) ∨ P)) ∈ LP1 ((∃x.Q(x)) ∨ (¬P)) ∈ LP1
1. At ⊆ LP1;
2. Dacă F ∈ LP1, atunci (¬F ) ∈ LP1 s, i (F ) ∈ LP1;
3. Dacă F1 , F2 ∈ LP1, atunci (F1 ∧ F2 ) ∈ LP1, (F1 ∨ F2 ) ∈ LP1
(s, i (F1 → F2 ) ∈ LP1);
4. Dacă F ∈ LP1 s, i x ∈ X , atunci (∀x.F ) ∈ LP1 (s, i
(∃x.F ) ∈ LP1).
Sumar
t ::= x | c | f (t, . . . , t ) x ∈ X , c ∈ F0 , f ∈ Fn
| {z }
n
a ::= P | Q(t, . . . , t ) P ∈ P0 , Q ∈ Pn
| {z }
n
F ::= a | (¬F ) | (F ) | (F ∨ F ) | (F ∧ F ) |
(F → F ) | (∀x.F ) | (∃x.F ) a ∈ At, x ∈ X
Exemplu
P2 = {L}
c
1. dacă t = c, c ∈ F0 , atunci arb(t) =
x
2. dacă t = x, x ∈ X , atunci arb(t) =
3. dacă t = f (t1 , . . . , tn ), f ∈ Fn (n > 0), t1 , . . . , tn ∈ T , atunci
f
x h
y
arb(f (x, h(y ))) =
Arborele abstract asociat unei formule - ¬, ()
arb(F1 )
I dacă F = (¬F1 ), atunci arb(F ) =
I dacă F = (F1 ), atunci arb(F ) = arb(F1 )
Arborele abstract asociat unei formule - P(t1 , . . . , tn )
arb(F1 ) arb(F2 )
arb(F ) =
Arborele abstract asociat unei formule - ∨
arb(F1 ) arb(F2 )
arb(F ) =
Arborele abstract asociat unei formule - ∀
∀x
arb(F1 )
I dacă F = (∀x.F1 ), atunci arb(F ) =
Arborele abstract asociat unei formule - ∃
∃x
arb(F1 )
I dacă F = (∃x.F1 ), atunci arb(F ) =
Exemplu
∃x
Q P
x
arb((∃x.(Q(x) ∧ P))) =
Despre paranteze
Definit, ie
O poziţie p este un şir de numere naturale n1 · . . . · nk . Pentru
k = 0, şirul vid este notat cu .
Exemplu
Spre exemplu, o poziţie este p = 0 · 2 · 1.
Pozit, iile unui termen
Definit, ie
Poziţiile ataşate unui termen, notate pos(t), sunt:
1. pos(c) = {}, dacă c ∈ F0
2. pos(x) = {}, dacă x ∈ X
S
3. pos(f (t1 , . . . , tn )) = {} ∪ i∈{1,...,n} i · pos(ti ), dacă f ∈ Fn .
Exemplu
Pentru t = f (g (a, b), y ), avem pos(t) = {, 1, 2, 1 · 1, 1 · 2}.
f ()
g (1) y (2)
a (1 · 1) b (1 · 2)
Pozit, iile unui termen
Definit, ie
Fie t un termen şi fie p ∈ pos(t) o poziţie a termenului. Termenul
aflat la poziţia p ı̂n termenul t, notat t|p este definit astfel:
1. t| = t,
2. f (t1 , . . . , tn )|i·p = (ti )|p .
Exemplu
Pentru t = f (g (a, b), y ), şi p = 1, avem t|p = g (a, b). Dacă
q = 1 · 2, atunci t|q = b.
Pozit, iile unei formule
∀x ()
∧ (1)
P (1 · 1) Q (1 · 2)
x (1 · 1 · 1) y (1 · 2 · 1)
Aparit, ii ale variabilelor
∀x.(Q(x) ∧ ∃x.P(x))
Domeniul de vizibilitate a “primei variabile” x (cea cuantificată
universal) este (Q(x) ∧ ∃x.P(x)), iar domeniul de vizibilitate a celei
de-a “doua variabile” x (cea cuantificată existent, ial) este P(x).
Aparit, ii ale variabilelor
Definit, ie
O apariţie a unei variabile x ı̂ntr-o formulă F (respectiv intr-un
termen t) este o pozitie p a.i. F |p = x (respectiv t|p = x).
Definit, ie
O apariţie p a unei variabile x ı̂ntr-o formulă F este legată dacă
există un prefix q a lui p astfel incât F |q = ∀x.G sau F |q = ∃x.G
(dacă pe drumul de la apariţia respectivă spre rădăcina arborelui
formulei găsim un nod ∀x sau ∃x).
O aparitie p a unei variabile x ı̂ntr-o formulă F este liberă dacă nu
este legată.
Exemplu
F = (∀x.P(x)) ∧ Q(x)
∧ ()
∀x (1) Q (2)
P (1 · 1) x (2 · 1)
x (1 · 1 · 1)
Aparit, ii ale variabilelor
Definit, ie
Mulţimea variabilelor unei formule care au cel puţin o apariţie
legată se notează bound(F ):
1. bound(P(t1 , . . . , tn )) = ∅,
2. bound(¬F1 ) = bound(F1 ),
3. bound(F1 ∧ F2 ) = bound(F1 ∨ F2 ) = bound(F1 → F2 ) =
bound(F1 ) ∪ bound(F2 ),
4. bound(∀x.F1 ) = bound(∃x.F1 ) = bound(F1 ) ∪ {x}.
Exemplu !
bound ∀x. P(x) ∨ R(x, y ) = {x}
Aparit, ii ale variabilelor
Definit, ie
Mulţimea variabilelor unei formule care au cel puţin o apariţie
liberă se notează free(F ):
1. free(P(t1 , . . . , tn )) = var(t1 ) ∪ . . . ∪ var(tn ),
2. free(¬F1 ) = free(F1 ),
3. free(F1 ∧ F2 ) = free(F1 ∨ F2 ) = free(F1 → F2 ) =
free(F1 ) ∪ free(F2 ),
4. free(∀x.F1 ) = free(∃x.F1 ) = free(F1 ) \ {x}.
Exemplu
Fie F = P(x) ∧ ∀x.Q(x, y ). Prima apariţie a lui x este liberă.
Singura apariţie a lui y este liberă. A doua apariţie a lui x este
legată. Avem var(F ) = {x, y }, bound(F ) = {x} şi
free(F ) = {x, y }.
Substitut, ii
Definit, ie
O substitut, ie este o funct, ie σ : X → T , cu proprietatea că
σ(x) 6= x pentru un număr finit de variabile x ∈ X .
Definit, ie
Dacă σ : X → T este o substitut, ie, atunci mult, imea
dom(σ) = {x | σ(x) 6= x} se numes, te domeniul substitut, iei σ.
Substitut, ii - exemplu
Definit, ie
Dacă σ : X → T este o substitut, ie, atunci extensia homomorfică a
lui σ la mult, imea termenilor este funct, ia σ ] : T → T , definită
astfel:
1. σ ] (x) = σ(x), pentru orice x ∈ X ;
2. σ ] (f (t1 , . . . , tn )) = f (σ ] (t1 ), . . . , σ ] (tn )), pentru orice simbol
funct, ional f ∈ Fn de aritate n ∈ N s, i orice termeni
t1 , . . . , tn ∈ T .
Substitut, ii - extensia homomorfică - exemplu
Definit, ie
Dacă σ : X → T este o substitut, ie, x ∈ X este o variabilă s, i t ∈ T
este un termen, atunci σ[x 7→ t] este o (nouă) substitut, ie
σ 0 : X → T , notată σ 0 = σ[x 7→ t], definită astfel:
1. σ 0 (y ) = σ(y ) pentru orice y ∈ X \ {x};
2. σ 0 (x) = t.
Operat, ia de actualizare - exemplu
Definit, ie
Pentru orice substitut, ie σ : X → T , extensia homomorfică a lui σ
la mult, imea formulelor este funct, ia σ [ : LP1 → LP1, definită astfel:
1. σ [ (P(t1 , . . . , tn )) = P(σ ] (t1 ), . . . , σ ] (tn ));
2. σ [ (¬F ) = ¬(σ [ (F ));
3. σ [ (F1 opF2 ) = (σ [ (F1 ))op(σ [ (F2 )) (pentru orice operator logic
op ∈ {∧, ∨});
4. σ [ (∀y .F ) = ∀y .((σ 0 )[ (F )), unde σ 0 = σ[y 7→ y ],
5. σ [ (∃y .F ) = ∃y .((σ 0 )[ (F )), unde σ 0 = σ[y 7→ y ],
Substitut, ii - extensia homomorfică la mult, imea formulelor
Definit, ie
Prin range(σ) notăm mult, imea de termeni
Definit, ie
O formulă F acceptă o substituţie σ : X → T (sau, σ este permisă
pentru F ) dacă
bound(F ) ∩ var(range(σ)) = ∅.