Lecture Notes
Kwangkeun Yi
1School of Computer Science & Engineering Seoul National University
2006
1Homepage: cse.snu.ac.kr/~kwang
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#QH ½Ó© %ò#Q\¦ italic /
å
Jg1JÐ #îl½+Ëm.
Õ
ªo¦ ?/ ?/ Û¼5px_ #Q 2;#Q @/\ _ #Q áÔ|½ÓÛ¼#QÐ æ¼ l
Ð ôÇ כ Ér, I#Q"f t¦ eH íHú s$íëß`¦ 6 x H |ÃÐ[þts
"
º
±ú Õþëß`¦ bH |ÃÐ[þtÐ 8 ØÔ> ?/ _|`¦ sK o¦ b¦ e l
M:ëHs. H ªd`¦ t¦ ˨ïry ¸§4 H |ÃÐ[þtëßs ?/ dóøÍ
'
as ÷&l\¦ mü< Õª |ÃÐ[þtÉr ?/ :x5Åq_ #QÐ ?/ 7H\¦ [O
"
î
Ùþ¡¦ K"f s 7H\¦ [þtܼ9 t ·ú§`¦ ëßpu 2;#Q\¦ ¼#E tH ·§ú
`
¦ כ s¦ bH. – X<ØÔàÔ, ~½ÓZO"f[O (t}\"f ¿ºP: éß|ÃÌ)
1 © è>h 9
1.1 áÔÐÕªAbç #QH 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
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 Óü#eH . . . 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ï×¼: ½¨¸ eH 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´'÷&"fH ·ú§|¨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
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 ½¨¸ eH °úכ: ©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Û¼%7static type system . . . 147
5.6.2 +þAd 7Ho rÛ¼%7formal logic oÂÓ . . . 150
5.7 éßíH {9 rÛ¼%7simple 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Û¼%7polymorphic 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
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
è> h
s
y©_\¦ :xK"f 6£§õ °ú Ér |9ëH[þt\ @/ôÇ ²ú`¦ ey, a%~Ér ²ú`¦ ëß[þt
#
Q?/l 0AK"f 9כ¹ôÇ èª`¦ ²ú£> )a.
ªôÇ áÔÐÕªAbç #Q[þts ¾¡§¦eH /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½+É Ãº eH #QH Á
º%Á ?
s
QôÇ |9ëH[þt\ @/ôÇ ²úÉr = 9כ¹ôÇ כ {9?
• ¦è߸ èáÔàÔJ?#Q rÛ¼%7`¦ <H~1> Ò¦ ú eH ~½ÓZOÉr áÔÐÕªAbç
#
Q_ ?/6 x`¦ /BNÂÒ "f ´òõ&hܼРe). èáÔàÔJ?#Q ~½ÓZO:r ×æ\
H áÔÐÕªAbç #Q s:r_ z´»~ÃÎgË>s \OsH /BN)KtH כ 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>|¨c9כ¹ e. $í/åLôÇ ©d_ úïr\"f ¦îß÷&H áÔÐÕªAbç
#Q rÛ¼%7Ér #QÖ¼íHçß Áº-4R !QoH oü< °ú s 0AIÐÖ¦ ú µ1Ú\ \O l
M:ëHs.
• áÔÐÕªAbç #Q_ ½¨$íõ[þt ü×þ\ èáÔàÔJ?#Q >hµ1ÏsH כ s /åL
5 Å
q¸Ð ú<Æ&hs¦ %3x9ôÇ lÕüts ÷&#Q¦ eHX<, s\ ĺo áÔÐÕª Abç #Q\¦ #QbG> 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ç #QH \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´'½+É Ãº eH áÔÐÕªÏþ[þ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]jH áÔÐÕªAbç #QÐ # èáÔàÔJ?#QH /BNÓüts Bĺ 0
AIÐîr ©I\"f z´')aH &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½+É Ãº \OH l>[O
>
H \O. ]j@/Ð "fe`¦ t\¦ po 7£x½+É Ãº \OH | »¡¤[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?#QH /BNÓüt\ @/K"fH #Q*ôÇ? $íôÇ èáÔàÔJ?#Q ]j@/
Ð z´'|¨c t\¦ po %3x9 > SXK ÅÒH lÕüt[þtÉr eH?
s
ëH]jH f¸ K÷&t ·ú§Ér ëH]js. (ÉÓ' õ<Æ s ëH]j\ @/ôÇ ²ú
`
¦ áÔÐÕªAbç #Q\"f¸ K1> ôÇ. s ~½Ó¾Ó\"f tFK t ½¨)a כ [þt
s
fÉr pf¨ .
t
FKt $í/BN&h ½¨õ #Q" ¸_þvܼРáÔÐÕªAbç #Q\ ©ÃÌ÷&
¦ eHt 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ç #QH Áº%Á ? \ @/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.
#
{ܼР¸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 ú eH כ [þt`¦ l>&hܼР>íß 0pxôÇ <Êú¦ , ¦ ]jîß
% i
. &ñSX > &³F_ nt»1Ï (ÉÓ'Ð z´'|¨c ú eH ¸H áÔÐÕªÏþ`¦
$í
½+É Ãº eH #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_
#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" +þAIH ½Ó© #Q\¦ :xK"f sÀÒ#Qtl M:ëHs.
X
<sZ 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 \OsH Ð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
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
.
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 ©\"fH ·ú¡Ü¼Ð ĺo 6
x½+É #Q6fü< ´ú H ~½Ód`¦ ·úЦ, Õª 6 x \V[þt`¦ ¶ú(RÐ.
2.1 ) ± Z ú O
inductive definition2.1.1 9 ½ | + Ë_ & ñ _
| 9
½+Ë`¦ &ñ_ H ~½ÓZO\H ¸| ]jrZOõ "é¶è\PZO, Õªo¦ 8 e.
)
±úZOs.
)
±úZOÉr a¦. Ä»ôÇ > ÁºôÇôÇ כ `¦ &ñ_½+É Ãº el M:ëHs. Ä»ôÇôÇ Ì
ú_ Ä»ôÇôÇ ½©gË:[þtÐ ÁºôÇy ´ú§Ér "é¶è\¦ tH |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"fH 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
u
H כ s(÷&[t"f return , u dedicate Ö). ÷&[t"f ëß[þt#Q 2;
H כ Ér, Õª |9½+Ë_ "é¶è\¦ t¦ Õª |9½+Ë_ "é¶è\¦ ëßHH כ s. ) ±ú ZO
ܼР&ñ_÷&H |9½+ËÉr Y>>h_ ½©gË:[þtÐ ½¨$í÷&¦, Õª ½©gË:[þts ) ±ú&hs:
Á
º%Á Áº%Á s sp |9½+Ë_ "é¶è[þts Õªכ [þtÐ #QbG>#QbG> r |9½+Ë _
"é¶è )a, H ds.
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\ eH כ [þts &ñ_ 9H |9
½+
Ë\ ¸¿º eܼ, x¸ e#Q ôÇ” H כ s. sQôÇ ½©gË:[þts ¸#"f _ |9½+Ë`¦ &ñ_ôÇ. Õª |9½+ËÉr, ½©gË:[þts כ¹½¨ H "é¶è[þtÉr ¸¸o í<Ê
¦ eH |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`¦ ¸¿º ¾¡§¦ eH |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|AH Φ-{j˵}.
Õ
ªQôÇ |9½+ËÉr Φ-{2³ |9½+Ës"f © . (=?)
Example 1 ú_ |9½+ËÉr 6£§ ¿º>h_ ½©gË:[þtÐ &ñ_)a:
(∅, 0) ({n}, n + 1)
7
£¤, 0Ér ús¦, ns ú n + 1¸ ús. s ½©gË:[þt\ @/K"f {
)eH |9½+Ë[þtÉr ĺo ·ú¦ eH ú_ |9½+Ë N ÷r m Ä»oú_ |9
½+
Ë Q¸ e. tëß © Ér ÕªQôÇ |9½+ËÉr N s.2
Example 2 %òëH èëH ·ú Ï@ܼРëß[þt#Q tH Û¼àÔ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 {)eH © Ér |9½+Ës s ½©gË:[þts &ñ_
H “Û¼àÔaA”sH |9½+Ës. 2
2.1.1.2 ³ðlZO )
±úZO_ ½©gË:`¦ ?/H ¼#oôÇ ³ðlÐ áÔÐÕªAbç #Q\"fH 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½+Ë
{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
ëß tH |9½+Ë`¦ ) ±ú&hܼР&ñ_ôÇ כ s.
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 {)eH © Ér |9½+Ës s ½©gË:[þts &ñ_
H “oÛ¼àÔ”H |9½+Ës. 2
Example 4 ´úé\ß &ñú\¦ tH ¿º°ú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 Áº\¦ yy ¢,a¼#õ ¸Ér
¼
#
\ Béß כ ¸ ¿º°úA Áºs. s ½©gË:[þt\ @/K"f {)eH © Ér |9
½+
Ës s ½©gË:[þts &ñ_ H “¿º°úA Áº”H |9½+Ës. 2
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 &ñúds¦, e &ñúd s Õª ·ú¡\ 6£§_ ÂÒ ñ\¦ ·¡#¸ &ñ úds¦, ¿º>h_ &ñúd s\ » !lr ÂÒ ñ YL!lr ÂÒ ñ\¦ z0>V,#Q¸ &ñúd s
. s ½©gË:[þt\ @/K"f {)eH © Ér |9½+Ës s ½©gË:[þts &ñ_ H
“&ñúd”sH |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 &ñ_ ¦ etëß, Õª |9½+Ë`¦ ëß×¼H ~½ÓZO`¦ ·ú9ÅÒ¦ et ·ú§.
(The definition is non-constructive.) ©Ér Áº%Á s¦ &ñ_K Z~¤tëß,
©`¦ ëß×¼H ~½ÓZOÉr ØÔu¦ et ·ú§! ëß×¼H ~ÓZ½O`¦ ·ú9ÅÒH &ñ_H
6£§õ °ú .
½©gË:[þt_ |9½+Ë ΦH <Êú φ\¦ &ñ_ôÇ. φH |9½+Ë`¦ ~ÃÎ"f Õª |9½+Ë`¦ t
¦ Φ ½©gË:[þt`¦ s6 xK"f ëß[þt#Q tH ¸H "é¶è[þt`¦ ?/ Z~H:
φ(Y ) = {x | X
x ∈ Φ, X ⊆ Y }
Φ ½©gË:[þts &ñ_ H |9½+ËÉr <Êú φ\ _K"f {)eH |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 tH כ 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
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)
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 tH Û¼àÔ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Ë: Φ\ eH ¸H ½©gË: Xx X\¦ /BN|9½+ËܼР> \O
, Φ &ñ_ H |9½+ËÉr /BN|9½+Ës )a. ëß[þt#Q tH rs ]j/BN÷&t ·ú§
¤l M:ëHs: φ0 = φ1 = · · · = ∅.2
2.1.1.4 "é¶è[þt_ íH"f
Φ ½©gË:[þtÐ ) ±ú&hܼРëß[þt#QtH |9½+Ë [
i∈N
φi
_
¸H "é¶è[þtÉr φ\¦ i &h6 xK"f ëß[þt#Q . "é¶è[þt_ íH"f\¦ &ñ_ l
\
¦, φiP:\ Dh\v> ëß[þt#Q tH "é¶è[þt_ íH"f\¦ i¦ . "é¶è[þt l
Y>P:\ ëß[þt#Q כ s\ íH"f eH כ s.
iP: \ ëß[þt#QtH "é¶è[þt xH 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½+Ë_ "é¶è[þtr ½É©gË:[þt`¦ Ä»ôÇ &h6 xK"f ëß[þt#QtH "é¶è [
þ
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"fH ½Ó© 0P:\ lí ¦ e. iP: "é¶è[þtsêøÍ, Φ ½©gË:[þt`¦ i &h6 x K
"f Dh\v> ëß[þt#Q tH "é¶è[þts.
| 9
½+Ë SH ¸H iP: "é¶è[þt`¦ ¸¿º ¸Ér |9½Ës+Ù¼Ð, S_ ¸H "é¶è\ @/ ô
Ç 7£x"îÉr ¸H iP: \ ëß[þt#Q tH "é¶è[þt\ @/ôÇ 7£x"î`¦ )a. 0P:
\
ëß[þt#Q tH "é¶èH \O. "f 7£x"î½+É כ ¸ \O.
• rÉr, 1P:\ ëß[þt#Q tH "é¶è[þt\ @/K"f P z´e`¦ 7£x"îK
ô Ç.
• Õªo¦, e__ i s \ ëß[þt#Q "é¶è[þt\ @/K"f P z´sH
&ñ \() ±ú&ñinduction hypothesis¦ <Ê), iP:\ ëß[þt#QtH "é¶è[þt
P \s ¦ ëß7ᤠH t\¦ 7£x"î .
Õ
ªQ |9½+Ë S _ ¸H "é¶è[þt\ @/K"f P \¦ ëß7ᤠH t\¦ 7£x"îôÇ כ s )a.
=, |9½+Ë SH ¸H iP: ëß[þt#QtH "é¶è[þtëßܼР½¨$í÷&Ù¼Ð.
2.1.2.1 ) ±ú½©gË:[þt\ @/ôÇ כ ܼРs
7£x"î lÕüt`¦ ) ±ú½©gË:[þt\ @/ôÇ כ ܼРr sl ,
• ĺ, 'Í P:\ ëß[þt#Q tH "é¶è[þtÉr Φ\ eH ½©gË:[þt ×æ\H /BN|9½+Ë`¦
]jÐ t¦eH ½©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 tH "¶éè[þtÉr Φ\ eH ½©gË:[þt ×æ\"f /
BN|9½+Ës ]j(X 6= ∅)\¦ t¦ eH ½©gË:[þt (X, x)s ëß×¼H x[þt s
. x iP:\ ëß[þt#Q tH "é¶è X\ eH "é¶è[þ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#QtH "é¶è[þt(Φ &ñ_
H ¸H "é¶è[þt)\ @/K"f 7£x"îôÇ כ s )a.
2.1.2.2 {9ìøÍ&hܼÐ
¿
º>hÐ ¥¸>htH 0Aü<°ú Ér 7£x"î`¦ Ð sl , ) ±úZO 7£x"îÉr 6£§`¦ 7
£
x"î )a: ¸H i ∈ O\ @/K"f,
(∀j < i.P (jP: "é¶è)) ⇒ P (iP: "é¶è).
ô
Ç\ ¿º>h í[O÷&H sÄ»\¦ 4R Ð,
• i 0{9 M:, “j < i”\¦ ëß7ᤠH jH \O. /BN|9½+Ë_ ¸H "é¶è[þt\ @/K
"
fH 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 jH 0s¦ 0P: "é¶èH \OܼټР0A_ d
Ér true ⇒ P (1P: "é¶è) 7£¤ P (1P: "é¶è) )a.
• i 2 s© e__ “P:”\ @/K"fH :£¤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)/2t\¦ 7
£
x"î .
¸H úH ) ±ú½©gË: n → 0 | n + 1\¦ Ä»ôÇ &h6 xK"f ëß[þt#QtH "é¶è [
þ
t_ ¸es.
'Í
P:\ ëß[þt#Q tH "é¶èH 0s. ns 0{9 M: 0A_ 1px ñ $íwn H t 7
£
x"îôÇ. Õª 6£§Ér i s \ ëß[þt#QtH ú\ @/K"f 0A_ 1px ñ $í w
n
ôǦ &ñ ¦, iP: \ ëß[þt#Q tH ú\ @/K"f z´t 7£x"îôÇ.
iP: \ ëß[þt#QtH ú\¦ 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_ 1pxds $í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)
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 7HoH áÔÐÕªAbç #Qs. Õª #QÐ # áÔÐÕªÏþÉr ÃÐs f
±
`¦ >íßôÇ. +þAd 7Ho\ @/ôÇ slH áÔÐÕª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 tH |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 7HoH #QÐ
# áÔÐÕªÏþ[þts. 7HodÉr 0A_ ~½ÓZO@/Ð ëß[þt#Q tH כ ëßs ]j@/
Ð Òqt| 7Hod כ s. ÁºôÇy ´ú§Ér 7Hod[þtÉr ¸¿º 0A_ {9YL
t
~½ÓZO`¦ ìøÍ4¤ &h6 xK"f ëß[þt#Q .
Õ
ª!3, 7Hod_ _pH Áº%Á ? ÁºôÇy ´ú§Ér 7Hod[þt
Õª >pws Áº%3t Ä»ôÇ > &ñ_½+É ~½ÓZOÉr eH? s âĺ\¸ ) ±ú
ZO
`¦ s6 xK"f _p H \¦ &ñ_½+É Ãº e. e__ 7HodÉr iP: \ ëß[þt
#Q . iP: \ ëß[þt#Q tH 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 tH 7Hod_ _p\¦ &ñ_ . T H ÃÐ`¦ >pw ¦ F H
f± `¦ >pwôÇ.
[[T ]] = true [[F ]] = false
• iP: 7Hod ¬f _ _pH Õª 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_ _pH Õª Ñüt_ 7HoYLs¦, f1∨ f2_ _pH Õª Ñ
ü
t_ 7Ho½+Ës¦, f1 ⇒ f2_ _pH Õª Ñü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 _ _pH, &ñ_\ /BG /BG +
Ð
[[(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. Õª _pH ÃÐs f± s.
7Hods ÃÐt\¦ óøÍZ> H ~½ÓZOÉr Áº%Á {9? Óüt:r, 7Hod_ _p\¦ &ñ _
ôÇ@/Ð Ð õ\¦ ·ú ú e: ÃÐ <ÊÉr f± . _p_ õ\¦ Ð
7Hods ÃÐt t\¦ óøÍZ> )a. sכ Ér áÔÐÕªÏþ`¦ [t9Ц Õª á
ÔÐÕªÏþs ÃÐ`¦ õÐ ?/H t\¦ óøÍZ> H כ õ °ú .
<
Êr, áÔÐÕªÏþ`¦ [tot ·ú§¦ ·ú?/H ~½ÓZOÉr \O`¦? 7Hod_ _p\¦
>
íß t ·ú§¦, ÃÐt f± t\¦ ·ú ú eH ~½Ó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
. ) ±ú ½©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, “Γ\ eH ¸H 7Hod[þts ÃÐ s
f H ÃД âĺ\ (Γ, f )\¦ ëß[þt#Q ?/H ½©gË:[þts.
@
/> +þAd7Ho\"fH, “(Γ, 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)
Γ ∪ {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
~
½
ÓZOsH כ s.
s
XO> ëß[þt#Q tH 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 yy ¸×¼ ÷&H X<, ìr¸d ¸×¼\"f ìrd ¸×¼[þt
Ð tuH ½¨¸ )a. Õª ìrd[þtÉr r Ér ½©gË:_ ìr¸ ÷&"f Õª ½© g
Ë
:_ ìrd[þtÐ r tu¦. Õª t[þt_ þj7áx {9DhH 7£x"gË:×æ\"f ìr
\OH ½©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 tH?
'Í
|9ëH\ \V ¦ ²½ú+É Ãº eܼ ĺo_ ½©gË:Ér îßsound ¦, b`¦ ëß
¦ ôÇ.
Ñ ü
tP: |ë9H\ \V ¦ ²ú½+É Ãº eܼ ĺo_ ½©gË:Ér ¢-acomplete ¦, ä¼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Ë:sH 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 eH }fa%~Ér `¦ ëß[þt#Q ·pH Õª 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.
¸ ª õ > 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| áÔÐÕªÏþ`¦ #QbG> ëß[þt¦ Õª áÔÐÕªÏþ_ _p Áº%Á t\ @/ôÇ &ñ _
\¦ ¸ØÔ¦H ĺoH Õª #Q\¦ 6 x½+É Ãº \O. 8çH Õª &ñ_[þtÉr EB
t ·ú§¦ D¥1lxs \O#Q ôÇ.
3.1 ë HZ O ½ ¨ ¸
syntaxë
HZO½¨¸syntaxH áÔÐÕªAbç #QÐ áÔÐÕªÏþ`¦ ½¨$í H ~½ÓZOs. ]j@/Ð Òq
t| áÔÐÕªÏþ[þt_ |9½+Ë`¦ ëß×¼H ~½ÓZOs. ) ±ú&h ½©gË:ܼР&ñ_)a.
s
) ±ú&h ½©gË:[þtÐ ëß[þt#QtH áÔÐÕªÏþÉr Áº½¨¸\¦ °úðr s "é¶_
¸_þvs. = Áº½¨¸?
Example 15 &ñúd`¦ ëß×¼H ) ±ú½©gË:`¦ ÒqtyK Ð.
E → n (n ∈ Z)
| E + E
| -E
'Í
P: ½©gË:Ér e__ &ñúH &ñúds¦ ôÇ. _ &ñúëß ´úéßܼРt
¦ eH Áº ÷&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¦ eH Áº )a
. 2
Example 16 çßéßôÇ "î§î+þA #Q\¦ ÒqtyK Ð. s #QÐ Âú ú eH áÔÐ Õ
ªÏþ CH "î§îëH(command)ܼÐ"f 6£§_ ~½ÓZOܼРëß[þt#Q :
C → skip
| x := E
| if E then C else C
| C ; C
EH 0A_ \V\"f &ñ_ôÇ &ñúds¦ .
0
A_ ~½ÓZO[þtÐ ëß[þt ú eH "î§îëH[þtÉr ¸¿º Áº ½¨¸Óüt [þts.
“skip”ëß eH "î§îëHÉr Õªכ ëß ´úéßܼРt¦ eH Áº ÷&x.
¿
ºP: ½©gË:Ér &ñúd Áº\¦ ¸Ér¼#\, _ ú\¦ ¢,a¼#\, ÀÒàÔ ¸×¼
H “:=”e`¦ ³ðr ¦ eH Áº )a.
[
jP: ½©gË:Ér [j>h_ Áº(&ñúd Áºü< ¿º>h_ "î§î#Q Áº)\¦ ÂÒ Á
ºÐ t¦ e¦ ÀÒàÔ ¸×¼\H “if”ëH e`¦ ³ðr ¦ eH Áº )a.
t} ½©gË:Ér ¿º>h_ "î§î#Q Áº\¦ ÂÒ ÁºÐ t¦ e¦ ÀÒàÔ ¸×¼\
H íH &h "î§îëH(“;”)e`¦ ³ðr ¦ eH Áº )a. 2
á
ÔÐÕªÏþ`¦ ëß[þt M: 9כ¹ôÇ þjèôÇ_ &ñÐ\¦ t¦ eH © çßéßôÇ ëH ZO
`¦ + Ð. Example 15ü< Example 16\"f Ð#ïr ½©gË:[þt\H ½©gË:`¦ {9H
|ÃÐ`¦ [vl 0AK"f 9כ¹ s©_ &ñÐ el¸ .
6£§s 9כ¹ôÇ &ñÐëß t¦ eH 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 ©ds 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 ~½ÓZOt\¦ 2³àÔK ÅÒH ½©gË:[þt`¦ 6
x >)a.
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_ sH áÔÐ Õ
ªÏþ`¦ ëß[þ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¤"é¶rvH ½©gË:[þts ÷&l M:ëHs.
½
¨^&h ëHZOconcrete syntaxÉr \O ½¨^&h{9? Áº½¨¸ m {9
"é¶_ z´Ð ³ð&³÷&H 6£§_ &ñúd áÔÐÕªÏþ`¦ ÒqtyK Ð:
-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, Fc ñ ·¡Ér &ñúds. "f, áÔÐÕªÏþ z´
“-1+2”_ âĺH hh− 1i + 2i_ ½¨¸µ1Ú\H \O.
½
¨^&h ëHZO½¨¸concrete syntaxH D¥1x\lOs 2 "é¶_ áÔÐÕªÏþ ½¨¸Óüt`¦ 4¤
½
¨ H X< 6 x÷&HX<, s ëHZOÉráÔÐÕªÏþ 4¤"é¶parsing<ÊÉr áÔÐÕªÏþ_ëHZO 7
£
xparsingsH õ&ñ_ [O>¸ )a. Õª õ&ñÉr ĺo áÔÐÕªÏþ`¦ æ¼(ëH
[þt_ 1 "é¶ z´Ð) (ÉÓ' Õª ½¨¸Óüt`¦ 1lxܼР4¤"é¶ H õ&ñs.
Ä
ºoH ½¨^&h ëHZO`¦ 8 s© ÀÒt·ú§H. “áÔÐÕªÏþ”s¦ , כ
¹)aëHZO ½©gË:[þtÐ ëß[þt#Q s "é¶_ Áº½¨¸\¦ >pwôÇ. q2¤ s/BM\ &h
H áÔÐÕªÏþ[þts Õª Áº½¨¸\¦ f]X ÕªotH ·ú§¤8¸, Õª 2 "é¶_ ½¨¸Óüt s
Áº%Á t D¥1lx÷&t ·ú§¸2¤ &h]Xy Fc ñ\¦ æ¼ ½+É כ 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 semanticsH áÔÐÕªÏþs z´'÷&H õ&ñ`¦ &ñ _
ôÇ.
á
ÔÐÕªÏþ z´'_ õ&ñ`¦ #QÖ¼ úïr ³ð&³K ½+É? >íßõ&ñ\"f $í_ }
9
[þt s\ {9#QH l ñ[þt_ âì2£§`¦ {9{9s ³ð&³K ½+É? m 1s 1`¦ >íß ¦ 2 2\¦ >íß ¦ + 1 + 2 = 3sH 1pxd`¦ &h6 x H כ
Ü
¼Ð ³ð&³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> ÷& ¸wnds )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 yy
M ` C ⇒ M0 ü< M ` E ⇒ v
s
.
M ` C ⇒ M0H “" î§îëH C Bj¸o M _ ©I\"f z´'s ÷&¦ õ_ Bj
¸oH M0s”Ð {9ܼ )a. M ` E ⇒ vH “&ñúd eH Bj¸o M _ ©I
\
"f &ñú°úכ v\¦ >íßôǔР{9¦.
¸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_ _pH e__ Bj¸o M õ M0\ @/K"f M ` C ⇒ M0\¦ 7£x"î½+É Ãº e
ܼ Õª _p ÷&x. @/>H M s q#QeH Bj¸o{9M: C\¦ z´'rvH õ
&ñ`¦ ?/¦ z·Ü¼Ù¼Ð, ∅ ` C ⇒ M0_ 7£x"îs 0px C_ _p )a.
Õ
ªכ s 7£x"î Ô¦0px C_ _pH \OH כ s.
Example 17 x := 1 ; y := x + 1 _ _pH ∅Bj¸o\ @/K"f 6£§õ °ú Ér 7£x
"
î
ܼР³ð&³)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>+þA”relational semantics _p½¨¸¦
¸ Ô¦2;.
• “Û¼XO”¦ H sÄ»H ¸ “ÆÒ:r ½©gË:”g1JÐ ½¨$í÷&#Q e¦, “
Û¼ ÆÒ:r½©gË:”natural deduction rules s¦ Ô¦oH ÆÒ: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¹¡¤ eDh 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), “ #QbG> ½¨&³ H t ÐeܼÐ"f Áº%Á t &ñ_ l”¦ HX<, s
כ ÐH SXy “½¨¸&h”st ·ú§Ér. áÔÐÕªÏþ_ ½¨¸ ÆÒr½:© g
Ë
:s &ñ_÷&¦, >íßõ&ñÉr Õª ÆÒ:r½©gË:[þts YU¦^¦|ÃÌs ÷&#Q ëß[þt#Q?/
H _ 7£x"îs ÷&H כ s.
“½¨¸&h”s¦ ÂÒØÔH Ér sÄ»H _p½©gË:[þts ôÇ |9½+Ë(áÔÐÕªÏþõ _
p©u[þtçß_ 'a>©[þt_ |9½+Ë)`¦ ) ±ú&hܼР&ñ_ H ~½Óds¦, Õª )
±ú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ܼи ^¦ ú el 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`¦ ú eH 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)