let I be good InitHalting Program of SCM+FSA ; :: thesis: 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 ; :: thesis: ( I does_not_destroy a implies Initialized (Times a,I) is halting )
assume A1:
I does_not_destroy a
; :: thesis: Initialized (Times a,I) is halting
now let s be
State of
SCM+FSA ;
:: thesis: Initialized (Times a,I) is_halting_on b1per cases
( s . a > 0 or s . a <= 0 )
;
suppose
s . a > 0
;
:: thesis: Initialized (Times a,I) is_halting_on b1then A3:
(
(Initialize s) . (intloc 0 ) = 1 &
(Initialize s) . a > 0 )
by SCMFSA6C:3;
Directed (loop (if=0 a,(Goto (insloc 2)),(I ';' (SubFrom a,(intloc 0 ))))) = loop (if=0 a,(Goto (insloc 2)),(I ';' (SubFrom a,(intloc 0 ))))
by SCMFSA6A:63;
then
Directed (loop (if=0 a,(Goto (insloc 2)),(I ';' (SubFrom a,(intloc 0 ))))) is_pseudo-closed_on Initialize s
by A1, A3, Th73;
then
Times a,
I is_halting_on Initialize s
by A3, SCMFSA8C:68;
hence
Initialized (Times a,I) is_halting_on s
by SCMFSA8C:22;
:: thesis: verum end; end; end;
hence
Initialized (Times a,I) is halting
by SCMFSA8C:24; :: thesis: verum