let s1, s2 be State of SCMPDS ; for I being parahalting Program of SCMPDS st Initialized (stop I) c= s1 & Initialized (stop I) c= s2 & s1,s2 equal_outside NAT holds
( LifeSpan s1 = LifeSpan s2 & Result s1, Result s2 equal_outside NAT )
let I be parahalting Program of SCMPDS ; ( Initialized (stop I) c= s1 & Initialized (stop I) c= s2 & s1,s2 equal_outside NAT implies ( LifeSpan s1 = LifeSpan s2 & Result s1, Result s2 equal_outside NAT ) )
set SI = stop I;
assume that
A1:
Initialized (stop I) c= s1
and
A2:
Initialized (stop I) c= s2
and
A3:
s1,s2 equal_outside NAT
; ( LifeSpan s1 = LifeSpan s2 & Result s1, Result s2 equal_outside NAT )
A4:
ProgramPart s2 halts_on s2
by A2, SCMPDS_4:63;
A5:
ProgramPart s1 halts_on s1
by A1, SCMPDS_4:63;
A6:
now let l be
Element of
NAT ;
( CurInstr (ProgramPart (Comput (ProgramPart s2),s2,l)),(Comput (ProgramPart s2),s2,l) = halt SCMPDS implies LifeSpan s1 <= l )assume A7:
CurInstr (ProgramPart (Comput (ProgramPart s2),s2,l)),
(Comput (ProgramPart s2),s2,l) = halt SCMPDS
;
LifeSpan s1 <= l
CurInstr (ProgramPart (Comput (ProgramPart s1),s1,l)),
(Comput (ProgramPart s1),s1,l) = CurInstr (ProgramPart (Comput (ProgramPart s2),s2,l)),
(Comput (ProgramPart s2),s2,l)
by A1, A2, A3, Th20;
hence
LifeSpan s1 <= l
by A5, A7, AMI_1:def 46;
verum end;
CurInstr (ProgramPart (Comput (ProgramPart s2),s2,(LifeSpan s1))),(Comput (ProgramPart s2),s2,(LifeSpan s1)) =
CurInstr (ProgramPart (Comput (ProgramPart s1),s1,(LifeSpan s1))),(Comput (ProgramPart s1),s1,(LifeSpan s1))
by A1, A2, A3, Th20
.=
halt SCMPDS
by A5, AMI_1:def 46
;
hence
LifeSpan s1 = LifeSpan s2
by A6, A4, AMI_1:def 46; Result s1, Result s2 equal_outside NAT
then A8:
Result s2 = Comput (ProgramPart s2),s2,(LifeSpan s1)
by A4, AMI_1:122;
Result s1 = Comput (ProgramPart s1),s1,(LifeSpan s1)
by A5, AMI_1:122;
hence
Result s1, Result s2 equal_outside NAT
by A1, A2, A3, A8, Th20; verum