let s be State of SCM+FSA; for I being InitHalting Program of SCM+FSA
for a being read-write Int-Location st s . a > 0 holds
ex s2 being State of SCM+FSA ex k being Element of NAT st
( s2 = s +* (Initialized (while>0 (a,I))) & k = (LifeSpan ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)))) + 3 & IC (Comput ((ProgramPart s2),s2,k)) = 0 & ( for b being Int-Location holds (Comput ((ProgramPart s2),s2,k)) . b = (IExec (I,s)) . b ) & ( for f being FinSeq-Location holds (Comput ((ProgramPart s2),s2,k)) . f = (IExec (I,s)) . f ) )
let I be InitHalting Program of SCM+FSA; for a being read-write Int-Location st s . a > 0 holds
ex s2 being State of SCM+FSA ex k being Element of NAT st
( s2 = s +* (Initialized (while>0 (a,I))) & k = (LifeSpan ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)))) + 3 & IC (Comput ((ProgramPart s2),s2,k)) = 0 & ( for b being Int-Location holds (Comput ((ProgramPart s2),s2,k)) . b = (IExec (I,s)) . b ) & ( for f being FinSeq-Location holds (Comput ((ProgramPart s2),s2,k)) . f = (IExec (I,s)) . f ) )
set D = Int-Locations \/ FinSeq-Locations;
let a be read-write Int-Location ; ( s . a > 0 implies ex s2 being State of SCM+FSA ex k being Element of NAT st
( s2 = s +* (Initialized (while>0 (a,I))) & k = (LifeSpan ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)))) + 3 & IC (Comput ((ProgramPart s2),s2,k)) = 0 & ( for b being Int-Location holds (Comput ((ProgramPart s2),s2,k)) . b = (IExec (I,s)) . b ) & ( for f being FinSeq-Location holds (Comput ((ProgramPart s2),s2,k)) . f = (IExec (I,s)) . f ) ) )
assume A1:
s . a > 0
; ex s2 being State of SCM+FSA ex k being Element of NAT st
( s2 = s +* (Initialized (while>0 (a,I))) & k = (LifeSpan ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)))) + 3 & IC (Comput ((ProgramPart s2),s2,k)) = 0 & ( for b being Int-Location holds (Comput ((ProgramPart s2),s2,k)) . b = (IExec (I,s)) . b ) & ( for f being FinSeq-Location holds (Comput ((ProgramPart s2),s2,k)) . f = (IExec (I,s)) . f ) )
set Is = (Initialized s) +* (I +* (Start-At (0,SCM+FSA)));
set P = while>0 (a,I);
set s1 = s +* (Initialized I);
take s2 = s +* (Initialized (while>0 (a,I))); ex k being Element of NAT st
( s2 = s +* (Initialized (while>0 (a,I))) & k = (LifeSpan ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)))) + 3 & IC (Comput ((ProgramPart s2),s2,k)) = 0 & ( for b being Int-Location holds (Comput ((ProgramPart s2),s2,k)) . b = (IExec (I,s)) . b ) & ( for f being FinSeq-Location holds (Comput ((ProgramPart s2),s2,k)) . f = (IExec (I,s)) . f ) )
take k = (LifeSpan ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)))) + 3; ( s2 = s +* (Initialized (while>0 (a,I))) & k = (LifeSpan ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)))) + 3 & IC (Comput ((ProgramPart s2),s2,k)) = 0 & ( for b being Int-Location holds (Comput ((ProgramPart s2),s2,k)) . b = (IExec (I,s)) . b ) & ( for f being FinSeq-Location holds (Comput ((ProgramPart s2),s2,k)) . f = (IExec (I,s)) . f ) )
thus
( s2 = s +* (Initialized (while>0 (a,I))) & k = (LifeSpan ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)))) + 3 )
; ( IC (Comput ((ProgramPart s2),s2,k)) = 0 & ( for b being Int-Location holds (Comput ((ProgramPart s2),s2,k)) . b = (IExec (I,s)) . b ) & ( for f being FinSeq-Location holds (Comput ((ProgramPart s2),s2,k)) . f = (IExec (I,s)) . f ) )
A2:
I is_halting_onInit s
by SCM_HALT:36;
then X:
ProgramPart (s +* (Initialized I)) halts_on s +* (Initialized I)
by SCM_HALT:def 5;
s +* (Initialized I) = (Initialized s) +* (I +* (Start-At (0,SCM+FSA)))
by SCMFSA8A:13;
then A3:
I is_halting_on Initialized s
by X, SCMFSA7B:def 8;
A4:
I is_closed_onInit s
by SCM_HALT:35;
hence
IC (Comput ((ProgramPart s2),s2,k)) = 0
by A1, A2, Th21; ( ( for b being Int-Location holds (Comput ((ProgramPart s2),s2,k)) . b = (IExec (I,s)) . b ) & ( for f being FinSeq-Location holds (Comput ((ProgramPart s2),s2,k)) . f = (IExec (I,s)) . f ) )
set s4 = Comput ((ProgramPart s2),s2,k);
set s3 = Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),(LifeSpan ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)))));
X:
s +* (Initialized I) = (Initialized s) +* (I +* (Start-At (0,SCM+FSA)))
by SCMFSA8A:13;
XX:
s +* (Initialized I) = (Initialized s) +* (I +* (Start-At (0,SCM+FSA)))
by SCMFSA8A:13;
A5: Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),(LifeSpan ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I))))) =
Comput ((ProgramPart ((Initialized s) +* (I +* (Start-At (0,SCM+FSA))))),((Initialized s) +* (I +* (Start-At (0,SCM+FSA)))),(LifeSpan ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)))))
by X
.=
Comput ((ProgramPart ((Initialized s) +* (I +* (Start-At (0,SCM+FSA))))),((Initialized s) +* (I +* (Start-At (0,SCM+FSA)))),(LifeSpan ((ProgramPart ((Initialized s) +* (I +* (Start-At (0,SCM+FSA))))),((Initialized s) +* (I +* (Start-At (0,SCM+FSA)))))))
by XX
;
A6:
DataPart (Comput ((ProgramPart s2),s2,k)) = DataPart (Comput ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I)),(LifeSpan ((ProgramPart (s +* (Initialized I))),(s +* (Initialized I))))))
by A1, A2, A4, Th21;
hereby for f being FinSeq-Location holds (Comput ((ProgramPart s2),s2,k)) . f = (IExec (I,s)) . f
let b be
Int-Location ;
(Comput ((ProgramPart s2),s2,k)) . b = (IExec (I,s)) . bthus (Comput ((ProgramPart s2),s2,k)) . b =
(Comput ((ProgramPart ((Initialized s) +* (I +* (Start-At (0,SCM+FSA))))),((Initialized s) +* (I +* (Start-At (0,SCM+FSA)))),(LifeSpan ((ProgramPart ((Initialized s) +* (I +* (Start-At (0,SCM+FSA))))),((Initialized s) +* (I +* (Start-At (0,SCM+FSA)))))))) . b
by A5, A6, SCMFSA6A:38
.=
(IExec (I,s)) . b
by A3, Th10
;
verum
end;
hereby verum
let f be
FinSeq-Location ;
(Comput ((ProgramPart s2),s2,k)) . f = (IExec (I,s)) . fthus (Comput ((ProgramPart s2),s2,k)) . f =
(Comput ((ProgramPart ((Initialized s) +* (I +* (Start-At (0,SCM+FSA))))),((Initialized s) +* (I +* (Start-At (0,SCM+FSA)))),(LifeSpan ((ProgramPart ((Initialized s) +* (I +* (Start-At (0,SCM+FSA))))),((Initialized s) +* (I +* (Start-At (0,SCM+FSA)))))))) . f
by A5, A6, SCMFSA6A:38
.=
(IExec (I,s)) . f
by A3, SCMFSA8C:87
;
verum
end;