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 α