reserve F for total
 NAT-defined (the InstructionsF of SCM)-valued Function;

theorem
  Fib_Program c= F implies
  for N being Nat, k, Fk, Fk1 being Nat,
      s being 3-started State-consisting of
      <% 1, N, Fk, Fk1 %> st N > 0 & Fk = Fib k &
      Fk1 = Fib (k+1) holds F halts_on s &
      LifeSpan(F,s) = 6 * N - 4 &
      ex m being Element of NAT st m = k+N-1 &
      (Result(F,s)).dl.2 = Fib m &
      Result(F, s).dl.3 = Fib (m+1)
proof
 assume
A1: Fib_Program c= F;
  defpred P[Nat] means for k, Fk, Fk1 be Nat,
    s be 3-started State-consisting of <% 1, $1, Fk, Fk1 %>
st $1 > 0 & Fk = Fib k & Fk1 = Fib (k+1) holds F halts_on s &
 LifeSpan(F,s) = 6 *
$1 - 4 & ex m being Element of NAT st m = k+$1-1 & (Result(F,s)).
dl.2 = Fib m & (
  Result(F,s)).dl.3 = Fib (m+1);
A2: for N be Nat st P[N] holds P[N+1]
  proof
    set C1 = dl.0, n = dl.1, FP = dl.2, FC = dl.3, AUX = dl.4;
    let N be Nat;
    assume
A3: P[N];
    let k, Fk, Fk1 be Nat,
       s be 3-started State-consisting of <% 1, N+1, Fk, Fk1 %>;
    assume that
    (N+1) > 0 and
A4: Fk = Fib k and
A5: Fk1 = Fib (k+1);
A6: F.3 = SubFrom(n, C1) by A1,Lm17;
    set s0 = Comput(F,s,0);
    set s1 = Comput(F,s,0+1);
A7: F.1 = halt SCM by A1,Lm17;
A8: IC s = 3 & s = s0 by EXTPRO_1:2,MEMSTR_0:def 12;
    then
A9: IC s1 = (3+1) by A6,SCM_1:6
      .= 4;
    set s2 = Comput(F,s,1+1);
A10: F.4 = n =0_goto 1 by A1,Lm17;
    s.FC = Fk1 by SCM_1:1;
    then s1.FC=Fk1 by A6,A8,Lm11,SCM_1:6;
    then
A11: s2.FC=Fk1 by A10,A9,SCM_1:10;
A12: F.7 = AddTo(FC, AUX) by A1,Lm17;
    s.FP = Fk by SCM_1:1;
    then s1.FP=Fk by A6,A8,Lm10,SCM_1:6;
    then
A13: s2.FP=Fk by A10,A9,SCM_1:10;
A14: F.6 = FP := FC by A1,Lm17;
A15: s.C1 = 1 by SCM_1:1;
    then s1.C1=1 by A6,A8,Lm7,SCM_1:6;
    then
A16: s2.C1=1 by A10,A9,SCM_1:10;
    s.n = N+1 by SCM_1:1;
    then
A17: s1.n = (N+1)-1 by A6,A15,A8,SCM_1:6
      .= N;
    then
A18: s2.n=N by A10,A9,SCM_1:10;
A19: F.5 = AUX := FP by A1,Lm17;
A20: F.8 = SCM-goto 3 by A1,Lm17;
    per cases;
    suppose
A21:  N = 0;
      then
A22: F.IC s2 = halt SCM by A7,A10,A17,A9,SCM_1:10;
      hence F halts_on s by EXTPRO_1:30;
      F.IC s1 <> halt SCM by A10,A9,SCM_1:12;
      hence LifeSpan(F,s) = 6 * (N+1) - 4 by A21,A22,EXTPRO_1:32;
       reconsider m = k as Element of NAT by ORDINAL1:def 12;
      take m;
      thus m = k+(N+1)-1 by A21;
      thus thesis by A4,A5,A13,A11,A22,EXTPRO_1:7;
    end;
    suppose
A23:  N > 0;
      then
A24:  6 * N - 4 > 0 by Lm6;
      set Fk2 = Fib (k+1+1);
      set s6 = Comput(F,s,5+1);
      set s5 = Comput(F,s,4+1);
      set s4 = Comput(F,s,3+1);
      set s3 = Comput(F,s,2+1);
A25:  IC s2 = (4+1) by A10,A17,A9,A23,SCM_1:10;
      then
A26:  IC s3 = (5+1) by A19,SCM_1:4;
      then
A27:  IC s4 = (6+1) by A14,SCM_1:4;
      then
A28:  IC s5 = (7+1) by A12,SCM_1:5;
A29:  s3.FC = Fib (k+1) by A5,A19,A11,A25,Lm16,SCM_1:4;
      then
A30:  s4.FC = Fib (k+1) by A14,A26,Lm12,SCM_1:4;
      s4.FP = Fib (k+1) by A14,A26,A29,SCM_1:4;
      then s5.FP = Fib (k+1) by A12,A27,Lm12,SCM_1:5;
      then
A31:  s6.FP = Fib (k+1) by A20,A28,SCM_1:9;
      s3.C1 = 1 by A19,A16,A25,Lm13,SCM_1:4;
      then s4.C1 = 1 by A14,A26,Lm8,SCM_1:4;
      then s5.C1 = 1 by A12,A27,Lm9,SCM_1:5;
      then
A32:  s6.C1 = 1 by A20,A28,SCM_1:9;
      s3.AUX = Fib k by A4,A19,A13,A25,SCM_1:4;
      then
A33:  s4.AUX = Fib k by A14,A26,Lm15,SCM_1:4;
      s5.FC = s4.AUX + s4.FC by A12,A27,SCM_1:5
        .= Fib (k+1+1) by A30,A33,PRE_FF:1;
      then
A34:  s6.FC = Fib (k+1+1) by A20,A28,SCM_1:9;
      s3.n = N by A19,A18,A25,Lm14,SCM_1:4;
      then s4.n = N by A14,A26,Lm10,SCM_1:4;
      then s5.n = N by A12,A27,Lm11,SCM_1:5;
      then
A35:  s6.n = N by A20,A28,SCM_1:9;
      IC s6 = 3 by A20,A28,SCM_1:9;
      then
A36:  s6 is 3-started State-consisting of <%1,N,Fk1,Fk2%>
        by A5,A32,A35,A31,A34,MEMSTR_0:def 12,SCM_1:13;
      then consider m being Element of NAT such that
A37:  m = (k+1)+N-1 and
      (Result(F,s6)).dl.2 = Fib m and
      (Result(F,s6)).dl.3 = Fib (m+1) by A3,A5,A23;
  F halts_on s6 by A3,A5,A23,A36;
      hence F halts_on s by EXTPRO_1:22;
      LifeSpan(F,s6) = 6 * N - 4 by A3,A5,A23,A36;
      hence LifeSpan(F,s) = 6 + (6 * N - 4) by A3,A5,A23,A36,A24,EXTPRO_1:34
        .= 6 * (N+1) - 4;
      take m;
      thus m = k+(N+1)-1 by A37;
      ex m being Element of NAT st m = (k+1)+N-1 & (Result(F,s6))
.dl.2 = Fib
      m & (Result(F,s6)).dl.3 = Fib (m+1) by A3,A5,A23,A36;
      hence thesis by A37,A3,A5,A23,A36,EXTPRO_1:35;
    end;
  end;
A38: P[0];
  thus for N be Nat holds P[N] from NAT_1:sch 2( A38, A2 );
end;
