Ke b e na ra n Ve rifika si d a la m Pe m b a c a a n d a n Va lid a si A lja b a r Ke b e na ra n Pro g ra m Te rstruktur

if p the n q e lse h fi f = [ if p the n g e lse h fi ] • Ve rifika si p a d a sa a t p e nulisa n p ro g ra m a d a la h untuk se tia p la ng ka h fung si ya ng d ib e rika n, d ike mb a ng ka n ke d a la m struktur p rime ya ng se sua i, d a n ko mp o ne n func tio n d a n p re d ic a te d ite ntuka n d ima na hip o te sa a ka n me ng ha silka n se b ua h p ro g ra m func tio n ya ng id e ntik d e ng a n fung si ya ng d ib e rika n

6.2.2. A lja b a r Ke b e na ra n Pro g ra m Te rstruktur

• Ke b e na ra n p ro g ra m d ite ka nka n p a d a 2 ha l ya itu 1. Ap a ka h f = [p ] ? C o mp le te C o rre c tne ss c e nd e rung me nuju p a d a d e fe nvise p ro g ra mming 2. Ap a ka h f ⊂ [p ] ? Suffic ie nt C o rre c tne ss c e nd e rung me nuju p a d a e xe c p tio n p ro c e ssing • Pe rtimb a ng ka n untuk p ro g ra m d ib a wa h ini f = x ≥ ∧ y ≥ → x, y := x + y, 0 P1 = while y 0 do x, y := x + 1, y - 1 o d P2 = while y ≠ do x,y := x + 1, y - 1 o d f = x ≥ ∧ y ≥ → x, y, z := x + y, 0, z | true → x, y, z = x, y, “ e rro r” P3 = if x 0 ∨ y 0 the n z := “ e rro r” e lse while y 0 do x, y := x + 1, y - 1 o d fi • Da la m me mb uktika n c o mp le te c o re c tne ss a ka n suka r untuk p ro g ra m d e ng a n b e ntuk c o mp o und p ro g ra m. C a ra ya ng d a p a t d ila kuka n a d a ka h d e ng a n me ng hip o te sa fung si-fung si p o ko k, C o nto h while x 0 ∧ y 0 do x := x - 1 y := y - 1 o d if y 0 the n x := -y fi fre e y SEQ :SUB WDO :MAG IFE:SIG N fre e x x 0 ∧ y 0 SEQ :DEC R y 0 x := -y x := x - 1 y := y - 1 Sub p ro ff sub = [ma g ;sig n; fre e x ] m a g = [ while x 0 ∧ y 0 do d e c r o d ] d e c r = [x := x - 1; y := y - 1] sig n = [ if y 0 the n x := -y fi ] a ta u sub ⊂ [m a g ;sig n; fre e x] m a g ⊂ [ while x 0 ∧ y 0 do d e c r o d ] d e c r ⊂ [x := x - 1; y := y - 1] sig n ⊂ [ if y 0 the n x := -y fi ]

6.3. Ke b e na ra n Pro g ra m - p ro g ra m Prim e

6.3.1. Pro g ra m Te rm ina si

• Te rmina si p a d a p ro g ra m ya ng te rb e ntuk d a ri b e ntuka n ko mp o sisi fung si te rte ntu ya ng tite ntuka n o le h sa tu linta sa n p a d a e -c ha rt d e ng a n ta mp a a d a p e ng ula ng a n a ma tla h mud a h d ite ntuka n d ima na d a la m e va lua sinya [P] a d a la h f, d a n f me rup a ka n ko mp o si fung si • Te rmina si p a d a p ro g ra m ya ng me ng a nd ung p e ng ula ng a n a ma t suka r d ite ntuka n. Ha l ini d ise b a b ka n a d a nya sua tu ke a d a a n ya ng tid a k d a p a t d ip e rkira ka n untuk me ng a khiri sua tu p ro g ra m

6.3.2. Ite ra tio n Re c ursio n Le m m a

• Ve rifika si untuk sua tu p ro g ra m d e ng a n a d a nya p e ng ula ng a n d a p a t d ila kuka n d e ng a n me rub a h p ro g ra m ke d a la m b e ntuk re c ursive p = while p do g o d q = if p the n q ; f fi d ima na f b e rhe nti unutk se mua a rg ume nt f d a n f a d a la h p ro g ra m func tio n d a ri ifthe n ya ng tid a k me miliki p e ng ula ng a n C o nto h p = while v 0 do u,v := u+1,v-1 o d d a ri p ro g ra m tsb d id a p a t f = u, v := u+v, 0 o le h ka re na itu d id a p a tka n q = if v 0 the n u,v := u+1,v-1; u, v := u+v,0 fi • De ng a n ha l te rse b ut ma ka while do f = [ while p do g o d ] ↔ te rm f, while p do g o d ∧ f = [ if p the n g ; f fi ] do until f = [ do g until p o d ] ↔ te rm f, do g until p o d ∧ f = [g ; if ~p the n f fi] do while do f = [ do 1 g while p do 2 h o d ] ↔ te rm f, do 1 g while p do 2 h o d ∧ f = [g ; if p the n h; f fi ]

6.3.3. Te o re m a Ke b e na ra n

• Te o re ma ke b e na ra n ha nya me ne ntuka n re la si-re la si himp una n a p a ya ng ha rus d ive rifika si unutk me mb uktika n ke b e na ra n d a ri sua tu p ro g ra m • Te o re ma Ke b e na ra n me nunjuka n b a hwa sua tu sisi d a ri p e rta nya a n- p e rta nya a n te rmina si se mua p ro g ra m-p ro g re a m te rstruktur ya ng d inya ta ka n d a la m p rime -p rime sa mp a i p a d a se b ua h p re d ic a te ya ng d a p a t d ive rifika si ha nya o le h p e ng g una me to d e -me to d e b e ra la sa n ya ng d ib utuhka n o le h p ro g ra m se q ue nc e d a n ifthe n, p e mb uktia n mung kin me mb utuhka n ke sa b a ra n d ib a nd ing d e ng a n p e ng e ta hua n • Untuk fung si f d a n p ro g ra m p ke b e na ra n d ite ntuka n o le h se b ua h ko nd isi c untuk C o mp le te c o rre c tne ss f = [p ] te rm f, p ∧ f = {x, y | c x , y}