let s be State of SCM+FSA ; for I being Program of SCM+FSA
for a being read-write Int-Location st I is_closed_on s & I is_halting_on s & s . a > 0 holds
( IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))) + 3)) = 0 & ( for k being Element of NAT st k <= (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))) + 3 holds
IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),k) in dom (while>0 a,I) ) )
set D = Int-Locations \/ FinSeq-Locations ;
let I be Program of SCM+FSA ; for a being read-write Int-Location st I is_closed_on s & I is_halting_on s & s . a > 0 holds
( IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))) + 3)) = 0 & ( for k being Element of NAT st k <= (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))) + 3 holds
IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),k) in dom (while>0 a,I) ) )
let a be read-write Int-Location ; ( I is_closed_on s & I is_halting_on s & s . a > 0 implies ( IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))) + 3)) = 0 & ( for k being Element of NAT st k <= (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))) + 3 holds
IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),k) in dom (while>0 a,I) ) ) )
assume A1:
I is_closed_on s
; ( not I is_halting_on s or not s . a > 0 or ( IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))) + 3)) = 0 & ( for k being Element of NAT st k <= (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))) + 3 holds
IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),k) in dom (while>0 a,I) ) ) )
set sI = s +* (I +* (Start-At 0 ,SCM+FSA ));
set s1 = s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ));
defpred S1[ Nat] means ( $1 <= LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA ))) implies ( IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(1 + $1)) = (IC (Comput (ProgramPart (s +* (I +* (Start-At 0 ,SCM+FSA )))),(s +* (I +* (Start-At 0 ,SCM+FSA ))),$1)) + 4 & DataPart (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(1 + $1)) = DataPart (Comput (ProgramPart (s +* (I +* (Start-At 0 ,SCM+FSA )))),(s +* (I +* (Start-At 0 ,SCM+FSA ))),$1) ) );
assume A2:
I is_halting_on s
; ( not s . a > 0 or ( IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))) + 3)) = 0 & ( for k being Element of NAT st k <= (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))) + 3 holds
IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),k) in dom (while>0 a,I) ) ) )
A3:
now let k be
Element of
NAT ;
( S1[k] implies S1[k + 1] )assume A4:
S1[
k]
;
S1[k + 1]now A5:
k + 0 < k + 1
by XREAL_1:8;
assume
k + 1
<= LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))
;
( IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + k) + 1)) = (IC (Comput (ProgramPart (s +* (I +* (Start-At 0 ,SCM+FSA )))),(s +* (I +* (Start-At 0 ,SCM+FSA ))),(k + 1))) + 4 & DataPart (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + k) + 1)) = DataPart (Comput (ProgramPart (s +* (I +* (Start-At 0 ,SCM+FSA )))),(s +* (I +* (Start-At 0 ,SCM+FSA ))),(k + 1)) )then
k < LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))
by A5, XXREAL_0:2;
hence
(
IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + k) + 1)) = (IC (Comput (ProgramPart (s +* (I +* (Start-At 0 ,SCM+FSA )))),(s +* (I +* (Start-At 0 ,SCM+FSA ))),(k + 1))) + 4 &
DataPart (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + k) + 1)) = DataPart (Comput (ProgramPart (s +* (I +* (Start-At 0 ,SCM+FSA )))),(s +* (I +* (Start-At 0 ,SCM+FSA ))),(k + 1)) )
by A1, A2, A4, Th44;
verum end; hence
S1[
k + 1]
;
verum end;
reconsider l = LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA ))) as Element of NAT ;
set loc4 = (card I) + 4;
set i = a >0_goto 4;
set s2 = Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),1;
A6:
IC SCM+FSA in dom ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))
by SF_MASTR:65;
A7: IC (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))) =
(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))) . (IC SCM+FSA )
by AMI_1:def 15
.=
((while>0 a,I) +* (Start-At 0 ,SCM+FSA )) . (IC SCM+FSA )
by A6, FUNCT_4:14
.=
0
by SF_MASTR:66
;
not a in dom ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))
by SCMFSA6B:12;
then A8:
(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))) . a = s . a
by FUNCT_4:12;
assume A9:
s . a > 0
; ( IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))) + 3)) = 0 & ( for k being Element of NAT st k <= (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))) + 3 holds
IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),k) in dom (while>0 a,I) ) )
A10:
0 in dom (while>0 a,I)
by Th10;
Y:
(ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))) /. (IC (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))) = (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))) . (IC (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))))
by AMI_1:150;
while>0 a,I c= (while>0 a,I) +* (Start-At 0 ,SCM+FSA )
by SCMFSA8A:9;
then A11:
dom (while>0 a,I) c= dom ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))
by GRFUNC_1:8;
then (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))) . 0 =
((while>0 a,I) +* (Start-At 0 ,SCM+FSA )) . 0
by A10, FUNCT_4:14
.=
(while>0 a,I) . 0
by A10, SCMFSA6B:7
.=
a >0_goto 4
by Th11
;
then A12:
CurInstr (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))) = a >0_goto 4
by A7, Y, AMI_1:def 16;
A13: Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(0 + 1) =
Following (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),0 )
by AMI_1:14
.=
Following (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))
by AMI_1:13
.=
Exec (a >0_goto 4),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))
by A12, AMI_1:def 18
;
then
( ( for c being Int-Location holds (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),1) . c = (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))) . c ) & ( for f being FinSeq-Location holds (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),1) . f = (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))) . f ) )
by SCMFSA_2:97;
then A14: DataPart (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),1) =
DataPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))
by SCMFSA6A:38
.=
DataPart s
by SCMFSA8A:11
.=
DataPart (s +* (I +* (Start-At 0 ,SCM+FSA )))
by SCMFSA8A:11
;
A15: IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),1) =
(Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),1) . (IC SCM+FSA )
by AMI_1:def 15
.=
4
by A9, A13, A8, SCMFSA_2:97
;
A16:
S1[ 0 ]
proof
assume
0 <= LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))
;
( IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(1 + 0 )) = (IC (Comput (ProgramPart (s +* (I +* (Start-At 0 ,SCM+FSA )))),(s +* (I +* (Start-At 0 ,SCM+FSA ))),0 )) + 4 & DataPart (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(1 + 0 )) = DataPart (Comput (ProgramPart (s +* (I +* (Start-At 0 ,SCM+FSA )))),(s +* (I +* (Start-At 0 ,SCM+FSA ))),0 ) )
A17:
IC SCM+FSA in dom (I +* (Start-At 0 ,SCM+FSA ))
by SF_MASTR:65;
IC (Comput (ProgramPart (s +* (I +* (Start-At 0 ,SCM+FSA )))),(s +* (I +* (Start-At 0 ,SCM+FSA ))),0 ) =
IC (s +* (I +* (Start-At 0 ,SCM+FSA )))
by AMI_1:13
.=
(s +* (I +* (Start-At 0 ,SCM+FSA ))) . (IC SCM+FSA )
by AMI_1:def 15
.=
(I +* (Start-At 0 ,SCM+FSA )) . (IC SCM+FSA )
by A17, FUNCT_4:14
.=
0
by SF_MASTR:66
;
hence
(
IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(1 + 0 )) = (IC (Comput (ProgramPart (s +* (I +* (Start-At 0 ,SCM+FSA )))),(s +* (I +* (Start-At 0 ,SCM+FSA ))),0 )) + 4 &
DataPart (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(1 + 0 )) = DataPart (Comput (ProgramPart (s +* (I +* (Start-At 0 ,SCM+FSA )))),(s +* (I +* (Start-At 0 ,SCM+FSA ))),0 ) )
by A15, A14, AMI_1:13;
verum
end;
A18:
for k being Element of NAT holds S1[k]
from NAT_1:sch 1(A16, A3);
set s4 = Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(((1 + (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1) + 1);
set s3 = Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1);
A19:
(card I) + 4 in dom (while>0 a,I)
by Th38;
set s2 = Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(1 + (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))));
S1[l]
by A18;
then A20:
CurInstr (ProgramPart (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(1 + (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA ))))))),(Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(1 + (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))))) = goto ((card I) + 4)
by A1, A2, Th45;
T:
ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))) = ProgramPart (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(1 + (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA ))))))
by AMI_1:144;
A21: Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1) =
Following (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(1 + (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA ))))))
by AMI_1:14
.=
Exec (goto ((card I) + 4)),(Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(1 + (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA ))))))
by A20, T, AMI_1:def 18
;
A22: IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1)) =
(Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1)) . (IC SCM+FSA )
by AMI_1:def 15
.=
(card I) + 4
by A21, SCMFSA_2:95
;
Y:
(ProgramPart (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1))) /. (IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1))) = (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1)) . (IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1)))
by AMI_1:150;
(Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1)) . ((card I) + 4) =
(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 A11, A19, FUNCT_4:14
.=
(while>0 a,I) . ((card I) + 4)
by A19, SCMFSA6B:7
.=
goto 0
by Th46
;
then A23:
CurInstr (ProgramPart (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1))),(Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1)) = goto 0
by A22, Y, AMI_1:def 16;
T:
ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))) = ProgramPart (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1))
by AMI_1:144;
A24: Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(((1 + (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1) + 1) =
Following (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1))
by AMI_1:14
.=
Exec (goto 0 ),(Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((1 + (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1))
by A23, T, AMI_1:def 18
;
A25: IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(((1 + (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1) + 1)) =
(Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(((1 + (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA ))))) + 1) + 1)) . (IC SCM+FSA )
by AMI_1:def 15
.=
0
by A24, SCMFSA_2:95
;
hence
IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),((LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))) + 3)) = 0
; for k being Element of NAT st k <= (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))) + 3 holds
IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),k) in dom (while>0 a,I)
A26:
(((LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))) + 1) + 1) + 1 = (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))) + (2 + 1)
;
A27:
now let k be
Element of
NAT ;
( k <= (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))) + 3 & k <> 0 implies IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),b1) in dom (while>0 a,I) )assume A28:
k <= (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))) + 3
;
( k <> 0 implies IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),b1) in dom (while>0 a,I) )assume
k <> 0
;
IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),b1) in dom (while>0 a,I)then consider n being
Nat such that A29:
k = n + 1
by NAT_1:6;
(
k <= (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))) + 1 or
k >= ((LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))) + 1) + 1 )
by NAT_1:13;
then A30:
(
k <= (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))) + 1 or
k = ((LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))) + 1) + 1 or
k > ((LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))) + 1) + 1 )
by XXREAL_0:1;
reconsider n =
n as
Element of
NAT by ORDINAL1:def 13;
per cases
( k <= (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))) + 1 or k = ((LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))) + 1) + 1 or k >= (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))) + 3 )
by A26, A30, NAT_1:13;
suppose
k <= (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))) + 1
;
IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),b1) in dom (while>0 a,I)then
n <= LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))
by A29, XREAL_1:8;
then A31:
IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),(1 + n)) = (IC (Comput (ProgramPart (s +* (I +* (Start-At 0 ,SCM+FSA )))),(s +* (I +* (Start-At 0 ,SCM+FSA ))),n)) + 4
by A18;
reconsider m =
IC (Comput (ProgramPart (s +* (I +* (Start-At 0 ,SCM+FSA )))),(s +* (I +* (Start-At 0 ,SCM+FSA ))),n) as
Element of
NAT ;
m in dom I
by A1, SCMFSA7B:def 7;
then
m < card I
by SCMFSA6A:15;
then A32:
m + 4
< (card I) + 6
by XREAL_1:10;
card (while>0 a,I) = (card I) + 6
by Th5;
hence
IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),k) in dom (while>0 a,I)
by A29, A31, A32, SCMFSA6A:15;
verum end; suppose
k >= (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))) + 3
;
IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),b1) in dom (while>0 a,I)then
k = (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))) + 3
by A28, XXREAL_0:1;
hence
IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),k) in dom (while>0 a,I)
by A25, Th10;
verum end; end; end;
now let k be
Element of
NAT ;
( k <= (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))) + 3 implies IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),b1) in dom (while>0 a,I) )assume A33:
k <= (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))) + 3
;
IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),b1) in dom (while>0 a,I) end;
hence
for k being Element of NAT st k <= (LifeSpan (s +* (I +* (Start-At 0 ,SCM+FSA )))) + 3 holds
IC (Comput (ProgramPart (s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA )))),(s +* ((while>0 a,I) +* (Start-At 0 ,SCM+FSA ))),k) in dom (while>0 a,I)
; verum