let P1, P2 be Instruction-Sequence of SCM+FSA; for s1, s2 being 0 -started State of SCM+FSA
for I being Program of SCM+FSA st I is_closed_on s1,P1 & I is_halting_on s1,P1 & I c= P1 & I c= P2 & ex k being Element of NAT st Comput (P1,s1,k) = s2 holds
Result (P1,s1) = Result (P2,s2)
let s1, s2 be 0 -started State of SCM+FSA; for I being Program of SCM+FSA st I is_closed_on s1,P1 & I is_halting_on s1,P1 & I c= P1 & I c= P2 & ex k being Element of NAT st Comput (P1,s1,k) = s2 holds
Result (P1,s1) = Result (P2,s2)
set A = NAT ;
set D = Data-Locations ;
let I be Program of SCM+FSA; ( I is_closed_on s1,P1 & I is_halting_on s1,P1 & I c= P1 & I c= P2 & ex k being Element of NAT st Comput (P1,s1,k) = s2 implies Result (P1,s1) = Result (P2,s2) )
assume A1:
I is_closed_on s1,P1
; ( not I is_halting_on s1,P1 or not I c= P1 or not I c= P2 or for k being Element of NAT holds not Comput (P1,s1,k) = s2 or Result (P1,s1) = Result (P2,s2) )
assume A3:
I is_halting_on s1,P1
; ( not I c= P1 or not I c= P2 or for k being Element of NAT holds not Comput (P1,s1,k) = s2 or Result (P1,s1) = Result (P2,s2) )
A4:
Start-At (0,SCM+FSA) c= s1
by MEMSTR_0:29;
A5:
s2 = Initialize s2
by MEMSTR_0:44;
assume
I c= P1
; ( not I c= P2 or for k being Element of NAT holds not Comput (P1,s1,k) = s2 or Result (P1,s1) = Result (P2,s2) )
then A6:
P1 = P1 +* I
by FUNCT_4:98;
assume
I c= P2
; ( for k being Element of NAT holds not Comput (P1,s1,k) = s2 or Result (P1,s1) = Result (P2,s2) )
then A7:
P2 = P2 +* I
by FUNCT_4:98;
A8:
s1 = Initialize s1
by A4, FUNCT_4:98;
then A9:
P1 halts_on s1
by A3, A6, SCMFSA7B:def 7;
then consider n being Element of NAT such that
A10:
CurInstr (P1,(Comput (P1,s1,n))) = halt SCM+FSA
by EXTPRO_1:29;
given k being Element of NAT such that A11:
Comput (P1,s1,k) = s2
; Result (P1,s1) = Result (P2,s2)
set s3 = Comput (P1,s1,k);
set P3 = P1;
A12:
IC in dom (Comput (P1,s1,k))
by MEMSTR_0:2;
IC (Comput (P1,s1,k)) =
IC s2
by A11
.=
IC (Initialize s2)
by A5
.=
0
by FUNCT_4:113
;
then
(IC ) .--> 0 c= Comput (P1,s1,k)
by A12, FUNCOP_1:73;
then
Start-At (0,SCM+FSA) c= Comput (P1,s1,k)
;
then A14:
Comput (P1,s1,k) = Initialize (Comput (P1,s1,k))
by FUNCT_4:98;
A15:
now let n be
Element of
NAT ;
IC (Comput (P1,(Comput (P1,s1,k)),n)) in dom I
IC (Comput (P1,(Comput (P1,s1,k)),n)) = IC (Comput (P1,s1,(k + n)))
by EXTPRO_1:4;
hence
IC (Comput (P1,(Comput (P1,s1,k)),n)) in dom I
by A1, A8, A6, SCMFSA7B:def 6;
verum end;
A16:
Comput (P1,s1,(n + k)) = Comput (P1,(Comput (P1,s1,k)),n)
by EXTPRO_1:4;
A17:
Comput (P1,s1,(n + k)) = Comput (P1,s1,n)
by A10, EXTPRO_1:5, NAT_1:11;
P1 halts_on Comput (P1,s1,k)
by A10, A17, A16, EXTPRO_1:29;
then A18:
I is_halting_on Comput (P1,s1,k),P1
by A14, A6, SCMFSA7B:def 7;
A19:
DataPart (Comput (P1,s1,k)) = DataPart s2
by A11;
consider k being Element of NAT such that
A20:
CurInstr (P1,(Comput (P1,s1,k))) = halt SCM+FSA
by A9, EXTPRO_1:29;
A22:
P1 . (IC (Comput (P1,s1,k))) = halt SCM+FSA
by A20, PBOOLE:143;
I is_closed_on Comput (P1,s1,k),P1
by A14, A15, A6, SCMFSA7B:def 6;
then
Result (P1,(Comput (P1,s1,k))) = Result (P2,s2)
by A5, A19, A14, A18, Th101, A6, A7;
hence
Result (P1,s1) = Result (P2,s2)
by A22, EXTPRO_1:8; verum