let s1, s2 be State of SCM+FSA ; :: thesis: 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 ; :: thesis: ( 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 ; :: thesis: ( 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 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, AMI_1:def 46 ;
hence X: LifeSpan (ProgramPart s1),s1 = LifeSpan (ProgramPart s2),s2 by A6, A4, AMI_1:def 46; :: thesis: Result (ProgramPart s1),s1, Result (ProgramPart s2),s2 equal_outside NAT
ProgramPart s2 halts_on s2 by A2, SCM_HALT:5;
then A8: Result (ProgramPart s2),s2 = Comput (ProgramPart s2),s2,(LifeSpan (ProgramPart s1),s1) by X, AMI_1:122;
ProgramPart s1 halts_on s1 by A1, SCM_HALT:5;
then Result (ProgramPart s1),s1 = Comput (ProgramPart s1),s1,(LifeSpan (ProgramPart s1),s1) by AMI_1:122;
hence Result (ProgramPart s1),s1, Result (ProgramPart s2),s2 equal_outside NAT by A1, A2, A3, A8, Th11; :: thesis: verum