let s be State of SCM+FSA ; :: thesis: for I being Program of SCM+FSA
for a being read-write Int-Location st I is_closed_onInit s & I is_halting_onInit s & s . a > 0 holds
( IC (Comput (ProgramPart (s +* (Initialized (while>0 a,I)))),(s +* (Initialized (while>0 a,I))),((LifeSpan (ProgramPart (s +* (Initialized I))),(s +* (Initialized I))) + 3)) = 0 & DataPart (Comput (ProgramPart (s +* (Initialized (while>0 a,I)))),(s +* (Initialized (while>0 a,I))),((LifeSpan (ProgramPart (s +* (Initialized I))),(s +* (Initialized I))) + 3)) = DataPart (Comput (ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),(LifeSpan (ProgramPart (s +* (Initialized I))),(s +* (Initialized I)))) )

let I be Program of SCM+FSA ; :: thesis: for a being read-write Int-Location st I is_closed_onInit s & I is_halting_onInit s & s . a > 0 holds
( IC (Comput (ProgramPart (s +* (Initialized (while>0 a,I)))),(s +* (Initialized (while>0 a,I))),((LifeSpan (ProgramPart (s +* (Initialized I))),(s +* (Initialized I))) + 3)) = 0 & DataPart (Comput (ProgramPart (s +* (Initialized (while>0 a,I)))),(s +* (Initialized (while>0 a,I))),((LifeSpan (ProgramPart (s +* (Initialized I))),(s +* (Initialized I))) + 3)) = DataPart (Comput (ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),(LifeSpan (ProgramPart (s +* (Initialized I))),(s +* (Initialized I)))) )

let a be read-write Int-Location ; :: thesis: ( I is_closed_onInit s & I is_halting_onInit s & s . a > 0 implies ( IC (Comput (ProgramPart (s +* (Initialized (while>0 a,I)))),(s +* (Initialized (while>0 a,I))),((LifeSpan (ProgramPart (s +* (Initialized I))),(s +* (Initialized I))) + 3)) = 0 & DataPart (Comput (ProgramPart (s +* (Initialized (while>0 a,I)))),(s +* (Initialized (while>0 a,I))),((LifeSpan (ProgramPart (s +* (Initialized I))),(s +* (Initialized I))) + 3)) = DataPart (Comput (ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),(LifeSpan (ProgramPart (s +* (Initialized I))),(s +* (Initialized I)))) ) )
set D = Int-Locations \/ FinSeq-Locations ;
set s0 = Initialized s;
set IA = I +* (Start-At 0 ,SCM+FSA );
set s1 = (Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ));
set s2 = Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),1;
set i = a >0_goto 4;
set sI = (Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ));
defpred S1[ Nat] means ( $1 <= LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))) implies ( IC (Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(1 + $1)) = (IC (Comput (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))),$1)) + 4 & DataPart (Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(1 + $1)) = DataPart (Comput (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))),$1) ) );
set loc4 = (card I) + 4;
set s3 = Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + (LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1);
A1: (card I) + 4 in dom (while>0 a,I) by SCMFSA_9:38;
assume A2: I is_closed_onInit s ; :: thesis: ( not I is_halting_onInit s or not s . a > 0 or ( IC (Comput (ProgramPart (s +* (Initialized (while>0 a,I)))),(s +* (Initialized (while>0 a,I))),((LifeSpan (ProgramPart (s +* (Initialized I))),(s +* (Initialized I))) + 3)) = 0 & DataPart (Comput (ProgramPart (s +* (Initialized (while>0 a,I)))),(s +* (Initialized (while>0 a,I))),((LifeSpan (ProgramPart (s +* (Initialized I))),(s +* (Initialized I))) + 3)) = DataPart (Comput (ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),(LifeSpan (ProgramPart (s +* (Initialized I))),(s +* (Initialized I)))) ) )
now end;
then A3: I is_closed_on Initialized s by SCMFSA7B:def 7;
assume I is_halting_onInit s ; :: thesis: ( not s . a > 0 or ( IC (Comput (ProgramPart (s +* (Initialized (while>0 a,I)))),(s +* (Initialized (while>0 a,I))),((LifeSpan (ProgramPart (s +* (Initialized I))),(s +* (Initialized I))) + 3)) = 0 & DataPart (Comput (ProgramPart (s +* (Initialized (while>0 a,I)))),(s +* (Initialized (while>0 a,I))),((LifeSpan (ProgramPart (s +* (Initialized I))),(s +* (Initialized I))) + 3)) = DataPart (Comput (ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),(LifeSpan (ProgramPart (s +* (Initialized I))),(s +* (Initialized I)))) ) )
then X: ProgramPart (s +* (Initialized I)) halts_on s +* (Initialized I) by SCM_HALT:def 5;
s +* (Initialized I) = (Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )) by SCMFSA8A:13;
then ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))) halts_on (Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )) by X;
then A4: I is_halting_on Initialized s by SCMFSA7B:def 8;
A5: now
let k be Element of NAT ; :: thesis: ( S1[k] implies S1[k + 1] )
assume A6: S1[k] ; :: thesis: S1[k + 1]
now
A7: k + 0 < k + 1 by XREAL_1:8;
assume k + 1 <= LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))) ; :: thesis: ( IC (Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + k) + 1)) = (IC (Comput (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))),(k + 1))) + 4 & DataPart (Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + k) + 1)) = DataPart (Comput (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))),(k + 1)) )
then k < LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))) by A7, XXREAL_0:2;
hence ( IC (Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + k) + 1)) = (IC (Comput (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))),(k + 1))) + 4 & DataPart (Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + k) + 1)) = DataPart (Comput (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))),(k + 1)) ) by A3, A4, A6, SCMFSA_9:44; :: thesis: verum
end;
hence S1[k + 1] ; :: thesis: verum
end;
while>0 a,I c= (while>0 a,I) +* (Start-At 0 ,SCM+FSA ) by SCMFSA8A:9;
then A8: dom (while>0 a,I) c= dom ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )) by GRFUNC_1:8;
A9: 0 in dom (while>0 a,I) by SCMFSA_9:10;
then A10: ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))) . 0 = ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )) . 0 by A8, FUNCT_4:14
.= (while>0 a,I) . 0 by A9, SCMFSA6B:7
.= a >0_goto 4 by SCMFSA_9:11 ;
IC SCM+FSA in dom ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )) by SF_MASTR:65;
then A11: IC ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))) = ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )) . (IC SCM+FSA ) by FUNCT_4:14
.= 0 by SF_MASTR:66 ;
Y: (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))) /. (IC ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))) = ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))) . (IC ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))) by COMPOS_1:38;
A12: Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(0 + 1) = Following (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),0 ) by AMI_1:14
.= Following (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))) by AMI_1:13
.= Exec (a >0_goto 4),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))) by A11, A10, Y ;
then A13: for f being FinSeq-Location holds (Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),1) . f = ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))) . f by SCMFSA_2:97;
for c being Int-Location holds (Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),1) . c = ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))) . c by A12, SCMFSA_2:97;
then A14: DataPart (Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),1) = DataPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))) by A13, SCMFSA6A:38
.= DataPart (Initialized s) by SCMFSA8A:11
.= DataPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))) by SCMFSA8A:11 ;
set s4 = Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(((1 + (LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1) + 1);
set s2 = Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(1 + (LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))));
not a in dom ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )) by SCMFSA6B:12;
then A16: ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))) . a = (Initialized s) . a by FUNCT_4:12;
assume s . a > 0 ; :: thesis: ( IC (Comput (ProgramPart (s +* (Initialized (while>0 a,I)))),(s +* (Initialized (while>0 a,I))),((LifeSpan (ProgramPart (s +* (Initialized I))),(s +* (Initialized I))) + 3)) = 0 & DataPart (Comput (ProgramPart (s +* (Initialized (while>0 a,I)))),(s +* (Initialized (while>0 a,I))),((LifeSpan (ProgramPart (s +* (Initialized I))),(s +* (Initialized I))) + 3)) = DataPart (Comput (ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),(LifeSpan (ProgramPart (s +* (Initialized I))),(s +* (Initialized I)))) )
then A17: (Initialized s) . a > 0 by SCMFSA6C:3;
A18: S1[ 0 ]
proof
assume 0 <= LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))) ; :: thesis: ( IC (Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(1 + 0 )) = (IC (Comput (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))),0 )) + 4 & DataPart (Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(1 + 0 )) = DataPart (Comput (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))),0 ) )
A19: IC SCM+FSA in dom (I +* (Start-At 0 ,SCM+FSA )) by SF_MASTR:65;
IC (Comput (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))),0 ) = ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))) . (IC SCM+FSA ) by AMI_1:13
.= (I +* (Start-At 0 ,SCM+FSA )) . (IC SCM+FSA ) by A19, FUNCT_4:14
.= 0 by SF_MASTR:66 ;
hence ( IC (Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(1 + 0 )) = (IC (Comput (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))),0 )) + 4 & DataPart (Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(1 + 0 )) = DataPart (Comput (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))),0 ) ) by A17, A12, A16, A14, AMI_1:13, SCMFSA_2:97; :: thesis: verum
end;
for k being Element of NAT holds S1[k] from NAT_1:sch 1(A18, A5);
then A20: S1[ LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))] ;
T: ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))) = ProgramPart (Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(1 + (LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))))) by AMI_1:123;
A21: Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + (LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1) = Following (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(1 + (LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))))) by AMI_1:14
.= Exec (goto ((card I) + 4)),(Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(1 + (LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))))) by A3, A4, A20, T, SCMFSA_9:45 ;
then A22: for f being FinSeq-Location holds (Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + (LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1)) . f = (Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(1 + (LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))))) . f by SCMFSA_2:95;
A23: (Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + (LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1)) . ((card I) + 4) = ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))) . ((card I) + 4) by AMI_1:54
.= ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )) . ((card I) + 4) by A8, A1, FUNCT_4:14
.= (while>0 a,I) . ((card I) + 4) by A1, SCMFSA6B:7
.= goto 0 by SCMFSA_9:46 ;
Y: (ProgramPart (Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + (LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1))) /. (IC (Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + (LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1))) = (Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + (LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1)) . (IC (Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + (LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1))) by COMPOS_1:38;
T: ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))) = ProgramPart (Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + (LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1)) by AMI_1:123;
A24: Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(((1 + (LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1) + 1) = Following (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + (LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1)) by AMI_1:14
.= Exec (goto 0 ),(Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + (LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1)) by A21, A23, Y, T, SCMFSA_2:95 ;
then A25: for f being FinSeq-Location holds (Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(((1 + (LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1) + 1)) . f = (Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + (LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1)) . f by SCMFSA_2:95;
for c being Int-Location holds (Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + (LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1)) . c = (Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(1 + (LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))))) . c by A21, SCMFSA_2:95;
then A26: DataPart (Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + (LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1)) = DataPart (Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(1 + (LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))))) by A22, SCMFSA6A:38;
X: s +* (Initialized (while>0 a,I)) = (Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )) by SCMFSA8A:13;
XX: (Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )) = s +* (Initialized I) by SCMFSA8A:13;
A27: Comput (ProgramPart (s +* (Initialized (while>0 a,I)))),(s +* (Initialized (while>0 a,I))),((LifeSpan (ProgramPart (s +* (Initialized I))),(s +* (Initialized I))) + 3) = Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((LifeSpan (ProgramPart (s +* (Initialized I))),(s +* (Initialized I))) + 3) by X
.= Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(((1 + (LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1) + 1) by XX ;
hence IC (Comput (ProgramPart (s +* (Initialized (while>0 a,I)))),(s +* (Initialized (while>0 a,I))),((LifeSpan (ProgramPart (s +* (Initialized I))),(s +* (Initialized I))) + 3)) = 0 by A24, SCMFSA_2:95; :: thesis: DataPart (Comput (ProgramPart (s +* (Initialized (while>0 a,I)))),(s +* (Initialized (while>0 a,I))),((LifeSpan (ProgramPart (s +* (Initialized I))),(s +* (Initialized I))) + 3)) = DataPart (Comput (ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),(LifeSpan (ProgramPart (s +* (Initialized I))),(s +* (Initialized I))))
X: s +* (Initialized I) = (Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )) by SCMFSA8A:13;
XX: (Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )) = s +* (Initialized I) by SCMFSA8A:13;
for c being Int-Location holds (Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(((1 + (LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1) + 1)) . c = (Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + (LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1)) . c by A24, SCMFSA_2:95;
then DataPart (Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(((1 + (LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1) + 1)) = DataPart (Comput (ProgramPart ((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(1 + (LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))))) by A26, A25, SCMFSA6A:38;
hence DataPart (Comput (ProgramPart (s +* (Initialized (while>0 a,I)))),(s +* (Initialized (while>0 a,I))),((LifeSpan (ProgramPart (s +* (Initialized I))),(s +* (Initialized I))) + 3)) = DataPart (Comput (ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),(LifeSpan (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))))) by A20, A27, X
.= DataPart (Comput (ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),(LifeSpan (ProgramPart (s +* (Initialized I))),(s +* (Initialized I)))) by XX ;
:: thesis: verum