let A be Euclidean preIfWhileAlgebra; :: thesis: for X being non empty countable set
for b being Element of X
for g being Euclidean ExecutionFunction of A, Funcs X,INT ,(Funcs X,INT ) \ b,0
for x, n, s, i being Variable of g st ex d being Function st
( d . x = 0 & d . n = 1 & d . s = 2 & d . i = 3 & d . b = 4 ) holds
(s := 1) \; (for-do (i := 1),(i leq n),(i += 1),(s *= x)) is_terminating_wrt g

let X be non empty countable set ; :: thesis: for b being Element of X
for g being Euclidean ExecutionFunction of A, Funcs X,INT ,(Funcs X,INT ) \ b,0
for x, n, s, i being Variable of g st ex d being Function st
( d . x = 0 & d . n = 1 & d . s = 2 & d . i = 3 & d . b = 4 ) holds
(s := 1) \; (for-do (i := 1),(i leq n),(i += 1),(s *= x)) is_terminating_wrt g

let b be Element of X; :: thesis: for g being Euclidean ExecutionFunction of A, Funcs X,INT ,(Funcs X,INT ) \ b,0
for x, n, s, i being Variable of g st ex d being Function st
( d . x = 0 & d . n = 1 & d . s = 2 & d . i = 3 & d . b = 4 ) holds
(s := 1) \; (for-do (i := 1),(i leq n),(i += 1),(s *= x)) is_terminating_wrt g

let g be Euclidean ExecutionFunction of A, Funcs X,INT ,(Funcs X,INT ) \ b,0 ; :: thesis: for x, n, s, i being Variable of g st ex d being Function st
( d . x = 0 & d . n = 1 & d . s = 2 & d . i = 3 & d . b = 4 ) holds
(s := 1) \; (for-do (i := 1),(i leq n),(i += 1),(s *= x)) is_terminating_wrt g

set S = Funcs X,INT ;
set T = (Funcs X,INT ) \ b,0 ;
let x, n, s, i be Variable of g; :: thesis: ( ex d being Function st
( d . x = 0 & d . n = 1 & d . s = 2 & d . i = 3 & d . b = 4 ) implies (s := 1) \; (for-do (i := 1),(i leq n),(i += 1),(s *= x)) is_terminating_wrt g )

given d being Function such that 00: ( d . x = 0 & d . n = 1 & d . s = 2 & d . i = 3 & d . b = 4 ) ; :: thesis: (s := 1) \; (for-do (i := 1),(i leq n),(i += 1),(s *= x)) is_terminating_wrt g
D1: ( s <> i & s <> n & i <> n & b <> i & n <> b ) by 00;
set t = . 1,A,g;
let q be Element of Funcs X,INT ; :: according to AOFA_000:def 37 :: thesis: [q,((s := 1) \; (for-do (i := 1),(i leq n),(i += 1),(s *= x)))] in TerminatingPrograms A,(Funcs X,INT ),((Funcs X,INT ) \ b,0 ),g
02: [q,(s := 1)] in TerminatingPrograms A,(Funcs X,INT ),((Funcs X,INT ) \ b,0 ),g by AOFA_000:def 36;
03: for q being Element of Funcs X,INT holds
( (g . q,(s *= x)) . n = q . n & (g . q,(s *= x)) . i = q . i ) by D1, Th213;
ex d' being Function st
( d' . b = 0 & d' . n = 1 & d' . i = 2 ) by D1, Lem3;
then for-do (i := (. 1,A,g)),(i leq n),(i += 1),(s *= x) is_terminating_wrt g by 03, ThT4, AOFA_000:104;
then [(g . q,(s := 1)),(for-do (i := (. 1,A,g)),(i leq n),(i += 1),(s *= x))] in TerminatingPrograms A,(Funcs X,INT ),((Funcs X,INT ) \ b,0 ),g by AOFA_000:def 37;
hence [q,((s := 1) \; (for-do (i := 1),(i leq n),(i += 1),(s *= x)))] in TerminatingPrograms A,(Funcs X,INT ),((Funcs X,INT ) \ b,0 ),g by 02, AOFA_000:def 35; :: thesis: verum