let A be preIfWhileAlgebra; for S being non empty set
for T being Subset of S
for s being Element of S
for f being ExecutionFunction of A,S,T
for C, I being Element of A st C is_terminating_wrt f & I is_terminating_wrt f & f iteration_terminates_for I \; C,f . s,C holds
[s,(while C,I)] in TerminatingPrograms A,S,T,f
let S be non empty set ; for T being Subset of S
for s being Element of S
for f being ExecutionFunction of A,S,T
for C, I being Element of A st C is_terminating_wrt f & I is_terminating_wrt f & f iteration_terminates_for I \; C,f . s,C holds
[s,(while C,I)] in TerminatingPrograms A,S,T,f
let T be Subset of S; for s being Element of S
for f being ExecutionFunction of A,S,T
for C, I being Element of A st C is_terminating_wrt f & I is_terminating_wrt f & f iteration_terminates_for I \; C,f . s,C holds
[s,(while C,I)] in TerminatingPrograms A,S,T,f
let s be Element of S; for f being ExecutionFunction of A,S,T
for C, I being Element of A st C is_terminating_wrt f & I is_terminating_wrt f & f iteration_terminates_for I \; C,f . s,C holds
[s,(while C,I)] in TerminatingPrograms A,S,T,f
let f be ExecutionFunction of A,S,T; for C, I being Element of A st C is_terminating_wrt f & I is_terminating_wrt f & f iteration_terminates_for I \; C,f . s,C holds
[s,(while C,I)] in TerminatingPrograms A,S,T,f
let C, I be Element of A; ( C is_terminating_wrt f & I is_terminating_wrt f & f iteration_terminates_for I \; C,f . s,C implies [s,(while C,I)] in TerminatingPrograms A,S,T,f )
assume that
A1:
C is_terminating_wrt f
and
A2:
I is_terminating_wrt f
; ( not f iteration_terminates_for I \; C,f . s,C or [s,(while C,I)] in TerminatingPrograms A,S,T,f )
given r being non empty FinSequence of S such that A3:
r . 1 = f . s,C
and
A4:
r . (len r) nin T
and
A5:
for i being Nat st 1 <= i & i < len r holds
( r . i in T & r . (i + 1) = f . (r . i),(I \; C) )
; AOFA_000:def 33 [s,(while C,I)] in TerminatingPrograms A,S,T,f
A6:
now let i be
Nat;
( 1 <= i & i < len r implies ( r . i in T & [(r . i),(I \; C)] in TerminatingPrograms A,S,T,f & r . (i + 1) = f . (r . i),(I \; C) ) )assume that A7:
1
<= i
and A8:
i < len r
;
( r . i in T & [(r . i),(I \; C)] in TerminatingPrograms A,S,T,f & r . (i + 1) = f . (r . i),(I \; C) )thus
r . i in T
by A5, A7, A8;
( [(r . i),(I \; C)] in TerminatingPrograms A,S,T,f & r . (i + 1) = f . (r . i),(I \; C) )then reconsider s =
r . i as
Element of
S ;
A9:
[s,I] in TerminatingPrograms A,
S,
T,
f
by A2, Def37;
[(f . s,I),C] in TerminatingPrograms A,
S,
T,
f
by A1, Def37;
hence
(
[(r . i),(I \; C)] in TerminatingPrograms A,
S,
T,
f &
r . (i + 1) = f . (r . i),
(I \; C) )
by A5, A7, A8, A9, Def35;
verum end;
[s,C] in TerminatingPrograms A,S,T,f
by A1, Def37;
hence
[s,(while C,I)] in TerminatingPrograms A,S,T,f
by A3, A4, A6, Def35; verum