let F be NAT -defined the Instructions of SCM -valued total Function; ( Fib_Program c= F implies for N being Element of NAT
for s being 0 -started State-consisting of 0 ,((<*1*> ^ <*N*>) ^ <*0*>) ^ <*0*> holds
( F halts_on s & ( N = 0 implies LifeSpan (F,s) = 1 ) & ( N > 0 implies LifeSpan (F,s) = (6 * N) - 2 ) & (Result (F,s)) . (dl. 3) = Fib N ) )
assume Z:
Fib_Program c= F
; for N being Element of NAT
for s being 0 -started State-consisting of 0 ,((<*1*> ^ <*N*>) ^ <*0*>) ^ <*0*> holds
( F halts_on s & ( N = 0 implies LifeSpan (F,s) = 1 ) & ( N > 0 implies LifeSpan (F,s) = (6 * N) - 2 ) & (Result (F,s)) . (dl. 3) = Fib N )
let N be Element of NAT ; for s being 0 -started State-consisting of 0 ,((<*1*> ^ <*N*>) ^ <*0*>) ^ <*0*> holds
( F halts_on s & ( N = 0 implies LifeSpan (F,s) = 1 ) & ( N > 0 implies LifeSpan (F,s) = (6 * N) - 2 ) & (Result (F,s)) . (dl. 3) = Fib N )
let s be 0 -started State-consisting of 0 ,((<*1*> ^ <*N*>) ^ <*0*>) ^ <*0*>; ( F halts_on s & ( N = 0 implies LifeSpan (F,s) = 1 ) & ( N > 0 implies LifeSpan (F,s) = (6 * N) - 2 ) & (Result (F,s)) . (dl. 3) = Fib N )
set C1 = dl. 0;
set n = dl. 1;
set FP = dl. 2;
set FC = 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;
A1:
( IC s = 0 & F . 0 = (dl. 1) >0_goto 2 )
by COMPOS_1:def 20, Z, L14;
set s1 = Comput (F,s,(0 + 1));
set s0 = Comput (F,s,0);
A2:
s = Comput (F,s,0)
by EXTPRO_1:3;
s . (dl. 0) = 1
by SCM_1:13;
then A3:
(Comput (F,s,(0 + 1))) . (dl. 0) = 1
by A1, A2, SCM_1:25;
A4:
F . 3 = SubFrom ((dl. 1),(dl. 0))
by Z, L14;
s . (dl. 2) = 0
by SCM_1:13;
then A5:
(Comput (F,s,(0 + 1))) . (dl. 2) = 0
by A1, A2, SCM_1:25;
A6:
F . 4 = (dl. 1) =0_goto 1
by Z, L14;
s . (dl. 3) = 0
by SCM_1:13;
then A7:
(Comput (F,s,(0 + 1))) . (dl. 3) = 0
by A1, A2, SCM_1:25;
A8:
F . 6 = (dl. 2) := (dl. 3)
by Z, L14;
defpred S1[ Element of NAT ] means ( $1 < N implies for u being State of SCM st u = Comput (F,s,((6 * $1) + 3)) holds
( u . (dl. 0) = 1 & u . (dl. 1) = (N - 1) - $1 & u . (dl. 2) = Fib $1 & u . (dl. 3) = Fib ($1 + 1) & IC u = 4 ) );
A9:
F . 2 = (dl. 3) := (dl. 0)
by Z, L14;
A10:
F . 7 = AddTo ((dl. 3),(dl. 4))
by Z, L14;
A11:
F . 8 = SCM-goto 3
by Z, L14;
A12:
F . 5 = (dl. 4) := (dl. 2)
by Z, L14;
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 that A14:
(
k < N implies for
u being
State of
SCM st
u = Comput (
F,
s,
((6 * k) + 3)) holds
(
u . (dl. 0) = 1 &
u . (dl. 1) = (N - 1) - k &
u . (dl. 2) = Fib k &
u . (dl. 3) = Fib (k + 1) &
IC u = 4 ) )
and A15:
k + 1
< N
;
for u being State of SCM st u = Comput (F,s,((6 * (k + 1)) + 3)) holds
( u . (dl. 0) = 1 & u . (dl. 1) = (N - 1) - (k + 1) & u . (dl. 2) = Fib (k + 1) & u . (dl. 3) = Fib ((k + 1) + 1) & IC u = 4 )
set b =
(6 * k) + 3;
set s5 =
Comput (
F,
s,
(((6 * k) + 3) + 1));
set s6 =
Comput (
F,
s,
((((6 * k) + 3) + 1) + 1));
set s7 =
Comput (
F,
s,
(((((6 * k) + 3) + 1) + 1) + 1));
set s8 =
Comput (
F,
s,
((((((6 * k) + 3) + 1) + 1) + 1) + 1));
set s9 =
Comput (
F,
s,
(((((((6 * k) + 3) + 1) + 1) + 1) + 1) + 1));
set s10 =
Comput (
F,
s,
((((((((6 * k) + 3) + 1) + 1) + 1) + 1) + 1) + 1));
set s4 =
Comput (
F,
s,
((6 * k) + 3));
A16:
IC (Comput (F,s,((6 * k) + 3))) = 4
by A14, A15, NAT_1:13;
let t be
State of
SCM;
( t = Comput (F,s,((6 * (k + 1)) + 3)) implies ( t . (dl. 0) = 1 & t . (dl. 1) = (N - 1) - (k + 1) & t . (dl. 2) = Fib (k + 1) & t . (dl. 3) = Fib ((k + 1) + 1) & IC t = 4 ) )
assume A17:
t = Comput (
F,
s,
((6 * (k + 1)) + 3))
;
( t . (dl. 0) = 1 & t . (dl. 1) = (N - 1) - (k + 1) & t . (dl. 2) = Fib (k + 1) & t . (dl. 3) = Fib ((k + 1) + 1) & IC t = 4 )
A18:
(Comput (F,s,((6 * k) + 3))) . (dl. 1) = (N - 1) - k
by A14, A15, NAT_1:13;
then
(Comput (F,s,((6 * k) + 3))) . (dl. 1) <> 0
by A15;
then A19:
IC (Comput (F,s,(((6 * k) + 3) + 1))) = 4
+ 1
by A6, A16, SCM_1:24;
then A20:
IC (Comput (F,s,((((6 * k) + 3) + 1) + 1))) = 5
+ 1
by A12, SCM_1:18;
then A21:
IC (Comput (F,s,(((((6 * k) + 3) + 1) + 1) + 1))) = 6
+ 1
by A8, SCM_1:18;
then A22:
IC (Comput (F,s,((((((6 * k) + 3) + 1) + 1) + 1) + 1))) = 7
+ 1
by A10, SCM_1:19;
then A23:
IC (Comput (F,s,(((((((6 * k) + 3) + 1) + 1) + 1) + 1) + 1))) = 3
by A11, SCM_1:23;
then A24:
IC (Comput (F,s,((((((((6 * k) + 3) + 1) + 1) + 1) + 1) + 1) + 1))) = 3
+ 1
by A4, SCM_1:20;
(Comput (F,s,((6 * k) + 3))) . (dl. 0) = 1
by A14, A15, NAT_1:13;
then
(Comput (F,s,(((6 * k) + 3) + 1))) . (dl. 0) = 1
by A6, A16, SCM_1:24;
then
(Comput (F,s,((((6 * k) + 3) + 1) + 1))) . (dl. 0) = 1
by A12, A19, Lm13, SCM_1:18;
then
(Comput (F,s,(((((6 * k) + 3) + 1) + 1) + 1))) . (dl. 0) = 1
by A8, A20, Lm8, SCM_1:18;
then
(Comput (F,s,((((((6 * k) + 3) + 1) + 1) + 1) + 1))) . (dl. 0) = 1
by A10, A21, Lm9, SCM_1:19;
then A25:
(Comput (F,s,(((((((6 * k) + 3) + 1) + 1) + 1) + 1) + 1))) . (dl. 0) = 1
by A11, A22, SCM_1:23;
(Comput (F,s,((6 * k) + 3))) . (dl. 3) = Fib (k + 1)
by A14, A15, NAT_1:13;
then
(Comput (F,s,(((6 * k) + 3) + 1))) . (dl. 3) = Fib (k + 1)
by A6, A16, SCM_1:24;
then A26:
(Comput (F,s,((((6 * k) + 3) + 1) + 1))) . (dl. 3) = Fib (k + 1)
by A12, A19, Lm16, SCM_1:18;
then A27:
(Comput (F,s,(((((6 * k) + 3) + 1) + 1) + 1))) . (dl. 3) = Fib (k + 1)
by A8, A20, Lm12, SCM_1:18;
(Comput (F,s,((6 * k) + 3))) . (dl. 2) = Fib k
by A14, A15, NAT_1:13;
then
(Comput (F,s,(((6 * k) + 3) + 1))) . (dl. 2) = Fib k
by A6, A16, SCM_1:24;
then
(Comput (F,s,((((6 * k) + 3) + 1) + 1))) . (dl. 4) = Fib k
by A12, A19, SCM_1:18;
then A28:
(Comput (F,s,(((((6 * k) + 3) + 1) + 1) + 1))) . (dl. 4) = Fib k
by A8, A20, Lm15, SCM_1:18;
(Comput (F,s,((((((6 * k) + 3) + 1) + 1) + 1) + 1))) . (dl. 3) =
((Comput (F,s,(((((6 * k) + 3) + 1) + 1) + 1))) . (dl. 4)) + ((Comput (F,s,(((((6 * k) + 3) + 1) + 1) + 1))) . (dl. 3))
by A10, A21, SCM_1:19
.=
Fib ((k + 1) + 1)
by A27, A28, PRE_FF:1
;
then A29:
(Comput (F,s,(((((((6 * k) + 3) + 1) + 1) + 1) + 1) + 1))) . (dl. 3) = Fib ((k + 1) + 1)
by A11, A22, SCM_1:23;
(Comput (F,s,(((((6 * k) + 3) + 1) + 1) + 1))) . (dl. 2) = Fib (k + 1)
by A8, A20, A26, SCM_1:18;
then
(Comput (F,s,((((((6 * k) + 3) + 1) + 1) + 1) + 1))) . (dl. 2) = Fib (k + 1)
by A10, A21, Lm12, SCM_1:19;
then A30:
(Comput (F,s,(((((((6 * k) + 3) + 1) + 1) + 1) + 1) + 1))) . (dl. 2) = Fib (k + 1)
by A11, A22, SCM_1:23;
(Comput (F,s,(((6 * k) + 3) + 1))) . (dl. 1) = (N - 1) - k
by A6, A18, A16, SCM_1:24;
then
(Comput (F,s,((((6 * k) + 3) + 1) + 1))) . (dl. 1) = (N - 1) - k
by A12, A19, Lm14, SCM_1:18;
then
(Comput (F,s,(((((6 * k) + 3) + 1) + 1) + 1))) . (dl. 1) = (N - 1) - k
by A8, A20, Lm10, SCM_1:18;
then
(Comput (F,s,((((((6 * k) + 3) + 1) + 1) + 1) + 1))) . (dl. 1) = (N - 1) - k
by A10, A21, Lm11, SCM_1:19;
then
(Comput (F,s,(((((((6 * k) + 3) + 1) + 1) + 1) + 1) + 1))) . (dl. 1) = (N - 1) - k
by A11, A22, SCM_1:23;
then
(Comput (F,s,((((((((6 * k) + 3) + 1) + 1) + 1) + 1) + 1) + 1))) . (dl. 1) = ((N - 1) - k) - 1
by A4, A23, A25, SCM_1:20;
hence
(
t . (dl. 0) = 1 &
t . (dl. 1) = (N - 1) - (k + 1) &
t . (dl. 2) = Fib (k + 1) &
t . (dl. 3) = Fib ((k + 1) + 1) &
IC t = 4 )
by A4, A17, A23, A25, A30, A29, A24, Lm7, Lm10, Lm11, SCM_1:20;
verum
end;
A31:
F . 1 = halt SCM
by Z, L14;
A32:
s . (dl. 1) = N
by SCM_1:13;
then A33:
(Comput (F,s,(0 + 1))) . (dl. 1) = N
by A1, A2, SCM_1:25;
A34:
S1[ 0 ]
proof
set s3 =
Comput (
F,
s,
(2 + 1));
set s2 =
Comput (
F,
s,
(1 + 1));
assume
0 < N
;
for u being State of SCM st u = Comput (F,s,((6 * 0) + 3)) holds
( u . (dl. 0) = 1 & u . (dl. 1) = (N - 1) - 0 & u . (dl. 2) = Fib 0 & u . (dl. 3) = Fib (0 + 1) & IC u = 4 )
then A35:
IC (Comput (F,s,(0 + 1))) = 2
by A1, A32, A2, SCM_1:25;
then A36:
(
(Comput (F,s,(1 + 1))) . (dl. 3) = 1 &
(Comput (F,s,(1 + 1))) . (dl. 0) = 1 )
by A9, A3, A7, SCM_1:18;
let t be
State of
SCM;
( t = Comput (F,s,((6 * 0) + 3)) implies ( t . (dl. 0) = 1 & t . (dl. 1) = (N - 1) - 0 & t . (dl. 2) = Fib 0 & t . (dl. 3) = Fib (0 + 1) & IC t = 4 ) )
assume A37:
t = Comput (
F,
s,
((6 * 0) + 3))
;
( t . (dl. 0) = 1 & t . (dl. 1) = (N - 1) - 0 & t . (dl. 2) = Fib 0 & t . (dl. 3) = Fib (0 + 1) & IC t = 4 )
A38:
(
(Comput (F,s,(1 + 1))) . (dl. 1) = N &
(Comput (F,s,(1 + 1))) . (dl. 2) = 0 )
by A9, A33, A5, A35, Lm11, Lm12, SCM_1:18;
A39:
IC (Comput (F,s,(1 + 1))) = 2
+ 1
by A9, A35, SCM_1:18;
then
IC (Comput (F,s,(2 + 1))) = 3
+ 1
by A4, SCM_1:20;
hence
(
t . (dl. 0) = 1 &
t . (dl. 1) = (N - 1) - 0 &
t . (dl. 2) = Fib 0 &
t . (dl. 3) = Fib (0 + 1) &
IC t = 4 )
by A4, A37, A36, A38, A39, Lm7, Lm10, Lm11, PRE_FF:1, SCM_1:20;
verum
end;
A40:
for k being Element of NAT holds S1[k]
from NAT_1:sch 1(A34, A13);
per cases
( N = 0 or ex k being Nat st N = k + 1 )
by NAT_1:6;
suppose A41:
N = 0
;
( F halts_on s & ( N = 0 implies LifeSpan (F,s) = 1 ) & ( N > 0 implies LifeSpan (F,s) = (6 * N) - 2 ) & (Result (F,s)) . (dl. 3) = Fib N )then A42:
F . (IC (Comput (F,s,(0 + 1)))) = halt SCM
by A1, A31, A32, A2, SCM_1:25;
hence
F halts_on s
by EXTPRO_1:31;
( ( N = 0 implies LifeSpan (F,s) = 1 ) & ( N > 0 implies LifeSpan (F,s) = (6 * N) - 2 ) & (Result (F,s)) . (dl. 3) = Fib N )thus
(
N > 0 implies
LifeSpan (
F,
s)
= (6 * N) - 2 )
by A41;
(Result (F,s)) . (dl. 3) = Fib Nthus
(Result (F,s)) . (dl. 3) = Fib N
by A7, A41, A42, EXTPRO_1:32, PRE_FF:1;
verum end; suppose
ex
k being
Nat st
N = k + 1
;
( F halts_on s & ( N = 0 implies LifeSpan (F,s) = 1 ) & ( N > 0 implies LifeSpan (F,s) = (6 * N) - 2 ) & (Result (F,s)) . (dl. 3) = Fib N )then consider k being
Nat such that A43:
N = k + 1
;
reconsider k =
k as
Element of
NAT by ORDINAL1:def 13;
set r =
Comput (
F,
s,
((6 * k) + 3));
A44:
k < N
by A43, NAT_1:13;
then A45:
IC (Comput (F,s,((6 * k) + 3))) = 4
by A40;
A46:
(Comput (F,s,((6 * k) + 3))) . (dl. 3) = Fib (k + 1)
by A40, A44;
set t =
Comput (
F,
s,
(((6 * k) + 3) + 1));
(Comput (F,s,((6 * k) + 3))) . (dl. 1) =
(k + (1 - 1)) - k
by A40, A43, A44
.=
0
;
then A47:
IC (Comput (F,s,(((6 * k) + 3) + 1))) = 1
by A6, A45, SCM_1:24;
hence
F halts_on s
by A31, EXTPRO_1:31;
( ( N = 0 implies LifeSpan (F,s) = 1 ) & ( N > 0 implies LifeSpan (F,s) = (6 * N) - 2 ) & (Result (F,s)) . (dl. 3) = Fib N )thus
(
N = 0 implies
LifeSpan (
F,
s)
= 1 )
by A43, NAT_1:5;
( ( N > 0 implies LifeSpan (F,s) = (6 * N) - 2 ) & (Result (F,s)) . (dl. 3) = Fib N )thus
(
N > 0 implies
LifeSpan (
F,
s)
= (6 * N) - 2 )
by A31, A43, A45, A47, EXTPRO_1:34;
(Result (F,s)) . (dl. 3) = Fib Nthus (Result (F,s)) . (dl. 3) =
(Comput (F,s,(((6 * k) + 3) + 1))) . (dl. 3)
by A31, A47, EXTPRO_1:32
.=
Fib N
by A6, A43, A46, A45, SCM_1:24
;
verum end; end;