let I be preProgram of SCM+FSA ; for k being Element of NAT holds ProgramPart (Relocated (Directed I),k) = Directed (ProgramPart (Relocated I,k)),((card I) + k)
let k be Element of NAT ; ProgramPart (Relocated (Directed I),k) = Directed (ProgramPart (Relocated I,k)),((card I) + k)
A1:
dom (ProgramPart I) = dom I
by RELAT_1:209;
A2: dom (ProgramPart (Relocated I,k)) =
dom (Reloc (ProgramPart I),k)
by AMISTD_2:69
.=
{ (m + k) where m is Element of NAT : m in dom I }
by A1, AMISTD_2:70
;
A3: dom (ProgramPart (Directed I)) =
dom (Directed I)
by RELAT_1:209
.=
dom I
by FUNCT_4:105
;
A4: dom (ProgramPart (Relocated (Directed I),k)) =
dom (Reloc (ProgramPart (Directed I)),k)
by AMISTD_2:69
.=
{ (m + k) where m is Element of NAT : m in dom I }
by A3, AMISTD_2:70
;
A5:
now let x be
set ;
( x in { (m + k) where m is Element of NAT : m in dom I } implies (ProgramPart (Relocated (Directed I),k)) . x = (Directed (ProgramPart (Relocated I,k)),((card I) + k)) . x )assume A6:
x in { (m + k) where m is Element of NAT : m in dom I }
;
(ProgramPart (Relocated (Directed I),k)) . x = (Directed (ProgramPart (Relocated I,k)),((card I) + k)) . xthen consider n being
Element of
NAT such that A7:
x = n + k
and A8:
n in dom I
;
dom (Directed I) = dom I
by FUNCT_4:105;
then reconsider i =
(Directed I) . n as
Instruction of
SCM+FSA by A8, FUNCT_1:176;
reconsider i0 =
I . n as
Instruction of
SCM+FSA by A8, FUNCT_1:176;
A9:
now per cases
( i0 = halt SCM+FSA or i0 <> halt SCM+FSA )
;
suppose A10:
i0 = halt SCM+FSA
;
(Directed (ProgramPart (Relocated I,k)),((card I) + k)) . x = IncAddr i,kthen A11:
i = goto (card I)
by A8, FUNCT_4:112;
A12:
(ProgramPart (Relocated I,k)) . x =
(Relocated I,k) . x
by A2, A6, Th64
.=
IncAddr i0,
k
by A1, A7, A8, AMISTD_2:76
.=
halt SCM+FSA
by A10, SCMFSA_4:8
;
then
(ProgramPart (Relocated I,k)) . x in {(halt SCM+FSA )}
by TARSKI:def 1;
then
(ProgramPart (Relocated I,k)) . x in dom ((halt SCM+FSA ) .--> (goto ((card I) + k)))
by FUNCOP_1:19;
then
x in dom (((halt SCM+FSA ) .--> (goto ((card I) + k))) * (ProgramPart (Relocated I,k)))
by A2, A6, FUNCT_1:21;
hence (Directed (ProgramPart (Relocated I,k)),((card I) + k)) . x =
(((halt SCM+FSA ) .--> (goto ((card I) + k))) * (ProgramPart (Relocated I,k))) . x
by FUNCT_4:14
.=
((halt SCM+FSA ) .--> (goto ((card I) + k))) . ((ProgramPart (Relocated I,k)) . x)
by A2, A6, FUNCT_1:23
.=
goto ((card I) + k)
by A12, FUNCOP_1:87
.=
IncAddr i,
k
by A11, SCMFSA_4:14
;
verum end; suppose A13:
i0 <> halt SCM+FSA
;
(Directed (ProgramPart (Relocated I,k)),((card I) + k)) . x = IncAddr i,kA14:
(ProgramPart (Relocated I,k)) . x =
(Relocated I,k) . x
by A2, A6, Th64
.=
IncAddr i0,
k
by A1, A7, A8, AMISTD_2:76
;
InsCode i0 <> 0
by A13, SCMFSA_2:122;
then
IncAddr i0,
k <> halt SCM+FSA
by SCMFSA_2:124, SCMFSA_4:22;
then
not
(ProgramPart (Relocated I,k)) . x in {(halt SCM+FSA )}
by A14, TARSKI:def 1;
then
not
(ProgramPart (Relocated I,k)) . x in dom ((halt SCM+FSA ) .--> (goto ((card I) + k)))
by FUNCOP_1:19;
then
not
x in dom (((halt SCM+FSA ) .--> (goto ((card I) + k))) * (ProgramPart (Relocated I,k)))
by FUNCT_1:21;
hence (Directed (ProgramPart (Relocated I,k)),((card I) + k)) . x =
(ProgramPart (Relocated I,k)) . x
by FUNCT_4:12
.=
IncAddr i,
k
by A13, A14, FUNCT_4:111
;
verum end; end; end; (ProgramPart (Relocated (Directed I),k)) . x =
(Relocated (Directed I),k) . x
by A4, A6, Th64
.=
IncAddr i,
k
by A3, A7, A8, AMISTD_2:76
;
hence
(ProgramPart (Relocated (Directed I),k)) . x = (Directed (ProgramPart (Relocated I,k)),((card I) + k)) . x
by A9;
verum end;
dom (Directed (ProgramPart (Relocated I,k)),((card I) + k)) = { (m + k) where m is Element of NAT : m in dom I }
by A2, FUNCT_4:105;
hence
ProgramPart (Relocated (Directed I),k) = Directed (ProgramPart (Relocated I,k)),((card I) + k)
by A4, A5, FUNCT_1:9; verum