let I be parahalting good Program of SCM+FSA ; for a being read-write Int-Location st I does_not_destroy a holds
Initialized (Times a,I) is halting
let a be read-write Int-Location ; ( I does_not_destroy a implies Initialized (Times a,I) is halting )
assume A1:
I does_not_destroy a
; Initialized (Times a,I) is halting
now let s be
State of
SCM+FSA ;
Initialized (Times a,I) is_halting_on b1per cases
( s . a > 0 or s . a <= 0 )
;
suppose
s . a > 0
;
Initialized (Times a,I) is_halting_on b1then A2:
(Initialize s) . a > 0
by SCMFSA6C:3;
A3:
Directed (loop (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))) = loop (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))
by SCMFSA6A:63;
(Initialize s) . (intloc 0 ) = 1
by SCMFSA6C:3;
then
Directed (loop (if=0 a,(Goto 2),(I ';' (SubFrom a,(intloc 0 ))))) is_pseudo-closed_on Initialize s
by A1, A2, A3, Th117;
then
Times a,
I is_halting_on Initialize s
by A2, Th68;
hence
Initialized (Times a,I) is_halting_on s
by Th22;
verum end; end; end;
hence
Initialized (Times a,I) is halting
by Th24; verum