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