let s be State of SCM+FSA ; for I being Program of SCM+FSA st I is_halting_on Initialized s holds
( ( for a being read-write Int-Location holds (IExec I,s) . a = (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 ))))) . a ) & ( for f being FinSeq-Location holds (IExec I,s) . 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 ) )
set A = NAT ;
let I be Program of SCM+FSA ; ( I is_halting_on Initialized s implies ( ( for a being read-write Int-Location holds (IExec I,s) . a = (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 ))))) . a ) & ( for f being FinSeq-Location holds (IExec I,s) . 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 ) ) )
set s0 = Initialized s;
set s1 = (Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ));
assume
I is_halting_on Initialized s
; ( ( for a being read-write Int-Location holds (IExec I,s) . a = (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 ))))) . a ) & ( for f being FinSeq-Location holds (IExec I,s) . 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 ) )
then A1:
ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))) halts_on (Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))
by SCMFSA7B:def 8;
hereby for f being FinSeq-Location holds (IExec I,s) . 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
let a be
read-write Int-Location ;
(IExec I,s) . a = (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 ))))) . a
not
a in NAT
by SCMFSA_2:84;
then
not
a in (dom s) /\ NAT
by XBOOLE_0:def 4;
then A3:
not
a in dom (s | NAT )
by RELAT_1:90;
s +* (Initialized I) = (Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))
by SCMFSA8A:13;
hence (IExec I,s) . a =
((Result (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))) +* (s | NAT )) . a
by SCMFSA6B:def 1
.=
(Result (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))) . a
by A3, FUNCT_4:12
.=
(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 ))))) . a
by A1, AMI_1:122
;
verum
end;
let f be FinSeq-Location ; (IExec I,s) . 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
not f in NAT
by SCMFSA_2:85;
then
not f in (dom s) /\ NAT
by XBOOLE_0:def 4;
then A5:
not f in dom (s | NAT )
by RELAT_1:90;
s +* (Initialized I) = (Initialized s) +* (I +* (Start-At 0 ,SCM+FSA ))
by SCMFSA8A:13;
hence (IExec I,s) . f =
((Result (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))) +* (s | NAT )) . f
by SCMFSA6B:def 1
.=
(Result (ProgramPart ((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))),((Initialized s) +* (I +* (Start-At 0 ,SCM+FSA )))) . f
by A5, FUNCT_4:12
.=
(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 A1, AMI_1:122
;
verum