begin
Lm1:
0 = [\(log (2,1))/]
Lm2:
for nn9 being Element of NAT st nn9 > 0 holds
( [\(log (2,nn9))/] is Element of NAT & (6 * ([\(log (2,nn9))/] + 1)) + 1 > 0 )
Lm3:
for nn, nn9 being Element of NAT st nn = (2 * nn9) + 1 & nn9 > 0 holds
6 + ((6 * ([\(log (2,nn9))/] + 1)) + 1) = (6 * ([\(log (2,nn))/] + 1)) + 1
Lm4:
for n being Element of NAT st n > 0 holds
( log (2,(2 * n)) = 1 + (log (2,n)) & log (2,(2 * n)) = (log (2,n)) + 1 )
Lm5:
for nn, nn9 being Element of NAT st nn = 2 * nn9 & nn9 > 0 holds
6 + ((6 * ([\(log (2,nn9))/] + 1)) + 1) = (6 * ([\(log (2,nn))/] + 1)) + 1
Lm6:
for N being Element of NAT st N <> 0 holds
(6 * N) - 4 > 0
Lm7:
dl. 0 <> dl. 1
by AMI_3:52;
Lm8:
dl. 0 <> dl. 2
by AMI_3:52;
Lm9:
dl. 0 <> dl. 3
by AMI_3:52;
Lm10:
dl. 1 <> dl. 2
by AMI_3:52;
Lm11:
dl. 1 <> dl. 3
by AMI_3:52;
Lm12:
dl. 2 <> dl. 3
by AMI_3:52;
Lm13:
dl. 0 <> dl. 4
by AMI_3:52;
Lm14:
dl. 1 <> dl. 4
by AMI_3:52;
Lm15:
dl. 2 <> dl. 4
by AMI_3:52;
Lm16:
dl. 3 <> dl. 4
by AMI_3:52;
:: deftheorem defines Fib_Program FIB_FUSC:def 1 :
Fib_Program = (((((((<%((dl. 1) >0_goto 2)%> ^ <%(halt SCM)%>) ^ <%((dl. 3) := (dl. 0))%>) ^ <%(SubFrom ((dl. 1),(dl. 0)))%>) ^ <%((dl. 1) =0_goto 1)%>) ^ <%((dl. 4) := (dl. 2))%>) ^ <%((dl. 2) := (dl. 3))%>) ^ <%(AddTo ((dl. 3),(dl. 4)))%>) ^ <%(SCM-goto 3)%>;
Lm17:
for F being NAT -defined the Instructions of SCM -valued total Function
for I1, I2, I3, I4, I5, I6, I7, I8, I9 being Instruction of SCM st (((((((<%I1%> ^ <%I2%>) ^ <%I3%>) ^ <%I4%>) ^ <%I5%>) ^ <%I6%>) ^ <%I7%>) ^ <%I8%>) ^ <%I9%> c= F holds
( F . 0 = I1 & F . 1 = I2 & F . 2 = I3 & F . 3 = I4 & F . 4 = I5 & F . 5 = I6 & F . 6 = I7 & F . 7 = I8 & F . 8 = I9 )
theorem
:: deftheorem Def2 defines Fusc' FIB_FUSC:def 2 :
for i being Integer
for b2 being Element of NAT holds
( b2 = Fusc' i iff ( ex n being Element of NAT st
( i = n & b2 = Fusc n ) or ( i is not Element of NAT & b2 = 0 ) ) );
:: deftheorem defines Fusc_Program FIB_FUSC:def 3 :
Fusc_Program = (((((((<%((dl. 1) =0_goto 8)%> ^ <%((dl. 4) := (dl. 0))%>) ^ <%(Divide ((dl. 1),(dl. 4)))%>) ^ <%((dl. 4) =0_goto 6)%>) ^ <%(AddTo ((dl. 3),(dl. 2)))%>) ^ <%(SCM-goto 0)%>) ^ <%(AddTo ((dl. 2),(dl. 3)))%>) ^ <%(SCM-goto 0)%>) ^ <%(halt SCM)%>;
theorem
theorem
theorem
canceled;
theorem Th5:
theorem