Instytut Informatyki Teoretyczne Podstawy Języków Programowania Wykład 1. Rachunek zdań Zdzisław Spławski Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 1
Systemy formalne Składnia rachunku zdań Semantyka rachunku zdań Klasyfikacja formuł Konsekwencja logiczna Indukcja strukturalna dla formuł rachunku zdań Dowody konstruktywne Dedukcja naturalna dla rachunku zdań Konsekwencja syntaktyczna Twierdzenie o podstawianiu Najważniejsze rodzaje dowodów Przykłady wywodów w systemie dedukcji naturalnej Teorie aksjomatyczne Własności rachunku zdań Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 2
Systemy formalne System formalny = język formalny + aparat dedukcyjny (system wnioskowania). Język formalny = zbiór słów (ciągów symboli) nad zadanym alfabetem (skończonym zbiorem symboli). Metajęzyk = język, służacy do opisania języka formalnego (który bywa nazywany językiem przedmiotowym). Aparat dedukcyjny (system wnioskowania) = aksjomaty + reguły transformacji (reguły wnioskowania, reguły inferencji). W dalszym ciągu wykładu zostanie przedstawiony klasyczny rachunek zdań jako system formalny. Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 3
Składnia rachunku zdań Składnia języka rachunku zdań I Alfabet: {p,,,,,,,,, (, )} F ::= A ( F) (F F) (F F) (F F) (F F) A ::= V V ::= p V F, A, V oznaczają odpowiednio kategorie syntaktyczne formuł rachunku zdań, atomów (zdań atomowych) i zmiennych zdaniowych. Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 4
Składnia rachunku zdań Składnia języka rachunku zdań II Konwencje notacyjne, pozwalające na czytelniejszy zapis formuł rachunku zdań. 1. Małe litery alfabetu łacińskiego p, q, r, s... (być może z indeksami) będą używane jako metazmienne oznaczające zmienne zdaniowe. 2. Małe litery alfabetu greckiego ϕ, ψ, ρ,... (być może z indeksami) będą używane jako metazmienne oznaczające dowolne formuły rachunku zdań. 3. Priorytety spójników logicznych (funktorów zdaniotwórczych) malejąco:,,,,. 4.,, łączą w lewo, a łączy w prawo. Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 5
Semantyka rachunku zdań Semantyka rachunku zdań I Zbiór wartości logicznych B = {F, T} zawiera dwa elementy: T(prawda) i F(fałsz). Na zbiorze B zdefiniujemy funkcje f : B B oraz f, f, f, f : B B B za pomocą poniższej tablicy: x y f (x) f (x, y) f (x, y) f (x, y) f (x, y) F F T F F T T F T T F T T F T F F F T F F T T F T T T T Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 6
Semantyka rachunku zdań Semantyka rachunku zdań II Wartościowaniem formuły ϕ nazywamy odwzorowanie σ : V B, nadające wartości logiczne zmiennym zdaniowym danej formuły. Funkcja semantyczna (interpretacja) E : F (V B) B oblicza wartości logiczne formuł rachunku zdań (dla zadanego wartościowania σ). Semantyka jest kompozycyjna (ang. compositional semantics). Składnia Semantyka F ::= E : F (V B) B p E [p]σ = σ(p) E [ ]σ = F E [ ]σ = T ( ϕ) E [( ϕ)]σ = f (E [ϕ]σ) (ϕ ψ) E [(ϕ ψ)]σ = f (E [ϕ]σ, E [ψ ]σ) (ϕ ψ) E [(ϕ ψ)]σ = f (E [ϕ]σ, E [ψ ]σ) (ϕ ψ) E [(ϕ ψ)]σ = f (E [ϕ]σ, E [ψ ]σ) (ϕ ψ) E [(ϕ ψ)]σ = f (E [ϕ]σ, E [ψ ]σ) Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 7
Semantyka rachunku zdań Tabela spójników logicznych Symbol Inne oznaczenia Schemat zdania Sposób czytania Nazwa zdania, N ϕ nieprawda, że ϕ (nie ϕ) negacja &, K ϕ ψ ϕ i ψ koniunkcja A ϕ ψ ϕ lub ψ alternatywa,, C ϕ ψ jeżeli ϕ to ψ implikacja,, E ϕ ψ ϕ wtw, gdy ψ równoważność wtw wtedy i tylko wtedy Prefiksowe symbole N, K, A, C, E zostały wprowadzone przez Jana Łukasiewicza w jego notacji beznawiasowej. Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 8
Klasyfikacja formuł Klasyfikacja formuł Formuła ϕ jest: spełniona (ang. satisfied) przy danym wartościowaniu zmiennych σ, czyli σ spełnia (ang. satisfies) formułę ϕ, jeżeli E [ϕ]σ = T; spełnialna (ang. satisfiable) jeżeli istnieje wartościowanie zmiennych σ takie, że E [ϕ]σ = T, np. p; prawdziwa (ang. valid) lub jest tautologią (ang. tautology) jeżeli dla każdego wartościowania σ zachodzi E [ϕ]σ = T, np. p p; niespełnialna (ang. unsatisfiable) jeżeli dla każdego wartościowania E [ϕ]σ = F, np. p p; Zbiór formuł Γ jest spełnialny, jeżeli istnieje wartościowanie σ, spełniające wszystkie formuły ϕ Γ. Jeżeli takie wartościowanie nie istnieje, to zbiór formuł Γ jest niespełnialny. Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 9
Konsekwencja logiczna Konsekwencja logiczna (semantyczna) Niech Γ będzie zbiorem formuł, zaś ϕ formułą. Mówimy, że ϕ jest konsekwencją logiczną (lub semantyczną) zbioru Γ, co zapisujemy symbolicznie Γ = ϕ, jeśli każde wartościowanie σ, spełniające wszystkie formuły ze zbioru Γ, spełnia również formułę ϕ. Zwykle skracamy {ψ 1,..., ψ n } = ϕ do ψ 1,..., ψ n = ϕ, oraz Γ {ψ} = ϕ do Γ, ψ = ϕ, a także = ϕ do = ϕ. Zauważ, że = ϕ wtw, gdy ϕ jest tautologią. Twierdzenie. ψ 1,..., ψ n = ϕ wtw, gdy = ψ 1... ψ n ϕ. Twierdzenie. Jeśli Γ = ϕ, to dla dowolnej formuły ρ zachodzi Γ, ρ = ϕ. Twierdzenie. Jeśli Γ = ϕ, a ρ jest tautologią, to Γ \ {ρ} = ϕ. Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 10
Konsekwencja logiczna Systemy funkcjonalnie pełne Każda formuła ϕ odpowiada pewnej funkcji df f ϕ = E [ϕ] : (V B) B, przekształcającej wartościowania zmiennych w niej występujących w element zbioru B. Mówimy wtedy, że formuła ϕ definiuje funkcję f ϕ. Definicja. Skończony zbiór funkcji boolowskich nazywamy funkcjonalnie pełnym, jeśli każdą funkcję boolowską da się zdefiniować za pomocą formuły zbudowanej wyłącznie ze spójników odpowiadających funkcjom z tego zbioru. Oto kilka funkcjonalnie pełnych zbiorów: {, }, {, }, {, }, {, }. Jako przykład pokazano poniżej, jak można zdefiniować wszystkie spójniki logiczne za pomocą,. ϕ df = ϕ, df =, ϕ ψ df = ϕ ψ, ϕ ψ df = ( ϕ ψ), ϕ ψ df = (ϕ ψ) (ψ ϕ). Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 11
Indukcja strukturalna dla formuł rachunku zdań Indukcja strukturalna dla formuł rachunku zdań Niech P będzie własnością formuł. P (ϕ) zachodzi dla wszystkich formuł ϕ form jeśli spełnione są natępujące przesłanki: 1. P (p) dla każdej zmiennej zdaniowej p, 2. P ( ), P ( ), 3. jeśli P (ϕ) to P (( ϕ)), 4. jeśli P (ϕ) oraz P (ψ) to P ((ϕ ψ)), 5. jeśli P (ϕ) oraz P (ψ) to P ((ϕ ψ)), 6. jeśli P (ϕ) oraz P (ψ) to P ((ϕ ψ)), 7. jeśli P (ϕ) oraz P (ψ) to P ((ϕ ψ)). Przesłanki 1 2 stanowią podstawę indukcji, a przesłanki 3 7 stanowią krok indukcji. Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 12
Dowody konstruktywne Twierdzenie. Istnieją dwie niewymierne liczby a i b takie, że a b jest wymierne. Dowód. Albo ( 2) 2 jest wymierne i wtedy a = b = 2 albo ( 2) 2 jest niewymierne i wtedy a = ( 2) 2, b = 2. Dowód tego twierdzenie jest oczywiście poprawny w logice klasycznej. Jest to przykład dowodu niekonstruktywnego, ze względu na wykorzystanie reguły wykluczonego środka. Pomimo, że twierdzenie jest dowiedzione i wiadomo, że liczby a i b istnieją, to nie można (na podstawie dowodu) znaleźć pary liczb spełniających warunek określony w twierdzeniu. Konstruktywny dowód tego twierdzenia jest oparty na twierdzeniu Gelfonda Schneidera. Wynika z niego, że liczby a = b = 2 spełniają powyższe twierdzenie. Najbardziej znaną logiką konstruktywną jest logika intuicjonistyczna, wprowadzona przez Brouwera i rozwijana przez Heytinga i wielu następców. Znajduje ona wiele zastosowań w informatyce (izomorfizm Curry ego Howarda). Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 13
Dedukcja naturalna dla rachunku zdań Dedukcja naturalna Jednym z zadań logiki jest formalizacja i badanie rozumowań matematycznych (dowodów). Najbardziej zbliżone do rozumowań potocznych są systemy dedukcji naturalnej (założeniowe). Twórcami pierwszych takich systemów byli Stanisław Jaśkowski i Gerhard Gentzen w latach trzydziestych ubiegłego wieku. Intensywnie badał te systemy Dag Prawitz w latach sześćdziesiątych i siedemdziesiątych, a po nim inni. Wywody (derywacje, ang. derivations), będące formalną reprezentacją dowodów (ang. proofs) matematycznych, są przedstawiane w postaci drzew. Reguły wnioskowania (r. wyprowadzania, r. inferencji, ang. inference rules, derivation rules) mają następująca postać: przesłanka 1... przesłanka n (nazwa r. wnioskowania) wniosek Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 14
Dedukcja naturalna dla rachunku zdań Reguły pierwotne i wtórne (wyprowadzone) Pierwotne reguły wnioskowania systemu przyjmujemy bez dowodu, starając się dobierać je w ten sposób, by były jak najbardziej intuicyjne. Reguły wtórne (ang. derived rules) są wyprowadzane przy użyciu reguł pierwotnych i twierdzeń, które zostały udowodnione. Celem reguł wtórnych jest skracanie dowodów. Teoretycznie jednak te reguły są zbyteczne, ponieważ każdą tezę udowodnioną z użyciem reguł wtórnych można udowodnić używając wyłącznie reguł pierwotnych. Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 15
Dedukcja naturalna dla rachunku zdań Niżej przedstawione są reguły pierwotne systemu dedukcji naturalnej w tradycyjnym podziale na reguły wprowadzania (dołączania) i eliminacji (opuszczania) dla wszystkich zdefiniowanych wcześniej spójników logicznych. Są one poprawne zarówno dla klasycznej (prawdziwościowej) logiki zdań, jak i dla logiki intuicjonistycznej. Na końcu umieszczono reguły wnioskowania właściwe tylko dla logiki klasycznej. Wystarczy dołączyć jedną z nich. Pozostałe można otrzymać jako reguły wtórne. Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 16
Dedukcja naturalna dla rachunku zdań Reguły wnioskowania I reguły wprowadzania reguły eliminacji ϕ ψ ( I) ϕ ψ ϕ ψ ( E1 ) ϕ ϕ ψ ( E2 ) ψ ϕ ϕ ψ ( I 1 ) ψ ϕ ψ ( I 2 ) ϕ ψ [ϕ] n. ρ ρ [ψ] n. ρ n( E) ( I) brak brak ( E) ϕ Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 17
Dedukcja naturalna dla rachunku zdań Reguły wnioskowania II reguły wprowadzania reguły eliminacji [ϕ] n. ψ ϕ ψ n( I) ϕ ψ ψ ϕ ( E) [ϕ] n. ϕ n ( I) ϕ ϕ ( E) Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 18
Dedukcja naturalna dla rachunku zdań Reguły wnioskowania III reguły wprowadzania reguły eliminacji [ϕ] n. ψ ϕ ψ [ψ] n. ϕ n( I) ϕ ψ ϕ ( E1) ψ dla logiki klasycznej ϕ ψ ψ ( E2) ϕ [ ϕ] n. ϕ n(raa) lub ϕ ( ) ϕ lub ϕ ϕ (T ND) Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 19
Dedukcja naturalna dla rachunku zdań Reguły wnioskowania IV Niektóre z wymienionych wyżej reguł były znane już w starożytności. ( E) modus ponendo ponens (łac. sposób (tryb) potwierdzający przez potwierdzenie), krócej modus ponens; reguła odrywania. ( E) ex falso (sequitur) quodlibet; z fałszu (wynika) cokolwiek. (RAA) reductio ad absurdum; reguła sprowadzenia do niedorzeczności. (T NT ) tertium non datur; reguła wykluczonego środka. ( ) reguła podwójnego zaprzeczenia. Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 20
Dedukcja naturalna dla rachunku zdań Prawo importacji: (ϕ ψ ρ) (ϕ ψ ρ) [p q] 2 [p q r] 1 ( E) p q r ( E) r p q r 2( I) (p q r) (p q r) [p q] 2 ( E) q ( E) 1( I) Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 21
Konsekwencja syntaktyczna Konsekwencja syntaktyczna Niech Γ będzie zbiorem formuł, zaś ϕ formułą. Mówimy, że ϕ jest konsekwencją syntaktyczną zbioru Γ, lub jest wywodliwa (wyprowadzalna, ang. derivable) ze zbioru Γ, co zapisujemy symbolicznie Γ ϕ, jeśli istnieje wywód (derywacja) formuły ϕ ze zbioru Γ. Zwykle skracamy {ψ 1,..., ψ n } ϕ do ψ 1,..., ψ n ϕ, oraz Γ {ψ} ϕ do Γ, ψ ϕ, a także ϕ do ϕ. Jeśli ϕ to ϕ jest twierdzeniem (tezą) rozważanego systemu formalnego. Zbiór formuł Γ jest sprzeczny (ang. inconsistent), jeśli dla każdego ϕ zachodzi Γ ϕ, tzn. jeśli każda formuła jest twierdzeniem. W przeciwnym razie zbiór Γ jest niesprzeczny (ang. consistent). ϕ ψ jest skrótem dla ϕ ψ i ψ ϕ. Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 22
Twierdzenie o podstawianiu Definicja. Podstawieniem (ang. substitution) formuły ψ za zmienną zdaniową p nazywamy odwzorowanie, które formule ϕ przyporządkowuje formułę ϕ[ψ/p] powstałą w wyniku wstawienia formuły ψ w miejsce każdego wystąpienia zmiennej zdaniowej p w formule ϕ. Zdefiniujemy to odwzorowanie formalnie przez rekursję po strukturze formuły ϕ. q[ψ/p] df = { ψ, gdy q = p q, gdy q p [ψ/p] df = ( {, }) ( ϕ)[ψ/p] df = ( ϕ[ψ/p]) (ϕ 1 ϕ 2)[ψ/p] df = (ϕ 1[ψ/p] ϕ 2[ψ/p]) ( {,,, }) Twierdzenie (o podstawianiu). (ang. substitution theorem) (a) Jeśli = ϕ to = ϕ[ψ/p]. (b) Jeśli ϕ to ϕ[ψ/p]. Przykład. Udowodniliśmy, że formuła (p q r) (p q r) jest tezą rachunku zdań. Na podstawie powyższego twierdzenia tezą rachunku zdań jest każda formuła o postaci (ϕ ψ ρ) (ϕ ψ ρ). Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 23
Twierdzenie o podstawianiu Tezy implikacyjne a reguły wtórne Twierdzenie. Niech formuła o postaci ϕ 1... ϕ n ψ będzie tezą rachunku zdań. Poniższa reguła jest wówczas regułą wtórną. ϕ 1... ϕ n (nazwa reguły) ψ Dowód. Jeśli w pewnym wywodzie występują wszystkie przesłanki ϕ 1,..., ϕ n, to przez n-krotne zastosowanie reguły ( E) otrzymamy w wywodzie wniosek ψ. Przykład. Ponieważ (ϕ ψ ρ) (ϕ ψ ρ), to do systemu możemy dołączyć regułę wtórną (Import): ϕ ψ ρ (Import) ϕ ψ ρ Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 24
Najważniejsze rodzaje dowodów Dowody (założeniowe) wprost i nie wprost Dowód wprost formuły ϕ ψ. Zakładamy, że zachodzi ϕ. Przy tym założeniu dowodzimy ψ i stosujemy regułę ( I). Prawo importacji udowodniliśmy wprost. Dowód nie wprost (apagogiczny, przez sprowadzenie do niedorzeczności) formuły ψ. Zakładamy, że zachodzi ψ. Przy tym założeniu dowodzimy i stosujemy regułę (RAA). Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 25
Przykłady wywodów w systemie dedukcji naturalnej Wywód w stylu Fitcha Przedstawianie wywodów w postaci drzew dobrze reprezentuje ich strukturę, możliwa jest jednak linearna prezentacja wywodów. W celu pokazania struktury wywodów Jaśkowski początkowo używał prostokątów ("pudełek"). F.B.Fitch, W.Craig, L.Borkowski, J.Słupecki w swoich notacjach wykorzystali idee Jaśkowskiego. Obok wywodów w postaci drzew będziemy używali też notacji Fitcha. Pojawia się tam pojęcie dowodu podporządkowanego (pobocznego, ang. subordinate proof) oraz wprowadzona jest pomocnicza reguła repetycji (ang. reiteration), pozwalająca na powtórzenie w dowodzie podporządkowanym wcześniejszych formuł z dowodu głównego. Reguła repetycji (R) odpowiada prawu repetycji ϕ ϕ. Wywód (derywacja) w stylu Fitcha składa się z numerowanych wierszy, zawierających formuły wraz z uzasadnieniami. Każda formuła jest albo założeniem (na ogół bez uzasadnienia), albo formułą wyprowadzoną (zawsze z uzasadnieniem). Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 26
Przykłady wywodów w systemie dedukcji naturalnej Prawo importacji: (ϕ ψ ρ) (ϕ ψ ρ) Wywód w stylu Fitcha 1 p q r założenie 2 p q założenie 3 p ( E), 2 4 p q r (R), 1 5 q r ( E), 4, 3 6 q ( E), 2 7 r ( E), 5, 6 8 p q r ( I), 2 7 9 (p q r) (p q r) ( I), 1 8 Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 27
Przykłady wywodów w systemie dedukcji naturalnej Prawo De Morgana: (ϕ ψ) ϕ ψ (p q) p [p] 1 ( I) p q ( E) 1 ( I) p q (p q) 2 ( I) q ( I) [q] 2 ( I) p q ( E) To jest kolejny przykład na dowód wprost. Niezamknięte założenie możemy potraktować jako przesłankę wtórnej (wyprowadzonej) reguły wnioskowania ( ). (ϕ ψ) ( ) ϕ ψ Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 28
Przykłady wywodów w systemie dedukcji naturalnej Prawo De Morgana: (ϕ ψ) ϕ ψ. Wywód w stylu Fitcha 1 (p q) przesłanka 2 p 3 p q ( I), 2 4 (p q) (R), 1 5 ( E), 4, 3 6 p ( I), 2 5 7 q 8 p q ( I), 7 9 (p q) (R), 1 10 ( E), 9, 8 11 q ( I), 7 10 12 p q ( I), 6, 11 Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 29
Przykłady wywodów w systemie dedukcji naturalnej Prawo De Morgana: (ϕ ψ) ϕ ψ [ q] 4 D= [ ( p q)] 2 ( I) p q ( E) q 4 (RAA) [ (p q)] 1 [ p] 3 [ ( p q)] 2 ( I) p q ( E) p 3 (RAA) D ( I) p q ( E) p q 2(RAA) 1( I) (p q) p q Tu stosowaliśmy (RAA), więc jest to dowód nie wprost. Na podstawie twierdzenia o związku tez z regułami wtórnymi do systemu możemy dodać regułę (ϕ ψ) ϕ ψ ( ) Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 30
Przykłady wywodów w systemie dedukcji naturalnej Prawo De Morgana: (ϕ ψ) ϕ ψ. Inny (krótszy) dowód nie wprost, wykorzystujący regułę wtórną ( ). 1 (p q) 2 ( p q) 3 p q) ( ), 2 4 p ( E), 3 5 p ( ), 4 6 q ( E), 3 7 q ( ), 6 8 p q ( I), 5, 7 9 (p q) (R), 1 10 ( E), 9, 8 11 p q (RAA), 2 10 12 (p q) p q ( I), 1 11 Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 31
Przykłady wywodów w systemie dedukcji naturalnej Transpozycja (kontrapozycja): ψ ϕ ϕ ψ Wykorzystywany jest dowód nie wprost. ψ ϕ [ ψ] 2 ( E) ϕ [ϕ] 1 ( E) 2 (RAA) ψ 1( I) ϕ ψ Możemy do systemu dolączyć regułę wtórną: ψ ϕ (T ransp) ϕ ψ Reguła ta jest często stosowana przy dowodach nie wprost. Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 32
Teorie aksjomatyczne Teorie aksjomatyczne Definicja. Zbiór formuł T nazywamy teorią wtw, gdy jest on zamknięty ze względu na konsekwencję syntaktyczną, tzn. jeśli T ϕ, to ϕ T. Elementy zbioru T nazywamy twierdzeniami(tezami). Niech Γ będzie zbiorem formuł. T (Γ) = {ϕ Γ ϕ} nazywamy teorią zbioru formuł Γ. Formuły ze zbioru Γ nazywamy aksjomatami pozalogicznymi (swoistymi, specyficznymi) teorii, a o teorii T (Γ) mówimy, że jest teorią aksjomatyczną (lub aksjomatyzowalną). Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 33
Teorie aksjomatyczne Własności teorii aksjomatycznych Niech będzie dana teoria T (Γ). Niesprzeczność (ang. consistency). Teoria T jest niesprzeczna wtw, gdy zbiór formuł T jest niesprzeczny. Zupełność. Każda formuła ϕ jest albo twierdzeniem teorii, tzn. Γ ϕ, albo po dołączeniu do aksjomatów teorii prowadzi do sprzeczności teorii. Poprawność, adekwatność (ang. soundness). Jeśli Γ ϕ to Γ = ϕ. Pełność (ang. completeness). Jeśli Γ = ϕ to Γ ϕ. Rozstrzygalność (ang. decidability). Teoria T jest rozstrzygalna wtw, gdy istnieje algorytm, który dla dowolnej formuły zamkniętej ϕ pozwala stwierdzić, czy Γ ϕ, czy też Γ ϕ. Dla Γ = poprawność mówi, że każde twierdzenie jest zdaniem prawdziwym, natomiast pełność mówi, że każde zdanie prawdziwe można udowodnić (jest twierdzeniem). Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 34
Teorie aksjomatyczne Przykład teorii aksjomatyzowalnej Zespół ekspertów przygotował następującą analizę sytuacji gospodarczej Loglandii. Jeśli inwestycje pozostaną na tym samym poziomie, to wzrosną wydatki budżetowe lub wzrośnie bezrobocie. Jeśli wydatki budżetowe nie wzrosną, to podatki zostaną obniżone. Jeśli podatki zostaną obniżone i inwestycje pozostaną na tym samym poziomie, to bezrobocie nie wzrośnie. Możemy przedstawić ten opis wycinka rzeczywistości w postaci teorii. Wprowadźmy następujące oznaczenia. p def = inwestycje pozostaną na tym samym poziomie q def = wzrosną wydatki budżetowe r def = wzrośnie bezrobocie s def = podatki zostaną obniżone Zbiór Γ aksjomatów swoistych teorii SGL(Γ) jest następujący: Γ = {p q r, q s, s p r} Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 35
Własności rachunku zdań Własności rachunku zdań Twierdzenie. Rachunek zdań jest niesprzeczny, zupełny, poprawny, pełny i rozstrzygalny. Zdzisław Spławski: Teoretyczne Podstawy Języków Programowania, Wykład 1. Rachunek zdań 36