set SAt = Start-At (0,SCM+FSA);
let I be Program of SCM+FSA; ( I is parahalting iff for s being State of SCM+FSA
for P being the Instructions of SCM+FSA -valued ManySortedSet of NAT holds I is_halting_on s,P )
thus
( I is parahalting implies for s being State of SCM+FSA
for P being the Instructions of SCM+FSA -valued ManySortedSet of NAT holds I is_halting_on s,P )
( ( for s being State of SCM+FSA
for P being the Instructions of SCM+FSA -valued ManySortedSet of NAT holds I is_halting_on s,P ) implies I is parahalting )
assume A4:
for s being State of SCM+FSA
for P being the Instructions of SCM+FSA -valued ManySortedSet of NAT holds I is_halting_on s,P
; I is parahalting
let s be State of SCM+FSA; SCMFSA6B:def 3,EXTPRO_1:def 10 ( not Initialize I c= s or for b1 being set holds
( not ProgramPart (Initialize I) c= b1 or b1 halts_on s ) )
assume A5:
Initialize I c= s
; for b1 being set holds
( not ProgramPart (Initialize I) c= b1 or b1 halts_on s )
let P be the Instructions of SCM+FSA -valued ManySortedSet of NAT ; ( not ProgramPart (Initialize I) c= P or P halts_on s )
assume A6:
ProgramPart (Initialize I) c= P
; P halts_on s
ProgramPart (Initialize I) =
(ProgramPart I) +* (ProgramPart (Start-At (0,SCM+FSA)))
by FUNCT_4:75
.=
(ProgramPart I) +* {}
by COMPOS_1:27
.=
ProgramPart I
by FUNCT_4:22
;
then A7:
P = P +* (ProgramPart I)
by A6, FUNCT_4:79;
A8:
s +* (Initialize I) = s
by A5, FUNCT_4:79;
I is_halting_on s,P
by A4;
hence
P halts_on s
by A7, A8, Def8; verum