set D = Int-Locations \/ FinSeq-Locations ;
let I be InitHalting keepInt0_1 Program of SCM+FSA ; :: thesis: for J being InitHalting Program of SCM+FSA
for s being State of SCM+FSA st Initialized (I ';' J) c= s holds
( IC (Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1)) = card I & DataPart (Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1)) = DataPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J)) & ProgramPart (Relocated J,(card I)) c= Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1) & (Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1)) . (intloc 0 ) = 1 & ProgramPart s halts_on s & LifeSpan s = ((LifeSpan (s +* I)) + 1) + (LifeSpan ((Result (s +* I)) +* (Initialized J))) & ( J is keeping_0 implies (Result s) . (intloc 0 ) = 1 ) )

let J be InitHalting Program of SCM+FSA ; :: thesis: for s being State of SCM+FSA st Initialized (I ';' J) c= s holds
( IC (Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1)) = card I & DataPart (Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1)) = DataPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J)) & ProgramPart (Relocated J,(card I)) c= Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1) & (Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1)) . (intloc 0 ) = 1 & ProgramPart s halts_on s & LifeSpan s = ((LifeSpan (s +* I)) + 1) + (LifeSpan ((Result (s +* I)) +* (Initialized J))) & ( J is keeping_0 implies (Result s) . (intloc 0 ) = 1 ) )

let s be State of SCM+FSA ; :: thesis: ( Initialized (I ';' J) c= s implies ( IC (Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1)) = card I & DataPart (Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1)) = DataPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J)) & ProgramPart (Relocated J,(card I)) c= Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1) & (Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1)) . (intloc 0 ) = 1 & ProgramPart s halts_on s & LifeSpan s = ((LifeSpan (s +* I)) + 1) + (LifeSpan ((Result (s +* I)) +* (Initialized J))) & ( J is keeping_0 implies (Result s) . (intloc 0 ) = 1 ) ) )
set s1 = s +* I;
set s3 = (Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J);
set m1 = LifeSpan (s +* I);
set m3 = LifeSpan ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J));
A1: ((intloc 0 ) .--> 1) +* (Start-At 0 ,SCM+FSA ) c= (I ';' J) +* (((intloc 0 ) .--> 1) +* (Start-At 0 ,SCM+FSA )) by FUNCT_4:26;
assume A2: Initialized (I ';' J) c= s ; :: thesis: ( IC (Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1)) = card I & DataPart (Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1)) = DataPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J)) & ProgramPart (Relocated J,(card I)) c= Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1) & (Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1)) . (intloc 0 ) = 1 & ProgramPart s halts_on s & LifeSpan s = ((LifeSpan (s +* I)) + 1) + (LifeSpan ((Result (s +* I)) +* (Initialized J))) & ( J is keeping_0 implies (Result s) . (intloc 0 ) = 1 ) )
then A3: s = s +* (Initialized (I ';' J)) by FUNCT_4:79;
set s4 = Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1);
A4: ( Directed I c= I ';' J & I ';' J c= Initialized (I ';' J) ) by SCMFSA6A:26, SCMFSA6A:55;
reconsider m = ((LifeSpan (s +* I)) + 1) + (LifeSpan ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J))) as Element of NAT ;
A5: dom (Directed I) = dom I by FUNCT_4:105;
A6: (s +* I) +* (Directed I) = s +* (I +* (Directed I)) by FUNCT_4:15
.= s +* (Directed I) by A5, FUNCT_4:20
.= (s +* (Initialized (I ';' J))) +* (Directed I) by A2, LATTICE2:8
.= s +* ((Initialized (I ';' J)) +* (Directed I)) by FUNCT_4:15
.= s +* (Initialized (I ';' J)) by A4, LATTICE2:8, XBOOLE_1:1
.= s by A2, LATTICE2:8 ;
then A7: Directed I c= s by FUNCT_4:26;
Initialized J c= (Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J) by FUNCT_4:26;
then dom (Initialized J) c= dom ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J)) by GRFUNC_1:8;
then A8: dom (Initialized J) c= the carrier of SCM+FSA by PARTFUN1:def 4;
A9: ProgramPart (Relocated J,(card I)) c= I ';' J by FUNCT_4:26;
(I ';' J) +* (((intloc 0 ) .--> 1) +* (Start-At 0 ,SCM+FSA )) c= s by A2, FUNCT_4:15;
then A10: ((intloc 0 ) .--> 1) +* (Start-At 0 ,SCM+FSA ) c= s by A1, XBOOLE_1:1;
A11: Initialized I c= s +* I by A2, SCMFSA6A:52;
then A12: ProgramPart (s +* I) halts_on s +* I by Th5;
hence A13: IC (Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1)) = card I by A10, A6, Th21, FUNCT_4:26; :: thesis: ( DataPart (Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1)) = DataPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J)) & ProgramPart (Relocated J,(card I)) c= Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1) & (Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1)) . (intloc 0 ) = 1 & ProgramPart s halts_on s & LifeSpan s = ((LifeSpan (s +* I)) + 1) + (LifeSpan ((Result (s +* I)) +* (Initialized J))) & ( J is keeping_0 implies (Result s) . (intloc 0 ) = 1 ) )
A14: now
let x be set ; :: thesis: ( x in dom (DataPart (Initialized J)) implies (DataPart (Initialized J)) . b1 = (DataPart (Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I)))) . b1 )
assume x in dom (DataPart (Initialized J)) ; :: thesis: (DataPart (Initialized J)) . b1 = (DataPart (Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I)))) . b1
then A15: x in (dom (Initialized J)) /\ (Int-Locations \/ FinSeq-Locations ) by RELAT_1:90, SCMFSA_2:127;
then A16: x in dom (Initialized J) by XBOOLE_0:def 4;
A17: x in Int-Locations \/ FinSeq-Locations by A15, XBOOLE_0:def 4;
per cases ( x in dom J or x = intloc 0 or x = IC SCM+FSA ) by A16, SCMFSA6A:44;
suppose A18: x in dom J ; :: thesis: (DataPart (Initialized J)) . b1 = (DataPart (Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I)))) . b1
dom J c= NAT by RELAT_1:def 18;
then reconsider l = x as Element of NAT by A18;
(DataPart (Initialized J)) . l = (DataPart (Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I)))) . l by A17, SCMFSA6A:37;
hence (DataPart (Initialized J)) . x = (DataPart (Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I)))) . x ; :: thesis: verum
end;
suppose A19: x = intloc 0 ; :: thesis: (DataPart (Initialized J)) . b1 = (DataPart (Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I)))) . b1
thus (DataPart (Initialized J)) . x = (Initialized J) . x by A17, FUNCT_1:72, SCMFSA_2:127
.= 1 by A19, SCMFSA6A:46
.= (Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) . x by A11, A19, Def3
.= (DataPart (Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I)))) . x by A17, FUNCT_1:72, SCMFSA_2:127 ; :: thesis: verum
end;
end;
end;
A20: J +* (Start-At 0 ,SCM+FSA ) c= (Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J) by FUNCT_4:26, SCMFSA6B:8;
A21: ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J)) halts_on (Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J) by Th5, FUNCT_4:26;
dom (DataPart (Initialized J)) = (dom (Initialized J)) /\ (Int-Locations \/ FinSeq-Locations ) by RELAT_1:90, SCMFSA_2:127;
then dom (DataPart (Initialized J)) c= the carrier of SCM+FSA /\ (Int-Locations \/ FinSeq-Locations ) by A8, XBOOLE_1:26;
then dom (DataPart (Initialized J)) c= (dom (Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I)))) /\ (Int-Locations \/ FinSeq-Locations ) by PARTFUN1:def 4;
then dom (DataPart (Initialized J)) c= dom (DataPart (Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I)))) by RELAT_1:90, SCMFSA_2:127;
then ( DataPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J)) = (DataPart (Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I)))) +* (DataPart (Initialized J)) & DataPart (Initialized J) c= DataPart (Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) ) by A14, FUNCT_4:75, GRFUNC_1:8;
then A22: DataPart (Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) = DataPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J)) by LATTICE2:8;
s +* I = (s +* (((intloc 0 ) .--> 1) +* (Start-At 0 ,SCM+FSA ))) +* I by A10, FUNCT_4:79
.= (s +* I) +* (((intloc 0 ) .--> 1) +* (Start-At 0 ,SCM+FSA )) by Th19
.= s +* (I +* (((intloc 0 ) .--> 1) +* (Start-At 0 ,SCM+FSA ))) by FUNCT_4:15
.= s +* (Initialized I) by FUNCT_4:15 ;
then X: DataPart (Comput (ProgramPart s),s,(LifeSpan (s +* I))) = DataPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J)) by A3, A12, A22, Th24, SCMFSA6A:39;
ProgramPart (s +* I) halts_on s +* I by A11, Th5;
hence A23: DataPart (Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1)) = DataPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J)) by A10, A7, Th22, X; :: thesis: ( ProgramPart (Relocated J,(card I)) c= Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1) & (Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1)) . (intloc 0 ) = 1 & ProgramPart s halts_on s & LifeSpan s = ((LifeSpan (s +* I)) + 1) + (LifeSpan ((Result (s +* I)) +* (Initialized J))) & ( J is keeping_0 implies (Result s) . (intloc 0 ) = 1 ) )
I ';' J c= Initialized (I ';' J) by SCMFSA6A:26;
then I ';' J c= s by A2, XBOOLE_1:1;
then ProgramPart (Relocated J,(card I)) c= s by A9, XBOOLE_1:1;
then A24: ProgramPart (Relocated J,(card I)) c= Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1) by AMI_1:81;
hence ProgramPart (Relocated J,(card I)) c= Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1) ; :: thesis: ( (Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1)) . (intloc 0 ) = 1 & ProgramPart s halts_on s & LifeSpan s = ((LifeSpan (s +* I)) + 1) + (LifeSpan ((Result (s +* I)) +* (Initialized J))) & ( J is keeping_0 implies (Result s) . (intloc 0 ) = 1 ) )
A25: intloc 0 in dom (Initialized J) by SCMFSA6A:45;
intloc 0 in Int-Locations by SCMFSA_2:9;
then A26: intloc 0 in Int-Locations \/ FinSeq-Locations by XBOOLE_0:def 3;
hence (Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1)) . (intloc 0 ) = (DataPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J))) . (intloc 0 ) by A23, FUNCT_1:72, SCMFSA_2:127
.= ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J)) . (intloc 0 ) by A26, FUNCT_1:72, SCMFSA_2:127
.= (Initialized J) . (intloc 0 ) by A25, FUNCT_4:14
.= 1 by SCMFSA6A:46 ;
:: thesis: ( ProgramPart s halts_on s & LifeSpan s = ((LifeSpan (s +* I)) + 1) + (LifeSpan ((Result (s +* I)) +* (Initialized J))) & ( J is keeping_0 implies (Result s) . (intloc 0 ) = 1 ) )
T: ProgramPart s = ProgramPart (Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1)) by AMI_1:144;
x: Comput (ProgramPart s),s,(((LifeSpan (s +* I)) + 1) + (LifeSpan ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J)))) = Comput (ProgramPart s),(Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1)),(LifeSpan ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J))) by AMI_1:51;
A27: Initialized J c= (Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J) by FUNCT_4:26;
then IncAddr (CurInstr (ProgramPart (Comput (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J))),((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J)),(LifeSpan ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J))))),(Comput (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J))),((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J)),(LifeSpan ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J))))),(card I) = CurInstr (ProgramPart (Comput (ProgramPart (Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1))),(Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1)),(LifeSpan ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J))))),(Comput (ProgramPart (Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1))),(Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1)),(LifeSpan ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J)))) by A13, A23, A24, Th12;
then IncAddr (CurInstr (ProgramPart (Comput (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J))),((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J)),(LifeSpan ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J))))),(Comput (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J))),((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J)),(LifeSpan ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J))))),(card I) = CurInstr (ProgramPart (Comput (ProgramPart s),s,(((LifeSpan (s +* I)) + 1) + (LifeSpan ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J)))))),(Comput (ProgramPart s),s,(((LifeSpan (s +* I)) + 1) + (LifeSpan ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J))))) by x, T;
then A28: CurInstr (ProgramPart (Comput (ProgramPart s),s,m)),(Comput (ProgramPart s),s,m) = IncAddr (halt SCM+FSA ),(card I) by A21, AMI_1:def 46
.= halt SCM+FSA by SCMFSA_4:8 ;
hence A29: ProgramPart s halts_on s by AMI_1:146; :: thesis: ( LifeSpan s = ((LifeSpan (s +* I)) + 1) + (LifeSpan ((Result (s +* I)) +* (Initialized J))) & ( J is keeping_0 implies (Result s) . (intloc 0 ) = 1 ) )
A30: now
let k be Element of NAT ; :: thesis: ( ((LifeSpan (s +* I)) + 1) + k < m implies not CurInstr (ProgramPart (Comput (ProgramPart s),s,(((LifeSpan (s +* I)) + 1) + k))),(Comput (ProgramPart s),s,(((LifeSpan (s +* I)) + 1) + k)) = halt SCM+FSA )
assume ((LifeSpan (s +* I)) + 1) + k < m ; :: thesis: not CurInstr (ProgramPart (Comput (ProgramPart s),s,(((LifeSpan (s +* I)) + 1) + k))),(Comput (ProgramPart s),s,(((LifeSpan (s +* I)) + 1) + k)) = halt SCM+FSA
then A31: k < LifeSpan ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J)) by XREAL_1:8;
assume A32: CurInstr (ProgramPart (Comput (ProgramPart s),s,(((LifeSpan (s +* I)) + 1) + k))),(Comput (ProgramPart s),s,(((LifeSpan (s +* I)) + 1) + k)) = halt SCM+FSA ; :: thesis: contradiction
T: ProgramPart s = ProgramPart (Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1)) by AMI_1:144;
x: Comput (ProgramPart s),s,(((LifeSpan (s +* I)) + 1) + k) = Comput (ProgramPart s),(Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1)),k by AMI_1:51;
IncAddr (CurInstr (ProgramPart (Comput (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J))),((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J)),k)),(Comput (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J))),((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J)),k)),(card I) = CurInstr (ProgramPart (Comput (ProgramPart (Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1))),(Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1)),k)),(Comput (ProgramPart (Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1))),(Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1)),k) by A13, A23, A27, A24, Th12
.= halt SCM+FSA by A32, x, T ;
then InsCode (CurInstr (ProgramPart (Comput (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J))),((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J)),k)),(Comput (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J))),((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J)),k)) = 0 by SCMFSA_2:124, SCMFSA_4:22;
then CurInstr (ProgramPart (Comput (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J))),((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J)),k)),(Comput (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J))),((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J)),k) = halt SCM+FSA by SCMFSA_2:122;
hence contradiction by A21, A31, AMI_1:def 46; :: thesis: verum
end;
now
let k be Element of NAT ; :: thesis: ( k < m implies CurInstr (ProgramPart (Comput (ProgramPart s),s,b1)),(Comput (ProgramPart s),s,b1) <> halt SCM+FSA )
assume A33: k < m ; :: thesis: CurInstr (ProgramPart (Comput (ProgramPart s),s,b1)),(Comput (ProgramPart s),s,b1) <> halt SCM+FSA
per cases ( k <= LifeSpan (s +* I) or LifeSpan (s +* I) < k ) ;
suppose LifeSpan (s +* I) < k ; :: thesis: CurInstr (ProgramPart (Comput (ProgramPart s),s,b1)),(Comput (ProgramPart s),s,b1) <> halt SCM+FSA
then (LifeSpan (s +* I)) + 1 <= k by NAT_1:13;
then consider kk being Nat such that
A34: ((LifeSpan (s +* I)) + 1) + kk = k by NAT_1:10;
reconsider kk = kk as Element of NAT by ORDINAL1:def 13;
((LifeSpan (s +* I)) + 1) + kk = k by A34;
hence CurInstr (ProgramPart (Comput (ProgramPart s),s,k)),(Comput (ProgramPart s),s,k) <> halt SCM+FSA by A30, A33; :: thesis: verum
end;
end;
end;
then for k being Element of NAT st CurInstr (ProgramPart (Comput (ProgramPart s),s,k)),(Comput (ProgramPart s),s,k) = halt SCM+FSA holds
m <= k ;
then A35: LifeSpan s = m by A28, A29, AMI_1:def 46;
s +* I = s +* (Initialized I) by A2, SCMFSA6A:51;
then Initialized I c= s +* I by FUNCT_4:26;
then ProgramPart (s +* I) halts_on s +* I by Th5;
hence LifeSpan s = ((LifeSpan (s +* I)) + 1) + (LifeSpan ((Result (s +* I)) +* (Initialized J))) by A35, AMI_1:122; :: thesis: ( J is keeping_0 implies (Result s) . (intloc 0 ) = 1 )
A36: Initialized J c= (Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J) by FUNCT_4:26;
hereby :: thesis: verum
A37: DataPart (Comput (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J))),((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J)),(LifeSpan ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J)))) = DataPart (Comput (ProgramPart (Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1))),(Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1)),(LifeSpan ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J)))) by A13, A23, A27, A24, Th12;
assume A38: J is keeping_0 ; :: thesis: (Result s) . (intloc 0 ) = 1
T: ProgramPart s = ProgramPart (Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1)) by AMI_1:144;
thus (Result s) . (intloc 0 ) = (Comput (ProgramPart s),s,m) . (intloc 0 ) by A29, A35, AMI_1:122
.= (Comput (ProgramPart s),(Comput (ProgramPart s),s,((LifeSpan (s +* I)) + 1)),(LifeSpan ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J)))) . (intloc 0 ) by AMI_1:51
.= (Comput (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J))),((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J)),(LifeSpan ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J)))) . (intloc 0 ) by A37, SCMFSA6A:38, T
.= ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (s +* I))) +* (Initialized J)) . (intloc 0 ) by A20, A38, SCMFSA6B:def 4
.= (Initialized J) . (intloc 0 ) by A25, A36, GRFUNC_1:8
.= 1 by SCMFSA6A:46 ; :: thesis: verum
end;