let s be State of SCM+FSA ; for Ig being good Program of SCM+FSA st ( Ig is parahalting or ( Ig is_closed_on Initialize s & Ig is_halting_on Initialize s ) ) holds
DataPart (Initialize (IExec Ig,s)) = DataPart (IExec Ig,s)
let Ig be good Program of SCM+FSA ; ( ( Ig is parahalting or ( Ig is_closed_on Initialize s & Ig is_halting_on Initialize s ) ) implies DataPart (Initialize (IExec Ig,s)) = DataPart (IExec Ig,s) )
set I = Ig;
set IE = IExec Ig,s;
assume A1:
( Ig is parahalting or ( Ig is_closed_on Initialize s & Ig is_halting_on Initialize s ) )
; DataPart (Initialize (IExec Ig,s)) = DataPart (IExec Ig,s)
A2:
Ig is_halting_on Initialize s
by A1, SCMFSA7B:25;
A3:
Ig is_closed_on Initialize s
by A1, SCMFSA7B:24;
now A4:
dom (Initialize (IExec Ig,s)) = the
carrier of
SCM+FSA
by PARTFUN1:def 4;
then A5:
dom (Initialize (IExec Ig,s)) = (Int-Locations \/ FinSeq-Locations ) \/ ({(IC SCM+FSA )} \/ NAT )
by SCMFSA_2:8, XBOOLE_1:4;
A6:
dom (IExec Ig,s) = the
carrier of
SCM+FSA
by PARTFUN1:def 4;
hence
dom (DataPart (Initialize (IExec Ig,s))) = (dom (IExec Ig,s)) /\ (Int-Locations \/ FinSeq-Locations )
by A4, RELAT_1:90, SCMFSA_2:127;
for x being set st x in dom (DataPart (Initialize (IExec Ig,s))) holds
(DataPart (Initialize (IExec Ig,s))) . b2 = (IExec Ig,s) . b2then A7:
dom (DataPart (Initialize (IExec Ig,s))) = Int-Locations \/ FinSeq-Locations
by A4, A6, A5, XBOOLE_1:21;
let x be
set ;
( x in dom (DataPart (Initialize (IExec Ig,s))) implies (DataPart (Initialize (IExec Ig,s))) . b1 = (IExec Ig,s) . b1 )assume A8:
x in dom (DataPart (Initialize (IExec Ig,s)))
;
(DataPart (Initialize (IExec Ig,s))) . b1 = (IExec Ig,s) . b1per cases
( x in Int-Locations or x in FinSeq-Locations )
by A8, A7, XBOOLE_0:def 3;
suppose
x in Int-Locations
;
(DataPart (Initialize (IExec Ig,s))) . b1 = (IExec Ig,s) . b1then reconsider x9 =
x as
Int-Location by SCMFSA_2:11;
hereby verum
per cases
( not x9 is read-only or x9 is read-only )
;
suppose
x9 is
read-only
;
(DataPart (Initialize (IExec Ig,s))) . x = (IExec Ig,s) . xthen A10:
x9 = intloc 0
by SF_MASTR:def 5;
thus (DataPart (Initialize (IExec Ig,s))) . x =
(Initialize (IExec Ig,s)) . x9
by A8, A7, FUNCT_1:72, SCMFSA_2:127
.=
1
by A10, SCMFSA6C:3
.=
(IExec Ig,s) . x
by A3, A2, A10, SCMFSA8C:96
;
verum end; end;
end; end; end; end;
hence
DataPart (Initialize (IExec Ig,s)) = DataPart (IExec Ig,s)
by FUNCT_1:68, SCMFSA_2:127; verum