Logika dla matematyków i informatyków Wykªad 1 Stanisªaw Goldstein Wydziaª Matematyki i Informatyki UŠ 16 lutego 2016
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 ℵ 0. Para uporz dkowana x, y jest zdeniowana jako zbiór {{x}, {x, y}}. Zauwa»my,»e je±li x 1, y 1 = x 2, y 2, to x 1 = x 2 oraz y 1 = y 2. n-tka uporz dkowana jest zdeniowana przez indukcj : x 0,..., x n, x n+1 = x 0,..., x n, x n+1 dla n 2. Dla n = 1 przyjmujemy x = {x}.
c.d. Relacja to pewien zbiór par uporz dkowanych. Funkcja to relacja R taka,»e je±li x, y 1 R i x, y 2 R, to y 1 = y 2. Deniujemy dom(r) = {x : y x, y R}, ran(r) = {y : x x, y R} i R A = { x, y R : x A}. Je±li R jest funkcj oraz x dom(r), to R(x) oznacza takie y ran(r),»e x, y R. Piszemy R : X Y, gdy R jest funkcj, X = dom(r) i ran(r) Y. Zbiór takich funkcji oznaczamy przez X Y = Y X. Funkcj R : X Y nazywamy iniekcj (odp. suriekcj, bijekcj ) je±li z R(x 1 ) = R(x 2 ) wynika x 1 = x 2 (odp. ran(r) = Y, R jest iniekcj i suriekcj ).
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 s 0,..., s m 1 S, to (s 0,..., s m 1 ) oznacza nkcj σ : m S tak,»e σ(j) = s j. Ci g 0-elementowy (pusty) jest oznaczany przez ε: ε = { } = ( ) = = 0. Ci gi 1-elementowe s oznaczane przez s = (s) = { 0, s } dla s S. Oznaczamy przez S m zbiór ci gów m-elementowych ze zbioru S. Zauwa»my,»e S 1 S oraz S 0 = {0} = 1. Oznaczamy przez S <ω zbiór m<ω S m. Zauwa»my,»e je±li S ω \ {0}, to S S <ω =.
c.d. 1 Je±li σ S m i τ S n, to σ τ oznacza konkatenacj π ci gów σ i τ, okre±lon tak,»e π(i) = σ(i) dla i < m oraz π(m + j) = τ(j) dla j < n. 2 Zauwa»my,»e dziaªanie konkatenacji jest ª czne, za± ci g pusty ε jest elementem neutralnym dla tego dziaªania. 3 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 στ. 4 Je±li S S <ω =, to zapisujemy (s 0,..., s m 1 ) jako s 0... s m 1. Zauwa»my,»e notacja ta jest zgodna z punktem 1. 5 Je±li σ S <ω, to segmentem pocz tkowym σ nazywamy σ j dla j σ. Je±li j < σ, to segment nazywamy wªa±ciwym.
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 = (s 0, s 1,..., s n 1 ) piszemy w = s 0 s 1... s n 1. Zbiór sªów nad alfabetem (napisów) oznaczamy przez W(S) = S = S <ω. w oznacza dªugo± sªowa w, tzn. s 0 s 1... s n 1 = n.
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
Przykªady alfabetów 1 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.
Przykªady sªów nad alfabetami 1 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)
Notacja polska Zwyczajowa notacja matematyczna dopuszcza ró»ne zapisy dla funkcji i relacji: 1 przedrostkowa (preksowa): sin x 2 wrostkowa (inksowa): x + y 3 przyrostkowa (suksowa): x! 4 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.