let a be Int-Location ; for I being Program of SCM+FSA
for s being State of SCM+FSA
for k being Element of NAT st I is_closed_onInit s & I is_halting_onInit s & k < LifeSpan ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I))) & IC (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),(1 + k))) = (IC (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),k))) + 4 & DataPart (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),(1 + k))) = DataPart (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),k)) holds
( IC (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),((1 + k) + 1))) = (IC (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),(k + 1)))) + 4 & DataPart (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),((1 + k) + 1))) = DataPart (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),(k + 1))) )
let I be Program of SCM+FSA; for s being State of SCM+FSA
for k being Element of NAT st I is_closed_onInit s & I is_halting_onInit s & k < LifeSpan ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I))) & IC (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),(1 + k))) = (IC (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),k))) + 4 & DataPart (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),(1 + k))) = DataPart (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),k)) holds
( IC (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),((1 + k) + 1))) = (IC (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),(k + 1)))) + 4 & DataPart (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),((1 + k) + 1))) = DataPart (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),(k + 1))) )
set D = Int-Locations \/ FinSeq-Locations;
let s be State of SCM+FSA; for k being Element of NAT st I is_closed_onInit s & I is_halting_onInit s & k < LifeSpan ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I))) & IC (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),(1 + k))) = (IC (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),k))) + 4 & DataPart (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),(1 + k))) = DataPart (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),k)) holds
( IC (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),((1 + k) + 1))) = (IC (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),(k + 1)))) + 4 & DataPart (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),((1 + k) + 1))) = DataPart (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),(k + 1))) )
let k be Element of NAT ; ( I is_closed_onInit s & I is_halting_onInit s & k < LifeSpan ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I))) & IC (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),(1 + k))) = (IC (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),k))) + 4 & DataPart (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),(1 + k))) = DataPart (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),k)) implies ( IC (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),((1 + k) + 1))) = (IC (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),(k + 1)))) + 4 & DataPart (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),((1 + k) + 1))) = DataPart (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),(k + 1))) ) )
set s0 = Initialized s;
set sw = s +* (Initialized (while>0 (a,I)));
set sI = s +* (Initialized I);
set s0I = (Initialized s) +* (I +* (Start-At (0,SCM+FSA)));
set s0w = (Initialized s) +* ((while>0 (a,I)) +* (Start-At (0,SCM+FSA)));
set sK1 = Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),(1 + k));
set sK2 = Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),k);
set l3 = IC (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),k));
A1:
s +* (Initialized I) = (Initialized s) +* (I +* (Start-At (0,SCM+FSA)))
by SCMFSA8A:13;
A2:
s +* (Initialized (while>0 (a,I))) = (Initialized s) +* ((while>0 (a,I)) +* (Start-At (0,SCM+FSA)))
by SCMFSA8A:13;
assume
I is_closed_onInit s
; ( not I is_halting_onInit s or not k < LifeSpan ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I))) or not IC (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),(1 + k))) = (IC (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),k))) + 4 or not DataPart (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),(1 + k))) = DataPart (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),k)) or ( IC (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),((1 + k) + 1))) = (IC (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),(k + 1)))) + 4 & DataPart (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),((1 + k) + 1))) = DataPart (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),(k + 1))) ) )
then A3:
I is_closed_on Initialized s
by SCM_HALT:40;
assume
I is_halting_onInit s
; ( not k < LifeSpan ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I))) or not IC (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),(1 + k))) = (IC (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),k))) + 4 or not DataPart (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),(1 + k))) = DataPart (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),k)) or ( IC (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),((1 + k) + 1))) = (IC (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),(k + 1)))) + 4 & DataPart (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),((1 + k) + 1))) = DataPart (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),(k + 1))) ) )
then A4:
I is_halting_on Initialized s
by SCM_HALT:41;
assume A5:
k < LifeSpan ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)))
; ( not IC (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),(1 + k))) = (IC (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),k))) + 4 or not DataPart (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),(1 + k))) = DataPart (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),k)) or ( IC (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),((1 + k) + 1))) = (IC (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),(k + 1)))) + 4 & DataPart (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),((1 + k) + 1))) = DataPart (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),(k + 1))) ) )
assume A6:
IC (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),(1 + k))) = (IC (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),k))) + 4
; ( not DataPart (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),(1 + k))) = DataPart (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),k)) or ( IC (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),((1 + k) + 1))) = (IC (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),(k + 1)))) + 4 & DataPart (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),((1 + k) + 1))) = DataPart (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),(k + 1))) ) )
assume A7:
DataPart (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),(1 + k))) = DataPart (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),k))
; ( IC (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),((1 + k) + 1))) = (IC (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),(k + 1)))) + 4 & DataPart (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),((1 + k) + 1))) = DataPart (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),(k + 1))) )
hence
IC (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),((1 + k) + 1))) = (IC (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),(k + 1)))) + 4
by A5, A6, A3, A4, A1, A2, SCMFSA_9:44; DataPart (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),((1 + k) + 1))) = DataPart (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),(k + 1)))
thus
DataPart (Comput ((ProgramPart (s +* (Initialized (while>0 (a,I))))),(s +* (Initialized (while>0 (a,I)))),((1 + k) + 1))) = DataPart (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),(k + 1)))
by A5, A6, A7, A3, A4, A1, A2, SCMFSA_9:44; verum