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
( LifeSpan ((ProgramPart s1),s1) = LifeSpan ((ProgramPart s2),s2) & Result ((ProgramPart s1),s1), Result ((ProgramPart s2),s2) equal_outside NAT )
let I be InitHalting Program of SCM+FSA; ( Initialized I c= s1 & Initialized I c= s2 & s1,s2 equal_outside NAT implies ( LifeSpan ((ProgramPart s1),s1) = LifeSpan ((ProgramPart s2),s2) & Result ((ProgramPart s1),s1), Result ((ProgramPart s2),s2) equal_outside NAT ) )
assume that
A1:
Initialized I c= s1
and
A2:
Initialized I c= s2
and
A3:
s1,s2 equal_outside NAT
; ( LifeSpan ((ProgramPart s1),s1) = LifeSpan ((ProgramPart s2),s2) & Result ((ProgramPart s1),s1), Result ((ProgramPart s2),s2) equal_outside NAT )
A4:
ProgramPart s2 halts_on s2
by A2, SCM_HALT:5;
A5:
ProgramPart s1 halts_on s1
by A1, SCM_HALT:5;
A6:
now let l be
Element of
NAT ;
( CurInstr ((ProgramPart s2),(Comput ((ProgramPart s2),s2,l))) = halt SCM+FSA implies LifeSpan ((ProgramPart s1),s1) <= l )assume A7:
CurInstr (
(ProgramPart s2),
(Comput ((ProgramPart s2),s2,l)))
= halt SCM+FSA
;
LifeSpan ((ProgramPart s1),s1) <= l
CurInstr (
(ProgramPart s1),
(Comput ((ProgramPart s1),s1,l)))
= CurInstr (
(ProgramPart s2),
(Comput ((ProgramPart s2),s2,l)))
by A1, A2, A3, Th11;
hence
LifeSpan (
(ProgramPart s1),
s1)
<= l
by A5, A7, EXTPRO_1:def 14;
verum end;
CurInstr ((ProgramPart s2),(Comput ((ProgramPart s2),s2,(LifeSpan ((ProgramPart s1),s1))))) =
CurInstr ((ProgramPart s1),(Comput ((ProgramPart s1),s1,(LifeSpan ((ProgramPart s1),s1)))))
by A1, A2, A3, Th11
.=
halt SCM+FSA
by A5, EXTPRO_1:def 14
;
hence X:
LifeSpan ((ProgramPart s1),s1) = LifeSpan ((ProgramPart s2),s2)
by A6, A4, EXTPRO_1:def 14; Result ((ProgramPart s1),s1), Result ((ProgramPart s2),s2) equal_outside NAT
A8:
Result ((ProgramPart s2),s2) = Comput ((ProgramPart s2),s2,(LifeSpan ((ProgramPart s1),s1)))
by X, A2, EXTPRO_1:23, SCM_HALT:5;
Result ((ProgramPart s1),s1) = Comput ((ProgramPart s1),s1,(LifeSpan ((ProgramPart s1),s1)))
by A1, EXTPRO_1:23, SCM_HALT:5;
hence
Result ((ProgramPart s1),s1), Result ((ProgramPart s2),s2) equal_outside NAT
by A1, A2, A3, A8, Th11; verum