let p be Instruction-Sequence of SCM+FSA; :: thesis: for s being State of SCM+FSA

for I being really-closed Program of SCM+FSA

for a being Int-Location st not I destroys a & Initialize ((intloc 0) .--> 1) c= s & I c= p holds

for k being Nat holds (Comput (p,s,k)) . a = s . a

let s be State of SCM+FSA; :: thesis: for I being really-closed Program of SCM+FSA

for a being Int-Location st not I destroys a & Initialize ((intloc 0) .--> 1) c= s & I c= p holds

for k being Nat holds (Comput (p,s,k)) . a = s . a

let I be really-closed Program of SCM+FSA; :: thesis: for a being Int-Location st not I destroys a & Initialize ((intloc 0) .--> 1) c= s & I c= p holds

for k being Nat holds (Comput (p,s,k)) . a = s . a

let a be Int-Location; :: thesis: ( not I destroys a & Initialize ((intloc 0) .--> 1) c= s & I c= p implies for k being Nat holds (Comput (p,s,k)) . a = s . a )

assume A1: not I destroys a ; :: thesis: ( not Initialize ((intloc 0) .--> 1) c= s or not I c= p or for k being Nat holds (Comput (p,s,k)) . a = s . a )

defpred S_{1}[ Nat] means (Comput (p,s,$1)) . a = s . a;

assume Initialize ((intloc 0) .--> 1) c= s ; :: thesis: ( not I c= p or for k being Nat holds (Comput (p,s,k)) . a = s . a )

then A2: Initialized s = s by FUNCT_4:98;

assume A3: I c= p ; :: thesis: for k being Nat holds (Comput (p,s,k)) . a = s . a

_{1}[ 0 ]
;

thus for k being Nat holds S_{1}[k]
from NAT_1:sch 2(A8, A4); :: thesis: verum

for I being really-closed Program of SCM+FSA

for a being Int-Location st not I destroys a & Initialize ((intloc 0) .--> 1) c= s & I c= p holds

for k being Nat holds (Comput (p,s,k)) . a = s . a

let s be State of SCM+FSA; :: thesis: for I being really-closed Program of SCM+FSA

for a being Int-Location st not I destroys a & Initialize ((intloc 0) .--> 1) c= s & I c= p holds

for k being Nat holds (Comput (p,s,k)) . a = s . a

let I be really-closed Program of SCM+FSA; :: thesis: for a being Int-Location st not I destroys a & Initialize ((intloc 0) .--> 1) c= s & I c= p holds

for k being Nat holds (Comput (p,s,k)) . a = s . a

let a be Int-Location; :: thesis: ( not I destroys a & Initialize ((intloc 0) .--> 1) c= s & I c= p implies for k being Nat holds (Comput (p,s,k)) . a = s . a )

assume A1: not I destroys a ; :: thesis: ( not Initialize ((intloc 0) .--> 1) c= s or not I c= p or for k being Nat holds (Comput (p,s,k)) . a = s . a )

defpred S

assume Initialize ((intloc 0) .--> 1) c= s ; :: thesis: ( not I c= p or for k being Nat holds (Comput (p,s,k)) . a = s . a )

then A2: Initialized s = s by FUNCT_4:98;

assume A3: I c= p ; :: thesis: for k being Nat holds (Comput (p,s,k)) . a = s . a

A4: now :: thesis: for k being Nat st S_{1}[k] holds

S_{1}[k + 1]

A8:
SS

let k be Nat; :: thesis: ( S_{1}[k] implies S_{1}[k + 1] )

assume A5: S_{1}[k]
; :: thesis: S_{1}[k + 1]

set l = IC (Comput (p,s,k));

IC s = 0 by A2, MEMSTR_0:def 11;

then IC s in dom I by AFINSQ_1:65;

then A6: IC (Comput (p,s,k)) in dom I by AMISTD_1:21, A3;

then p . (IC (Comput (p,s,k))) = I . (IC (Comput (p,s,k))) by A3, GRFUNC_1:2;

then p . (IC (Comput (p,s,k))) in rng I by A6, FUNCT_1:def 3;

then A7: not p . (IC (Comput (p,s,k))) destroys a by A1;

(Comput (p,s,(k + 1))) . a = (Following (p,(Comput (p,s,k)))) . a by EXTPRO_1:3

.= (Exec ((p . (IC (Comput (p,s,k)))),(Comput (p,s,k)))) . a by PBOOLE:143

.= s . a by A5, A7, SCMFSA7B:20 ;

hence S_{1}[k + 1]
; :: thesis: verum

end;assume A5: S

set l = IC (Comput (p,s,k));

IC s = 0 by A2, MEMSTR_0:def 11;

then IC s in dom I by AFINSQ_1:65;

then A6: IC (Comput (p,s,k)) in dom I by AMISTD_1:21, A3;

then p . (IC (Comput (p,s,k))) = I . (IC (Comput (p,s,k))) by A3, GRFUNC_1:2;

then p . (IC (Comput (p,s,k))) in rng I by A6, FUNCT_1:def 3;

then A7: not p . (IC (Comput (p,s,k))) destroys a by A1;

(Comput (p,s,(k + 1))) . a = (Following (p,(Comput (p,s,k)))) . a by EXTPRO_1:3

.= (Exec ((p . (IC (Comput (p,s,k)))),(Comput (p,s,k)))) . a by PBOOLE:143

.= s . a by A5, A7, SCMFSA7B:20 ;

hence S

thus for k being Nat holds S