set D = Int-Locations \/ FinSeq-Locations ;
let I be InitHalting keepInt0_1 Program of SCM+FSA ; 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 (ProgramPart (s +* I)),(s +* I)) + 1)) = card I & DataPart (Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1)) = DataPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J)) & ProgramPart (Relocated J,(card I)) c= Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1) & (Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1)) . (intloc 0 ) = 1 & ProgramPart s halts_on s & LifeSpan (ProgramPart s),s = ((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1) + (LifeSpan (ProgramPart ((Result (ProgramPart (s +* I)),(s +* I)) +* (Initialized J))),((Result (ProgramPart (s +* I)),(s +* I)) +* (Initialized J))) & ( J is keeping_0 implies (Result (ProgramPart s),s) . (intloc 0 ) = 1 ) )
let J be 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 (ProgramPart (s +* I)),(s +* I)) + 1)) = card I & DataPart (Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1)) = DataPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J)) & ProgramPart (Relocated J,(card I)) c= Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1) & (Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1)) . (intloc 0 ) = 1 & ProgramPart s halts_on s & LifeSpan (ProgramPart s),s = ((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1) + (LifeSpan (ProgramPart ((Result (ProgramPart (s +* I)),(s +* I)) +* (Initialized J))),((Result (ProgramPart (s +* I)),(s +* I)) +* (Initialized J))) & ( J is keeping_0 implies (Result (ProgramPart s),s) . (intloc 0 ) = 1 ) )
let s be State of SCM+FSA ; ( Initialized (I ';' J) c= s implies ( IC (Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1)) = card I & DataPart (Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1)) = DataPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J)) & ProgramPart (Relocated J,(card I)) c= Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1) & (Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1)) . (intloc 0 ) = 1 & ProgramPart s halts_on s & LifeSpan (ProgramPart s),s = ((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1) + (LifeSpan (ProgramPart ((Result (ProgramPart (s +* I)),(s +* I)) +* (Initialized J))),((Result (ProgramPart (s +* I)),(s +* I)) +* (Initialized J))) & ( J is keeping_0 implies (Result (ProgramPart s),s) . (intloc 0 ) = 1 ) ) )
set s1 = s +* I;
set s3 = (Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J);
set m1 = LifeSpan (ProgramPart (s +* I)),(s +* I);
set m3 = LifeSpan (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))),((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(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
; ( IC (Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1)) = card I & DataPart (Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1)) = DataPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J)) & ProgramPart (Relocated J,(card I)) c= Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1) & (Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1)) . (intloc 0 ) = 1 & ProgramPart s halts_on s & LifeSpan (ProgramPart s),s = ((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1) + (LifeSpan (ProgramPart ((Result (ProgramPart (s +* I)),(s +* I)) +* (Initialized J))),((Result (ProgramPart (s +* I)),(s +* I)) +* (Initialized J))) & ( J is keeping_0 implies (Result (ProgramPart s),s) . (intloc 0 ) = 1 ) )
then A3:
s = s +* (Initialized (I ';' J))
by FUNCT_4:79;
set s4 = Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1);
A4:
( Directed I c= I ';' J & I ';' J c= Initialized (I ';' J) )
by SCMFSA6A:26, SCMFSA6A:55;
reconsider m = ((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1) + (LifeSpan (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))),((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(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 (ProgramPart (s +* I)),(s +* I))) +* (Initialized J)
by FUNCT_4:26;
then
dom (Initialized J) c= dom ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(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 (ProgramPart (s +* I)),(s +* I)) + 1)) = card I
by A10, A6, Th21, FUNCT_4:26; ( DataPart (Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1)) = DataPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J)) & ProgramPart (Relocated J,(card I)) c= Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1) & (Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1)) . (intloc 0 ) = 1 & ProgramPart s halts_on s & LifeSpan (ProgramPart s),s = ((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1) + (LifeSpan (ProgramPart ((Result (ProgramPart (s +* I)),(s +* I)) +* (Initialized J))),((Result (ProgramPart (s +* I)),(s +* I)) +* (Initialized J))) & ( J is keeping_0 implies (Result (ProgramPart s),s) . (intloc 0 ) = 1 ) )
A14:
now let x be
set ;
( x in dom (DataPart (Initialized J)) implies (DataPart (Initialized J)) . b1 = (DataPart (Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I)))) . b1 )assume
x in dom (DataPart (Initialized J))
;
(DataPart (Initialized J)) . b1 = (DataPart (Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I)))) . b1then 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 A19:
x = intloc 0
;
(DataPart (Initialized J)) . b1 = (DataPart (Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I)))) . b1thus (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 (ProgramPart (s +* I)),(s +* I))) . x
by A11, A19, Def3
.=
(DataPart (Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I)))) . x
by A17, FUNCT_1:72, SCMFSA_2:127
;
verum end; end; end;
A20:
J +* (Start-At 0 ,SCM+FSA ) c= (Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J)
by FUNCT_4:26, SCMFSA6B:8;
A21:
ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J)) halts_on (Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(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 (ProgramPart (s +* I)),(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 (ProgramPart (s +* I)),(s +* I))))
by RELAT_1:90, SCMFSA_2:127;
then
( DataPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J)) = (DataPart (Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I)))) +* (DataPart (Initialized J)) & DataPart (Initialized J) c= DataPart (Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) )
by A14, FUNCT_4:75, GRFUNC_1:8;
then A22:
DataPart (Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) = DataPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(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 (ProgramPart (s +* I)),(s +* I))) = DataPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(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 (ProgramPart (s +* I)),(s +* I)) + 1)) = DataPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))
by A10, A7, Th22, X; ( ProgramPart (Relocated J,(card I)) c= Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1) & (Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1)) . (intloc 0 ) = 1 & ProgramPart s halts_on s & LifeSpan (ProgramPart s),s = ((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1) + (LifeSpan (ProgramPart ((Result (ProgramPart (s +* I)),(s +* I)) +* (Initialized J))),((Result (ProgramPart (s +* I)),(s +* I)) +* (Initialized J))) & ( J is keeping_0 implies (Result (ProgramPart s),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 (ProgramPart (s +* I)),(s +* I)) + 1)
by AMI_1:81;
hence
ProgramPart (Relocated J,(card I)) c= Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1)
; ( (Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1)) . (intloc 0 ) = 1 & ProgramPart s halts_on s & LifeSpan (ProgramPart s),s = ((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1) + (LifeSpan (ProgramPart ((Result (ProgramPart (s +* I)),(s +* I)) +* (Initialized J))),((Result (ProgramPart (s +* I)),(s +* I)) +* (Initialized J))) & ( J is keeping_0 implies (Result (ProgramPart s),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 (ProgramPart (s +* I)),(s +* I)) + 1)) . (intloc 0 ) =
(DataPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))) . (intloc 0 )
by A23, FUNCT_1:72, SCMFSA_2:127
.=
((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(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
;
( ProgramPart s halts_on s & LifeSpan (ProgramPart s),s = ((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1) + (LifeSpan (ProgramPart ((Result (ProgramPart (s +* I)),(s +* I)) +* (Initialized J))),((Result (ProgramPart (s +* I)),(s +* I)) +* (Initialized J))) & ( J is keeping_0 implies (Result (ProgramPart s),s) . (intloc 0 ) = 1 ) )
T:
ProgramPart s = ProgramPart (Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1))
by AMI_1:123;
TTX:
ProgramPart s = ProgramPart (Comput (ProgramPart s),s,m)
by AMI_1:123;
x:
Comput (ProgramPart s),s,(((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1) + (LifeSpan (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))),((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J)))) = Comput (ProgramPart s),(Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1)),(LifeSpan (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))),((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J)))
by AMI_1:51;
TX:
ProgramPart (Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1)) = ProgramPart (Comput (ProgramPart (Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1))),(Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1)),(LifeSpan (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))),((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))))
by AMI_1:123;
A27:
Initialized J c= (Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J)
by FUNCT_4:26;
then
IncAddr (CurInstr (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))),(Comput (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))),((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J)),(LifeSpan (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))),((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))))),(card I) = CurInstr (ProgramPart (Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1))),(Comput (ProgramPart (Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1))),(Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1)),(LifeSpan (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))),((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))))
by A13, A23, A24, Th12;
then
IncAddr (CurInstr (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))),(Comput (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))),((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J)),(LifeSpan (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))),((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))))),(card I) = CurInstr (ProgramPart (Comput (ProgramPart s),s,(((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1) + (LifeSpan (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))),((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J)))))),(Comput (ProgramPart s),s,(((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1) + (LifeSpan (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))),((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J)))))
by x, T, TX;
then A28: CurInstr (ProgramPart s),(Comput (ProgramPart s),s,m) =
IncAddr (halt SCM+FSA ),(card I)
by A21, TTX, AMI_1:def 46
.=
halt SCM+FSA
by SCMFSA_4:8
;
hence A29:
ProgramPart s halts_on s
by AMI_1:146; ( LifeSpan (ProgramPart s),s = ((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1) + (LifeSpan (ProgramPart ((Result (ProgramPart (s +* I)),(s +* I)) +* (Initialized J))),((Result (ProgramPart (s +* I)),(s +* I)) +* (Initialized J))) & ( J is keeping_0 implies (Result (ProgramPart s),s) . (intloc 0 ) = 1 ) )
A30:
now let k be
Element of
NAT ;
( ((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1) + k < m implies not CurInstr (ProgramPart s),(Comput (ProgramPart s),s,(((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1) + k)) = halt SCM+FSA )assume
((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1) + k < m
;
not CurInstr (ProgramPart s),(Comput (ProgramPart s),s,(((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1) + k)) = halt SCM+FSA then A31:
k < LifeSpan (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))),
((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))
by XREAL_1:8;
assume A32:
CurInstr (ProgramPart s),
(Comput (ProgramPart s),s,(((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1) + k)) = halt SCM+FSA
;
contradictionT:
ProgramPart s = ProgramPart (Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1))
by AMI_1:123;
x:
Comput (ProgramPart s),
s,
(((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1) + k) = Comput (ProgramPart s),
(Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1)),
k
by AMI_1:51;
IncAddr (CurInstr (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))),(Comput (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))),((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J)),k)),
(card I) =
CurInstr (ProgramPart (Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1))),
(Comput (ProgramPart (Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1))),(Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1)),k)
by A13, A23, A27, A24, Th12
.=
halt SCM+FSA
by A32, x, T
;
then
InsCode (CurInstr (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))),(Comput (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))),((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J)),k)) = 0
by SCMFSA_2:124, SCMFSA_4:22;
then
CurInstr (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))),
(Comput (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))),((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J)),k) = halt SCM+FSA
by SCMFSA_2:122;
hence
contradiction
by A21, A31, AMI_1:def 46;
verum end;
then
for k being Element of NAT st CurInstr (ProgramPart s),(Comput (ProgramPart s),s,k) = halt SCM+FSA holds
m <= k
;
then A35:
LifeSpan (ProgramPart s),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 X:
ProgramPart (s +* I) halts_on s +* I
by Th5;
Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I)) = Result (ProgramPart (s +* I)),(s +* I)
by X, AMI_1:122;
hence
LifeSpan (ProgramPart s),s = ((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1) + (LifeSpan (ProgramPart ((Result (ProgramPart (s +* I)),(s +* I)) +* (Initialized J))),((Result (ProgramPart (s +* I)),(s +* I)) +* (Initialized J)))
by A35; ( J is keeping_0 implies (Result (ProgramPart s),s) . (intloc 0 ) = 1 )
A36:
Initialized J c= (Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J)
by FUNCT_4:26;
hereby verum
A37:
DataPart (Comput (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))),((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J)),(LifeSpan (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))),((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J)))) = DataPart (Comput (ProgramPart (Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1))),(Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1)),(LifeSpan (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))),((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))))
by A13, A23, A27, A24, Th12;
assume A38:
J is
keeping_0
;
(Result (ProgramPart s),s) . (intloc 0 ) = 1T:
ProgramPart s = ProgramPart (Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1))
by AMI_1:123;
thus (Result (ProgramPart s),s) . (intloc 0 ) =
(Comput (ProgramPart s),s,m) . (intloc 0 )
by A29, A35, AMI_1:122
.=
(Comput (ProgramPart s),(Comput (ProgramPart s),s,((LifeSpan (ProgramPart (s +* I)),(s +* I)) + 1)),(LifeSpan (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))),((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J)))) . (intloc 0 )
by AMI_1:51
.=
(Comput (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))),((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J)),(LifeSpan (ProgramPart ((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J))),((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(s +* I))) +* (Initialized J)))) . (intloc 0 )
by A37, T, SCMFSA6A:38
.=
((Comput (ProgramPart (s +* I)),(s +* I),(LifeSpan (ProgramPart (s +* I)),(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
;
verum
end;