let s1, s2 be State of ; for I being parahalting Program of st I +* (Start-At (insloc 0 )) c= s1 & I +* (Start-At (insloc 0 )) 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 ; ( I +* (Start-At (insloc 0 )) c= s1 & I +* (Start-At (insloc 0 )) c= s2 & s1,s2 equal_outside NAT implies ( LifeSpan s1 = LifeSpan s2 & Result s1, Result s2 equal_outside NAT ) )
assume that
A1:
I +* (Start-At (insloc 0 )) c= s1
and
A2:
I +* (Start-At (insloc 0 )) 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, Th18;
A5:
ProgramPart s1 halts_on s1
by A1, Th18;
CurInstr (Computation s2,(LifeSpan s1)) =
CurInstr (Computation s1,(LifeSpan s1))
by A1, A2, A3, Th28
.=
halt SCM+FSA
by A5, AMI_1:def 46
;
hence K:
LifeSpan s1 = LifeSpan s2
by A6, A4, AMI_1:def 46; Result s1, Result s2 equal_outside NAT
then
ProgramPart s2 halts_on s2
by A2, Th18;
then A8:
Result s2 = Computation s2,(LifeSpan s1)
by A2, Th18, AMI_1:122, K;
ProgramPart s1 halts_on s1
by A1, Th18;
then
Result s1 = Computation s1,(LifeSpan s1)
by A1, Th18, AMI_1:122;
hence
Result s1, Result s2 equal_outside NAT
by A1, A2, A3, A8, Th28; verum