set SA0 = Start-At (insloc 0 );
let s be State of SCM+FSA ; :: according to AMI_1:def 26,SCMFSA6B:def 3 :: thesis: ( not (I ';' J) +* (Start-At (insloc 0 )) c= s or s is halting )
assume A1:
(I ';' J) +* (Start-At (insloc 0 )) c= s
; :: thesis: s is halting
then A2:
s = s +* ((I ';' J) +* (Start-At (insloc 0 )))
by FUNCT_4:79;
set SAt = Start-At (insloc 0 );
A3:
dom I misses dom (Start-At (insloc 0 ))
by SF_MASTR:64;
Start-At (insloc 0 ) c= (I ';' J) +* (Start-At (insloc 0 ))
by FUNCT_4:26;
then A4:
Start-At (insloc 0 ) c= s
by A1, XBOOLE_1:1;
then
s +* (Start-At (insloc 0 )) = s
by FUNCT_4:79;
then
s +* ((Start-At (insloc 0 )) +* I) = s +* I
by FUNCT_4:15;
then A5:
s +* (I +* (Start-At (insloc 0 ))) = s +* I
by A3, FUNCT_4:36;
then A6:
I +* (Start-At (insloc 0 )) c= s +* I
by FUNCT_4:26;
A7: s +* I =
(s +* (Start-At (insloc 0 ))) +* I
by A4, FUNCT_4:79
.=
(s +* I) +* (Start-At (insloc 0 ))
by Th14
.=
s +* (I +* (Start-At (insloc 0 )))
by FUNCT_4:15
;
A8:
s +* I is halting
by A5, Th18, FUNCT_4:26;
set JAt = J +* (Start-At (insloc 0 ));
set s1 = s +* I;
set s3 = (Computation (s +* I),(LifeSpan (s +* I))) +* (J +* (Start-At (insloc 0 )));
set m1 = LifeSpan (s +* I);
set m3 = LifeSpan ((Computation (s +* I),(LifeSpan (s +* I))) +* (J +* (Start-At (insloc 0 ))));
set D = Int-Locations \/ FinSeq-Locations ;
reconsider kk = DataPart (J +* (Start-At (insloc 0 ))) as Function ;
A9:
((Computation (s +* I),(LifeSpan (s +* I))) +* (J +* (Start-At (insloc 0 )))) | (Int-Locations \/ FinSeq-Locations ) = (DataPart (Computation (s +* I),(LifeSpan (s +* I)))) +* kk
by FUNCT_4:75, SCMFSA_2:127;
J +* (Start-At (insloc 0 )) c= (Computation (s +* I),(LifeSpan (s +* I))) +* (J +* (Start-At (insloc 0 )))
by FUNCT_4:26;
then
dom (J +* (Start-At (insloc 0 ))) c= dom ((Computation (s +* I),(LifeSpan (s +* I))) +* (J +* (Start-At (insloc 0 ))))
by GRFUNC_1:8;
then A15:
dom (J +* (Start-At (insloc 0 ))) c= the carrier of SCM+FSA
by AMI_1:79;
dom (DataPart (J +* (Start-At (insloc 0 )))) = (dom (J +* (Start-At (insloc 0 )))) /\ (Int-Locations \/ FinSeq-Locations )
by RELAT_1:90, SCMFSA_2:127;
then
dom (DataPart (J +* (Start-At (insloc 0 )))) c= the carrier of SCM+FSA /\ (Int-Locations \/ FinSeq-Locations )
by A15, XBOOLE_1:26;
then
dom (DataPart (J +* (Start-At (insloc 0 )))) c= (dom (Computation (s +* I),(LifeSpan (s +* I)))) /\ (Int-Locations \/ FinSeq-Locations )
by AMI_1:79;
then
dom (DataPart (J +* (Start-At (insloc 0 )))) c= dom (DataPart (Computation (s +* I),(LifeSpan (s +* I))))
by RELAT_1:90, SCMFSA_2:127;
then
DataPart (J +* (Start-At (insloc 0 ))) c= DataPart (Computation (s +* I),(LifeSpan (s +* I)))
by A10, GRFUNC_1:8;
then
DataPart (Computation (s +* I),(LifeSpan (s +* I))) = DataPart ((Computation (s +* I),(LifeSpan (s +* I))) +* (J +* (Start-At (insloc 0 ))))
by A9, LATTICE2:8, SCMFSA_2:127;
then A16:
DataPart (Computation s,(LifeSpan (s +* I))) = DataPart ((Computation (s +* I),(LifeSpan (s +* I))) +* (J +* (Start-At (insloc 0 ))))
by A2, A7, A8, Th40, SCMFSA6A:39;
( J +* (Start-At (insloc 0 )) c= (Computation (s +* I),(LifeSpan (s +* I))) +* (J +* (Start-At (insloc 0 ))) & J +* (Start-At (insloc 0 )) is halting )
by Def3, FUNCT_4:26;
then A17:
(Computation (s +* I),(LifeSpan (s +* I))) +* (J +* (Start-At (insloc 0 ))) is halting
by AMI_1:def 26;
A18:
dom (Directed I) = dom I
by FUNCT_4:105;
A19:
Directed I c= I ';' J
by SCMFSA6A:55;
dom (I ';' J) misses dom (Start-At (insloc 0 ))
by SF_MASTR:64;
then A20:
I ';' J c= (I ';' J) +* (Start-At (insloc 0 ))
by FUNCT_4:33;
A21: (s +* I) +* (Directed I) =
s +* (I +* (Directed I))
by FUNCT_4:15
.=
s +* (Directed I)
by A18, FUNCT_4:20
.=
(s +* ((I ';' J) +* (Start-At (insloc 0 )))) +* (Directed I)
by A1, LATTICE2:8
.=
s +* (((I ';' J) +* (Start-At (insloc 0 ))) +* (Directed I))
by FUNCT_4:15
.=
s +* ((I ';' J) +* (Start-At (insloc 0 )))
by A19, A20, LATTICE2:8, XBOOLE_1:1
.=
s
by A1, LATTICE2:8
;
then A22:
Directed I c= s
by FUNCT_4:26;
A23:
IC (Computation s,((LifeSpan (s +* I)) + 1)) = insloc (card I)
by A4, A8, A21, Th37, FUNCT_4:26;
A24:
DataPart (Computation s,((LifeSpan (s +* I)) + 1)) = DataPart ((Computation (s +* I),(LifeSpan (s +* I))) +* (J +* (Start-At (insloc 0 ))))
by A4, A6, A16, A22, Th18, Th38;
reconsider m = ((LifeSpan (s +* I)) + 1) + (LifeSpan ((Computation (s +* I),(LifeSpan (s +* I))) +* (J +* (Start-At (insloc 0 ))))) as Element of NAT ;
set s4 = Computation s,((LifeSpan (s +* I)) + 1);
A25:
J +* (Start-At (insloc 0 )) c= (Computation (s +* I),(LifeSpan (s +* I))) +* (J +* (Start-At (insloc 0 )))
by FUNCT_4:26;
A26:
I ';' J c= s
by A1, A20, XBOOLE_1:1;
ProgramPart (Relocated J,(card I)) c= I ';' J
by FUNCT_4:26;
then
ProgramPart (Relocated J,(card I)) c= s
by A26, XBOOLE_1:1;
then A27:
[(ProgramPart (Relocated J,(card I)))] c= Computation s,((LifeSpan (s +* I)) + 1)
by AMI_1:81;
take
m
; :: according to AMI_1:def 20 :: thesis: CurInstr (Computation s,m) = halt SCM+FSA
IncAddr (CurInstr (Computation ((Computation (s +* I),(LifeSpan (s +* I))) +* (J +* (Start-At (insloc 0 )))),(LifeSpan ((Computation (s +* I),(LifeSpan (s +* I))) +* (J +* (Start-At (insloc 0 ))))))),(card I) = CurInstr (Computation (Computation s,((LifeSpan (s +* I)) + 1)),(LifeSpan ((Computation (s +* I),(LifeSpan (s +* I))) +* (J +* (Start-At (insloc 0 ))))))
by A23, A24, A25, A27, Th27;
then
IncAddr (CurInstr (Computation ((Computation (s +* I),(LifeSpan (s +* I))) +* (J +* (Start-At (insloc 0 )))),(LifeSpan ((Computation (s +* I),(LifeSpan (s +* I))) +* (J +* (Start-At (insloc 0 ))))))),(card I) = CurInstr (Computation s,(((LifeSpan (s +* I)) + 1) + (LifeSpan ((Computation (s +* I),(LifeSpan (s +* I))) +* (J +* (Start-At (insloc 0 )))))))
by AMI_1:51;
hence CurInstr (Computation s,m) =
IncAddr (halt SCM+FSA ),(card I)
by A17, AMI_1:def 46
.=
halt SCM+FSA
by SCMFSA_4:8
;
:: thesis: verum