set c2 = dl. 0 ;
set n = dl. 1;
set a = dl. 2;
set b = dl. 3;
set aux = dl. 4;
set L6 = 6;
set L7 = 7;
set L8 = 8;
set L0 = 0 ;
set L1 = 1;
set L2 = 2;
set L3 = 3;
set L4 = 4;
set L5 = 5;
let N be Element of NAT ; ( N > 0 implies for s being State-consisting of 0 , 0 , 0 , Fusc_Program ,((<*2*> ^ <*N*>) ^ <*1*>) ^ <*0 *> holds
( ProgramPart s halts_on s & (Result s) . (dl. 3) = Fusc N & LifeSpan s = (6 * ([\(log 2,N)/] + 1)) + 1 ) )
assume A1:
N > 0
; for s being State-consisting of 0 , 0 , 0 , Fusc_Program ,((<*2*> ^ <*N*>) ^ <*1*>) ^ <*0 *> holds
( ProgramPart s halts_on s & (Result s) . (dl. 3) = Fusc N & LifeSpan s = (6 * ([\(log 2,N)/] + 1)) + 1 )
set k = [\(log 2,N)/];
(log 2,N) - 1 < [\(log 2,N)/]
by INT_1:def 4;
then A2:
log 2,N < [\(log 2,N)/] + 1
by XREAL_1:21;
N >= 0 + 1
by A1, NAT_1:13;
then
log 2,N >= log 2,1
by PRE_FF:12;
then
log 2,N >= 0
by POWER:59;
then
[\(log 2,N)/] + 1 > 0
by A2, XXREAL_0:2;
then reconsider k = [\(log 2,N)/] as Element of NAT by INT_1:16, INT_1:20;
2 to_power (k + 1) > 2 to_power (log 2,N)
by A2, POWER:44;
then
2 to_power (k + 1) > N
by A1, POWER:def 3;
then A3:
2 |^ (k + 1) > N
by POWER:46;
let S be State-consisting of 0 , 0 , 0 , Fusc_Program ,((<*2*> ^ <*N*>) ^ <*1*>) ^ <*0 *>; ( ProgramPart S halts_on S & (Result S) . (dl. 3) = Fusc N & LifeSpan S = (6 * ([\(log 2,N)/] + 1)) + 1 )
consider s being State of SCM such that
A4:
s = S
;
defpred S1[ Element of NAT ] means ( $1 <= (log 2,N) + 1 implies for u being State of SCM st u = Comput (ProgramPart s),s,(6 * $1) holds
( IC u = 0 & u . (dl. 0 ) = 2 & u . (dl. 1) = N div (2 |^ $1) & u . (dl. 1) is Element of NAT & Fusc N = ((u . (dl. 2)) * (Fusc' (u . (dl. 1)))) + ((u . (dl. 3)) * (Fusc' ((u . (dl. 1)) + 1))) ) );
A5:
s . 0 = (dl. 1) =0_goto 8
by A4, SCM_1:14;
A6:
s . 7 = SCM-goto 0
by A4, SCM_1:14;
A7:
s . 1 = (dl. 4) := (dl. 0 )
by A4, SCM_1:14;
A8:
s . 4 = AddTo (dl. 3),(dl. 2)
by A4, SCM_1:14;
A9:
s . 2 = Divide (dl. 1),(dl. 4)
by A4, SCM_1:14;
A10:
s . 6 = AddTo (dl. 2),(dl. 3)
by A4, SCM_1:14;
A11:
s . 3 = (dl. 4) =0_goto 6
by A4, SCM_1:14;
A12:
s . 5 = SCM-goto 0
by A4, SCM_1:14;
A13:
for k being Element of NAT st S1[k] holds
S1[k + 1]
proof
let k be
Element of
NAT ;
( S1[k] implies S1[k + 1] )
assume A14:
(
k <= (log 2,N) + 1 implies for
u being
State of
SCM st
u = Comput (ProgramPart s),
s,
(6 * k) holds
(
IC u = 0 &
u . (dl. 0 ) = 2 &
u . (dl. 1) = N div (2 |^ k) &
u . (dl. 1) is
Element of
NAT &
Fusc N = ((u . (dl. 2)) * (Fusc' (u . (dl. 1)))) + ((u . (dl. 3)) * (Fusc' ((u . (dl. 1)) + 1))) ) )
;
S1[k + 1]
set t = 6
* k;
set t0 =
Comput (ProgramPart s),
s,
(6 * k);
assume A15:
k + 1
<= (log 2,N) + 1
;
for u being State of SCM st u = Comput (ProgramPart s),s,(6 * (k + 1)) holds
( IC u = 0 & u . (dl. 0 ) = 2 & u . (dl. 1) = N div (2 |^ (k + 1)) & u . (dl. 1) is Element of NAT & Fusc N = ((u . (dl. 2)) * (Fusc' (u . (dl. 1)))) + ((u . (dl. 3)) * (Fusc' ((u . (dl. 1)) + 1))) )
then
k <= log 2,
N
by XREAL_1:8;
then
2
to_power k <= 2
to_power (log 2,N)
by PRE_FF:10;
then
2
to_power k <= N
by A1, POWER:def 3;
then A16:
2
|^ k <= N
by POWER:46;
A17:
k <= k + 1
by NAT_1:11;
then A18:
(Comput (ProgramPart s),s,(6 * k)) . (dl. 1) is
Element of
NAT
by A14, A15, XXREAL_0:2;
A19:
(Comput (ProgramPart s),s,(6 * k)) . (dl. 1) = N div (2 |^ k)
by A14, A15, A17, XXREAL_0:2;
A20:
IC (Comput (ProgramPart s),s,(6 * k)) = 0
by A14, A15, A17, XXREAL_0:2;
set t3 =
Comput (ProgramPart s),
s,
((6 * k) + 3);
set t2 =
Comput (ProgramPart s),
s,
((6 * k) + 2);
set t1 =
Comput (ProgramPart s),
s,
((6 * k) + 1);
A21:
((6 * k) + 1) + 1
= (6 * k) + 2
;
2
|^ k > 0
by NEWTON:102;
then
(Comput (ProgramPart s),s,(6 * k)) . (dl. 1) <> 0
by A19, A16, PRE_FF:3;
then A22:
IC (Comput (ProgramPart s),s,((6 * k) + 1)) = 0 + 1
by A5, A20, SCM_1:24;
then A23:
IC (Comput (ProgramPart s),s,((6 * k) + 2)) = 1
+ 1
by A7, A21, SCM_1:18;
A24:
((6 * k) + 2) + 1
= (6 * k) + 3
;
then A25:
IC (Comput (ProgramPart s),s,((6 * k) + 3)) = 2
+ 1
by A9, A23, Lm14, SCM_1:22;
(Comput (ProgramPart s),s,((6 * k) + 1)) . (dl. 1) = (Comput (ProgramPart s),s,(6 * k)) . (dl. 1)
by A5, A20, SCM_1:24;
then A26:
(Comput (ProgramPart s),s,((6 * k) + 2)) . (dl. 1) = (Comput (ProgramPart s),s,(6 * k)) . (dl. 1)
by A7, A22, A21, Lm14, SCM_1:18;
A27:
((Comput (ProgramPart s),s,(6 * k)) . (dl. 1)) mod 2
= ((Comput (ProgramPart s),s,(6 * k)) . (dl. 1)) - ((((Comput (ProgramPart s),s,(6 * k)) . (dl. 1)) div 2) * 2)
by INT_1:def 8;
let u be
State of
SCM ;
( u = Comput (ProgramPart s),s,(6 * (k + 1)) implies ( IC u = 0 & u . (dl. 0 ) = 2 & u . (dl. 1) = N div (2 |^ (k + 1)) & u . (dl. 1) is Element of NAT & Fusc N = ((u . (dl. 2)) * (Fusc' (u . (dl. 1)))) + ((u . (dl. 3)) * (Fusc' ((u . (dl. 1)) + 1))) ) )
assume A28:
u = Comput (ProgramPart s),
s,
(6 * (k + 1))
;
( IC u = 0 & u . (dl. 0 ) = 2 & u . (dl. 1) = N div (2 |^ (k + 1)) & u . (dl. 1) is Element of NAT & Fusc N = ((u . (dl. 2)) * (Fusc' (u . (dl. 1)))) + ((u . (dl. 3)) * (Fusc' ((u . (dl. 1)) + 1))) )
(Comput (ProgramPart s),s,(6 * k)) . (dl. 0 ) = 2
by A14, A15, A17, XXREAL_0:2;
then A29:
(Comput (ProgramPart s),s,((6 * k) + 1)) . (dl. 0 ) = 2
by A5, A20, SCM_1:24;
then
(Comput (ProgramPart s),s,((6 * k) + 2)) . (dl. 0 ) = 2
by A7, A22, A21, Lm13, SCM_1:18;
then A30:
(Comput (ProgramPart s),s,((6 * k) + 3)) . (dl. 0 ) = 2
by A9, A23, A24, Lm7, Lm13, Lm14, SCM_1:22;
A31:
(Comput (ProgramPart s),s,((6 * k) + 2)) . (dl. 4) = 2
by A7, A22, A29, A21, SCM_1:18;
then A32:
(Comput (ProgramPart s),s,((6 * k) + 3)) . (dl. 1) = ((Comput (ProgramPart s),s,(6 * k)) . (dl. 1)) div 2
by A9, A23, A26, A24, Lm14, SCM_1:22;
then A33:
(Comput (ProgramPart s),s,((6 * k) + 3)) . (dl. 1) =
N div ((2 |^ k) * 2)
by A19, PRE_FF:5
.=
N div (2 |^ (k + 1))
by NEWTON:11
;
A34:
(Comput (ProgramPart s),s,((6 * k) + 3)) . (dl. 4) = ((Comput (ProgramPart s),s,(6 * k)) . (dl. 1)) mod 2
by A9, A23, A31, A26, A24, Lm14, SCM_1:22;
set t6 =
Comput (ProgramPart s),
s,
((6 * k) + 6);
set t5 =
Comput (ProgramPart s),
s,
((6 * k) + 5);
set t4 =
Comput (ProgramPart s),
s,
((6 * k) + 4);
A35:
((6 * k) + 3) + 1
= (6 * k) + 4
;
(Comput (ProgramPart s),s,((6 * k) + 1)) . (dl. 3) = (Comput (ProgramPart s),s,(6 * k)) . (dl. 3)
by A5, A20, SCM_1:24;
then
(Comput (ProgramPart s),s,((6 * k) + 2)) . (dl. 3) = (Comput (ProgramPart s),s,(6 * k)) . (dl. 3)
by A7, A22, A21, Lm16, SCM_1:18;
then A36:
(Comput (ProgramPart s),s,((6 * k) + 3)) . (dl. 3) = (Comput (ProgramPart s),s,(6 * k)) . (dl. 3)
by A9, A23, A24, Lm11, Lm14, Lm16, SCM_1:22;
A37:
((6 * k) + 5) + 1
= (6 * k) + 6
;
(Comput (ProgramPart s),s,((6 * k) + 1)) . (dl. 2) = (Comput (ProgramPart s),s,(6 * k)) . (dl. 2)
by A5, A20, SCM_1:24;
then
(Comput (ProgramPart s),s,((6 * k) + 2)) . (dl. 2) = (Comput (ProgramPart s),s,(6 * k)) . (dl. 2)
by A7, A22, A21, Lm15, SCM_1:18;
then A38:
(Comput (ProgramPart s),s,((6 * k) + 3)) . (dl. 2) = (Comput (ProgramPart s),s,(6 * k)) . (dl. 2)
by A9, A23, A24, Lm10, Lm14, Lm15, SCM_1:22;
A39:
((6 * k) + 4) + 1
= (6 * k) + 5
;
per cases
( (Comput (ProgramPart s),s,((6 * k) + 3)) . (dl. 4) <> 0 or (Comput (ProgramPart s),s,((6 * k) + 3)) . (dl. 4) = 0 )
;
suppose A40:
(Comput (ProgramPart s),s,((6 * k) + 3)) . (dl. 4) <> 0
;
( IC u = 0 & u . (dl. 0 ) = 2 & u . (dl. 1) = N div (2 |^ (k + 1)) & u . (dl. 1) is Element of NAT & Fusc N = ((u . (dl. 2)) * (Fusc' (u . (dl. 1)))) + ((u . (dl. 3)) * (Fusc' ((u . (dl. 1)) + 1))) )reconsider ta =
(Comput (ProgramPart s),s,(6 * k)) . (dl. 2),
tb =
(Comput (ProgramPart s),s,(6 * k)) . (dl. 3) as
Integer ;
A41:
(Comput (ProgramPart s),s,((6 * k) + 4)) . (dl. 2) = (Comput (ProgramPart s),s,(6 * k)) . (dl. 2)
by A11, A25, A38, A35, SCM_1:24;
A42:
IC (Comput (ProgramPart s),s,((6 * k) + 4)) = 3
+ 1
by A11, A25, A35, A40, SCM_1:24;
then A43:
IC (Comput (ProgramPart s),s,((6 * k) + 5)) = 4
+ 1
by A8, A39, SCM_1:19;
(Comput (ProgramPart s),s,((6 * k) + 4)) . (dl. 1) = (Comput (ProgramPart s),s,((6 * k) + 3)) . (dl. 1)
by A11, A25, A35, SCM_1:24;
then A44:
(Comput (ProgramPart s),s,((6 * k) + 5)) . (dl. 1) = (Comput (ProgramPart s),s,((6 * k) + 3)) . (dl. 1)
by A8, A39, A42, Lm11, SCM_1:19;
then A45:
(Comput (ProgramPart s),s,((6 * k) + 6)) . (dl. 1) = (Comput (ProgramPart s),s,((6 * k) + 3)) . (dl. 1)
by A12, A37, A43, SCM_1:23;
then reconsider un =
u . (dl. 1),
tn =
(Comput (ProgramPart s),s,(6 * k)) . (dl. 1) as
Element of
NAT by A28, A18, A32, PRE_FF:7;
A46:
tn =
((((Comput (ProgramPart s),s,(6 * k)) . (dl. 1)) div 2) * 2) + (((Comput (ProgramPart s),s,(6 * k)) . (dl. 1)) mod 2)
by A27
.=
(2 * un) + 1
by A28, A32, A34, A40, A45, PRE_FF:6
;
then A47:
tn + 1
= 2
* (un + 1)
;
(Comput (ProgramPart s),s,((6 * k) + 4)) . (dl. 0 ) = 2
by A11, A25, A30, A35, SCM_1:24;
then
(Comput (ProgramPart s),s,((6 * k) + 5)) . (dl. 0 ) = 2
by A8, A39, A42, Lm9, SCM_1:19;
hence
(
IC u = 0 &
u . (dl. 0 ) = 2 &
u . (dl. 1) = N div (2 |^ (k + 1)) )
by A12, A28, A33, A37, A43, A44, SCM_1:23;
( u . (dl. 1) is Element of NAT & Fusc N = ((u . (dl. 2)) * (Fusc' (u . (dl. 1)))) + ((u . (dl. 3)) * (Fusc' ((u . (dl. 1)) + 1))) )thus
u . (dl. 1) is
Element of
NAT
by A28, A18, A32, A45, PRE_FF:7;
Fusc N = ((u . (dl. 2)) * (Fusc' (u . (dl. 1)))) + ((u . (dl. 3)) * (Fusc' ((u . (dl. 1)) + 1)))A48:
Fusc' (((Comput (ProgramPart s),s,(6 * k)) . (dl. 1)) + 1) =
Fusc (tn + 1)
by Def2
.=
Fusc (un + 1)
by A47, PRE_FF:17
.=
Fusc' ((u . (dl. 1)) + 1)
by Def2
;
(Comput (ProgramPart s),s,((6 * k) + 4)) . (dl. 3) = (Comput (ProgramPart s),s,(6 * k)) . (dl. 3)
by A11, A25, A36, A35, SCM_1:24;
then
(Comput (ProgramPart s),s,((6 * k) + 5)) . (dl. 3) = ((Comput (ProgramPart s),s,(6 * k)) . (dl. 3)) + ((Comput (ProgramPart s),s,(6 * k)) . (dl. 2))
by A8, A39, A42, A41, SCM_1:19;
then A49:
(Comput (ProgramPart s),s,((6 * k) + 6)) . (dl. 3) = ((Comput (ProgramPart s),s,(6 * k)) . (dl. 3)) + ((Comput (ProgramPart s),s,(6 * k)) . (dl. 2))
by A12, A37, A43, SCM_1:23;
A50:
Fusc' ((Comput (ProgramPart s),s,(6 * k)) . (dl. 1)) =
Fusc tn
by Def2
.=
(Fusc un) + (Fusc (un + 1))
by A46, PRE_FF:17
.=
(Fusc' (u . (dl. 1))) + (Fusc (un + 1))
by Def2
.=
(Fusc' (u . (dl. 1))) + (Fusc' ((u . (dl. 1)) + 1))
by Def2
;
reconsider un =
u . (dl. 1),
tn =
(Comput (ProgramPart s),s,(6 * k)) . (dl. 1) as
Integer ;
(Comput (ProgramPart s),s,((6 * k) + 5)) . (dl. 2) = (Comput (ProgramPart s),s,(6 * k)) . (dl. 2)
by A8, A39, A42, A41, Lm12, SCM_1:19;
then
(Comput (ProgramPart s),s,((6 * k) + 6)) . (dl. 2) = (Comput (ProgramPart s),s,(6 * k)) . (dl. 2)
by A12, A37, A43, SCM_1:23;
then
(ta * (Fusc' tn)) + (tb * (Fusc' (tn + 1))) = ((u . (dl. 2)) * (Fusc' un)) + ((u . (dl. 3)) * (Fusc' (un + 1)))
by A28, A49, A50, A48;
hence
Fusc N = ((u . (dl. 2)) * (Fusc' (u . (dl. 1)))) + ((u . (dl. 3)) * (Fusc' ((u . (dl. 1)) + 1)))
by A14, A15, A17, XXREAL_0:2;
verum end; suppose A51:
(Comput (ProgramPart s),s,((6 * k) + 3)) . (dl. 4) = 0
;
( IC u = 0 & u . (dl. 0 ) = 2 & u . (dl. 1) = N div (2 |^ (k + 1)) & u . (dl. 1) is Element of NAT & Fusc N = ((u . (dl. 2)) * (Fusc' (u . (dl. 1)))) + ((u . (dl. 3)) * (Fusc' ((u . (dl. 1)) + 1))) )then A52:
IC (Comput (ProgramPart s),s,((6 * k) + 4)) = 6
by A11, A25, A35, SCM_1:24;
then A53:
IC (Comput (ProgramPart s),s,((6 * k) + 5)) = 6
+ 1
by A10, A39, SCM_1:19;
(Comput (ProgramPart s),s,((6 * k) + 4)) . (dl. 1) = (Comput (ProgramPart s),s,((6 * k) + 3)) . (dl. 1)
by A11, A25, A35, SCM_1:24;
then
(Comput (ProgramPart s),s,((6 * k) + 5)) . (dl. 1) = (Comput (ProgramPart s),s,((6 * k) + 3)) . (dl. 1)
by A10, A39, A52, Lm10, SCM_1:19;
then A54:
(Comput (ProgramPart s),s,((6 * k) + 6)) . (dl. 1) = (Comput (ProgramPart s),s,((6 * k) + 3)) . (dl. 1)
by A6, A37, A53, SCM_1:23;
then reconsider un =
u . (dl. 1),
tn =
(Comput (ProgramPart s),s,(6 * k)) . (dl. 1) as
Element of
NAT by A28, A18, A32, PRE_FF:7;
A55:
Fusc' (((Comput (ProgramPart s),s,(6 * k)) . (dl. 1)) + 1) =
Fusc (tn + 1)
by Def2
.=
(Fusc un) + (Fusc (un + 1))
by A28, A32, A34, A27, A51, A54, PRE_FF:17
.=
(Fusc un) + (Fusc' ((u . (dl. 1)) + 1))
by Def2
.=
(Fusc' (u . (dl. 1))) + (Fusc' ((u . (dl. 1)) + 1))
by Def2
;
A56:
(Comput (ProgramPart s),s,((6 * k) + 4)) . (dl. 3) = (Comput (ProgramPart s),s,(6 * k)) . (dl. 3)
by A11, A25, A36, A35, SCM_1:24;
then
(Comput (ProgramPart s),s,((6 * k) + 5)) . (dl. 3) = (Comput (ProgramPart s),s,(6 * k)) . (dl. 3)
by A10, A39, A52, Lm12, SCM_1:19;
then A57:
(Comput (ProgramPart s),s,((6 * k) + 6)) . (dl. 3) = (Comput (ProgramPart s),s,(6 * k)) . (dl. 3)
by A6, A37, A53, SCM_1:23;
(Comput (ProgramPart s),s,((6 * k) + 4)) . (dl. 0 ) = 2
by A11, A25, A30, A35, SCM_1:24;
then
(Comput (ProgramPart s),s,((6 * k) + 5)) . (dl. 0 ) = 2
by A10, A39, A52, Lm8, SCM_1:19;
hence
(
IC u = 0 &
u . (dl. 0 ) = 2 &
u . (dl. 1) = N div (2 |^ (k + 1)) &
u . (dl. 1) is
Element of
NAT )
by A6, A28, A18, A32, A33, A37, A53, A54, PRE_FF:7, SCM_1:23;
Fusc N = ((u . (dl. 2)) * (Fusc' (u . (dl. 1)))) + ((u . (dl. 3)) * (Fusc' ((u . (dl. 1)) + 1)))A58:
Fusc' ((Comput (ProgramPart s),s,(6 * k)) . (dl. 1)) =
Fusc tn
by Def2
.=
Fusc un
by A28, A32, A34, A27, A51, A54, PRE_FF:17
.=
Fusc' (u . (dl. 1))
by Def2
;
(Comput (ProgramPart s),s,((6 * k) + 4)) . (dl. 2) = (Comput (ProgramPart s),s,(6 * k)) . (dl. 2)
by A11, A25, A38, A35, SCM_1:24;
then
(Comput (ProgramPart s),s,((6 * k) + 5)) . (dl. 2) = ((Comput (ProgramPart s),s,(6 * k)) . (dl. 2)) + ((Comput (ProgramPart s),s,(6 * k)) . (dl. 3))
by A10, A39, A52, A56, SCM_1:19;
then A59:
(Comput (ProgramPart s),s,((6 * k) + 6)) . (dl. 2) = ((Comput (ProgramPart s),s,(6 * k)) . (dl. 2)) + ((Comput (ProgramPart s),s,(6 * k)) . (dl. 3))
by A6, A37, A53, SCM_1:23;
reconsider un =
u . (dl. 1),
tn =
(Comput (ProgramPart s),s,(6 * k)) . (dl. 1),
ta =
(Comput (ProgramPart s),s,(6 * k)) . (dl. 2),
tb =
(Comput (ProgramPart s),s,(6 * k)) . (dl. 3) as
Integer ;
(ta * (Fusc' tn)) + (tb * (Fusc' (tn + 1))) = ((ta + tb) * (Fusc' un)) + (tb * (Fusc' (un + 1)))
by A58, A55;
hence
Fusc N = ((u . (dl. 2)) * (Fusc' (u . (dl. 1)))) + ((u . (dl. 3)) * (Fusc' ((u . (dl. 1)) + 1)))
by A14, A15, A28, A17, A59, A57, XXREAL_0:2;
verum end; end;
end;
set h = Comput (ProgramPart s),s,((6 * (k + 1)) + 1);
set u = Comput (ProgramPart s),s,(6 * (k + 1));
A60:
s . (dl. 1) = N
by A4, SCM_1:14;
A61:
( s . (dl. 2) = 1 & s . (dl. 3) = 0 )
by A4, SCM_1:14;
A62:
S1[ 0 ]
proof
assume
0 <= (log 2,N) + 1
;
for u being State of SCM st u = Comput (ProgramPart s),s,(6 * 0 ) holds
( IC u = 0 & u . (dl. 0 ) = 2 & u . (dl. 1) = N div (2 |^ 0 ) & u . (dl. 1) is Element of NAT & Fusc N = ((u . (dl. 2)) * (Fusc' (u . (dl. 1)))) + ((u . (dl. 3)) * (Fusc' ((u . (dl. 1)) + 1))) )
let u be
State of
SCM ;
( u = Comput (ProgramPart s),s,(6 * 0 ) implies ( IC u = 0 & u . (dl. 0 ) = 2 & u . (dl. 1) = N div (2 |^ 0 ) & u . (dl. 1) is Element of NAT & Fusc N = ((u . (dl. 2)) * (Fusc' (u . (dl. 1)))) + ((u . (dl. 3)) * (Fusc' ((u . (dl. 1)) + 1))) ) )
assume
u = Comput (ProgramPart s),
s,
(6 * 0 )
;
( IC u = 0 & u . (dl. 0 ) = 2 & u . (dl. 1) = N div (2 |^ 0 ) & u . (dl. 1) is Element of NAT & Fusc N = ((u . (dl. 2)) * (Fusc' (u . (dl. 1)))) + ((u . (dl. 3)) * (Fusc' ((u . (dl. 1)) + 1))) )
then A63:
u = s
by AMI_1:13;
hence
(
IC u = 0 &
u . (dl. 0 ) = 2 )
by A4, SCM_1:14;
( u . (dl. 1) = N div (2 |^ 0 ) & u . (dl. 1) is Element of NAT & Fusc N = ((u . (dl. 2)) * (Fusc' (u . (dl. 1)))) + ((u . (dl. 3)) * (Fusc' ((u . (dl. 1)) + 1))) )
thus u . (dl. 1) =
N div 1
by A60, A63, PRE_FF:2
.=
N div (2 |^ 0 )
by NEWTON:9
;
( u . (dl. 1) is Element of NAT & Fusc N = ((u . (dl. 2)) * (Fusc' (u . (dl. 1)))) + ((u . (dl. 3)) * (Fusc' ((u . (dl. 1)) + 1))) )
thus
u . (dl. 1) is
Element of
NAT
by A4, A63, SCM_1:14;
Fusc N = ((u . (dl. 2)) * (Fusc' (u . (dl. 1)))) + ((u . (dl. 3)) * (Fusc' ((u . (dl. 1)) + 1)))
thus
Fusc N = ((u . (dl. 2)) * (Fusc' (u . (dl. 1)))) + ((u . (dl. 3)) * (Fusc' ((u . (dl. 1)) + 1)))
by A60, A61, A63, Def2;
verum
end;
A64:
for k being Element of NAT holds S1[k]
from NAT_1:sch 1(A62, A13);
[\(log 2,N)/] <= log 2,N
by INT_1:def 4;
then A65:
k + 1 <= (log 2,N) + 1
by XREAL_1:8;
then A66:
Fusc N = (((Comput (ProgramPart s),s,(6 * (k + 1))) . (dl. 2)) * (Fusc' ((Comput (ProgramPart s),s,(6 * (k + 1))) . (dl. 1)))) + (((Comput (ProgramPart s),s,(6 * (k + 1))) . (dl. 3)) * (Fusc' (((Comput (ProgramPart s),s,(6 * (k + 1))) . (dl. 1)) + 1)))
by A64;
A67:
IC (Comput (ProgramPart s),s,(6 * (k + 1))) = 0
by A64, A65;
then A68:
(Comput (ProgramPart s),s,((6 * (k + 1)) + 1)) . (dl. 3) = (Comput (ProgramPart s),s,(6 * (k + 1))) . (dl. 3)
by A5, SCM_1:24;
(Comput (ProgramPart s),s,(6 * (k + 1))) . (dl. 1) = N div (2 |^ (k + 1))
by A64, A65;
then A69:
(Comput (ProgramPart s),s,(6 * (k + 1))) . (dl. 1) = 0
by A3, NAT_1:2, PRE_FF:4;
then A70:
IC (Comput (ProgramPart s),s,((6 * (k + 1)) + 1)) = 8
by A5, A67, SCM_1:24;
A71:
s . (IC (Comput (ProgramPart s),s,(6 * (k + 1)))) <> halt SCM
by A5, A67, SCM_1:26;
A72:
s . 8 = halt SCM
by A4, SCM_1:14;
hence
ProgramPart S halts_on S
by A4, A70, SCM_1:3; ( (Result S) . (dl. 3) = Fusc N & LifeSpan S = (6 * ([\(log 2,N)/] + 1)) + 1 )
(((Comput (ProgramPart s),s,(6 * (k + 1))) . (dl. 2)) * (Fusc' ((Comput (ProgramPart s),s,(6 * (k + 1))) . (dl. 1)))) + (((Comput (ProgramPart s),s,(6 * (k + 1))) . (dl. 3)) * (Fusc' (((Comput (ProgramPart s),s,(6 * (k + 1))) . (dl. 1)) + 1))) =
(((Comput (ProgramPart s),s,(6 * (k + 1))) . (dl. 2)) * 0 ) + (((Comput (ProgramPart s),s,(6 * (k + 1))) . (dl. 3)) * (Fusc' (((Comput (ProgramPart s),s,(6 * (k + 1))) . (dl. 1)) + 1)))
by A69, Def2, PRE_FF:17
.=
((Comput (ProgramPart s),s,(6 * (k + 1))) . (dl. 3)) * (Fusc (0 + 1))
by A69, Def2
.=
(Comput (ProgramPart s),s,(6 * (k + 1))) . (dl. 3)
by PRE_FF:17
;
hence
(Result S) . (dl. 3) = Fusc N
by A4, A72, A66, A70, A68, SCM_1:4; LifeSpan S = (6 * ([\(log 2,N)/] + 1)) + 1
s . (IC (Comput (ProgramPart s),s,((6 * (k + 1)) + 1))) = halt SCM
by A4, A70, SCM_1:14;
hence
LifeSpan S = (6 * ([\(log 2,N)/] + 1)) + 1
by A4, A71, SCM_1:17; verum