Cahit Arf Matematik G¨ unleri XIII
2. A¸sama Sınavı
21 S ¸ubat 2015
S¨ ure: 8 saat
X bir k¨ume, S, K ∈ X birer eleman ve · : X × X → X bir ikili i¸slem olsun.
E˘ger her a, b, c ∈ X i¸cin
(K · a) · b = a ve ((S · a) · b) · c = (a · c) · (b · c)
e¸sitlikleri sa˘glanıyorsa (X, K, S, ·) yapısına bir Sch¨onfinkel cebiri diyece˘giz.
Yazım kolaylı˘gı i¸cin a · b yerine basit¸ce ab yazaca˘gız ve i¸slem ¨onceli˘gini sola verece˘giz. Yani abc ifadesi (ab)c anlamına gelecek. Bu konvansiyonlar altında K ve S’nin sa˘glamasını istedi˘gimiz e¸sitlikleri Kab = a ve Sabc = ac(bc) ¸seklinde ifade edebiliriz.
B¨ut¨un sınav boyunca bir Sch¨onfinkel cebiri i¸cinde ¸calı¸saca˘gız ve bu cebirin elemanlarına bilgisayar programı ya da kısaca program diyece˘giz.
Her soruyu, ¸c¨ozmemi¸s bile olsanız, sonraki sorularda kullanabilirsiniz.
1. S¸u ko¸sulları her a, b, c, d ∈ X i¸cin sa˘glayan programların varlı˘gını kanıtlayın:
(a) Ia = a, (b) Babc = a(bc),
(c) ˜Babcd = a(bcd), (d) Cabc = acb,
(e) Qab = ba, (f) Vabc = cab.
C¸ ¨oz¨umler: I = SKK alaım. Bu durumda herhangi bir a i¸cin Ia = SKKa = Ka(Ka) = a
elde ederiz. Benzer ¸sekilde I = SKS de alabilirdik. E˘ger B = S(KS)K, B = BBB, C = S(BBS)(KK), Q = CI ve V = BCQ alırsak di˘˜ ger e¸sitlikler de sa˘glanır. Rutin olan kontrolleri okura bırakıyoruz.
2. do˘gru = K ve yanlı¸s = KI tanımlarını yapalım. Okuma kolaylı˘gı i¸cin abc yerine
e˘ger a ise b de˘gilse c
yazaca˘gız. Her b, c ∈ X i¸cin ge¸cerli olan ¸su e¸sitlikleri kanıtlayın:
e˘ger do˘gru ise b de˘gilse c = b e˘ger yanlı¸s ise b de˘gilse c = c
C¸ ¨oz¨um: Direkt tanımlardan
e˘ger do˘gru ise b de˘gilse c = do˘gru bc
= Kbc = b ve
e˘ger yanlı¸s ise b de˘gilse c = yanlı¸s bc
= KIbc = Ic = c elde ediyoruz.
3. Bundan sonra Vab yerine [a, b] yazaca˘gız. S¸u e¸sitlikleri sa˘glayan P1ve P2
programlarının varlı˘gını kanıtlayın:
[a, b]P1= a ve [a, b]P2= b.
C¸ ¨oz¨um: Kolayca g¨or¨uld¨u˘g¨u ¨uzere P1 = do˘gru ve P2 = yanlı¸s alırsak istedi˘gimiz e¸sitlikler sa˘glanıyor.
4. S¸u e¸sitlikleri sa˘glayan bir programın varlı˘gını kanıtlayın:
de˘gil do˘gru = yanlı¸s, de˘gil yanlı¸s = do˘gru C¸ ¨oz¨um: Elimizdeki
[yanlı¸s, do˘gru] do˘gru = yanlı¸s ve [yanlı¸s, do˘gru] yanlı¸s = do˘gru
e¸sitlikleri de˘gil = [yanlı¸s, do˘gru] tanımının i¸se yarayaca˘gını s¨oyl¨uyor.
5. T¨umevarımla her n do˘gal sayısı i¸cin ¸su tanımı yapalım:
p0q = I , pn + 1q = [ yanlı¸s, pnq].
Her n do˘gal sayısı i¸cin ¸su ko¸sulları sa˘glayan programların varlı˘gını kanıtlayın:
(a) ardıl pnq = pn + 1q, (b) ¨onc¨ul pn + 1q = pnq,
(c) sıfır? p0q = do˘gru, (d) sıfır? pn + 1q = yanlı¸s.
C¸ ¨oz¨umler: E˘ger ardıl = V yanlı¸s, ¨onc¨ul = QP2 ve sıfır? = Q do˘gru alırsak istedi˘gimiz e¸sitlikler sa˘glanıyor.
6. ˙I¸cinde pnq ge¸cen ¨oyle bir F programı yazın ki e˘ger n < 2 ise F = p1q, e˘ger n = 2 ise F = p0q ve e˘ger n > 2 ise F = pn + 3q e¸sitlikleri sa˘glansın.
C¸ ¨oz¨um: Kolayca g¨or¨uld¨u˘g¨u ¨uzere ¸su program i¸se yarıyor:
e˘ger sıfır? pnq ise p1q de˘gilse ( e˘ger sıfır? (¨onc¨ul pnq) ise p1q de˘gilse ( e˘ger sıfır? (¨onc¨ul (¨onc¨ul pnq)) ise p0q de˘gilse (
ardıl (ardıl (ardıl pnq)))))
7. S¸u ko¸sulları her a, b, f ∈ X i¸cin sa˘glayan programların varlı˘gını kanıtlayın:
(a) Ωa = aa, (b) Aab = b(aab),
(c) sabit f = f (sabit f ).
C¸ ¨oz¨umler: E˘ger Ω = SII, A = B(SI)Ω ve sabit = AA alırsak istedi˘gimiz e¸sitlikler sa˘glanıyor.
8. Her x ve her f programı i¸cin F f x =
e˘ger sıfır? x ise do˘gru de˘gilse de˘gil (f (¨onc¨ul x)) e¸sitli˘gini sa˘glayan bir F programının varlı˘gını kanıtlayın.
C¸ ¨oz¨um: ¨Once F ’nin sa˘glaması gereken e¸sitli˘gi e˘ger ise de˘gilse olmadan ve ekstra parantezlerle yazalım:
F f x = ((sıfır? x) do˘gru )(de˘gil (f (¨onc¨ul x))).
˙Ilk ¨once F x = ((sıfır? x) do˘gru ) ve G f x = (de˘gil (f (¨onc¨ul x))) ko¸sullarını sa˘glayan birer F ve G programı oldu˘gunu g¨osterece˘giz.
F ile ba¸slayalım. Her ne kadar F x ifadesi x’in bir fonksiyonu gibi g¨or¨unse de aslında sıfır? ve do˘gru programlarına da ba˘glı. Bunu a¸cık¸ca ifade edersek aradı˘gımız
F0sıfır? do˘gru x = (sıfır? x) do˘gru
e¸sitli˘gini sa˘glayan bir F0 programı. Ama bu ko¸sulu sa˘glayan bir program zaten biliyoruz: C. Yani
F = F0sıfır? do˘gru = C sıfır? do˘gru alabiliriz.
Benzer ¸sekilde
G0de˘gil ¨onc¨ul f x = de˘gil (f (¨onc¨ul x))
e¸sitli˘gini sa˘glayan bir G0bulursak G = G0de˘gil ¨onc¨ul tanımını yapabili- riz.
S
¸imdi G0’dan ne bekledi˘gimizi yazalım:
G0abcd = a(c(bd)).
Yani G0, ¨once b ve c’nin yerini de˘gi¸stiriyor, sonra da i¸slem ¨onceli˘gini sa˘ga veriyor. Bunlardan ilkini yapan bir program zaten biliyoruz:
C abcd = acbd.
˙Ikincisi ise kolayca g¨or¨uld¨u˘g¨u ¨uzere B(BB)B tafaından yapılıyor:
B(BB)B abcd = a(b(cd)).
S
¸imdi bu ikisini birle¸stirecek bir programa ihtiyacımız var. Gene kolayca g¨or¨uld¨u˘g¨u ¨uzere
B ˜˜B ˜Bf gabcd = f (gabcd).
Yani
G0= ˜B ˜B ˜B(B(BB)B)C alabliriz.
Son olarak
U0F G f x = (F x)(G f x)
e¸sitli˘gini sa˘glayan bir U0 bulup U = U0F G olarak tanımladıktan sonra F = U diyebiliriz. Detayları okura bırakıyoruz.
9. Verilen bir sayının ¸cift mi yoksa tek mi oldu˘gunu anlayan bir program yazın. Yani her m do˘gal sayısı i¸cin
¸cift? p2mq = do˘gru ve ¸cift? p2m + 1q = yanlı¸s ko¸sullarını sa˘glayan bir program yazın.
C¸ ¨oz¨um: ¨Onceki sorudaki F programını kullanark ¸su tanımı yapalım: ¸cift? = sabit F . Bu tanımın i¸se yaradı˘gını n ¨uzerine t¨umevarımla kanıtlayaca˘gız.
E˘ger n = 0 ise
¸cift? p0q = sabit F p0q
= F (sabit F )p0q
= e˘ger sıfır? p0q ise do˘gru de˘gilse ...
= e˘ger do˘gru ise do˘gru de˘gilse ...
= do˘gru
e¸sitlikleri sa˘glanıyor. S¸imdi istedi˘gimiz e¸sitli˘gin n i¸cin sa˘glandı˘gını varsayıp n + 1 i¸cin sa˘glandı˘gını kanıtlayaca˘gız:
¸cift? pn + 1q = sabit F pn + 1q
= F (sabit F )pn + 1q
= e˘ger sıfır? pn + 1q ise do˘gru de˘gilse de˘gil ((sabit F ) (¨onc¨ul pnq))
= e˘ger yanlı¸s ise do˘gru de˘gilse de˘gil ((sabit F ) (¨onc¨ul pn + 1q))
= de˘gil ((sabit F ) (¨onc¨ul pn + 1q))
= de˘gil ((sabit F ) pnq)
= de˘gil (¸cift? pnq)
˙Iki olasılık var. E˘ger n ¸ciftse, t¨umevarım varsayımından ¸cift? pnq = do˘gru ve dolayısıyla yukarıdaki e¸sitlikten ¸cift? pn + 1q = yanlı¸s. E˘ger n tek ise aynı ¸sekilde ¸cift? pn + 1q = yanlı¸s olaca˘gını g¨ormek de kolay.
10. Toplama yapan bir program yazın. Yani her m, n do˘gal sayısı i¸cin toplam pmq pnq = pm + nq
e¸sitli˘gini sa˘glayan bir program yazın.
C¸ ¨oz¨um: Bu problem ¨onceki probleme ¸cok benziyor. Tek fark yukarıdaki F fonksiyonuna burada neyin denk gelece˘gini kestirmenin biraz daha zor olması ¸c¨unk¨u toplama iki de˘gi¸skenli bir fonksiyon. Bu y¨uzden iki de˘gi¸skeni bir den alıp toplam pmq pnq ifadesini tanımlamak yerine ¸simdilik ikinci de˘gi¸skeni unutup toplam pmq ifadesini tanımlayaca˘gız. Burada tanım- ladı˘gımızın bir do˘gal sayı (daha do˘grusu bir do˘gal sayı kodu) yerine bir do˘gal sayı alıp gene bir do˘gal sayı ¨ureten bir fonksiyonun kodu oldu˘guna okurun dikkatini ¸cekelim.
E˘ger m = 0 ise toplam pmq ifadesi birim fonksiyonu vermeli. Yani toplam p0q = I. Di˘ger yandan bir sayıyı m + 1 ile toplamak onu ¨once m ile toplamak sonra da 1 eklemek demek. Yani
toplam pm + 1q = ˜B ardıl toplam pmq sa˘glanmalı ¸c¨unk¨u
toplam pm + 1qpnq = ardıl (toplam pmqpnq) Sonu¸c olarak e˘ger
F f pmq =
e˘ger sıfır? pmq ise I de˘gilse ˜B ardıl f (¨onc¨ul pmq) tanımını yaparsak toplam = sabit F programı istedi˘gimiz e¸sitli˘gi sa˘glar.
Detayları okura bırakıyoruz.
11. Matematikten sevdi˘giniz bir fonksiyon se¸cin ve se¸cti˘giniz fonksiyonu he- saplayan bir program yazın. Mesela ¸carpma yapan, fakt¨oriyel veya OKEK hesaplayan, Fibonacci dizisnin istenen bir terimini bulan, bir do˘gal sayının asal olup olmadı˘gını anlayan ya da iki sayıdan b¨uy¨u˘g¨un¨u se¸cen bir program yazabilirsiniz. Aslında yeterince vakit verildi˘ginde geleneksel bir bilgisa- yarın hesaplayabildi˘gi herhangi bir fonksiyon i¸cin bir program yazabilirsi- niz.