let P be Instruction-Sequence of SCM+FSA; for s being State of SCM+FSA
for I being good Program of SCM+FSA st I is_halting_on Initialized s,P & I is_closed_on Initialized s,P holds
( (IExec (I,P,s)) . (intloc 0) = 1 & ( for k being Element of NAT holds (Comput ((P +* I),(Initialize (Initialized s)),k)) . (intloc 0) = 1 ) )
set a = intloc 0;
let s be State of SCM+FSA; for I being good Program of SCM+FSA st I is_halting_on Initialized s,P & I is_closed_on Initialized s,P holds
( (IExec (I,P,s)) . (intloc 0) = 1 & ( for k being Element of NAT holds (Comput ((P +* I),(Initialize (Initialized s)),k)) . (intloc 0) = 1 ) )
set A = NAT ;
let I be good Program of SCM+FSA; ( I is_halting_on Initialized s,P & I is_closed_on Initialized s,P implies ( (IExec (I,P,s)) . (intloc 0) = 1 & ( for k being Element of NAT holds (Comput ((P +* I),(Initialize (Initialized s)),k)) . (intloc 0) = 1 ) ) )
set s0 = Initialized s;
set s1 = Initialize (Initialized s);
set P1 = P +* I;
defpred S1[ Nat] means for n being Element of NAT st n <= $1 holds
(Comput ((P +* I),(Initialize (Initialized s)),n)) . (intloc 0) = (Initialized s) . (intloc 0);
assume
I is_halting_on Initialized s,P
; ( not I is_closed_on Initialized s,P or ( (IExec (I,P,s)) . (intloc 0) = 1 & ( for k being Element of NAT holds (Comput ((P +* I),(Initialize (Initialized s)),k)) . (intloc 0) = 1 ) ) )
then A2:
P +* I halts_on Initialize (Initialized s)
by SCMFSA7B:def 7;
A3:
S1[ 0 ]
assume A5:
I is_closed_on Initialized s,P
; ( (IExec (I,P,s)) . (intloc 0) = 1 & ( for k being Element of NAT holds (Comput ((P +* I),(Initialize (Initialized s)),k)) . (intloc 0) = 1 ) )
A6:
for k being Element of NAT st S1[k] holds
S1[k + 1]
proof
let k be
Element of
NAT ;
( S1[k] implies S1[k + 1] )
assume
S1[
k]
;
S1[k + 1]
let n be
Element of
NAT ;
( n <= k + 1 implies (Comput ((P +* I),(Initialize (Initialized s)),n)) . (intloc 0) = (Initialized s) . (intloc 0) )
assume A7:
n <= k + 1
;
(Comput ((P +* I),(Initialize (Initialized s)),n)) . (intloc 0) = (Initialized s) . (intloc 0)
for
i being
Element of
NAT st
i < k + 1 holds
IC (Comput ((P +* I),(Initialize (Initialized s)),i)) in dom I
by A5, SCMFSA7B:def 6;
hence
(Comput ((P +* I),(Initialize (Initialized s)),n)) . (intloc 0) = (Initialized s) . (intloc 0)
by A7, Th95;
verum
end;
A8:
for k being Element of NAT holds S1[k]
from NAT_1:sch 1(A3, A6);
thus (IExec (I,P,s)) . (intloc 0) =
(Result ((P +* I),(Initialize (Initialized s)))) . (intloc 0)
by MEMSTR_0:44
.=
(Result ((P +* I),(Initialize (Initialized s)))) . (intloc 0)
.=
(Comput ((P +* I),(Initialize (Initialized s)),(LifeSpan ((P +* I),(Initialize (Initialized s)))))) . (intloc 0)
by A2, EXTPRO_1:23
.=
1
by A9
; for k being Element of NAT holds (Comput ((P +* I),(Initialize (Initialized s)),k)) . (intloc 0) = 1
thus
for k being Element of NAT holds (Comput ((P +* I),(Initialize (Initialized s)),k)) . (intloc 0) = 1
by A9; verum