• 검색 결과가 없습니다.

SNU 4190.310 Programming Languages Lecture Notes

N/A
N/A
Protected

Academic year: 2022

Share "SNU 4190.310 Programming Languages Lecture Notes"

Copied!
205
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

Lecture Notes

Kwangkeun Yi

1

School of Computer Science & Engineering Seoul National University

2006

1Homepage: cse.snu.ac.kr/~kwang

(2)
(3)

s

 ”¸àԍH (ŽÉÓ' áԖÐÕªAbç ƒ#Q\ @/ôÇ כ {9m. s ìr\"f »¡¤&h)a $í õ

ü< ëH]j[þt_ Kõ&ñ\ @/ôÇ sl{9m. †<ÆÂÒ áԖÐÕªAbç ƒ#Q y©œ_6 x {

9

m.

¿

º> h_  » ¡ ¤

s

l_ ?/6 x“Ér ¿º>h_ »¡¤`¦  ½¨$í÷& e”_þvm. –Ð »¡¤“Ér áԖÐÕªAbç ƒ

#

Q ^‰\ @/ôÇ sl {9m. [j–Ð »¡¤“r ÒÉqtyŒ• H ~½Ód”\ @/ôÇ sl {9m

. áԖÐÕªAbç ƒ#Q\¦ /BNÂÒ½+É M: 6 x H ÒqtyŒ•_ ~½Ód”\ @/ôÇ. s ¿º »¡¤`¦ l

ïrܼ–Ð ìrŸí÷&H ýa³ð[þts ?/6 x`¦ ½¨$í½+Ëm.

% i

 9



| X< 6£§_ כ [þt“Ér ä¼ot ·ú§“¦ „²ú˜ 9“¦ ½+Ëm: š¸Ï?@1lxî– ¶ßú˜zŒ™

`

¦ l‘:rl, éߖéߖôÇ Ùþ˜d”.

Õ

ªo“¦, —¸²DG#Q–Ð y©œ_ôÇ ?/6 x{9m. Óüt:r „ëH 6 x#QH †½Ó©œ %ò#Q\¦ italic /

å

Jg1J–Ð #îl½+Ëm.

Õ

ªo“¦ ?/ ?/ Û¼5px_ ƒ#Q“ –2;#Q @/’\ _ ƒ#Q“ áÔ|½ÓÛ¼#Q–Ð æ¼ l

–Ð ôÇ כ “Ér, I#Q€"f t“¦ e”H íHú s$íëߖ`¦ 6 x H |ÃÐ[þts

"

º

±ú˜ Õþ˜ëߖ`¦ b”H |ÃÐ[þt˜Ð 8 ØÔ> ?/ _|`¦ sK o“¦ b”“¦ e” l

 M:ëHs. H €ªœd”`¦ t“¦ ˨ïry ”¸§4 H |ÃÐ[þtëߖs ?/ d”óøÍ

(4)

›'

as ÷&l\¦ mü< Õª |ÃÐ[þt“Ér ?/ :Ÿx5Åq_ ƒ#Q–Ð ?/ 7H\¦ [O

"

î

Ùþ¡“¦ K"f s 7H\¦ [þtܼ9 t ·ú§`¦ ëߖpu –2;#Q\¦ ¼#E tH ·§ú

`

¦ כ s“¦ b”H. – X<ØÔàÔ, ~½ÓZO"f[O (t}Œ•\"f ¿ºP: éߖ|ÃÌ)

(5)

1 ©œ ™è>h 9

1.1 áԖÐÕªAbç ƒ#QH p>h  . . . 10

1.2 áԖÐÕªAbç ƒ#Q_ 0Au . . . 11

2 ©œ l‘:rl 15 2.1 ) ±úšZOinductive definition . . . 15

2.1.1 |9½+Ë_ &ñ_ . . . 15

2.1.2 7£x"î_ ~½ÓZO . . . 24

2.2 +þAd” 7Hoformal logic . . . 27

2.2.1 —¸€ªœõ >pw . . . 27

2.2.2 Æҏ:r½©gË: . . . 29

2.2.3 îߖ„ôÇ < ʓÉr ¢-a„ôÇ . . . 31

3 ©œ —¸€ªœõ >pw 33 3.1 ëHZO½¨›¸syntax . . . 33

3.1.1 כ¹€•)a < ʓÉr ½¨^‰&h“ . . . 35

3.2 _p½¨›¸semantics . . . 38

3.2.1 õ&ñ`¦ ×¼Q?/H . . . 38

3.2.2 ÏãÎFG`¦ ×¼Q?/H . . . 48

4 ©œ l> ×æd”_ ƒ#Q 57 4.1 ÅÒ#Q” l> . . . 57

(6)

4.2 ƒ#Q vĺl 0: K--- . . . 59

4.2.1 ú: Bj—¸o Åҙè\ s2£§ ·¡­sl . . . 59

4.2.2 s2£§_ ¿ºt _p . . . 63

4.2.3 s2£§_ Ä»´ò#30A . . . 64

4.2.4 ¨8Šâ . . . 66

4.2.5 Ä»–Ðîr < ʓÉr Óü#Œe”H . . . 69

4.2.6 [O„½Ó½¨›¸ . . . 70

4.3 ƒ#Q vĺl I: K-- . . . 71

4.3.1 áԖÐr4R: "î§îëH\ s2£§ ·¡­sl . . . 71

4.3.2 s2£§_ Ä»´ò #30A . . . 73

4.3.3 áԖÐr4R  ñئ ~½ÓZO . . . 75

4.3.4 F)  ñئ . . . 76

4.3.5 "î§îëHõ d_” :Ÿx½+Ë . . . 77

4.3.6 Bj—¸o ›'ao . . . 80

4.4 ƒ#Q vĺl II: K- . . . 82

4.4.1 YUï×¼: ½¨›¸ e”H X<s , < ʓÉr Bj—¸o Óüæu . . . 82

4.4.2 Ÿí“': Bj—¸o Åҙè\¦ X<s –Ð . . . 85

4.4.3 Bj—¸o ›'ao . . . 87

4.5 ƒ#Q vĺl III: K . . . 94

4.5.1 z´'Ÿ÷&"fH ·ú§|¨c áԖÐÕªÏþ›[þt . . . 94

4.5.2 š¸ÀÓ Ž7£x_ ëH]j . . . 95

4.5.3 {9 rÛ¼%7›: ™è>h . . . 99

4.5.4 K = K- + {9 rÛ¼%7› . . . 100

4.5.5 K- {9 rÛ¼%7›_ 7Ho&h ëH]j . . . 106

4.5.6 K- {9 rÛ¼%7›_ ½¨‰&³ ëH]j . . . 112

4.5.7 s2£§ /BNçߖ, °ú “Ér {9 . . . 117

4.6 &ño . . . 118

(7)

5 ©œ °úכ ×æd”_ ƒ#Q 121

5.1 ƒ#Q_ —¸4Sq . . . 121

5.1.1 |ÃÐ >íߖZOLambda Calculus . . . 123

5.1.2 |ÃЖРáԖÐÕªÏþ› l . . . 130

5.2 ƒ#Q vĺl 0: M0 . . . 133

5.2.1 ™èFG&h“ z´'Ÿlazy evaluationõ&hFG&h“ z´'Ÿeager evaluation 134 5.2.2 rŒ• ƒ#Q: °úכ“Ér š¸f” †<Êú . . . 136

5.3 ƒ#Q vĺl I: M1 . . . 138

5.3.1 Ér °úכ: &ñú, ‚ÃÐ/f± . . . 139

5.4 ƒ#Q vĺl II: M2 . . . 141

5.4.1 ½¨›¸ e”H °úכ: Š©œpair . . . 141

5.5 ƒ#Q vĺl III: M3 . . . 143

5.5.1 Bj—¸o ÅÒ™è °úכ: "î§î+þA ƒ#Q_ —¸_þv . . . 143

5.6 š¸ÀÓ Ž7£x_ ëH]j . . . 146

5.6.1 &ñ&h {9 rÛ¼%7›static type system . . . 147

5.6.2 +þAd” 7Ho rÛ¼%7›formal logic oÂÓ . . . 150

5.7 éߖíH {9 rÛ¼%7›simple type system . . . 152

5.7.1 éߖíH {9 Æҏ:r ½©gË: . . . 153

5.7.2 Æҏ:r ½©gË:_ îߖ„$í . . . 157

5.7.3 Æҏ:r ½©gË:_ ½¨‰&³ . . . 160

5.7.4 îߖ„ôÇ ÕªQ âf”)a . . . 170

5.7.5 M3–Ð SX‰©œ l . . . 172

5.8 +þA {9 rÛ¼%7›polymorphic type system . . . 175

5.8.1 +þA {9 Æҏ:r ½©gË: . . . 179

5.8.2 Æҏ:r ½©gË:_ îߖ„$í . . . 185

5.8.3 Æҏ:r ½©gË:_ ½¨‰&³ . . . 185

5.8.4 M3–Ð SX‰©œ l . . . 186

5.9 &ño . . . 190

(8)

6 ©œ %iõ z´'Ÿ 193

6.1 áԖÐÕªÏþ› {9§4 . . . 193

6.2 áԖÐÕªÏþ› z´'Ÿ . . . 194

6.2.1 z´'Ÿlinterpreter . . . 194

6.2.2 %ilcompiler . . . 195

6.2.3 µ1τ . . . 196

6.3 %i: Ô¦$í|9invariant Ä»t l . . . 197

6.4 ©œ_ l>virtual machine . . . 200

(9)

™ è> h

s

 y©œ_\¦ :ŸxK"f 6£§õ °ú “Ér |9ëH[þt\ @/ôÇ ²úš`¦ e”y, a%~“Ér ²úš`¦ ëߖ[þt

#

Q?/l 0AK"f €9כ¹ôÇ ™è€ªœ`¦ ²ú£> )a.



€ªœôÇ áԖÐÕªAbç ƒ#Q[þts ¾¡§“¦e”H /BN:Ÿx)a "é¶o[þt“Ér Áº%Á “? ‰&³F_ á

ԖÐÕªAbç ƒ#Q[þt“Ér \Oëߖpu p>hôÇ? 7á§8 tl 0AK"f €9כ¹ôÇ כ [þt

“ É

r Áº% “Á? Dh–Ðîr áԖÐÕªAbç ¨8Šâ`¦ ´òõ&hܼ–Ð îr6 x½+É Ãº e”H ƒ#QH Á

º%Á “?

s

QôÇ |9ëH[þt\ @/ôÇ ²úš“Ér = €9כ¹ôÇ כ {9?

• “¦èߖ•¸ ™èáÔàÔJ?#Q rÛ¼%7›`¦ ’<H~1> Ò¦ ú e”H ~½ÓZO“Ér áԖÐÕªAbç ƒ

#

Q_ ?/6 x`¦ /BNÂÒ €"f ´òõ&hܼ–Ð e”)€”. ™èáÔàÔJ?#Q ~½ÓZO:r ×æ\



H áԖÐÕªAbç ƒ#Q s:r_ z´»~ÃÎgË>s \OsH /BN)‡KtH כ s @/ÂÒìrs l

 M:ëHs.

• @/ÂÒìr_ ™èáÔàÔJ?#Q[þts (ŽÉÓ' ƒ#Q\¦ %ƒo H ÂÒ¾¡§`¦ t> ÷&H

<, sX  ÂÒ¾¡§[þts áԖÐÕªAbç ƒ#Q\"f »¡¤&hôÇ s:rõ z´]j\¦ `¦–Ð sK

“¦ [O>|¨c€9כ¹ e”. $í/åLôÇ ©œd”_ úïr\"f “¦îߖ÷&H áԖÐÕªAbç

ƒ



#Q rÛ¼%7›“Ér #QÖ¼íHçߖ Áº-4R !QoH oü< °ú s 0AI–ÐÖ¦ ú µ1Ú\ \O l

 M:ëHs.

• áԖÐÕªAbç ƒ#Q_ ƒ½¨$íõ[þt ü×þ˜\ ™èáÔàÔJ?#Q >hµ1ÏsH כ s /åL

(10)

5 Å

q•¸–Ð ú†<Æ&hs“¦ %3x9ôÇ lÕüts ÷&#Q“¦ e”HX<, s\ ĺo áԖÐÕª Abç ƒ#Q\¦ #QbG> K ½+É כ “t\¦ “¦K ôÇ. ĺo ™èáÔàÔJ?#Q í

ß

–\O_ âÔqt§4`¦ ‚½Óئ½+É Hçߖܼ–Ð+‹.

á

ԖÐÕªAbç ƒ#Q_ $íõ, ëH]j, Õªo“¦ Õª ÒqtyŒ•_ d¦`¦ sK H כ s (ŽÉÓ' õ

†<Æ//BN†<Æcomputer science, computer engineering`¦ „/BN H X< ×æכ¹ôÇ x92£§s.

1.1 á Ԗ ÐÕ ªA b ç ƒ  # Q  H p > h  

‰

&

³F_ áԖÐÕªAbç ƒ#QH \O p>h½+É?

á

ԖÐÕªAbç ƒ#Q–Ð #Œ” ™èáÔàÔJ?#Q\¦ l> z´'ŸK ïr. ĺo “¦îߖ ô

Ç l> ™èáÔàÔJ?#Q\¦ 1lxܼ–Ð z´'ŸK ïr. @/éߖ “¦ Ztîr {9s. 8 Z

tîr {9“Ér, _ l> z´'Ÿ½+É Ãº e”H áԖÐÕªÏþ›[þts ÁºÃºy ´ú§s e”`¦ ú e

”

H כ s. s l>H s [j©œ\ \O%3. 1lx H l>H ““¦ "f



H” áԖÐÕªÏþ›ëߖ z´'ŸK צ ÷rs. 1lx  `…²ú˜`¦ µ1á"f ëH"f\¦ ¼#|9  1

l

x%ò©œ`¦ ©œ% ò \#QÑþ˜`¦ :Ÿx]j H 1px_ {9`¦ ½+É Ãº H \O.

Õ

ªX<, ëH]jH áԖÐÕªAbç ƒ#Q–Ð #Œ” ™èáÔàÔJ?#QH “/BNÓüts Bĺ 0

AI–Ðîr ©œI\"f z´'Ÿ)aH &hs. ]j@/–Ð Œ•1lx H Óüt| “t\¦ SX‰“  t

 ·ú§“¦ z´'Ÿ÷&> )a. Õª SX‰“`¦ po 1lxܼ–Ð K ÅҍH lÕüts f”“Ér p>h

.



Ér ìrü< q“§K ˜Ð. ]j@/–Ð Œ•1lx½+É t\¦ po Ž7£x½+É Ãº \OH l>[O

>

H \O. ]j@/–Ð "fe”`¦ t\¦ po Ž7£x½+É Ãº \OH | »¡¤[O>H \O. “/BN Ó

ü

t[þts ƒ[j>\"f ëH]j \Os Œ•1lx½+É t\¦ po %3x9 > ìr$3 H ú†<Æ&h l

Õüt[þt“Ér ¸ú˜ µ1ϲú˜K M®o. ¾»—Ér %i†<Æ, p&hìr ~½Ó&ñd”, :Ÿx> %i†<Æ1px1pxs ÕªQôÇ l

Õüt[þt{9 כ s.

™

èáÔàÔJ?#QH “/BNÓüt\ @/K"fH #Q*‹ôÇ? Œ•$íôÇ ™èáÔàÔJ?#Q ]j@/

–Ð z´'Ÿ|¨c t\¦ po %3x9 > SX‰“K ÅҍH lÕüt[þt“Ér e”H?

s

 ëH]jH f”•¸ K÷&t ·ú§“Ér ëH]js. (ŽÉÓ' õ†<Æ s ëH]j\ @/ôÇ ²úš

`

¦ áԖÐÕªAbç ƒ#Q\"f•¸ K1> ôÇ. s ~½Ó†¾Ó\"f tFK t ƒ½¨)a כ [þt

(11)

s

 f”“Ér pf¨ .

t

FKt $í/BN&h“ ƒ½¨õ #Q‹" —¸_þvܼ–Ð áԖÐÕªAbç ƒ#Q\ ©œ‚ÃÌ÷&

“¦ e”Ht s y©œ_\¦ :ŸxK ¶ú˜(R ^¦ כ s. ÕªXO> %3#Q” ryŒ•Ü¼–Ð ™èáÔàÔJ?

#

Q lÕüt_ ‰&³Fúïr`¦ çߖ  “¦, ˜Ð“Ér pAlÕüt`¦ \P#Q °ú˜ }€f›`¦ ¾¡§> ÷&

U

´.

1.2 á Ԗ ÐÕ ªA b ç ƒ  # Q_  0 Au 

Ä

º‚ áԖÐÕªAbç ƒ#QH Áº%Á “? \ @/K"f €ªœ > sl |¨c ú e”.

(

Ž

ÉÓ'H l>\> "î§î H •¸½¨, áԖÐÕªA Q[þt s_ ™è:Ÿx_ úéߖ, ©œ0A YU6\š_ n“`¦ ³ð‰&³ H •¸½¨, ·ú˜“¦o7£§`¦ lÕüt H ³ðlZO, ÒqtyŒ•ôÇ \¦ z´ '

Ÿ

r~´ ú e”•¸2Ÿ¤ ³ð‰&³ H •¸½¨, 1px1px.

(12)

#

Œ{Œ™Ü¼–Ð š¸K \¦ –Ð ¸úš. áԖÐÕªAbç ƒ#Q (ŽÉÓ'\¦ [tol0A K

 ëߖ[þt#Q” כ s m. (ŽÉÓ' áԖÐÕªÏþ›`¦ [tol0AK ëߖ[þt#Q” כ s.

% i

&hܼ–Ð ÕªXO. ëߖ[þt#Q” (ŽÉÓ'\¦ 6 x l0AK “¦îߖôÇ כ s áԖÐÕªA b

ç

ƒ#Q m“¦, Õª „\ sp 7Ho†<Æü< ú†<Æ[þts áԖÐÕªAbç ƒ#Q\¦ “¦ î

ß

–Ùþ¡. Õªo“¦ "f „lr–ЖР½¨‰&³)a nt»1Ï (ŽÉÓ' µ1Ï"î÷&%3.

1930¸@/ ´ú˜ÂÒ', {9çH_ ú†<Æ[þt“Ér õƒ “l>&hܼ–Ð >íߖ 0pxôÇ †<Êú”

 Áº%Á {9\¦ “¦Ùþ¡. _ sn#Q–Ð, ƒ#Q\¦  “¦îߖK"f Õª ƒ#Q

–

Ð &ñ_|¨c ú e”H כ [þt`¦ l>&hܼ–Ð >íߖ 0pxôÇ †<Êú“¦ , “¦ ]jîߖ 

% i

. &ñSX‰ > ‰&³F_ nt»1Ï (ŽÉÓ'–Ð z´'Ÿ|¨c ú e”H —¸ŽH áԖÐÕªÏþ›`¦ Œ•

½+É Ãº e”H ƒ#Q[þts%3. Zt³1Ñ>•¸. tFK_ nt»1Ï (ŽÉÓ'H ÕªQôÇ †<Êú [

þ

t`¦ 1lxܼ–Ð À1Ïo z´'Ÿr&ÅҍH •¸½¨{9 ÷rs.

z

´'ŸK ÅҍH l> -$ ÷&%3~tçߖ\, áԖÐÕªAbç ƒ#QêøÍ 1lx z´'Ÿ`¦ %i

¿

º\ ¿º“¦ “¦îߖôÇ ƒ#Qs. Õª YU6\šs l>#Q úïrs|  Õª ˜Ð s`› ©œ0A_

(13)

ƒ



#Qs| çߖ\.

á

ԖÐÕªAbç ƒ#Q_ ´ò6 x`¦ ›¸FK ½¨^‰&hܼ–Ð ˜Ð. 6£§ ÕªaË>\"f ³ð‰&³ %i 1

p

ws, —¸ŽH ™èáÔàÔJ?#Q rÛ¼%7›“Ér “ƒ#Q”\¦ lìÍÜø¼–Ð ôÇ. ™èáÔàÔJ?#Q ü@ÂÒ [

j>ü< ™è:Ÿx H X<H, #Q‹" +þAIŽH †½Ó©œ ƒ#Q\¦ :ŸxK"f sÀÒ#Qtl M:ëHs.

X

<s Z…sÛ¼ rÛ¼%7›_|9_ %ƒoquery processing, –Ð4Ÿ© áԖÐÕªAbç, ×¼J?#Q n

“, &Á»mHs‚ áԖОÐc+t n“, ™èáÔàÔJ?#Q Ž7£x, áԖÐÕªAbç ƒ#Q rÛ¼

%

7›(%ilcompiler z´'Ÿlinterpreter), >e” áԖÐÕªAbç 1px1px “ƒ#Q”\Os Œ•1lx

H ™èáÔàÔJ?#Q rÛ¼%7›“Ér \O. —¸ŽH כ [þt“Ér ƒ#Q %ƒo rÛ¼%7›`¦ ¾¡§“¦ e”.



"f —¸ŽH ™èáÔàÔJ?#Q rÛ¼%7›_ âÔqt§4_ {9ÂÒìr“Ér áԖÐÕªAbç ƒ#Q ìr



_ ƒ½¨ $íõ\ lœíK"f µ1τ > )a. áԖÐÕªAbç ƒ#Q_ '‘éߖ lÕüt\

@

/ôÇ sK \OsH –Ð4Ÿ© áԖÐÕªAbç rÛ¼%7›/ ×¼J?#Q }9 n“ rÛ¼%7›/áԖÐ

ž

Ðc+t n“ rÛ¼%7›/™èáÔàÔJ?#Q Ž7£x rÛ¼%7›/>e” áԖÐÕªAbç rÛ¼%7›/X<s 

(14)

Z

…sÛ¼ rÛ¼%7› 1px`¦ ]j@/–Ð n“  ½¨‰&³ l ~1t ·ú§. —¸¿º áԖÐÕª Abç ƒ#Q ìr_ “»¡¤4Ÿ¤”s •¸¹¡§s ÷&#Q µ1τ½+É Ãº e”. Õªo“¦, áԖÐÕªAbç

ƒ



#Q ìr ^‰H ¢¸, 7Ho†<Æõ ú†<Æ_ »¡¤4Ÿ¤ A\"fëߖ éߖéߖ > µ1τ½+É Ãº e”

.

(15)

l

‘ : rl 

á

ԖÐÕªAbç ƒ#Q\¦ sl HX< l‘:r&hܼ–Ð 6 x H #Q6f[þtõ ´ú˜ H ~½Ód” s e”. Õª #Q6fü< ~½Ód”_ l‘:r“Ér ú†<Æs. s ©œ\"fH ·ú¡Ü¼–Ð ĺo  6

 

x½+É #Q6fü< ´ú˜ H ~½Ód”`¦ ·ú˜˜Ð“¦, Õª 6 x \V[þt`¦ ¶ú˜(R˜Ð.

2.1 ) ± šZ ú O 

inductive definition

2.1.1 9 ½ | + Ë_  & ñ _ 

| 9

½+Ë`¦ &ñ_ H ~½ÓZO\H ›¸| ]jrZOõ "鶙è\PZO, Õªo“¦  8 e”.

)

±úšZOs.

)

±úšZO“Ér a¦. Ä»ôÇ > ÁºôÇôÇ כ `¦ &ñ_½+É Ãº e”l M:ëHs. Ä»ôÇôÇ Ì

ú_ Ä»ôÇôÇ ½©gË:[þt–Ð ÁºôÇy ´ú§“Ér "鶙è\¦ tH |9½+Ë`¦ &ñ_ H ~½ÓZOs )

±úšZOs.

)

±úšZO“Ér @/> 7£x"î_ ôÇ ~½ÓZOs“¦ Cĺtëߖ, z´ Õª 7£x"îs úFNs 



H sÄ»H |9½+Ë`¦ &ñ_ H ) ±úšZO_ \O>h\¦ "f 7£x"îK H כ sl M: ë

Hs.

)

±úš 7£x"î\ @/K"fH 6£§©œ(2.1.2)\"f ¶ú˜(R˜Ðl–Ð “¦ ) ±úšs |9½+Ë`¦ &ñ _

 H X< 6 x÷&H כ \ @/K"f ĺ‚ ¶ú˜(R˜Ð.

)

±úšZOܼ–Ð |9½+Ë`¦ &ñ_ H ~½ÓZO“Ér, Õª s2£§s _p HX<–Ð, ÷&[t"f 

(16)

u

H כ s(÷&[t"f return , u dedicate Ö). ÷&[t"f ëߖ[þt#Q •2;



H כ “Ér, Õª |9½+Ë_ "鶙è\¦ t“¦ Õª |9½+Ë_ "鶙è\¦ ëߖŽHH כ s. ) ±úš ZO

ܼ–Ð &ñ_÷&H |9½+˓Ér Y> >h_ ½©gË:[þt–Ð ½¨$í÷&“¦, Õª ½©gË:[þts ) ±úš&hs:

Á

º%Á Áº%Á s sp |9½+Ë_ "鶙è[þts€ Õªכ [þt–Ð #QbG>#QbG> € r |9½+Ë _

 "鶙è )a, H d”s.

2.1.1.1 Õª |9½+˓Ér sכ s

›

¸FK {9ìøÍ&h“ —:rܼ–Ð slK˜Ð€ sXO. _ ½©gË:“Ér ‹Œ•Ü¼–Ð ½¨$í)a:

&ñ[þt Xü< :r x. Õª ½©gË:s ´ú˜ H H “X\ e”H כ [þts &ñ_ 9H |9

½+

Ë\ —¸¿º e”ܼ€, x•¸ e”#Q ôÇ” H כ s. sQôÇ ½©gË:[þts —¸#Œ"f  _ |9½+Ë`¦ &ñ_ôÇ. Õª |9½+˓Ér, ½©gË:[þts כ¹½¨ H "鶙è[þt“Ér —¸›¸o Ÿí†<Ê 

“¦ e”H |9½+Ë îrX< ©œ Œ•“Ér |9½+Ëܼ–Ð ôÇ. þj™è_ |9½+Ës“¦ “¦|9 H s

Ä»H, ½©gË:[þts כ¹½¨ H "鶙è[þt“Ér —¸¿º Ÿí†<Ê tëߖ Õª µ1Ú_ כ [þt“Ér ]jü@ 

“¦ z·#Q"fs.

7 á

§ 8 "îSX‰ > ˜Ð. &ñ[þt Xü< :r x_ ‹Œ• (X, x)–Ð ³ð‰&³÷&H ½©gË:[þt _

 —¸e”`¦ Φ“¦ .

Õ

ª ½©gË:`¦ ëߖ7ᤠH "鶙è[þt`¦ —¸¿º ¾¡§“¦ e”H |9½+Ë`¦ “Φ\ @/K"f {Œ—)€e”

” < ʓÉr, “Φ-{—jŒËµ”s“¦ ôÇ. 7£¤, |9½+Ë A Φ-{Œ—j˵, “Ér

(X, x) ∈ Φ s“¦ X ⊆ A s€ x ∈ A

“



 âĺ\¦ ´ú˜ôÇ. s]j, Φ &ñ_ H |9½+˓Ér —¸ŽH Φ-{Œ—˜2³ |9½+Ë[þt_ “§|9½+Ë Ü

¼–Ð &ñ_)a:

\{A|AH Φ-{Œ—j˵}.

Õ

ªQôÇ |9½+˓Ér Φ-{Œ—˜2³ |9½+Ës€"f ©œ Œ•. (=?)

Example 1 ƒú_ |9½+˓Ér 6£§ ¿º>h_ ½©gË:[þt–Ð &ñ_)a:

(∅, 0) ({n}, n + 1)

(17)

7

£¤, 0“Ér ƒús“¦, ns ƒú€ n + 1•¸ ƒús. s ½©gË:[þt\ @/K"f {

Œ

—)€e”H |9½+Ë[þt“Ér ĺo ·ú˜“¦ e”H ƒú_ |9½+Ë N ÷r m Ä»oú_ |9

½+

Ë Q•¸ e”. tëߖ ©œ Œ•“Ér ÕªQôÇ |9½+˓Ér N s.2

Example 2 %òëH ™èëH ·ú˜  Ï@ܼ–Ð ëߖ[þt#Q tH Û¼àÔaA_ |9½+˓Ér 6£§_ ½© g

Ë

:[þt–Ð &ñ_)a:

(∅, ) ({α}, xα for x ∈ {a, · · · , z}) 7

£¤, “Ér Û¼àÔaAs“¦, s Û¼àÔaA s€ Õª ·ú¡\ %òëH ™èëH\¦  ·¡­#Œ•¸ Û¼ àÔaAs. s ½©gË:[þt\ @/K"f {Œ—)€e”H ©œ Œ•“Ér |9½+Ës s ½©gË:[þts &ñ_

H “Û¼àÔaA”sH |9½+Ës. 2

2.1.1.2 ³ðlZO )

±úšZO_ ½©gË:`¦  ?/H ¼#oôÇ ³ðl–Ð áԖÐÕªAbç ƒ#Q\"fH 6£§ ¿º  t

 כ `¦ ÅҖРH. 0A_ ƒú |9½+˓Ér:

n → 0 | n + 1

<

ʓÉr

0 n

n + 1 s

“¦, 0A_ Û¼àÔaA |9½+˓Ér:

α → 

| xα (x ∈ {a, · · · , z})

<

ʓÉr

 α

xα x ∈ {a, · · · , z}

Ü

¼–Ð ³ð‰&³ôÇ.

Õ

ªo“¦, ) ±úš ½©gË:[þt“Ér ìøÍ×¼r ÷&[t"f ³ð‰&³|¨c €9כ¹H \O. |9½+Ës Ä»ôÇ

€ F)  €9כ¹\Os "鶙è\PZOõ °ú s ÅÒ¹¡¤ 漀  )a. \V\¦ [þt#Q, |9½+Ë

(18)

{1, 2, 3}`¦ ½©gË:[þt–Ð ³ð‰&³ €

(∅, 1) (∅, 2) (∅, 3)

<

ʓÉr

x → 1 | 2 | 3

<

ʓÉr

1 2 3

 )a.



6£§ ÕªaË>“Ér ƒú |9½+Ë, ¿º°ú˜A Áºbinary tree |9½+Ë, oÛ¼àÔ |9½+Ë, õü<

C

ëߖ tH |9½+Ë`¦ ) ±úš&hܼ–Ð &ñ_ôÇ כ s.

(19)

Example 3 oÛ¼àÔ_ |9½+˕¸ 6£§ ¿º>h_ ½©gË:[þt–Ð &ñ_)a:

nil

`

◦−`

<

ʓÉr

` → nil | ◦−`

7

£¤, nil“Ér oÛ¼àÔs“¦, `s oÛ¼àÔ€ Õª ·ú¡\ _ ”¸×¼\¦ ·¡­“ ◦−`•¸ o Û

¼àÔs. s ½©gË:[þt\ @/K"f {Œ—)€e”H ©œ Œ•“Ér |9½+Ës s ½©gË:[þts &ñ_

H “oÛ¼àÔ”H |9½+Ës. 2

Example 4 ´ú˜é–\߁ &ñú\¦ tH ¿º°ú˜A Áºbinary tree[þt_ |9½+˓Ér 6£§ W1

>

h_ ½©gË:[þt–Ð &ñ_)a:

n n ∈ Z

t N(t, nil)

t N(nil, t)

t1 t2 N(t1, t2)

<

ʓÉr

t → n (n ∈ Z)

| N(t, nil)

| N(nil, t)

| N(t, t) 7

£¤, e”__ &ñú n“Ér ¿º°ú˜A Áºs“¦, t ¿º°ú˜A Áº€ Õªכ `¦ ¢,a¼#s

š

¸Ér¼#\ Béߖ כ •¸ ¿º°ú˜A Áºs“¦, ¿º>h_ ¿º°ú˜A Áº\¦ yŒ•yŒ• ¢,a¼#õ š¸Ér

¼

#

\ Béߖ כ •¸ ¿º°ú˜A Áºs. s ½©gË:[þt\ @/K"f {Œ—)€e”H ©œ Œ•“Ér |9

½+

Ës s ½©gË:[þts &ñ_ H “¿º°ú˜A Áº”H |9½+Ës. 2

(20)

Example 5 &ñúd”[þt_ |9½+˓Ér 6£§_ ½©gË:[þt–Ð &ñ_)a:

n n ∈ N e

−e e1 e2

e1+e2 e1 e2 e1∗e2

<

ʓÉr

e → n (n ∈ N)

| −e

| e + e

| e ∗ e 7

£¤, ƒú n“Ér &ñúd”s“¦, e &ñúd” s€ Õª ·ú¡\ 6£§_ ÂÒ ñ\¦ ·¡­#Œ•¸ &ñ úd”s“¦, ¿º>h_ &ñúd” s\ » !lr ÂÒ ñ YL!lr ÂÒ ñ\¦ z0>V,#Q•¸ &ñúd” s

. s ½©gË:[þt\ @/K"f {Œ—)€e”H ©œ Œ•“Ér |9½+Ës s ½©gË:[þts &ñ_ H

“&ñúd””sH |9½+Ës. 2

Example 6 6£§_ ½©gË:[þts ëߖ[þt#Q?/H hA, aiŠ©œ[þt_ |9½+˓Ér Áº%Á {9?

hA, ai a ∈ A hA, ai hA, bi

hA, a · bi

hA, a · bi hA, ai

hA ∪ {a}, bi hA, abi

hA, abi hA, ai hA, bi 2

2.1.1.3 Õª |9½+˓Ér sXO> ëߖŽH Õ

ªX<, 0A_ &ñ_H "îSX‰ tëߖ ôÇt _ . ½©gË:[þts &ñ_ H |9½+Ë s

 Áº%Á “t &ñ_ “¦ e”tëߖ, Õª |9½+Ë`¦ ëߖ׼H ~½ÓZO`¦ ·ú˜9Åғ¦ e”t ·ú§.

(The definition is non-constructive.) ©œ€“Ér Áº%Á s“¦ &ñ_K Z~€Œ¤tëߖ,

(21)



©œ€`¦ ëߖ׼H ~½ÓZO“Ér ØÔu“¦ e”t ·ú§! ëߖ׼H ~ÓZ½O`¦ ·˜ú9ÅҍH &ñ_H



6£§õ °ú .

½©gË:[þt_ |9½+Ë ΦH †<Êú φ\¦ &ñ_ôÇ. φH |9½+Ë`¦ ~ÃÎ"f Õª |9½+Ë`¦ t

“¦ Φ ½©gË:[þt`¦ s6 xK"f ëߖ[þt#Q tH —¸ŽH "鶙è[þt`¦ ?/ Z~H:

φ(Y ) = {x | X

x ∈ Φ, X ⊆ Y }

Φ ½©gË:[þts &ñ_ H |9½+˓Ér †<Êú φ\ _K"f {—)Œ€e”H |9½+Ë(φ 8 s©œ Dh

–

Ðîr כ `¦ ëߖ[þt#Q ?/t 3lw H |9½+Ë, 7£¤ φ(X) ⊆ X“ |9½+Ë X)×æ\"f þj™è_ |9

½+ Ë

\{X|φ(X) ⊆ X} (2.1)

s

“¦, sכ “Ér †<Êú φ_þj™è_ “¦&ñ&hleast fixed point )a. (=?)

†<

Êú φ_ þj™è_ “¦&ñ&h“ s |9½+˓Ér ‘ |½9+Ë\"f ÂÒ' ئµ1ÏK"f(φ0“¦ 

) φ\¦ ôǁ &6h x “¦ “:r |9½+Ë φ1, ¿º &h6 x “¦ “:r |9½+Ë φ21px`¦ —¸¿º —¸ Ü

¼€ ëߖ[þt#Q ”. 7£¤,

φ0 = ∅

φn = φ(φn−1) n ∈ N



“¦ “¦

φ0 ∪ φ1∪ φ2∪ · · · = [

i∈N

φi



 d”ܼ–Ð ëߖ[þt#Q tH כ s Φ ½©gË:[þts &ñ_ H |9½+Ës ÷&H כ s. sXO

>

 ëߖ[þt#Q” |9½+˓Ér d” 2.1õ {9uôÇ. (=?)

Example 7 ƒú_ |9½+˓Ér 6£§ ¿º>h_ ½©gË:[þt–Ð &ñ_)a:

n → 0 | n + 1

(22)

s

 ½©gË:[þts t&ñ H |9½+Ë N “Ér 6£§õ °ú s ëߖ[þt#Q ”:

φ0 = ∅ φ1 = {0}

φ2 = {0, 1}

φ3 = {0, 1, 2}

· · · [

þ

t_ ½+Ë|9½+Ë.2

Example 8 oÛ¼àÔ_ |9½+˕¸ 6£§ ¿º>h_ ½©gË:[þt–Ð &ñ_)a:

` → nil | ◦−`

s

 ½©gË:[þt\ &ñ_ H “oÛ¼àÔ”H |9½+˓Ér 6£§õ °ú s ë–[ßþt#Q ”:

φ0 = ∅ φ1 = {nil}

φ2 = {nil, ◦−nil}

φ3 = {nil, ◦−nil, ◦−◦−nil}

· · · [

þ

t_ ½+Ë|9½+Ë.2

Example 9 ¿º°ú˜A Áºbinary tree_ |9½+˓Ér 6£§ W1>h_ ½©gË:[þt–Ð &ñ_)a:

t → ◦

| N(t, nil)

| N(nil, t)

| N(t, t)

(23)

s

 ½©gË:[þts &ñ_ H “¿º°ú˜A Áº”H |9½+˓Ér 6£§õ °ú s ëߖ[þt#Q ”:

φ0 = ∅ φ1 = {◦}

φ2 = {◦, N(◦, nil), N(nil, ◦), N(◦, ◦)}

· · · [

þ

t_ ½+Ë|9½+Ë.2

Example 10 %òëH ™èëH ·ú˜  Ï@ܼ–Ð ëߖ[þt#Q tH Û¼àÔaA_ |9½+˓Ér 6£§_ ½© g

Ë

:[þt–Ð &ñ_)a:

α → 

| xα (x ∈ {a, · · · , z}) s

 ½©gË:[þts &ñ_ H |9½+˓Ér

φ0 = ∅ φ1 = {}

φ2 = {, a, · · · , z}

· · · [

þ

t_ ½+Ë|9½+Ës. 2

Example 11 ) ±úš½©gË: Φ\ e”H —¸ŽH ½©gË: Xx X\¦ /BN|9½+Ëܼ–Ð ” > \O



€, Φ &ñ_ H |9½+˓Ér /BN|9½+Ës )a. ëߖ[þt#Q tH rŒ•s ]j/BN÷&t ·ú§

€

Œ

¤l M:ëHs: φ0 = φ1 = · · · = ∅.2

2.1.1.4 "鶙è[þt_ íH"f

Φ ½©gË:[þt–Ð ) ±úš&hܼ–Ð ëߖ[þt#QtH |9½+Ë [

i∈N

φi

(24)

_

 —¸ŽH "鶙è[þt“Ér φ\¦ i &h6 xK"f ëߖ[þt#Q ”. "鶙è[þt_ íH"f\¦ &ñ_ l

\

¦, φiP:\ Dh\v> ëߖ[þt#Q tH "鶙è[þt_ íH"f\¦ i“¦ . "鶙è[þt   l

 Y> P:\ ëߖ[þt#Q ” כ s\  íH"f e”H כ s.

iP: \ ëߖ[þt#QtH "鶙è[þt xH i − 1P: \ ëߖ[þt#Q&’~ "鶙è[þt X ü×þ˜\ )

±úš ½©gË: (X, x)\ _K"f ëߖ[þt#Q ” כ s. i − 1P: _ "鶙è[þt“Ér ¢¸ i − 2P:





_ "鶙è[þt ü×þ˜\ ëߖ[þt#Q ” כ s“¦. s ƒWìøÍ6£x“Ér ²DG\H {Œ•\ ²ú¢H

: ÏãÎFG\H †½Ó©œ 0P: \ ëߖ[þt#Q” "鶙è[þts } )a.

s

XO> ƒH$™H {Œ•`¦ ×¼Q?/H íH"f\¦ “lœí —Ér—ÉrôÇ íH"fwell-founded order”“¦ ôÇ. ) ±úšZOܼ–Ð &ñ_ôÇ |9½+˓Ér †½Ó©œ lœí —Ér—ÉrôÇ íH"f\¦ t

“¦ e”. s $í|9s ) ±úšZO 7£x"î_ lÕüt`¦ 0px > K ïr.(©œ 2.1.2)

2.1.1.5 ĺo ÀҍH ) ±úš½©gË:

½©gË:[þts ëߖ׼H |9½+Ë_ "鶙è[þt“r ½É©gË:[þt`¦ Ä»ôǁ &h6 xK"f ëߖ[þt#QtH "鶙è [

þ

t–Ð ÒqtyŒ•ôÇ. ¢¸, EB t ·ú§H ½©gË:[þtëߖ 6 xôÇ. {9ìøÍ&hܼ–Ð, ôÇ |9½+Ë

`

¦ &ñ_ H ) ±úš ½©gË:[þt“Ér ÁºôÇy ´ú§`¦ ú •¸ e”“¦, EBôÇ â啸 e”`¦ ú e”

(¿º>h_ Ér ½©gË: (X, x)ü< (X0, x)s °ú “Ér "鶙è x\ @/K"f ´ú˜ H âĺ).

2.1.2 7 £ x" î _  ~ ½ ÓZ O 

| 9

½+Ë S_ —¸ŽH "鶙è[þts #Q‹" $í|9 P \¦ ëߖ7ᤠH t\¦ 7£x"î 9“¦ ôÇ“¦ 

. 7£¤,

∀x ∈ S.P (x)

\

¦ 7£x"î 9“¦ ôÇ. P (x)H x P H $í|9`¦ ëߖ7á¤ôǍH >pws. Õªo“¦ Õª |9½+Ë S ) ±úš&h“ ½©gË:[þt Φ\ _K"f &ñ_÷&%3“¦ .



"f, S_ "鶙è[þt s\H íH"f e”“¦(0P: "鶙è, 1P: "鶙è, · · · ), Õª í

H"fH †½Ó©œ 0P:\ lœí “¦ e”. iP: "鶙è[þtsêøÍ, Φ ½©gË:[þt`¦ i &h6 x K

"f Dh\v> ëߖ[þt#Q tH "鶙è[þts.

| 9

½+Ë SH —¸ŽH iP: "鶙è[þt`¦ —¸¿º —¸“Ér |9½Ës+Ù¼–Ð, S_ —¸ŽH "鶙è\ @/ ô

Ç 7£x"î“Ér —¸ŽH iP: \ ëߖ[þt#Q tH "鶙è[þt\ @/ôÇ 7£x"î`¦ € )a. 0P:

(25)

\

 ëߖ[þt#Q tH "鶙èH \O. "f 7£x"î½+É כ •¸ \O.

• rŒ•“Ér, 1P:\ ëߖ[þt#Q tH "鶙è[þt\ @/K"f P  z´e”`¦ 7£x"îK

ô Ç.

• Õªo“¦, e”__ i s„ \ ëߖ[þt#Q” "鶙è[þt\ @/K"f P  z´sH

&ñ \() ±úš&ñinduction hypothesis“¦ †<Ê), iP:\ ëߖ[þt#QtH "鶙è[þt

 P \s ¦ ëߖ7ᤠH t\¦ 7£x"î .

Õ

ªQ€ |9½+Ë S _ —¸ŽH "鶙è[þt\ @/K"f P \¦ ëߖ7ᤠH t\¦ 7£x"îôÇ כ s )a.



=€, |9½+Ë SH —¸ŽH iP: ëߖ[þt#QtH "鶙è[þtëߖܼ–Ð ½¨$í÷&Ù¼–Ð.

2.1.2.1 ) ±úš½©gË:[þt\ @/ôÇ כ ܼ–Ð s

 7£x"î lÕüt`¦ ) ±úš½©gË:[þt\ @/ôÇ כ ܼ–Ð r sl €,

• ĺ‚, 'Í P:\ ëߖ[þt#Q tH "鶙è[þt“Ér Φ\ e”H ½©gË:[þt ×æ\H /BN|9½+Ë`¦

„



]j–Ð t“¦e”H ½©gË:[þt (∅, x) ëߖ׼H x[þts. “¦–Ð, ÕªQôÇ x[þt\

@

/K"f 7£x"î H כ s 'Í P:_ "鶙è[þt\ @/ôÇ 7£x"îs )a.

• Õª 6£§, Õª s©œ P:\ ëߖ[þt#Q tH "¶™éè[þt“Ér Φ\ e”H ½©gË:[þt ×æ\"f /

BN|9½+Ës  „]j(X 6= ∅)\¦ t“¦ e”H ½©gË:[þt (X, x)s ëߖ׼H x[þt s

. x iP:\ ëߖ[þt#Q tH "鶙è€ X\ e”H "鶙è[þt“Ér Õª s„ 

\

 ëߖ[þt#Q ” "鶙è[þts. "f X\  H "鶙è[þt\ @/K"f z´ s

H &ñ \ x\ @/K"f z´“t\¦ 7£x"îôÇ.

s

XO> 0A_ ¿ºt\¦ 7£x"î €, —¸ŽH iP: \ ëߖ[þt#QtH "鶙è[þt(Φ &ñ_ 



H —¸ŽH "鶙è[þt)\ @/K"f 7£x"îôÇ כ s )a.

2.1.2.2 {9ìøÍ&hܼ–Ð

¿

º>h–Ð ¥¸>htH 0Aü<°ú “Ér 7£x"î`¦ –Ð sl €, ) ±úšZO 7£x"î“Ér 6£§`¦ 7

£

x"î € )a: —¸ŽH i ∈ O\ @/K"f,

(∀j < i.P (jP: "鶙è)) ⇒ P (iP: "鶙è).

(26)

ô

ǁ\ ¿º>h Ÿí[O÷&H sÄ»\¦ 4R ˜Ð€,

• i 0{9 M:, “j < i”\¦ ëߖ7ᤠH jH \O. /BN|9½+Ë_ —¸ŽH "鶙è[þt\ @/K

"

fH e”__ z´s $íwn Ù¼–Ð, ∀j < i.P (jP: "鶙è)H †½Ó©œ $íwn. 



"f 0A_ d”“Ér true ⇒ P (0P: "鶙è)ü< °ú . 0 P: "鶙蕸 \Oܼټ–Ð P (0P: "鶙è)H †½Ó©œ $íwn.

i 1{9 M:, “j < i”\¦ ëߖ7ᤠH jH 0s“¦ 0P: "鶙èH \Oܼټ–Ð 0A_ d”

“

Ér true ⇒ P (1P: "鶙è) 7£¤ P (1P: "鶙è) )a.

• i 2 s©œ“ e”__ “P:”\ @/K"fH :£¤Z>ôÇ כ \Os, 0A_ d” Õª@/–Ð

\

¦ 7£x"î €, ) ±úš&ñ`¦ îߖ“¦(∀j < i.P (jP: "鶙è)) 7x"£î H כ s )a

.

Example 12 —¸ŽH ƒú n\ @/K"f, 0 + 1 + 2 + · · · + n = n(n + 1)/2“t\¦ 7

£

x"î .

—

¸ŽH ƒúH ) ±úš½©gË: n → 0 | n + 1\¦ Ä»ôǁ &h6 xK"f ëߖ[þt#QtH "鶙è [

þ

t_ —¸e”s.

P:\ ëߖ[þt#Q tH "鶙èH 0s. ns 0{9 M: 0A_ 1px ñ $íwn H t 7

£

x"îôÇ. Õª 6£§“Ér i s„ \ ëߖ[þt#QtH ƒú\ @/K"f 0A_ 1px ñ $í w

n

ôÇ“¦ &ñ “¦, iP: \ ëߖ[þt#Q tH ƒú\ @/K"f z´“t 7£x"îôÇ.

iP: \ ëߖ[þt#QtH ƒú\¦ n + 1s“¦ . Õª s„ \ ëߖ[þt#Q” ƒ Ã

º[þt ×æ\H ns e”. ÕªQ€, 0 + · · · + n + (n + 1) = n(n + 1)/2 + (n + 1) = (n + 1)(n + 2)/2 sÙ¼–Ð 0A_ 1pxd”s $íwnôÇ.

)

±úš½©gË:[þt`¦  7£x"î €, 0{9 M: z´“t 7£x"î “¦, n{9 M: z´s



H &ñ \ n + 1{9 M: z´“t 7£x"î € )a. 2

Example 13 ¿º°ú˜A Tq`ðøÍ Áºcomplete binary tree\ @/K"f, ´ú˜éߖ ”¸×¼_ Ì Ã

ºH ?/ÂÒ ”¸×¼_ Ì úü< °ú   ´ú§H כ `¦ 7£x"î . ¿º°ú˜A Tq`ðøÍ



Áº t\¦ ëߖ׼H ) ±úš½©gË:“Ér

t → ◦ | N(t, t)

(27)

s

. e”__ t\"f ◦(´ú˜éߖ ”¸×¼)_ Ì ú ls N(?/ÂÒ ”¸×¼)_ Ì ú n 8 l 1s

.

◦“ âĺH, ÕªXO. t1õ t2_ $í|9s ÕªXO“¦ : l1 = n1 + 1 s“¦ l2 = n2+ 1. ÕªQ€, N(t1, t2)_ ´ú˜éߖ ”¸×¼_ úH l1+ l2s“¦, ?/ÂÒ ”¸×¼_ úH n1+ n2+ 1s. l1+ l2 = (n1+ n2+ 1) + 1s $íwnôÇ. 2

2.2 + þ Ad ”   7 Ho 

formal logic

Ad” 7HoH áԖÐÕªAbç ƒ#Qs. Õª ƒ#Q–Ð #Œ” áԖÐÕªÏþ›“Ér ‚ÃÐs  f

±

`¦ >íߖôÇ. +þAd” 7Ho\ @/ôÇ slH áԖÐÕªAbç ƒ#Q\ @/K"f sl

½+

É M: ëߖ> |¨c #ŒQ >h¥Æ[þt`¦ e¸”nq > K ïr.

‚



ƒ7Hopropositional logic\¦ ×æd”ܼ–Ð ·ú˜˜Ð.

2.2.1 ¸€ — ª œõ  > p w

‚



ƒ7Ho\"f ÒqtyŒ• H 7Hod” f H 6£§_ ) ±úšZOgË:ܼ–Ð ëߖ[þt#Q tH |9½+Ë_

"

é

¶™ès. 7£¤, 7Hod” f H 6£§_ ~½ÓZOܼ–Ð ëߖ[þt#Q ”.

f → T | F

| ¬f

| f ∧ f

| f ∨ f

| f ⇒ f 0

A_ ) ±úšZOgË:s &ñ_ H |9½+Ë_ "鶙è[þt, Õªכ [þts ‚ƒ7HoH ƒ#Q–Ð 

#Œ” áԖÐÕªÏþ›[þts. ‚ƒ7Hod“”Ér 0A_ ~½ÓZO@/–Ð ëߖ[þt#Q tH כ ëߖs ]j@/

–

Ð Òqt| ‚ƒ7Hod”“ כ s. ÁºôÇy ´ú§“Ér ‚ƒ7Hod”[þt“Ér —¸¿º 0A_ {9YL

t

 ~½ÓZO`¦ ìøÍ4Ÿ¤ &h6 xK"f ëߖ[þt#Q ”.

Õ

ª!3, ‚ƒ7Hod”_ _pH Áº%Á “? ÁºôÇy ´ú§“Ér ‚ƒ7Hod”[þt  



  Õª >pws Áº%3“t Ä»ôÇ > &ñ_½+É ~½ÓZO“Ér e”H? s âĺ\•¸ ) ±úš

(28)

ZO

`¦ s6 xK"f _p H \¦ &ñ_½+É Ãº e”. e”__ 7Hod”“Ér iP: \ ëߖ[þt

#Q ”. iP: \ ëߖ[þt#Q tH 7Hod”“Ér Õª s„ \ ëߖ[þt#Q” 7Hod`”¦  t

“¦ ëߖ[þt#Q ”. "f, iP:  s„\ ëߖ[þt#Q” 7Hod”_ _p\¦ t“¦, iP: \ ëߖ[þt#Q ” 7Hod”_ _p\¦ &ñ_ H ~½ÓZOs€ ÷&’x.(Ér 8 a%~“Ér

~

½

ÓZOs e”`¦?)



7Hod” f _ _p\¦ [[f ]]“¦ ³ðl .

• 'Í P: \ ëߖ[þt#Q tH 7Hod”_ _p\¦ &ñ_ . T H ‚ÃÐ`¦ >pw “¦ F H

f± `¦ >pwôÇ.

[[T ]] = true [[F ]] = false

• iP: 7Hod” ¬f _ _pH Õª s„\ ëߖ[þt#Q” f _ _p\¦ t“¦ &ñ_

)

a. Õª _p_ ÂÒ&ñs )a.

[[¬f ]] = not[[f ]]

• ðøÍt–Ð, s„\ ëߖ[þt#Q” f1õ f2_ _p\¦ t“¦, Ér d”[þt_ _p

 &ñ)a. f1∧ f2_ _pH Õª Ñüt_ 7HoYLs“¦, f1∨ f2_ _pH Õª Ñ

ü

t_ 7Ho½+Ës“¦, f1 ⇒ f2_ _pH Õª Ñüt_ 7Ho5pxs.

[[f1∧ f2]] = [[f1]] andalso [[f2]]

[[f1∨ f2]] = [[f1]] orelse [[f2]]

[[f1 ⇒ f2]] = [[f1]] implies [[f2]]

s

XO> #QÖ¼ 7Hod”_ _p Õª 7Hod”`¦ ½¨$í H ÂÒ 7Hod”_ _p–Ð &ñ _

÷&€ e”__ 7Hod”_ _p &ñ_÷&H !lrs. e”__ 7Hod”“Ér lœí ÷&



H(1P:) 7Hod”\"f ÂÒ' /BG /BG ëߖ[þt#Q” כ sl M:ëHs.

Example 14 7Hod” (T ∧ (T ∨ F )) ⇒ F _ _pH, &ñ_\  /BG /BG +‹

(29)

˜ Ѐ

[[(T ∧ (T ∨ F )) ⇒ F ]] = [[T ∧ (T ∨ F )]] implies [[F ]]

= ([[T ]] andalso [[T ∨ F ]]) implies false

= (true andalso ([[T ]] orelse [[F ]])) implies false

= (true andalso (true orelse false)) implies false

= false s

. 2

2.2.2 ҏ Æ : r½ ©g Ë :

‚



ƒ 7Hod”_ _p &ñ_÷&%3. Õª _pH ‚ÃÐs f± s.



7Hod”s ‚ÃГt\¦ óøÍZ> H ~½ÓZO“Ér Áº%Á {9? Óüt:r, 7Hod”_ _p\¦ &ñ _

ôÇ@/–Ð  ˜Ð€ õ\¦ ·ú˜ ú e”: ‚ÃÐ < ʓÉr f± . _p_ õ\¦ ˜Ð

€



 7Hod”s ‚ÃГt t\¦ óøÍZ> € )a. sכ “Ér áԖÐÕªÏþ›`¦ [t9˜Ð“¦ Õª á

ԖÐÕªÏþ›s ‚ÃÐ`¦ õ–Ð ?/H t\¦ óøÍZ> H כ õ °ú .

<

Êr, áԖÐÕªÏþ›`¦ [tot ·ú§“¦ ·ú˜?/H ~½ÓZO“Ér \O`¦? 7Hod”_ _p\¦

>

íߖ t ·ú§“¦, ‚ÃГt f± “t\¦ ·ú˜ ú e”H ~½ÓZO“Ér \O`¦? 7Hod”_ —¸€ªœ ë

ß

–`¦ ˜Ð€"f ‚ÃГt\¦ óøÍZ>½+É ÃºH \O`¦? sQôÇ óøÍZ>½©gË:s 0px t ·ú§

`

¦?

Õ

ª ½©gË:`¦ 7£x"gË:proof rule< ʓÉr Æҏ:r½©gË:inference rules“¦ ôÇ.

s

 ½©gË:[þt•¸ #Q‹" |9½+Ë`¦ ëߖ[þt#Q?/H ) ±úš&h“ ½©gË:[þt–Ð &ñ_)a. Õª ½© g

Ë

:[þts ëߖ[þt#Q ?/H |9½+˓Ér ĺo "é¶ H 7Hod”[þt(‚ÃГ 7Hod”[þt)–Ð ½¨$í÷&



H |9½+Ës.

\

V\¦ [þt#Q 6£§õ °ú “Ér7£x"gË:proof rules/Æҏ:r½©gË:inference rules[þt`¦ ÒtyqŒ• 

(30)

. ) ±úš ½©gË:[þt`¦ ìrúg1J–Ð ³ð‰&³ôÇ כ s.

(Γ, T ) (Γ, f ) f ∈ Γ (Γ, F ) (Γ, f )

(Γ, ¬¬f ) (Γ, f )

(Γ, f1) (Γ, f2) (Γ, f1 ∧ f2)

(Γ, f1∧ f2) (Γ, f1)

(Γ, f1) (Γ, f1 ∨ f2)

(Γ, f1∨ f2) (Γ ∪ {f1}, f3) (Γ ∪ {f2}, f3) (Γ, f3)

(Γ ∪ {f1}, f2) (Γ, f1 ⇒ f2)

(Γ, f1 ⇒ f2) (Γ, f1) (Γ, f2)

(Γ ∪ {f }, F ) (Γ, ¬f )

(Γ, f ) (Γ, ¬f ) (Γ, F )

(Γ, f )Š©œ[þt_ |9½+Ë`¦ ëߖ׼H ½©gË:[þts. :£¤y, “Γ\ e”H —¸ŽH 7Hod”[þts ‚ÃÐ s

€ f H ‚ÃД“ âĺ\ (Γ, f )\¦ ëߖ[þt#Q ?/H ½©gË:[þts.

@

/> +þAd”7Ho\"fH, “(Γ, f )”\¦ “Γ ` f ”–Ð ³ðlôÇ. ½©gË:  ñ\¦ ·¡­ s

“¦ r 漀:

Γ ` T (r1)

Γ ` f f ∈ Γ (r2) Γ ` F

Γ ` f (r3) Γ ` ¬¬f Γ ` f (r4)

Γ ` f1 Γ ` f2 Γ ` f1∧ f2

(r5) Γ ` f1∧ f2 Γ ` f1 (r6)

Γ ` f1

Γ ` f1∨ f2 (r7) Γ ` f1 ∨ f2 Γ ∪ {f1} ` f3 Γ ∪ {f2} ` f3 Γ ` f3 (r8)

Γ ∪ {f1} ` f2

Γ ` f1 ⇒ f2 (r9) Γ ` f1 ⇒ f2 Γ ` f1 Γ ` f2 (r10)

(31)

Γ ∪ {f } ` F

Γ ` ¬f (r11) Γ ` f Γ ` ¬f Γ ` F (r12) s

 7£x"gË:[þt`¦ Γ ` f [þt_ |9½+Ë`¦ ëߖ׼H ) ±úš½©gË:ܼ–Ð ^¦ ÷r m, Γ ` f _ 7£x"î`¦ ëߖ׼H ) ±úš½©gË:ܼ–Е¸ ^¦ ú e”. ÕªA"f “7£x"gË:”s“¦ Â

ҏÉr.

\

V\¦ [þt#Q, 7£x"gË:

Γ ` f1 Γ ` f2 Γ ` f1∧ f2

s

 ) ±úš&hܼ–Ð sl H כ s ¿ºt. Γ ` f1ü< Γ ` f2 |9½+Ë\ e”€, Γ ` f1 ∧ f2•¸ |9½+Ë_ "鶙è#Œ ôǍH כ s . Õªo“¦, Γ ` f1 ∧ f2_ 7£x"î

`

¦ ëߖ׼H () ±úš&h“) ~½ÓZOܼ–Ð, Γ ` f1ü< Γ ` f2_ 7£x"îs e”€ Õª 7£x"î[þt`¦ ì

r\ B²ú˜“¦ ìr—¸\H Γ ` f1∧ f2\¦ Z~“Ér כ s Γ ` f1∧ f2_ 7£x"î`¦ ëߖ׼H

~

½

ÓZOsH כ s.

s

XO> ëߖ[þt#Q tH 7£x"î“Ér _ Áº ½¨›¸ )a. s Áº½¨›¸_ ÍÒo

”

¸×¼H 7£x"î_ þj7áx :rs. Áº_ °ú˜A½¨›¸H 6 xôÇ 7£x"gË:[þts ëߖ[þt

#Q ·p. ½©gË:_ d”[þts yŒ•yŒ• ”¸×¼ ÷&H X<, ìr—¸d” ”¸×¼\"f ìrd” ”¸×¼[þt

–

Ð tuH ½¨›¸ )a. Õª ìrd”[þt“Ér r Ér ½©gË:_ ìr—¸ ÷&"f Õª ½© g

Ë

:_ ìrd”[þt–Ð r tu“¦. Õª t[þt_ þj7áx {9DhH 7£x"gË:×æ\"f ìr



 \OH ½©gË:[þt_ ìr—¸d”ܼ–Ð =åQë“B> )a.

\

V\¦ [þt#Q, {p → ¬p} ` ¬p_ 7£x"î`¦ 0A_ 7£x"gË:ܼ–Ð ëߖ[þt€ A_  Á

º ½¨›¸ )a:

{p → ¬p, p} ` p (r2) {p → ¬p, p} ` p → ¬p (r2)

{p → ¬p, p} ` p (r2) {p → ¬p, p} ` ¬p (r10) {p → ¬p, p} ` F (r12)

{p → ¬p} ` ¬p (r11)

2.2.3 ß –„ î  ô  Ç < ʓ É r ¢ - a„  ô  Ç

0

A_ ½©gË:[þts ëߖ[þt#Q ?/H ∅ ` f _ f H —¸¿º ‚ÃГ? ìøÍ@/–Ð, ‚ÃГ d”[þt“Ér —¸

¿

º 0A_ 7£x"gË:[þt`¦ :ŸxK"f ∅ ` f g1J–Ð ëߖ[þt#Q tH?

(32)

|9ëH\ \V “¦ ²š½ú+É Ãº e”ܼ€ ĺo_ ½©gË:“Ér îߖ„sound “¦, b”`¦ ëߖ

“¦ ôÇ.

Ñ ü

tP: |ë9H\ \V “¦ ²úš½+É Ãº e”ܼ€ ĺo_ ½©gË:“Ér ¢-a„complete “¦,  ä¼aË>s \O“¦ ôÇ.

7

£

x"gË:[þts ß l•¸ “¦ ¢-a„ l•¸ €, ‚Гà d”[þtëߖ f”\Os ë

ß

–[þt#Q ?/H ½©gË:s )a.

î ß

–„  ¢-a„ H l>&h“ 7£x"gË:[þt_ $í|9\ @/ôÇ כ s. Õª l

>

&h“ ½©gË:[þt_ $í|9“Ér š¸f” ĺo ÒqtyŒ• H _p\ ïrK"f &ñ|¨c ú e”.

7

£

x"gË:sH l> ëߖ[þt#Q ?/H d”[þt_ _p\¦ ‚ÃЛ¸Këߖ îߖ„ôÇt ¢-a„ ô

Çt\¦ &ñ½+É Ãº e”. ’€`¦ n”#Q?/H l>H Ðqt3lq&h{9 ÷rs. Õª l>

 a%~“Ér sÄ»H †½Ó©œ “l e”H }f›a%~“Ér ’€`¦ ëߖ[þt#Q ·pH Õª l> ¾ú  _

 _p\¦ ‚Лø½+É M:\ q–Йè &ñ)a.

á

ԖÐÕªÏþ›\"f•¸ Õª —¸€ªœ(ëHZO)õ 5Åq?/6 x(_p)“Ér @/> Ér ¿º>h_ [j>

–

Ð &ñ_÷&“¦, áԖÐÕªÏþ›`¦ ›'a¹1Ï “¦ ìr$3 H —¸ŽH õ&ñ“Ér l>&hܼ–Ð &ñ_)a

. (ŽÉÓ'–Ð 1lxo l 0AK. Õª l>&h“ õ&ñ[þt_ $í|9[þt(õƒ ´úHt, Áº

`¦ H כ “t) 1px\ @/ôÇ 7H_H †½Ó©œ Õª õ&ñ_ _p õÓüt[þt_ _p

\

¦ ‚ÃЛ¸ €"f SX‰“)a.

(33)

—

¸€ ª œõ  > p w

á

ԖÐÕªAbç ƒ#Q_ —¸€ªœ“Ér ëHZO½¨›¸syntax\¦ ´ú˜ôÇ. áԖÐÕªAbç ƒ#Q_ 5Åq

>

p

w“Ér _p½¨›¸semantics\¦ ´ú˜ôÇ. Õª ¿ºt\¦ &ñ_ t 3lw € Õª ƒ#Q\¦ &ñ _

ôÇ  sכ m. Õª ¿ºt\¦ ·ú˜t 3lw € Õª ƒ#Q\¦ 6 x½+É Ãº \O. ]j@/

–

Ð Òqt| áԖÐÕªÏþ›`¦ #QbG> ëߖ[þt“¦ Õª áԖÐÕªÏþ›_ _p Áº%Á “t\ @/ôÇ &ñ _

\¦ —¸Øԓ¦H ĺoH Õª ƒ#Q\¦ 6 x½+É Ãº \O. 8çH Õª &ñ_[þt“Ér EB

t ·ú§“¦ ™D¥1lxs \O#Q ôÇ.

3.1 ë  HZ O ½ ¨› ¸

syntax

ë



HZO½¨›¸syntaxH áԖÐÕªAbç ƒ#Q–Ð áԖÐÕªÏþ›`¦ ½¨$í H ~½ÓZOs. ]j@/–Ð Òq

t| áԖÐÕªÏþ›[þt_ |9½+Ë`¦ ëߖ׼H ~½ÓZOs. ) ±úš&h“ ½©gË:ܼ–Ð &ñ_)a.

s

 ) ±úš&h“ ½©gË:[þt–Ð ëߖ[þt#QtH áԖÐժϛ“þÉr Áº½¨›¸\¦ °úðr s "é¶_

—

¸_þvs. = Áº½¨›¸“?

Example 15 &ñúd”`¦ ëߖ׼H ) ±úš½©gË:`¦ ÒqtyŒ•K ˜Ð.

E → n (n ∈ Z)

| E + E

| -E

(34)

P: ½©gË:“Ér e”__ &ñúH &ñúd”s“¦ ôÇ. _ &ñúëߖ ´ú˜éߖܼ–Ð  t

“¦ e”H Áº ÷&’x.

¿

ºP: ½©gË:“Ér ¿º>h_ &ñúd”`¦ t“¦ +\¦ s6 xK"f &ñúd”`¦ ëߖ[þt ú e”



“¦ ôÇ. sכ s Áº ¿º>h\¦ €ªœAá¤Ü¼–Ð B²ú˜“¦ e”“¦ ÍÒo\H “+”\¦ t“¦ e

”

H Áº ÷&’x.



t}Œ• ½©gË:“Ér _ &ñúd”`¦ t“¦ −\¦ s6 xK"f &ñúd”`¦ ëߖ׼H כ s

. sכ •¸ Áº \¦ B²ú˜“¦ e”“¦ ÍÒo\H “-”\¦ t“¦ e”H Áº )a

. 2

Example 16 çߖéߖôÇ "î§î+þA ƒ#Q\¦ ÒqtyŒ•K ˜Ð. s ƒ#Q–Ð Âú˜ ú e”H áԖРÕ

ªÏþ› CH "î§îëH(command)ܼ–Ð"f 6£§_ ~½ÓZOܼ–Ð ëߖ[þt#Q ”:

C → skip

| x := E

| if E then C else C

| C ; C

EH 0A_ \V\"f &ñ_ôÇ &ñúd”s“¦ .

0

A_ ~½ÓZO[þt–Ð ëߖ[þt ú e”H "î§îëH[þt“Ér —¸¿º Áº ½¨›¸Óüt [þts.

“skip”ëߖ e”H "î§îëH“Ér Õªכ ëߖ ´ú˜éߖܼ–Ð t“¦ e”H Áº ÷&’x.

¿

ºP: ½©gË:“Ér &ñúd” Áº\¦ š¸Ér¼#\, _ ú\¦ ¢,a¼#\, ÀÒàÔ ”¸×¼



H “:=”e”`¦ ³ðr “¦ e”H Áº )a.

[

jP: ½©gË:“Ér [j>h_ Áº(&ñúd” Áºü< ¿º>h_ "î§î#Q Áº)\¦ ÂÒ  Á

º–Ð t“¦ e”“¦ ÀÒàÔ ”¸×¼\H “if”ëH e”`¦ ³ðr “¦ e”H Áº )a.



t}Œ• ½©gË:“Ér ¿º>h_ "î§î#Q Áº\¦ ÂÒ Áº–Ð t“¦ e”“¦ ÀÒàÔ ”¸×¼\



H íH &h“ "î§îëH(“;”)e”`¦ ³ðr “¦ e”H Áº )a. 2

á

ԖÐÕªÏþ›`¦ ëߖ[þt M: €9כ¹ôÇ þj™èôÇ_ &ñ˜Ð\¦ t“¦ e”H ©œ çߖéߖôÇ ëH ZO

`¦ +‹ ˜Ð. Example 15ü< Example 16\"f ˜Ð#Œïr ½©gË:[þt\H ½©gË:`¦ {9H



|ÃÐ`¦ [vl 0AK"f €9כ¹ s©œ_ &ñ˜Ð e”l•¸ .

(35)



6£§s €9כ¹ôÇ &ñ˜Ðëߖ t“¦ e”H 8¹¡¤ ±ú˜›ôÇ ½©gË:{9 כ s:

C → &

| =x E

| ? E C C

| ;C C

E → n (n ∈ Z)

| +E E

| -E

|

 d”^¦`¦ jþt €9כ¹•¸ \O“¦, d”^¦s ×æç–\߁ z{9 €9כ¹•¸ \O“¦, s s\

“then”s “else”°ú “Ér ©œd”s e”`¦ €9כ¹•¸ \O. š¸f” yŒ• ½©gË: Ér çߖ é

ß

–ôÇ d”^¦`¦ 漀 Õªëߖs.



m€ \V ÕªQôÇ d”^¦s €9כ¹\O#Q•¸ )a. ĺo yŒ• ½©gË: ½¨ìr½+É Ã

º ëߖ e”€:

C → &

| x E

| E C C

| C C

E → n (n ∈ Z)

| E E

| -E

tëߖ, sXO> t áԖÐÕªÏþ› ëߖ׼H ~½ÓZO`¦ þj@/ôÇ כ¹€•K"f ˜Ð#Œ×¦ €9כ¹H

\O

. ëHZO ½©gË:[þt`¦ ˜Ð“¦ Áº%Á `¦ ëߖ׼H ~½ÓZO“t\¦ ˜2³àÔK ÅҍH ½©gË:[þt`¦  6

 

x >)a.

(36)

3.1.1 כ ¹€  • ) a < ʓ É r ½ ¨^ ‰& h “  

t

FKt ˜Ð“:r ëHZO½©gË:[þt`¦ “כ¹€•)a ëHZO½¨›¸abstract syntax“¦•¸ HX<, כ

¹€•)aëHZO½¨›¸abstract syntaxü<½¨^‰&h“ ëHZO½¨›¸concrete syntax_ sH áԖРÕ

ªÏþ›`¦ ëߖ[þt M: 6 x H ½©gË:s, {9`¦ M: 6 x H ½©gË:s, \ ²ú˜9e”.

á

ԖÐÕªÏþ›`¦ ëߖ[þt M: 6 x H ëHZO“Ér tFKt ˜Ð“:r ) ±úš&h“ ~½ÓZOs€ Ø

æìr . ëߖŽH õH Áº½¨›¸\¦ ” s "é¶_ ½¨›¸Óüts.

ì ø

̀\ áԖÐÕªÏþ›`¦ {9`¦ M:_ ëHZO“Ér 8 4Ÿ¤¸úšK ”. = €, @/> ëߖ[þt

#Q” áԖÐÕªÏþ›`¦ ³ð‰&³½+É M:H Áº\¦ Õªot ·ú§“¦ {9 "é¶&h“ /åJ[þt_ \P s

 ÷&“¦ sQôÇ /åJ ™èo_ {9 "é¶&h“ z´`¦ ~ÃÎ"f, æ¼ ´ú˜ôÇ |ÃÐ_ Q o

\ Õª94R e”%3`¦ 2 "é¶_ Áº½¨›¸\¦ 4Ÿ¤"é¶rvH ½©gË:[þts ÷&l M:ëHs.

½

¨^‰&h“ ëHZOconcrete syntax“Ér \O ½¨^‰&h{9? Áº½¨›¸ m {9

(37)

"é¶_ z´–Ð ³ð‰&³÷&H 6£§_ &ñúd” áԖÐÕªÏþ›`¦ ÒqtyŒ•K ˜Ð:

-1+2

0

A_ כ “Ér 6£§ ¿º>h_ Áº½¨›¸×æ \¦ {9 "é¶Ü¼–Ð `ˆ•2;כ s:

hh− 1i + 2i − h1 + 2i

#

QÖ¼כ “? áԖÐÕªÏþ› z´ “-1+2”\¦ Ñüt ×æ_ #QÖ¼ áԖÐÕªÏþ›Ü¼–Ð 4Ÿ¤½¨r~´ כ

“



? כ¹€•)aHZëO

E → n (n ∈ Z)

| E + E

| -E Ü

¼–ЍH Ñüt ×æ\ #QÖ¼ ½¨›¸–Ð 4Ÿ¤½¨r& ½+É t ·ú˜ ú \O. ¿ºt ½¨›¸\¦ —¸

¿

º ½¨»¡¤½+É Ãº e”.

&

ñ

úd”_ ëHZOs 6£§õ °ú € #Qb?

E → n (n ∈ Z)

| E + E

| -F F → n

| (E ) 0

A_ ½©gË:s ´ú˜ H כ “Ér, 6£§_ ÂÒ ñ ·ú¡\ ·¡­“Ér &ñúd”“ âĺH, ¿ºt µ1Ú

\

 \O: ´ú˜éߖ ƒús, F‹c ñ ·¡­“Ér &ñúd”s. "f, áԖÐÕªÏþ› z´

“-1+2”_ âĺH hh− 1i + 2i_ ½¨›¸µ1Ú\H \O.

½

¨^‰&h“ ëHZO½¨›¸concrete syntaxH ™D¥1x\lOs 2 "é¶_ áԖÐÕªÏþ› ½¨›¸Óüt`¦ 4Ÿ¤

½

¨ H X< 6 x÷&HX<, s ëHZO“ÉráԖÐÕªÏþ› 4Ÿ¤"é¶parsing< ʓÉr áԖÐÕªÏþ›_ëHZOŽ 7

£

xparsingsH õ&ñ_ [O>•¸ )a. Õª õ&ñ“Ér ĺo áԖÐÕªÏþ›`¦ 漀(ëH



[þt_ 1 "é¶ z´–Ð) (ŽÉÓ' Õª ½¨›¸Óüt`¦ 1lxܼ–Ð 4Ÿ¤"é¶ H õ&ñs.

(38)

Ä

ºoH ½¨^‰&h“ ëHZO`¦ 8 s©œ ÀÒt·ú§H. “áԖÐÕªÏþ›”s“¦ €, כ

¹€•)aëHZO ½©gË:[þt–Ð ëߖ[þt#Q” s "é¶_ Áº½¨›¸\¦ >pwôÇ. q2Ÿ¤ s/BM\ &h



H áԖÐÕªÏþ›[þts Õª Áº½¨›¸\¦ f”]X ÕªotH ·ú§€Œ¤8•¸, Õª 2 "é¶_ ½¨›¸Óüt s

 Áº%Á “t ™D¥1lx÷&t ·ú§•¸2Ÿ¤ &h]Xy F‹c ñ\¦ æ¼ ½+É כ s.

3.2 _ p ½ ¨› ¸

semantics

_

p½¨›¸semanticsH áÔ–ÐÕªÏþ›s >pw H \¦ &ñ_ôÇ.

á

ԖÐÕªÏþ›s >pw H H Áº%Á “? “1+2”H áԖÐÕªÏþ›“Ér Áº%Á `¦ >pw H

? õ°úכ 3`¦ >pw H, 1õ 2`¦ 8K"f õ\¦ >íߖôÇ, H õ&ñ`¦ >pw H

? 3`¦ >pwôÇ“¦ &_ñ H Û¼ {9, >pw H  ÏãÎFG`¦ ú†<Æ&h“ ½¨›¸Óüt_ "é¶

™

è–Ð &ñ_K H Û¼ {9`¦ “ÏãÎFG`¦ ×¼Q?/H _p½¨›¸denotational semantics

“

¦ ôÇ. ìø̀\ áԖÐÕªÏþ›_ >íߖ õ&ñ`¦ &ñ_†<Êܼ–Ð+‹ áԖÐÕªÏþ›_ _p\¦ &ñ _

K H Û¼ {9`¦ “õ&ñ`¦ ×¼Q?/H _p½¨›¸operational semantics“¦ ôÇ.



€ªœôÇ Û¼ {9_ _p½¨›¸ &ñ_ZO“Ér —¸¿º Øæìry %3x9 . Õªo“¦ yŒ• Û¼ {9 áԖÐÕªÏþ› _p_ $í|9`¦ 7£x"î H €ªœôÇ lÕüts >hµ1Ï÷&#Q e”.

Õ

ª!3 = #ŒQt Û¼ {9`¦ ¶ú˜(R^¦ €9כ¹ e”`¦? Õªכ “Ér €ªœôÇ _p½¨

›

¸ &ñ_ ~½Ód”õ 7£x"îlÕüt[þts —¸¿º 7áx½+Ë&hܼ–Ð 6 x÷&H כ s ™¥ l M:ëHs

. #Q‹"M:H ÏãÎFG_ Û¼ {9s &h]X “¦ #Q‹"M:H õ&ñ`¦ ×¼Q?/H Û¼ {9s

&

h

]X . yŒ• âĺ ĺo ×¼Q?/“¦ z·“Ér n_…{9_ úïr ëߖpuëߖ ³ð‰&³K ÅÒ



H _p½¨›¸ ~½Ód”`¦ 2[‚×þ˜ > )a.

3.2.1 õ & ñ `  ¦ × ¼ Q? /  H

õ

&ñ`¦ ×¼Q?/H _p½¨›¸operational semanticsH áԖÐÕªÏþ›s z´'Ÿ÷&H õ&ñ`¦ &ñ _

ôÇ.

á

ԖÐÕªÏþ› z´'Ÿ_ õ&ñ`¦ #QÖ¼ úïr ³ð‰&³K ½+É? >íߖõ&ñ\"f Œ™$í_ }

9

[þt s\ {9#QH „l’ ñ[þt_ âì2£§`¦ {9{9s ³ð‰&³K ½+É? m€ 1s 1`¦ >íߖ “¦ 2 2\¦ >íߖ “¦ + 1 + 2 = 3sH 1pxd”`¦ &h6 x H כ

(39)

Ü

¼–Ð ³ð‰&³K ½+É? m€ z´'Ÿ÷&H õ&ñ`¦, áԖÐÕªÏþ›õ Õª >íߖõ\¦ 



:rܼ–Ð H 7Ho&h“ 7£x"î_ õ&ñs“¦ ³ð‰&³K ½+É?

_

p½¨›¸\¦ &ñ_ H 3lq³ð\ ´úÆÒ#Q Õª n_…{9_ &ñ•¸\¦ &ñ >)a. @/>



H ©œ0A_ úïr, ©œ_ l>\"f z´'Ÿ÷&H —¸_þvs, l>&h“ 7Ho rÛ¼%7› _

 7£x"îܼ–Ð &ñ_ > )a.

õ

&ñ`¦ ×¼Q?/H _p½¨›¸•¸ÏãÎFG`¦ ×¼Q?/H Û¼ {9denotational semantics

! 3

 Øæìry %3x9 . Ér כ s e”€,

• ›¸wnd”(compositional)s u´ ú e”: áԖÐÕªÏþ›_ _p Õª áԖÐÕªÏþ› _

 ÂÒ¾¡§[þt_ _p[þt–Ðëߖ ½¨$í÷&H כ “Ér m. ÕªXO> ÷&€ a%~tëߖ,  m

#Q•¸ ©œ›'a\O.

• tëߖ ) ±úš&h(inductive)s: #QÖ¼ áԖÐÕªÏþ›_ _p\¦ ½¨$í H ÂÒ¾¡§[þt

“ É

r ) ±úš&hܼ–Ð &ñ_)a. s ) ±úšs áԖÐÕªÏþ›_ ½¨›¸ëߖ`¦  ÷&[tl•¸

tëߖ(sXO> ÷&€ ›¸wnd”s )a), áԖÐÕªÏþ› sü@_ כ (_p\¦ ×¼Q?/



H X< 6 x÷&H ©œu[þt)`¦  ÷&[tl•¸ ôÇ.

3.2.1.1 H ˜Ð;Ÿ¤Ü¼–Ð á

ԖÐÕªÏþ›_ z´'Ÿs ”'Ÿ÷&H õ&ñ`¦ H ˜Ð;Ÿ¤Ü¼–Ð Õª9˜Ðbig-step semantics. 7H o

 rÛ¼%7›_ 7£x"î ½©gË:[þt–Ð ³ð‰&³)a. 7£x"î “¦ H  H, "î§îëH Cü< &ñ úd” E\ @/K"f yŒ•yŒ•

M ` C ⇒ M0 ü< M ` E ⇒ v

s

.

M ` C ⇒ M0H “" î§îëH C Bj—¸o M _ ©œI\"f z´'Ÿs ÷&“¦ õ_ Bj

—

¸oH M0s”–Ð {9ܼ€ )a. M ` E ⇒ vH “&ñúd” eH Bj—¸o M _ ©œI

\

"f &ñú°úכ v\¦ >íߖôÇ”–Ð {9“¦.

(40)

—

¸ŽH ½©gË:[þt`¦ 漀 sXO> )a:

M ` skip ⇒ M M ` E ⇒ v

M ` x := E ⇒ M {x 7→ v}

M ` C1 ⇒ M1 M1 ` C2 ⇒ M2 M ` C1 ; C2 ⇒ M2

M ` E ⇒ 0 M ` C2 ⇒ M0 M ` if E then C1 elseC2 ⇒ M0 M ` E ⇒ v M ` C1 ⇒ M0

M ` if E then C1 elseC2 ⇒ M0 v 6= 0 M ` E ⇒ 0

M ` while E do C ⇒ M

M ` E ⇒ v M ` C ⇒ M1 M1 ` while E do C ⇒ M2 M ` while E do C ⇒ M2 v 6= 0

M ` n ⇒ n M ` x ⇒ M (x)

M ` E1 ⇒ v1 M ` E2 ⇒ v2

M ` E1 +E2 ⇒ v1+ v2 M ` E ⇒ v M ` - E ⇒ −v 0

A_ ½©gË:[þt“Ér 7HorÛ¼%7›_ 7£x"gË:s“¦ sKK•¸ )a. "î§î áԖÐÕª Ï

þ› C_ _pH e”__ Bj—¸o M õ M0\ @/K"f M ` C ⇒ M0\¦ 7£x"î½+É Ãº e

”

ܼ€ Õª _p ÷&’x. @/>H M s q#Qe”H Bj—¸o{9M: C\¦ z´'ŸrvH õ

&ñ`¦  ?/“¦ z·Ü¼Ù¼–Ð, ∅ ` C ⇒ M0_ 7£x"îs 0px € C_ _p )a.

Õ

ªכ s 7£x"î Ô¦0px € C_ _pH \OH כ s.

Example 17 x := 1 ; y := x + 1 _ _pH ∅Bj—¸o\ @/K"f 6£§õ °ú “Ér 7£x

(41)

"

î

ܼ–Ð ³ð‰&³)a. 0A_ "î§îëH`¦ C“¦ .

∅ ` 1 ⇒ 1

∅ ` x := 1 ⇒ {x 7→ 1}

{x 7→ 1} ` x ⇒ 1 {x 7→ 1} ` 1 ⇒ 1 {x 7→ 1} ` x + 1 ⇒ 2

{x 7→ 1} ` y := x + 1 ⇒ {x 7→ 1, y 7→ 2}

∅ ` C ⇒ {x 7→ 1, y 7→ 2}

2 s

XO> _p½¨›¸\¦ &ñ_ H ~½ÓZO`¦ “ƒÛ¼”natural semantics, “½¨›¸&h

“



structural operational semantics, < ʓr “É 'a>›+þArelational semantics _p½¨›¸“¦

•

¸ Ô¦2;.

• “ƒÛ¼XO”“¦ H sÄ»H •¸ “Æҏ:r ½©gË:”g1J–Ð ½¨$í÷&#Q e”“¦, “

ƒ



Û¼ Æҏ:r½©gË:natural deduction rules s“¦ Ô¦oH Æҏ:r ½©gË:s e”#Q"f Õ

ª s2£§`¦ ·¡­%i`¦ כ s.

• “½¨›¸&h”s“¦ H sÄ»H ¿ºt &ñ•¸.

t

FK [t˜Ð€ {©œƒôÇ —¸_þv%ƒ!3 ˜Ðstëߖ, sQôÇ Û¼ {9–Ð >íߖõ&ñ`¦

×

¼Q?/H _p½¨›¸ ~½Ód”“Ér {©œr_ ™¥ôÇ ~½Ód”˜ÐH 8¹¡¤ e”Dh e”%3 l

 M:ëHs.

{

©

œr_ ™¥ôÇ ~½Ód”“Ér ©œ_ l>\¦ &ñ_ “¦ áԖÐÕªÏþ›s Õª l>\"f #Q

b

G> z´'Ÿ÷&H t\¦ &ñ_ôÇ. sQ ˜Ðm, l>_ z´'Ÿõ&ñ×æ\ áԖРÕ

ªÏþ›s ÂÒƒÛ¼XO> ›¸yŒ•€"f l> ©œI\¦ ³ð‰&³ H X< 1lx"é¶÷&l•¸

“¦, áԖÐÕªÏþ›_ _p\¦ õ•¸ > ±ú“Ér úïr_ z´'Ÿõ&ñܼ–Ð [j[j >

³

ð‰&³ > )a. (3.2.1.4]X\"f [jy µ¡§).

s

QôÇ "º ~½Ód”`¦ “½¨‰&³`¦ :ŸxK"f &ñ_ l”(definition by implementa- tion), “ #QbG> ½¨‰&³ H t ˜Ðe”ܼ–Ð"f Áº%Á “t &ñ_ l”“¦ HX<, s

כ ˜ÐH SX‰ƒy “½¨›¸&h”st ·ú§“Ér. áԖÐÕªÏþ›_ ½¨›¸ Æҏr½:© g

Ë

:s &ñ_÷&“¦, >íߖõ&ñ“Ér Õª Æҏ:r½©gË:[þts YU“¦^¦|ÃÌs ÷&#Q ëߖ[þt#Q?/



H _ 7£x"îs ÷&H כ s.

(42)

“½¨›¸&h”s“¦ ÂÒØԍH Ér sÄ»H _p½©gË:[þts ôÇ |9½+Ë(áԖÐÕªÏþ›õ _

p©œu[þtçߖ_ ›'a>Š©œ[þt_ |9½+Ë)`¦ ) ±úš&hܼ–Ð &ñ_ H ~½Ód”s“¦, Õª )

±úšs áԖÐÕªÏþ›s _p©œu[þt_ ½¨›¸\¦  âìØÔl M:ëHs.

• “›'a>+þA”s“¦•¸ H sÄ»H 0A_ Æҏ:r½©gË:[þts ›'a>)a‹Œ•[þt_ |9½+Ë`¦

&

ñ

_ H ) ±úš&h“ ~½ÓZOܼ–Е¸ ^¦ ú e”l M:ëHs.

›'

a>)a‹Œ•[þtsêøÍ M ` C ⇒ M0 “ hM, C, M0iü< M ` E ⇒ v“ hM, E, vi[þt s

. 0A_ ½©gË:[þt\ _K"f ÕªQôÇ ›'a>\¦ ë“B`¦ ú e”H M, C, M0õ M, E, v[þts —¸”.

3.2.1.2 Œ•“Ér ˜Ð;Ÿ¤Ü¼–Ð á

ԖÐÕªÏþ›_ z´'Ÿ`¦ Œ•“Ér ˜Ð;Ÿ¤Ü¼–Ð &ñ_K ˜Ðsmall-step semantics.

(M, skip) → (M, done) (M, E) → (M, E0) (M, x := E) → (M, x := E0) (M, x := v) → (M {x 7→ v}, done)

(M, E) → (M, E0)

(M, if E then C1 elseC2) → (M, if E0 thenC1 elseC2) (M, if 0 then C1 elseC2) → (M, C1)

(M, if n then C1 elseC2) → (M, C1) n 6= 0 (M, C1) → (M0, C10)

(M, C1 ; C2) → (M0, C10 ; C2)

(M, while E do C) → (M, if E then C ; while E do C else skip) (M, done ; C2) → (M, C2)

참조

관련 문서

Department of Naval Architecture and Ocean Engineering, Seoul National University of College of Engineering.. Ship Motion &amp; Wave Load

Department of Naval Architecture and Ocean Engineering, Seoul National University of College of Engineering@. 서울대학교 조선해양공학과 학부4학년

그림 3.16 그림 3.13과 마찬가지로, 움직이는 파동묶음도 많은 독립된 파들로 구성되어 있다. 그 결과로 입자가 움직임에 따라서

Department of Naval Architecture and Ocean Engineering, Seoul National University.. Naval Architecture

School of Mechanical and Aerospace Engineering Seoul National University..

School of Mechanical and Aerospace Engineering Seoul National University..

Department of Naval Architecture and Ocean Engineering, Seoul National University of College

Department of Naval Architecture and Ocean Engineering, Seoul National University of College of