Logika dla matematyków i informatyków Wykład 1
Transkrypt
Logika dla matematyków i informatyków Wykład 1
Preliminaria Logika dla matematyków i informatyków Wykªad 1 Stanisªaw Goldstein Wydziaª Matematyki i Informatyki U 16 lutego 2016 Stanisªaw Goldstein Logika dla matematyków i informatyków Wykªad 1 Preliminaria Preliminaria Wszech±wiat matematyczny skªada si¦ wyª¡cznie ze zbiorów. Liczby naturalne s¡ zdeniowane indukcyjnie tak: 0 = ∅, n = {0, 1, . . . , n − 1}. Zbiór liczb naturalnych oznaczamy przez N, ω lub ℵ . Para uporz¡dkowana hx, y i jest zdeniowana jako zbiór {{x}, {x, y }}. Zauwa»my, »e je±li hx , y i = hx , y i, to x = x oraz y = y . n-tka uporz¡dkowana jest zdeniowana przez indukcj¦: hx , . . . , x , x i = hhx , . . . , x i, x i dla n ≥ 2. Dla n = 1 przyjmujemy hxi = {x}. 0 1 1 2 0 1 n n+1 1 2 2 2 0 Stanisªaw Goldstein n n+1 Logika dla matematyków i informatyków Wykªad 1 Preliminaria Preliminaria c.d. Relacja to pewien zbiór par uporz¡dkowanych. Funkcja to relacja R taka, »e je±li hx, y i ∈ R i hx, y i ∈ R , to y = y . Deniujemy dom(R) = {x : ∃y hx, y i ∈ R}, ran(R) = {y : ∃xhx, y i ∈ R} i R A = {hx, y i ∈ R : x ∈ A}. Je±li R jest funkcj¡ oraz x ∈ dom(R), to R(x) oznacza takie y ∈ ran(R), »e hx, y i ∈ R . Piszemy R : X → Y , gdy R jest funkcj¡, X = dom(R) i ran(R) ⊆ Y . Zbiór takich funkcji oznaczamy przez Y = Y . Funkcj¦ R : X → Y nazywamy iniekcj¡ (odp. suriekcj¡, bijekcj¡) je±li z R(x ) = R(x ) wynika x = x (odp. ran(R) = Y , R jest iniekcj¡ i suriekcj¡). 1 2 1 X 1 Stanisªaw Goldstein 2 1 2 X 2 Logika dla matematyków i informatyków Wykªad 1 Preliminaria Preliminaria c.d. Ci¡g sko«czony m-elementowy (odp. ci¡g niesko«czony) elementów zbioru S to funkcja σ : m → S (odp. σ : ω → S ). Je±li s0, . . . , sm 1 ∈ S , to (s0, . . . , sm 1) oznacza nkcj¦ σ : m → S tak¡, »e σ(j) = sj . Ci¡g 0-elementowy (pusty) jest oznaczany przez ε: ε = { } = ( ) = ∅ = 0. Ci¡gi 1-elementowe s¡ oznaczane przez s = (s) = {h0, si} dla s ∈ S. Oznaczamy przez S zbiór ci¡gów m-elementowych ze zbioru S . Zauwa»my, »e S 6= S oraz S = {0} = 1. Oznaczamy przez S zbiór S S . Zauwa»my, »e je±li S ⊆ ω \ {0}, to S ∩ S = ∅. − − m 1 0 <ω m m<ω <ω Stanisªaw Goldstein Logika dla matematyków i informatyków Wykªad 1 Preliminaria Preliminaria c.d. 1 2 3 Je±li σ ∈ S i τ ∈ S , to σ τ oznacza konkatenacj¦ π ci¡gów σ i τ , okre±lon¡ tak, »e π(i) = σ(i) dla i < m oraz π(m + j) = τ (j) dla j < n. Zauwa»my, »e dziaªanie konkatenacji jest ª¡czne, za± ci¡g pusty ε jest elementem neutralnym dla tego dziaªania. Piszemy στ zamiast σ τ . Ze wzgl¦du na ª¡czno±¢ konkatenacji, nie prowadzi to do niejednoznaczno±ci wyniku (to znaczy w = σ τ niezale»nie od sposobu zapisu w w postaci στ . Je±li S ∩ S = ∅, to zapisujemy (s0, . . . , sm 1) jako s ...s . Zauwa»my, »e notacja ta jest zgodna z punktem 1. Je±li σ ∈ S , to segmentem pocz¡tkowym σ nazywamy σ j dla j ≤ |σ|. Je±li j < |σ|, to segment nazywamy wªa±ciwym. m n a a a a 4 <ω 0 5 − m−1 <ω Stanisªaw Goldstein Logika dla matematyków i informatyków Wykªad 1 Preliminaria Alfabet Alfabet to dowolny niepusty zbiór S . Jego elementy nazywamy symbolami lub literami i wyró»niamy wytªuszczeniem. Sªowo (napis, ªa«cuch) w nad alfabetem S to sko«czony ci¡g elementów alfabetu (liter, symboli). Zgodnie z powy»sz¡ umow¡ dla ci¡gów, zamiast w = (s0 , s1 , . . . , sn 1 ) piszemy w = s s . . . s . Zbiór sªów nad alfabetem (napisów) oznaczamy przez W(S) = S = S . |w | oznacza dªugo±¢ sªowa w , tzn. |s s . . . s | = n. − ∗ 0 1 n−1 0 1 n−1 <ω Stanisªaw Goldstein Logika dla matematyków i informatyków Wykªad 1 Preliminaria Uwagi o alfabetach i sªowach Zgodnie z zaªo»eniem, symbole te» s¡ zbiorami. Nie jest wa»ne, jakie to zbiory, ale zakªadamy, »e »aden z nich nie jest zbiorem pustym. Je±li alfabet jest sko«czony lub przeliczalny, to mo»na przyj¡¢, »e symbole s¡ liczbami naturalnymi (bez 0). Zakªadamy, »e S ∩ W(S) = ∅, to znaczy »aden symbol z alfabetu nie jest jednocze±nie sªowem nad tym alfabetem. Zgodnie z powy»szymi uwagami dla ci¡gów, zbiór napisów z dziaªaniem konkatenacji i sªowem pustym tworzy monoid, czyli póªgrup¦ z jedynk¡ Stanisªaw Goldstein Logika dla matematyków i informatyków Wykªad 1 Preliminaria Przykªady alfabetów Cyfry {0, . . . , 9} do zapisu liczb 2 Litery A,C,T,G do zapisu ªa«cuchów DNA 3 Zestaw znaków ASCII, Latin-1 lub Unikodu 4 Zbiór {0, 1} alfabet binarny 5 Zbiór tokenów w dowolnym j¦zyku programowania. Tokenami s¡ na przykªad identykatory, czyli pewien zbiór sªów nad jednym alfabetem mo»e by¢ (pod)zbiorem liter innego alfabetu. Uwaga! Je±li w±ród symboli sko«czonego lub przeliczalnego alfabetu wyst¦puje 0, to traktujemy go nie jako zbiór pusty, ale pewien symbol kodowany za pomoc¡ niezerowej liczby naturalnej. 1 Stanisªaw Goldstein Logika dla matematyków i informatyków Wykªad 1 Preliminaria Przykªady sªów nad alfabetami 0579102 2 CTAAGTTTAGGGCACCC... 3 Nie widziaªam Ci¦ ju» od miesi¡ca 4 101110001011000001101100111110010100000 5 procedure main is x: integer; begin x:=x+1; end; W ostatnim przykªadzie w±ród symboli s¡ mi¦dzy innymi procedure, main, is, integer, begin, end, x, :, ;, :=. Niektóre tokeny musz¡ by¢ rozdzielone separatorami, takimi jak spacja, bo inaczej mogªyby by¢ pomylone z pocz¡tkami innych tokenów (brak jednoznaczno±ci) 1 Stanisªaw Goldstein Logika dla matematyków i informatyków Wykªad 1 Preliminaria Notacja polska Zwyczajowa notacja matematyczna dopuszcza ró»ne zapisy dla funkcji i relacji: 1 2 3 4 przedrostkowa (preksowa): sin x wrostkowa (inksowa): x + y przyrostkowa (suksowa): x! typograczna (umowna): xy , x y Notacja polska (przedrostkowa): operacja zawsze poprzedza argumenty, powy»sze wyra»enia wygl¡daªyby tak: sin x , + x y , ! x , · x y , ˆx y Notacja polska jest beznawiasowa, np. (x + y ) · z w notacji polskiej to · + x y z , za± x + y · z to + x · y z . Stanisªaw Goldstein Logika dla matematyków i informatyków Wykªad 1