Składnia algebry relacyjnej

Transkrypt

Składnia algebry relacyjnej
Składnia algebry relacyjnej
Sygnatura Σ, wyłącznie symbole relacji i stałych
ARn – zbiór wyrażeń n-argumentowych algerby relacyjnej AR.
Symbol relacji n-argumentowej z Σ należy do ARn
Dla symbolu stałej c, {c} należy do AR1
Jeśli E i F należą do ARn , to E ∪ F , E − F też należą do ARn
Jeśli E należy do ARn oraz hi1 , . . . , ik i to różne elemeny
{1, . . . , n}, to πi1 ,...,ik E należy do ARk
Jeśli E należy do ARn , zaś F należy do ARm , to E × F należy
do ARn+m
Jeśli E należy do ARn oraz θ to zbiór równości postaci ‘i = j’
lub ‘i = c’, to σθ E należy do ARn
Semantyka algebry relacyjnej
A = hA, . . .i to struktura nad Σ,
n-argumentowemu wyrażeniu E przypisujemy relację
[[E ]] ⊆ An .
Semantyka algebry relacyjnej cd
[[R]] = R A
[[{c}]] = {hc A i}
[[E ∪ F ]] = [[E ]] ∪ [[F ]] oraz [[E − F ]] = [[E ]] − [[F ]]
[[πi1 ,...,ik E ]] = {hai1 , . . . , aik i | ha1 , . . . , ak i ∈ [[E ]]}
[[E ×F ]] = [[E ]]×[[F ]] = {ha1 , . . . , an , b1 . . . , bm i | ha1 , . . . , an i ∈
[[E ]] i hb1 . . . , bm i ∈ [[F ]]}
[[σθ E ]] = {ha1 , . . . , an i ∈ [[E ]] | ai = aj , dla (i = j) ∈
θ oraz ai = c A , dla (i = c) ∈ θ}
Składnia i semantyka algebry relacyjnej: uwagi
πE jest legalnym wyrażeniem 0-argumentowym
(
{hi} [[E ]] 6= ∅
[[πE ]] =
∅
w p.p.
σ∅ E jest legalnym wyrażeniem, [[σ∅ E ]] = [[E ]]
Semantyka relacyjna logiki pierwszego rzędu
Niech
α to formuła logiki pierwszego rzędu
FV (α) = {xi1 , . . . xin }
A = hA, . . .i to struktura nad Σ
Definiujemy [[α]]:
[[α]] = {ha1 , . . . , an i ∈ An | (A, xi1 : a1 , . . . , xin : an ) |= α}
Dla zdania α mamy
(
{hi} A |= α
[[α]] =
∅
w p.p.
Aktywna dziedzina
Aktywna dziedzina struktury A to podzbiór ad (A) ⊆ A, złożony z
wszystkich elementów które są
wartościami stałych z sygnatury
występują jako współrzędna w co najmniej jednej krotce
należącej do interpretacji jakiegoś symbolu relacyjnego z
sygnatury
Interpretacje wszystkich wyrażeń algebry relacyjnej obliczane w A
są relacjami w dziedzinie aktywnej.
Interpretacje relacyjne formuł pierwszego rzędu obliczane w A są
nie zawsze są relacjami w dziedzinie aktywnej.
Semantyka wyrażeń algebry relacyjnej a dziedzina
aktywna
[[R]] = R A
[[{c}]] = {hc A i}
[[E ∪ F ]] = [[E ]] ∪ [[F ]] oraz [[E − F ]] = [[E ]] − [[F ]]
[[πi1 ,...,ik E ]] = {hai1 , . . . , aik i | ha1 , . . . , ak i ∈ [[E ]]}
[[E ×F ]] = [[E ]]×[[F ]] = {ha1 , . . . , an , b1 . . . , bm i | ha1 , . . . , an i ∈
[[E ]] i hb1 . . . , bm i ∈ [[F ]]}
[[σθ E ]] = {ha1 , . . . , an i ∈ [[E ]] | ai = aj , dla (i = j) ∈
θ oraz ai = c A , dla (i = c) ∈ θ}
Semantyka wyrażeń logiki pierwszego rzędu a
dziedzina aktywna
Problemem jest negacja:
¬R(x)
Problemem są też wolne zmienne:
x =x
Albo jedno i drugie naraz:
x 6= c
Twierdzenie Codda
1
Dla każdego wyrażenia E w AR istnieje formuła αE logiki
pierwszego rzędu, że dla każdej struktury A zachodzi
[[α]] = [[E ]].
2
Dla każdej formuły α logiki pierwszego rzędu istnieje wyrażenie
Eα w AR takie, że dla każdej struktury A spełniającej
A = ad (A), zachodzi [[E ]] = [[α]].
Dowód twierdzenia Codda cz. 1
Indukcja:
Gdy E to R dla R ∈ ΣR
n , to αE ma postać R(x1 , . . . , xn )
Niech α{c} to x1 = c
Niech αE ∪F to αE ∨ αF
Niech αE −F to αE ∧ ¬αF
Konstruujemy απi1 ,...,i E :
k
tworzymy ∃xj1 . . . ∃xjn−k αE , gdzie j1 , . . . , jn−k to elementy
{1, . . . , n} − {i1 , . . . , ik } w obojętnej kolejności
Zmieniamy zmienne związane na numery > n
zmienne wolne przemianowujemy z xij na yij
Niech β będzie rezultatem
απi1 ,...,i E definiujemy jako β(x1 /yi1 , . . . , xk /yik ).
k
Dowód twierdzenia Codda cz. 1 cd
Konstruujemy αE ×F :
zmieniamy zmienne związane w αF na numery > n + m
za zmienne wolne x1 , . . . , xm podstawiamy kolejno
xn+1 , . . . , xn+m
Niech βF będzie rezultatem
Niech αE ×F to αE ∧ βF .
Niech ασθ E to
αE ∧
^
‘i = j’∈θ
xi = xj ∧
^
‘i = c’∈θ
xi = c.
Dowód twierdzenia Codda cz. 2
Niech podstawowymi spójnikami logiki będą ∨, ¬ i ∃
Konstruujemy AD ∈ AR1 jako ∪-sumę
πi R dla wszystkich R w sygnaturze i wszystkich i takich, że R
ma co najmniej i argumentów
wszystkich {c} dla c w sygnaturze
Lemat Dla każdej struktury A zachodzi [[AD]] = ad (A).
Dowód twierdzenia Codda cz. 2 cd
Dla każdego n nie mniejszego niż wszystkie numery zmiennych
wolnych w α konstruujemy Eα;n ∈ ARn takie, że
[[Eα;n ]] = {ha1 , . . . , an i ∈ An | (A, x1 : a1 , . . . , xn : an ) |= α}.
Dowód twierdzenia Codda cz. 2 cd
Exi =xj ;n to σi=j (AD
· · × AD}).
| × ·{z
n
Exi =c;n to σi=c (AD
· · × AD}).
| × ·{z
n
ER(xi
1
,...,xik );n
to πI (R × AD
· · × AD}), gdzie permutacja I
| × ·{z
n−k
współrzędne R mieszcza na pozycjach i1 , . . . , ik
Eα∨β;n to Eα;n ∪ Eβ;n
E¬α;n to (AD
· · × AD}) − Eα;n
| × ·{z
n
W ∃xi α możemy założyć, że i = n + 1. Wtedy E∃xi α;n to
π1,...,n Eα;n+1 .
Dowód twierdzenia Codda cz. 2 cd
Eα;n zawiera dodatkowe współrzędne, które rejestrują numery
zmiennych wolnych α.
Niech Eα to πI Eα;n ,
gdzie I to posortowany rosnąco ciąg numerów zmiennych wolnych α