let P be Instruction-Sequence of SCM+FSA; for s being State of SCM+FSA
for I being Program of SCM+FSA st Directed I is_pseudo-closed_on s,P holds
( I ';' (Stop SCM+FSA) is_closed_on s,P & I ';' (Stop SCM+FSA) is_halting_on s,P & LifeSpan ((P +* (I ';' (Stop SCM+FSA))),(Initialize s)) = pseudo-LifeSpan (s,P,(Directed I)) & ( for n being Element of NAT st n < pseudo-LifeSpan (s,P,(Directed I)) holds
IC (Comput ((P +* I),(Initialize s),n)) = IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n)) ) & ( for n being Element of NAT st n <= pseudo-LifeSpan (s,P,(Directed I)) holds
DataPart (Comput ((P +* I),(Initialize s),n)) = DataPart (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n)) ) )
let s be State of SCM+FSA; for I being Program of SCM+FSA st Directed I is_pseudo-closed_on s,P holds
( I ';' (Stop SCM+FSA) is_closed_on s,P & I ';' (Stop SCM+FSA) is_halting_on s,P & LifeSpan ((P +* (I ';' (Stop SCM+FSA))),(Initialize s)) = pseudo-LifeSpan (s,P,(Directed I)) & ( for n being Element of NAT st n < pseudo-LifeSpan (s,P,(Directed I)) holds
IC (Comput ((P +* I),(Initialize s),n)) = IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n)) ) & ( for n being Element of NAT st n <= pseudo-LifeSpan (s,P,(Directed I)) holds
DataPart (Comput ((P +* I),(Initialize s),n)) = DataPart (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n)) ) )
set D = Data-Locations ;
set A = NAT ;
let I be Program of SCM+FSA; ( Directed I is_pseudo-closed_on s,P implies ( I ';' (Stop SCM+FSA) is_closed_on s,P & I ';' (Stop SCM+FSA) is_halting_on s,P & LifeSpan ((P +* (I ';' (Stop SCM+FSA))),(Initialize s)) = pseudo-LifeSpan (s,P,(Directed I)) & ( for n being Element of NAT st n < pseudo-LifeSpan (s,P,(Directed I)) holds
IC (Comput ((P +* I),(Initialize s),n)) = IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n)) ) & ( for n being Element of NAT st n <= pseudo-LifeSpan (s,P,(Directed I)) holds
DataPart (Comput ((P +* I),(Initialize s),n)) = DataPart (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n)) ) ) )
set I0 = Directed I;
set I1 = I ';' (Stop SCM+FSA);
set s00 = Initialize s;
set P00 = P +* (Directed I);
set s10 = Initialize s;
set P10 = P +* (I ';' (Stop SCM+FSA));
reconsider k = pseudo-LifeSpan ((Initialize s),(P +* (Directed I)),(Directed I)) as Element of NAT ;
(Stop SCM+FSA) . 0 = halt SCM+FSA
by AFINSQ_1:34;
then A5:
halt SCM+FSA = (Stop SCM+FSA) . ((card I) -' (card I))
by XREAL_1:232;
A6:
DataPart (Initialize s) = DataPart (Initialize s)
;
assume A7:
Directed I is_pseudo-closed_on s,P
; ( I ';' (Stop SCM+FSA) is_closed_on s,P & I ';' (Stop SCM+FSA) is_halting_on s,P & LifeSpan ((P +* (I ';' (Stop SCM+FSA))),(Initialize s)) = pseudo-LifeSpan (s,P,(Directed I)) & ( for n being Element of NAT st n < pseudo-LifeSpan (s,P,(Directed I)) holds
IC (Comput ((P +* I),(Initialize s),n)) = IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n)) ) & ( for n being Element of NAT st n <= pseudo-LifeSpan (s,P,(Directed I)) holds
DataPart (Comput ((P +* I),(Initialize s),n)) = DataPart (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n)) ) )
then A8:
Directed I is_pseudo-closed_on Initialize s,P +* (Directed I)
by Th50;
defpred S1[ Nat] means ( k <= $1 implies ( IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),$1)) = card I & CurInstr ((P +* (I ';' (Stop SCM+FSA))),(Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),$1))) = halt SCM+FSA ) );
A10:
I ';' (Stop SCM+FSA) c= P +* (I ';' (Stop SCM+FSA))
by FUNCT_4:25;
A11:
I ';' (Stop SCM+FSA) c= P +* (I ';' (Stop SCM+FSA))
by FUNCT_4:25;
A12:
Directed I c= I ';' (Stop SCM+FSA)
by SCMFSA6A:16;
then A13:
dom (Directed I) c= dom (I ';' (Stop SCM+FSA))
by GRFUNC_1:2;
A14:
Directed I c= P +* (I ';' (Stop SCM+FSA))
by A12, A10, XBOOLE_1:1;
Reloc ((Directed I),0) c= I ';' (Stop SCM+FSA)
by A12, COMPOS_1:45;
then A15:
Reloc ((Directed I),0) c= P +* (I ';' (Stop SCM+FSA))
by A11, XBOOLE_1:1;
A16:
IC (Initialize s) = 0
by FUNCT_4:113;
A18:
Directed I c= P +* (Directed I)
by FUNCT_4:25;
A19:
now let n be
Element of
NAT ;
( n <= pseudo-LifeSpan ((Initialize s),(P +* (Directed I)),(Directed I)) implies ( IC (Comput ((P +* (Directed I)),(Initialize s),n)) = IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n)) & DataPart (Comput ((P +* (Directed I)),(Initialize s),n)) = DataPart (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n)) ) )assume A20:
n <= pseudo-LifeSpan (
(Initialize s),
(P +* (Directed I)),
(Directed I))
;
( IC (Comput ((P +* (Directed I)),(Initialize s),n)) = IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n)) & DataPart (Comput ((P +* (Directed I)),(Initialize s),n)) = DataPart (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n)) )then
(IC (Comput ((P +* (Directed I)),(Initialize s),n))) + 0 = IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n))
by A8, A15, A16, A6, Th51, A18;
hence
IC (Comput ((P +* (Directed I)),(Initialize s),n)) = IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n))
;
DataPart (Comput ((P +* (Directed I)),(Initialize s),n)) = DataPart (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n))thus
DataPart (Comput ((P +* (Directed I)),(Initialize s),n)) = DataPart (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n))
by A8, A15, A16, A6, A20, Th51, A18;
verum end;
A21:
k = pseudo-LifeSpan (s,P,(Directed I))
by A7, Th50;
A22:
Initialize (Initialize s) = Initialize s
;
A23: (P +* (Directed I)) +* (Directed I) =
P +* ((Directed I) +* (Directed I))
by FUNCT_4:14
.=
P +* (Directed I)
;
A24:
now let n be
Element of
NAT ;
( n < pseudo-LifeSpan ((Initialize s),(P +* (Directed I)),(Directed I)) implies ( CurInstr ((P +* (Directed I)),(Comput ((P +* (Directed I)),(Initialize s),n))) = CurInstr ((P +* (I ';' (Stop SCM+FSA))),(Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n))) & IC (Comput ((P +* (Directed I)),(Initialize s),n)) in dom (Directed I) & CurInstr ((P +* (Directed I)),(Comput ((P +* (Directed I)),(Initialize s),n))) <> halt SCM+FSA ) )assume A25:
n < pseudo-LifeSpan (
(Initialize s),
(P +* (Directed I)),
(Directed I))
;
( CurInstr ((P +* (Directed I)),(Comput ((P +* (Directed I)),(Initialize s),n))) = CurInstr ((P +* (I ';' (Stop SCM+FSA))),(Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n))) & IC (Comput ((P +* (Directed I)),(Initialize s),n)) in dom (Directed I) & CurInstr ((P +* (Directed I)),(Comput ((P +* (Directed I)),(Initialize s),n))) <> halt SCM+FSA )then
IncAddr (
(CurInstr ((P +* (Directed I)),(Comput ((P +* (Directed I)),(Initialize s),n)))),
0)
= CurInstr (
(P +* (I ';' (Stop SCM+FSA))),
(Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n)))
by A8, A15, A16, A6, Th51, A18;
hence
CurInstr (
(P +* (Directed I)),
(Comput ((P +* (Directed I)),(Initialize s),n)))
= CurInstr (
(P +* (I ';' (Stop SCM+FSA))),
(Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n)))
by COMPOS_1:10;
( IC (Comput ((P +* (Directed I)),(Initialize s),n)) in dom (Directed I) & CurInstr ((P +* (Directed I)),(Comput ((P +* (Directed I)),(Initialize s),n))) <> halt SCM+FSA )thus
IC (Comput ((P +* (Directed I)),(Initialize s),n)) in dom (Directed I)
by A22, A8, A25, A23, SCMFSA8A:17;
CurInstr ((P +* (Directed I)),(Comput ((P +* (Directed I)),(Initialize s),n))) <> halt SCM+FSAthus
CurInstr (
(P +* (Directed I)),
(Comput ((P +* (Directed I)),(Initialize s),n)))
<> halt SCM+FSA
by A22, A8, A25, A23, SCMFSA8A:17;
verum end;
A26:
now let n be
Element of
NAT ;
( CurInstr ((P +* (I ';' (Stop SCM+FSA))),(Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n))) = halt SCM+FSA implies not k > n )assume A27:
CurInstr (
(P +* (I ';' (Stop SCM+FSA))),
(Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n)))
= halt SCM+FSA
;
not k > nreconsider l =
IC (Comput ((P +* (Directed I)),(Initialize s),n)) as
Element of
NAT ;
assume A29:
k > n
;
contradictionthen A30:
l in dom (Directed I)
by A7, A21, SCMFSA8A:def 4;
CurInstr (
(P +* (I ';' (Stop SCM+FSA))),
(Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n))) =
CurInstr (
(P +* (Directed I)),
(Comput ((P +* (Directed I)),(Initialize s),n)))
by A24, A29
.=
(P +* (Directed I)) . l
by PBOOLE:143
.=
(Directed I) . l
by A30, A18, GRFUNC_1:2
;
then
halt SCM+FSA in rng (Directed I)
by A27, A30, FUNCT_1:def 3;
hence
contradiction
by COMPOS_1:def 3;
verum end;
A31:
card (Stop SCM+FSA) = 1
by AFINSQ_1:33;
then
card (I ';' (Stop SCM+FSA)) = (card I) + 1
by SCMFSA6A:21;
then
card I < card (I ';' (Stop SCM+FSA))
by NAT_1:13;
then A32:
card I in dom (I ';' (Stop SCM+FSA))
by AFINSQ_1:66;
card I < (card I) + (card (Stop SCM+FSA))
by A31, NAT_1:13;
then B33: (I ';' (Stop SCM+FSA)) . (card I) =
IncAddr ((halt SCM+FSA),(card I))
by A5, Th13
.=
halt SCM+FSA
by COMPOS_1:11
;
then A33:
(P +* (I ';' (Stop SCM+FSA))) . (card I) = halt SCM+FSA
by A32, A10, GRFUNC_1:2;
A34:
for n being Element of NAT st S1[n] holds
S1[n + 1]
A40:
S1[ 0 ]
proof
assume
k <= 0
;
( IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),0)) = card I & CurInstr ((P +* (I ';' (Stop SCM+FSA))),(Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),0))) = halt SCM+FSA )
then
k = 0
;
hence IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),0)) =
IC (Comput ((P +* (Directed I)),(Initialize s),k))
by A19
.=
card (Directed I)
by A7, A21, SCMFSA8A:def 4
.=
card I
by SCMFSA8A:20
;
CurInstr ((P +* (I ';' (Stop SCM+FSA))),(Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),0))) = halt SCM+FSA
hence CurInstr (
(P +* (I ';' (Stop SCM+FSA))),
(Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),0))) =
(P +* (I ';' (Stop SCM+FSA))) . (card I)
by PBOOLE:143
.=
halt SCM+FSA
by B33, A32, A10, GRFUNC_1:2
;
verum
end;
A41:
for n being Element of NAT holds S1[n]
from NAT_1:sch 1(A40, A34);
now let n be
Element of
NAT ;
IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),b1)) in dom (I ';' (Stop SCM+FSA))per cases
( n < k or k <= n )
;
suppose A42:
n < k
;
IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),b1)) in dom (I ';' (Stop SCM+FSA))then
IC (Comput ((P +* (Directed I)),(Initialize s),n)) = IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n))
by A19;
then
IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n)) in dom (Directed I)
by A7, A21, A42, SCMFSA8A:def 4;
hence
IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n)) in dom (I ';' (Stop SCM+FSA))
by A13;
verum end; end; end;
hence
I ';' (Stop SCM+FSA) is_closed_on s,P
by SCMFSA7B:def 6; ( I ';' (Stop SCM+FSA) is_halting_on s,P & LifeSpan ((P +* (I ';' (Stop SCM+FSA))),(Initialize s)) = pseudo-LifeSpan (s,P,(Directed I)) & ( for n being Element of NAT st n < pseudo-LifeSpan (s,P,(Directed I)) holds
IC (Comput ((P +* I),(Initialize s),n)) = IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n)) ) & ( for n being Element of NAT st n <= pseudo-LifeSpan (s,P,(Directed I)) holds
DataPart (Comput ((P +* I),(Initialize s),n)) = DataPart (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n)) ) )
set s1 = Initialize s;
set P1 = P +* I;
A43:
I c= P +* I
by FUNCT_4:25;
A44:
card (Directed I) = card I
by SCMFSA8A:20;
S1[k]
by A41;
then A45:
P +* (I ';' (Stop SCM+FSA)) halts_on Initialize s
by EXTPRO_1:29;
hence
I ';' (Stop SCM+FSA) is_halting_on s,P
by SCMFSA7B:def 7; ( LifeSpan ((P +* (I ';' (Stop SCM+FSA))),(Initialize s)) = pseudo-LifeSpan (s,P,(Directed I)) & ( for n being Element of NAT st n < pseudo-LifeSpan (s,P,(Directed I)) holds
IC (Comput ((P +* I),(Initialize s),n)) = IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n)) ) & ( for n being Element of NAT st n <= pseudo-LifeSpan (s,P,(Directed I)) holds
DataPart (Comput ((P +* I),(Initialize s),n)) = DataPart (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n)) ) )
CurInstr ((P +* (I ';' (Stop SCM+FSA))),(Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),k))) = halt SCM+FSA
by A41;
then A46:
LifeSpan ((P +* (I ';' (Stop SCM+FSA))),(Initialize s)) = k
by A45, A26, EXTPRO_1:def 15;
defpred S2[ Nat] means ( $1 < pseudo-LifeSpan (s,P,(Directed I)) implies ( IC (Comput ((P +* I),(Initialize s),$1)) in dom I & IC (Comput ((P +* I),(Initialize s),$1)) = IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),$1)) & DataPart (Comput ((P +* I),(Initialize s),$1)) = DataPart (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),$1)) ) );
A47:
for n being Element of NAT st S2[n] holds
S2[n + 1]
proof
let n be
Element of
NAT ;
( S2[n] implies S2[n + 1] )
set l =
IC (Comput ((P +* I),(Initialize s),n));
set l0 =
IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n));
assume A48:
S2[
n]
;
S2[n + 1]
assume A49:
n + 1
< pseudo-LifeSpan (
s,
P,
(Directed I))
;
( IC (Comput ((P +* I),(Initialize s),(n + 1))) in dom I & IC (Comput ((P +* I),(Initialize s),(n + 1))) = IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),(n + 1))) & DataPart (Comput ((P +* I),(Initialize s),(n + 1))) = DataPart (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),(n + 1))) )
then A50:
IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n)) in dom (Directed I)
by A48, FUNCT_4:99, NAT_1:12;
A51:
for
f being
FinSeq-Location holds
(Comput ((P +* I),(Initialize s),n)) . f = (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n)) . f
by A48, A49, NAT_1:12, SCMFSA6A:7;
for
a being
Int-Location holds
(Comput ((P +* I),(Initialize s),n)) . a = (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n)) . a
by A48, A49, NAT_1:12, SCMFSA6A:7;
then A52:
Comput (
(P +* I),
(Initialize s),
n)
= Comput (
(P +* (I ';' (Stop SCM+FSA))),
(Initialize s),
n)
by A48, A49, A51, NAT_1:12, SCMFSA_2:61;
A53:
now assume A54:
I . (IC (Comput ((P +* I),(Initialize s),n))) = halt SCM+FSA
;
contradictionA55:
(P +* (Directed I)) /. (IC (Comput ((P +* (Directed I)),(Initialize s),n))) = (P +* (Directed I)) . (IC (Comput ((P +* (Directed I)),(Initialize s),n)))
by PBOOLE:143;
n < k
by A21, A49, NAT_1:12;
then A56:
CurInstr (
(P +* (Directed I)),
(Comput ((P +* (Directed I)),(Initialize s),n))) =
(P +* (Directed I)) . (IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n)))
by A19, A55
.=
(Directed I) . (IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n)))
by A50, A18, GRFUNC_1:2
.=
goto (card I)
by A48, A49, A54, NAT_1:12, SCMFSA8A:16
;
A57:
IC (Comput ((P +* (Directed I)),(Initialize s),(n + 1))) =
IC (Following ((P +* (Directed I)),(Comput ((P +* (Directed I)),(Initialize s),n))))
by EXTPRO_1:3
.=
card I
by A56, SCMFSA_2:69
.=
card (Directed I)
by SCMFSA8A:20
;
IC (Comput ((P +* (Directed I)),(Initialize s),(n + 1))) in dom (Directed I)
by A7, A49, SCMFSA8A:17;
hence
contradiction
by A57;
verum end;
A60:
CurInstr (
(P +* I),
(Comput ((P +* I),(Initialize s),n))) =
(P +* I) . (IC (Comput ((P +* I),(Initialize s),n)))
by PBOOLE:143
.=
I . (IC (Comput ((P +* I),(Initialize s),n)))
by A43, A48, A49, GRFUNC_1:2, NAT_1:12
.=
(Directed I) . (IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n)))
by A48, A49, A53, NAT_1:12, SCMFSA8A:16
.=
(P +* (I ';' (Stop SCM+FSA))) . (IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n)))
by A50, A14, GRFUNC_1:2
.=
CurInstr (
(P +* (I ';' (Stop SCM+FSA))),
(Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n)))
by PBOOLE:143
;
A61:
Comput (
(P +* (I ';' (Stop SCM+FSA))),
(Initialize s),
(n + 1)) =
Following (
(P +* (I ';' (Stop SCM+FSA))),
(Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n)))
by EXTPRO_1:3
.=
Exec (
(CurInstr ((P +* I),(Comput ((P +* I),(Initialize s),n)))),
(Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n)))
by A60
;
pseudo-LifeSpan (
s,
P,
(Directed I))
= k
by A7, Th50;
then A62:
IC (Comput ((P +* (Directed I)),(Initialize s),(n + 1))) = IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),(n + 1)))
by A19, A49;
A63:
dom (Directed I) = dom I
by FUNCT_4:99;
Comput (
(P +* I),
(Initialize s),
(n + 1))
= Following (
(P +* I),
(Comput ((P +* I),(Initialize s),n)))
by EXTPRO_1:3;
then A64:
Comput (
(P +* I),
(Initialize s),
(n + 1))
= Comput (
(P +* (I ';' (Stop SCM+FSA))),
(Initialize s),
(n + 1))
by A61, A52;
A65:
for
f being
FinSeq-Location holds
(Comput ((P +* I),(Initialize s),(n + 1))) . f = (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),(n + 1))) . f
by A64;
IC (Comput ((P +* (Directed I)),(Initialize s),(n + 1))) in dom (Directed I)
by A7, A49, SCMFSA8A:17;
hence
IC (Comput ((P +* I),(Initialize s),(n + 1))) in dom I
by A62, A63, A64;
( IC (Comput ((P +* I),(Initialize s),(n + 1))) = IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),(n + 1))) & DataPart (Comput ((P +* I),(Initialize s),(n + 1))) = DataPart (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),(n + 1))) )
thus
IC (Comput ((P +* I),(Initialize s),(n + 1))) = IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),(n + 1)))
by A64;
DataPart (Comput ((P +* I),(Initialize s),(n + 1))) = DataPart (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),(n + 1)))
for
a being
Int-Location holds
(Comput ((P +* I),(Initialize s),(n + 1))) . a = (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),(n + 1))) . a
by A64;
hence
DataPart (Comput ((P +* I),(Initialize s),(n + 1))) = DataPart (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),(n + 1)))
by A65, SCMFSA6A:7;
verum
end;
IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),k)) = card I
by A41;
then A66:
IC (Comput ((P +* (Directed I)),(Initialize s),(LifeSpan ((P +* (I ';' (Stop SCM+FSA))),(Initialize s))))) = card I
by A19, A46;
for n being Element of NAT st not IC (Comput ((P +* (Directed I)),(Initialize s),n)) in dom (Directed I) holds
LifeSpan ((P +* (I ';' (Stop SCM+FSA))),(Initialize s)) <= n
by A24, A46;
hence
LifeSpan ((P +* (I ';' (Stop SCM+FSA))),(Initialize s)) = pseudo-LifeSpan (s,P,(Directed I))
by A7, A66, A44, SCMFSA8A:def 4; ( ( for n being Element of NAT st n < pseudo-LifeSpan (s,P,(Directed I)) holds
IC (Comput ((P +* I),(Initialize s),n)) = IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n)) ) & ( for n being Element of NAT st n <= pseudo-LifeSpan (s,P,(Directed I)) holds
DataPart (Comput ((P +* I),(Initialize s),n)) = DataPart (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n)) ) )
A67:
S2[ 0 ]
proof
A68:
IC (Comput ((P +* I),(Initialize s),0)) =
IC (Initialize s)
by EXTPRO_1:2
.=
IC (Initialize s)
.=
0
by FUNCT_4:113
;
assume
0 < pseudo-LifeSpan (
s,
P,
(Directed I))
;
( IC (Comput ((P +* I),(Initialize s),0)) in dom I & IC (Comput ((P +* I),(Initialize s),0)) = IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),0)) & DataPart (Comput ((P +* I),(Initialize s),0)) = DataPart (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),0)) )
then
IC (Comput ((P +* (Directed I)),(Initialize s),0)) in dom (Directed I)
by A7, SCMFSA8A:17;
then
IC (Initialize s) in dom (Directed I)
by EXTPRO_1:2;
then
0 in dom (Directed I)
by MEMSTR_0:16;
hence
IC (Comput ((P +* I),(Initialize s),0)) in dom I
by A68, FUNCT_4:99;
( IC (Comput ((P +* I),(Initialize s),0)) = IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),0)) & DataPart (Comput ((P +* I),(Initialize s),0)) = DataPart (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),0)) )
thus
IC (Comput ((P +* I),(Initialize s),0)) = IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),0))
by A16, A68, EXTPRO_1:2;
DataPart (Comput ((P +* I),(Initialize s),0)) = DataPart (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),0))
thus DataPart (Comput ((P +* I),(Initialize s),0)) =
DataPart (Initialize s)
by EXTPRO_1:2
.=
DataPart (Initialize s)
.=
DataPart (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),0))
by EXTPRO_1:2
;
verum
end;
A69:
for n being Element of NAT holds S2[n]
from NAT_1:sch 1(A67, A47);
hence
for n being Element of NAT st n < pseudo-LifeSpan (s,P,(Directed I)) holds
IC (Comput ((P +* I),(Initialize s),n)) = IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n))
; for n being Element of NAT st n <= pseudo-LifeSpan (s,P,(Directed I)) holds
DataPart (Comput ((P +* I),(Initialize s),n)) = DataPart (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n))
let n be Element of NAT ; ( n <= pseudo-LifeSpan (s,P,(Directed I)) implies DataPart (Comput ((P +* I),(Initialize s),n)) = DataPart (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n)) )
assume A70:
n <= pseudo-LifeSpan (s,P,(Directed I))
; DataPart (Comput ((P +* I),(Initialize s),n)) = DataPart (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n))
per cases
( n < pseudo-LifeSpan (s,P,(Directed I)) or n = pseudo-LifeSpan (s,P,(Directed I)) )
by A70, XXREAL_0:1;
suppose A71:
n = pseudo-LifeSpan (
s,
P,
(Directed I))
;
DataPart (Comput ((P +* I),(Initialize s),n)) = DataPart (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n))per cases
( n = 0 or ex m being Nat st n = m + 1 )
by NAT_1:6;
suppose
ex
m being
Nat st
n = m + 1
;
DataPart (Comput ((P +* I),(Initialize s),n)) = DataPart (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n))then consider m being
Nat such that A73:
n = m + 1
;
reconsider m =
m as
Element of
NAT by ORDINAL1:def 12;
A74:
Comput (
(P +* (I ';' (Stop SCM+FSA))),
(Initialize s),
n)
= Following (
(P +* (I ';' (Stop SCM+FSA))),
(Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),m)))
by A73, EXTPRO_1:3;
set i =
CurInstr (
(P +* I),
(Comput ((P +* I),(Initialize s),m)));
A75:
Comput (
(P +* I),
(Initialize s),
n)
= Following (
(P +* I),
(Comput ((P +* I),(Initialize s),m)))
by A73, EXTPRO_1:3;
set l0 =
IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),m));
set l =
IC (Comput ((P +* I),(Initialize s),m));
A76:
m + 0 < pseudo-LifeSpan (
s,
P,
(Directed I))
by A71, A73, XREAL_1:6;
then A77:
IC (Comput ((P +* I),(Initialize s),m)) = IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),m))
by A69;
A78:
IC (Comput ((P +* I),(Initialize s),m)) in dom I
by A69, A76;
then A79:
IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),m)) in dom (Directed I)
by A77, FUNCT_4:99;
A82:
CurInstr (
(P +* I),
(Comput ((P +* I),(Initialize s),m))) =
(P +* I) . (IC (Comput ((P +* I),(Initialize s),m)))
by PBOOLE:143
.=
I . (IC (Comput ((P +* I),(Initialize s),m)))
by A43, A78, GRFUNC_1:2
;
A83:
Directed I c= I ';' (Stop SCM+FSA)
by SCMFSA6A:16;
then B84:
dom (Directed I) c= dom (I ';' (Stop SCM+FSA))
by RELAT_1:11;
A85:
(Directed I) . (IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),m))) =
(I ';' (Stop SCM+FSA)) . (IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),m)))
by A79, A83, GRFUNC_1:2
.=
(P +* (I ';' (Stop SCM+FSA))) . (IC (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),m)))
by A10, B84, A79, GRFUNC_1:2
.=
CurInstr (
(P +* (I ';' (Stop SCM+FSA))),
(Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),m)))
by PBOOLE:143
;
A86:
DataPart (Comput ((P +* I),(Initialize s),m)) = DataPart (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),m))
by A69, A76;
per cases
( CurInstr ((P +* I),(Comput ((P +* I),(Initialize s),m))) = halt SCM+FSA or CurInstr ((P +* I),(Comput ((P +* I),(Initialize s),m))) <> halt SCM+FSA )
;
suppose A87:
CurInstr (
(P +* I),
(Comput ((P +* I),(Initialize s),m)))
= halt SCM+FSA
;
DataPart (Comput ((P +* I),(Initialize s),n)) = DataPart (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n))then
CurInstr (
(P +* (I ';' (Stop SCM+FSA))),
(Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),m)))
= goto (card I)
by A78, A77, A82, A85, SCMFSA8A:16;
then
InsCode (CurInstr ((P +* (I ';' (Stop SCM+FSA))),(Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),m)))) = 6
by SCMFSA_2:23;
then A88:
InsCode (CurInstr ((P +* (I ';' (Stop SCM+FSA))),(Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),m)))) in {0,6,7,8}
by ENUMSET1:def 2;
thus DataPart (Comput ((P +* I),(Initialize s),n)) =
DataPart (Comput ((P +* I),(Initialize s),m))
by A75, A87, EXTPRO_1:def 3
.=
DataPart (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),m))
by A69, A76
.=
DataPart (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n))
by A74, A88, Th32
;
verum end; suppose
CurInstr (
(P +* I),
(Comput ((P +* I),(Initialize s),m)))
<> halt SCM+FSA
;
DataPart (Comput ((P +* I),(Initialize s),n)) = DataPart (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n))then
CurInstr (
(P +* (I ';' (Stop SCM+FSA))),
(Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),m)))
= CurInstr (
(P +* I),
(Comput ((P +* I),(Initialize s),m)))
by A78, A77, A82, A85, SCMFSA8A:16;
hence
DataPart (Comput ((P +* I),(Initialize s),n)) = DataPart (Comput ((P +* (I ';' (Stop SCM+FSA))),(Initialize s),n))
by A75, A74, A86, SCMFSA6C:4;
verum end; end; end; end; end; end;