Platon Technologies
not logged in Login Registration
EnglishSlovak
open source software development celebrating 10 years of open source development! Saturday, October 17, 2026

Diff for doc/ztp-zbierka/04-semantika-programov.tex between version 1.5 and 1.6

version 1.5, 2007/07/11 00:44:51 version 1.6, 2007/07/12 04:29:45
Line 10 
Line 10 
 % 26/02/2003 - created  % 26/02/2003 - created
 %  %
   
 % $Platon: doc/ztp-zbierka/04-semantika-programov.tex,v 1.4 2007-06-03 11:33:05 nepto Exp $  % $Platon: doc/ztp-zbierka/04-semantika-programov.tex,v 1.5 2007-07-11 00:44:51 nepto Exp $
   
 \chapter{Sémantika programov}  \chapter{Sémantika programov}
   
Line 362  $$
Line 362  $$
   
 \end{solution} % */  \end{solution} % */
   
   \begin{example} % /*
           Máme funkciu:
   
           $$
           \begin{array}{rcl}
                   f_0 & = & 0\\
                   f(n) & = & f(f(n - 1))
           \end{array}
           $$
   
           Nájdite pevný bod tejto funkcie.
   
   \end{example} % */
   
   \begin{solution} % /*
   
   Funkciu si najskôr rozpíšeme:
   $$
   \begin{array}{rcl}
           f(1) & = & f(f(0)) = f(0) = 0\\
           f(2) & = & f(f(1)) = f(f(f(0))) = f(f(0)) = f(0) = 0\\
           f(3) & = & f(f(2)) = f(f(f(1))) = f(f(f(f(0)))) = f(f(f(0))) = f(f(0)) = f(0) = 0
   \end{array}
   $$
   
   Teraz ju zapíšeme v ???(neviem) tvare:
   
   $$
   \phi(x): \cmd{if}~ x = 0 ~\cmd{then}~ 0 ~\cmd{else}~ \phi(\phi(x - 1)) ~\cmd{fi}
   $$
   
   Hľadajme pevný bod:
   
   $$
   \begin{array}{rcl}
   \tau^0  & \equiv        & \Omega\\
   \tau^1  & \equiv        & \cmd{if}~ x = 0 ~\cmd{then}~ 0 ~\cmd{else} \perp \cmd{fi}\\
   \tau^2  & \equiv        & \cmd{if}~ x = 0 ~\cmd{then}~ 0 ~\cmd{else}~ ([\cmd{if}~ x = 1 ~\cmd{then}~ 0
   ~\cmd{else} \perp \cmd{fi}] = 0 ~\cmd{then}~ 0 ~\cmd{else} \perp) ~\cmd{fi}\\
   \tau^3  & \equiv        & x = 0 ~?~ 0 ~:~ ([x = 1 ~?~ 0 ~:~ (x = 2 ~?~ 0 ~:~ \perp)] = 0 ~?~ 0 ~:~ ([[x = 1 ~?~ 0 ~:~ (x = 2
   ~?~ 0 ~:~ \perp)] = 1 ~?~ 0 ~:~ \perp] = 0 ~?~ 0 ~:~ \perp))
   \end{array}
   $$
   
   Upravme to:
   
   $$
   \begin{array}{lcl}
           \tau^3\{x = 1\} & \equiv & x = 0 ~?~ 0 ~:~ (0 = 0 ~?~ 0 ~:~ ((\perp = 1 ~?~ 0 ~:~ \perp) = 0 ~?~ 0 ~:~ \perp)) \equiv\\
                                           & \equiv & x = 0 ~?~ 0 ~:~ 0\\
           \tau^3\{x = 2\} & \equiv & x = 0 ~?~ 0 ~:~ (0 = 0 ~?~ 0 ~:~ ((0 = 1 ~?~ 0 ~:~ \perp) = 0 ~?~ 0 ~:~ \perp)) \equiv\\
                                           & \equiv & x = 0 ~?~ 0 ~:~ 0\\
           \tau^4                  & \equiv & x = 0 ~?~ 0 ~:~ ([x = 1 ~?~ 0 ~:~ 0] = 0 ~?~ 0 ~:~ 0) \equiv\\
                                           & \equiv & x = 0 ~?~ 0 ~:~ 0
   \end{array}
   $$
   
   Zdá sa, že to už je pevný bod. Overme to:
   
   $$
   \begin{array}{rcl}
   f_P     & \equiv & \cmd{if}~ x = 0 ~\cmd{then}~ 0 ~\cmd{else}~ ([\cmd{if}~ x = 1 ~\cmd{then}~ 0 ~\cmd{else}~ 0
   ~\cmd{fi}] = 0 ~\cmd{then}~ 0 ~\cmd{else}~ 0 ~\cmd{fi}) ~\cmd{fi} \equiv\\
   & \equiv & \cmd{if}~ x = 0 ~\cmd{then}~ 0 ~\cmd{else}~ 0 ~\cmd{fi}
   \end{array}
   $$
   
   Takže naozaj je to pevný bod. Zapíšme ho ešte raz, ale teraz už bez použitia notácie programovacieho
   jazyka~C:
   
   $$
   \begin{array}{rcl}
           f_P     & \equiv & \cmd{if}~ x = 0 ~\cmd{then}~ 0 ~\cmd{else}~ 0 ~\cmd{fi}
   \end{array}
   $$
   
   \end{solution} % */
   
   
 % vim: ts=4 tw=100  % vim: ts=4 tw=100
 % vim600: fdl=0 fdm=marker fdc=0 fmr=/*,*/  % vim600: fdl=0 fdm=marker fdc=0 fmr=/*,*/
   

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

Platon Group <platon@platon.org> http://platon.org/
Copyright © 2002-2006 Platon Group
Site powered by Metafox CMS
Go to Top