let s1, s2 be State of SCM+FSA; for I being InitHalting Program of SCM+FSA st Initialized I c= s1 & Initialized I c= s2 & s1,s2 equal_outside NAT holds
for k being Element of NAT holds
( Comput ((ProgramPart s1),s1,k), Comput ((ProgramPart s2),s2,k) equal_outside NAT & CurInstr ((ProgramPart s1),(Comput ((ProgramPart s1),s1,k))) = CurInstr ((ProgramPart s2),(Comput ((ProgramPart s2),s2,k))) )
let I be InitHalting Program of SCM+FSA; ( Initialized I c= s1 & Initialized I c= s2 & s1,s2 equal_outside NAT implies for k being Element of NAT holds
( Comput ((ProgramPart s1),s1,k), Comput ((ProgramPart s2),s2,k) equal_outside NAT & CurInstr ((ProgramPart s1),(Comput ((ProgramPart s1),s1,k))) = CurInstr ((ProgramPart s2),(Comput ((ProgramPart s2),s2,k))) ) )
assume that
A1:
Initialized I c= s1
and
A2:
Initialized I c= s2
and
A3:
s1,s2 equal_outside NAT
; for k being Element of NAT holds
( Comput ((ProgramPart s1),s1,k), Comput ((ProgramPart s2),s2,k) equal_outside NAT & CurInstr ((ProgramPart s1),(Comput ((ProgramPart s1),s1,k))) = CurInstr ((ProgramPart s2),(Comput ((ProgramPart s2),s2,k))) )
A4:
I c= s2
by A2, Th13;
A5:
I c= s1
by A1, Th13;
let k be Element of NAT ; ( Comput ((ProgramPart s1),s1,k), Comput ((ProgramPart s2),s2,k) equal_outside NAT & CurInstr ((ProgramPart s1),(Comput ((ProgramPart s1),s1,k))) = CurInstr ((ProgramPart s2),(Comput ((ProgramPart s2),s2,k))) )
A6:
IC (Comput ((ProgramPart s1),s1,k)) in dom I
by A1, Def1;
A7:
IC (Comput ((ProgramPart s2),s2,k)) in dom I
by A2, Def1;
U1:
ProgramPart (Comput ((ProgramPart s1),s1,k)) = ProgramPart s1
by AMI_1:123;
U2:
ProgramPart (Comput ((ProgramPart s2),s2,k)) = ProgramPart s2
by AMI_1:123;
for m being Element of NAT st m < k holds
IC (Comput ((ProgramPart s2),s2,m)) in dom I
by A2, Def1;
hence
Comput ((ProgramPart s1),s1,k), Comput ((ProgramPart s2),s2,k) equal_outside NAT
by A3, A5, A4, SCMFSA6B:21; CurInstr ((ProgramPart s1),(Comput ((ProgramPart s1),s1,k))) = CurInstr ((ProgramPart s2),(Comput ((ProgramPart s2),s2,k)))
then A8:
IC (Comput ((ProgramPart s1),s1,k)) = IC (Comput ((ProgramPart s2),s2,k))
by COMPOS_1:24;
Y:
(ProgramPart s2) /. (IC (Comput ((ProgramPart s2),s2,k))) = (Comput ((ProgramPart s2),s2,k)) . (IC (Comput ((ProgramPart s2),s2,k)))
by U2, COMPOS_1:38;
Z:
(ProgramPart s1) /. (IC (Comput ((ProgramPart s1),s1,k))) = (Comput ((ProgramPart s1),s1,k)) . (IC (Comput ((ProgramPart s1),s1,k)))
by U1, COMPOS_1:38;
thus CurInstr ((ProgramPart s2),(Comput ((ProgramPart s2),s2,k))) =
s2 . (IC (Comput ((ProgramPart s2),s2,k)))
by Y, AMI_1:54
.=
I . (IC (Comput ((ProgramPart s2),s2,k)))
by A4, A7, GRFUNC_1:8
.=
s1 . (IC (Comput ((ProgramPart s1),s1,k)))
by A5, A8, A6, GRFUNC_1:8
.=
CurInstr ((ProgramPart s1),(Comput ((ProgramPart s1),s1,k)))
by Z, AMI_1:54
; verum