let k be Element of NAT ; for q being NAT -defined the Instructions of SCM -valued finite non halt-free Function
for p being non empty b1 -autonomic FinPartState of SCM
for s1, s2 being State of SCM st IC in dom p & p c= s1 & IncIC (p,k) c= s2 holds
for P1, P2 being Instruction-Sequence of SCM st q c= P1 & Reloc (q,k) c= P2 holds
for i being Element of NAT holds
( (IC (Comput (P1,s1,i))) + k = IC (Comput (P2,s2,i)) & IncAddr ((CurInstr (P1,(Comput (P1,s1,i)))),k) = CurInstr (P2,(Comput (P2,s2,i))) & (Comput (P1,s1,i)) | (dom (DataPart p)) = (Comput (P2,s2,i)) | (dom (DataPart p)) & DataPart (Comput (P1,(s1 +* (DataPart s2)),i)) = DataPart (Comput (P2,s2,i)) )
let q be NAT -defined the Instructions of SCM -valued finite non halt-free Function; for p being non empty q -autonomic FinPartState of SCM
for s1, s2 being State of SCM st IC in dom p & p c= s1 & IncIC (p,k) c= s2 holds
for P1, P2 being Instruction-Sequence of SCM st q c= P1 & Reloc (q,k) c= P2 holds
for i being Element of NAT holds
( (IC (Comput (P1,s1,i))) + k = IC (Comput (P2,s2,i)) & IncAddr ((CurInstr (P1,(Comput (P1,s1,i)))),k) = CurInstr (P2,(Comput (P2,s2,i))) & (Comput (P1,s1,i)) | (dom (DataPart p)) = (Comput (P2,s2,i)) | (dom (DataPart p)) & DataPart (Comput (P1,(s1 +* (DataPart s2)),i)) = DataPart (Comput (P2,s2,i)) )
let p be non empty q -autonomic FinPartState of SCM; for s1, s2 being State of SCM st IC in dom p & p c= s1 & IncIC (p,k) c= s2 holds
for P1, P2 being Instruction-Sequence of SCM st q c= P1 & Reloc (q,k) c= P2 holds
for i being Element of NAT holds
( (IC (Comput (P1,s1,i))) + k = IC (Comput (P2,s2,i)) & IncAddr ((CurInstr (P1,(Comput (P1,s1,i)))),k) = CurInstr (P2,(Comput (P2,s2,i))) & (Comput (P1,s1,i)) | (dom (DataPart p)) = (Comput (P2,s2,i)) | (dom (DataPart p)) & DataPart (Comput (P1,(s1 +* (DataPart s2)),i)) = DataPart (Comput (P2,s2,i)) )
let s1, s2 be State of SCM; ( IC in dom p & p c= s1 & IncIC (p,k) c= s2 implies for P1, P2 being Instruction-Sequence of SCM st q c= P1 & Reloc (q,k) c= P2 holds
for i being Element of NAT holds
( (IC (Comput (P1,s1,i))) + k = IC (Comput (P2,s2,i)) & IncAddr ((CurInstr (P1,(Comput (P1,s1,i)))),k) = CurInstr (P2,(Comput (P2,s2,i))) & (Comput (P1,s1,i)) | (dom (DataPart p)) = (Comput (P2,s2,i)) | (dom (DataPart p)) & DataPart (Comput (P1,(s1 +* (DataPart s2)),i)) = DataPart (Comput (P2,s2,i)) ) )
assume that
A1:
IC in dom p
and
A2:
p c= s1
and
A3:
IncIC (p,k) c= s2
; for P1, P2 being Instruction-Sequence of SCM st q c= P1 & Reloc (q,k) c= P2 holds
for i being Element of NAT holds
( (IC (Comput (P1,s1,i))) + k = IC (Comput (P2,s2,i)) & IncAddr ((CurInstr (P1,(Comput (P1,s1,i)))),k) = CurInstr (P2,(Comput (P2,s2,i))) & (Comput (P1,s1,i)) | (dom (DataPart p)) = (Comput (P2,s2,i)) | (dom (DataPart p)) & DataPart (Comput (P1,(s1 +* (DataPart s2)),i)) = DataPart (Comput (P2,s2,i)) )
B1:
IC in dom p
by A1;
B2:
p c= s1
by A2;
let P1, P2 be Instruction-Sequence of SCM; ( q c= P1 & Reloc (q,k) c= P2 implies for i being Element of NAT holds
( (IC (Comput (P1,s1,i))) + k = IC (Comput (P2,s2,i)) & IncAddr ((CurInstr (P1,(Comput (P1,s1,i)))),k) = CurInstr (P2,(Comput (P2,s2,i))) & (Comput (P1,s1,i)) | (dom (DataPart p)) = (Comput (P2,s2,i)) | (dom (DataPart p)) & DataPart (Comput (P1,(s1 +* (DataPart s2)),i)) = DataPart (Comput (P2,s2,i)) ) )
assume A4:
( q c= P1 & Reloc (q,k) c= P2 )
; for i being Element of NAT holds
( (IC (Comput (P1,s1,i))) + k = IC (Comput (P2,s2,i)) & IncAddr ((CurInstr (P1,(Comput (P1,s1,i)))),k) = CurInstr (P2,(Comput (P2,s2,i))) & (Comput (P1,s1,i)) | (dom (DataPart p)) = (Comput (P2,s2,i)) | (dom (DataPart p)) & DataPart (Comput (P1,(s1 +* (DataPart s2)),i)) = DataPart (Comput (P2,s2,i)) )
A5:
Reloc (q,k) c= P2
by A4;
A8:
q c= P1
by A4;
set s3 = s1 +* (DataPart s2);
defpred S1[ Element of NAT ] means ( (IC (Comput (P1,s1,$1))) + k = IC (Comput (P2,s2,$1)) & IncAddr ((CurInstr (P1,(Comput (P1,s1,$1)))),k) = CurInstr (P2,(Comput (P2,s2,$1))) & (Comput (P1,s1,$1)) | (dom (DataPart p)) = (Comput (P2,s2,$1)) | (dom (DataPart p)) & DataPart (Comput (P1,(s1 +* (DataPart s2)),$1)) = DataPart (Comput (P2,s2,$1)) );
A10:
p c= s1 +* (DataPart s2)
by A2, A3, MEMSTR_0:61;
A126:
for i being Element of NAT st S1[i] holds
S1[i + 1]
proof
set DPp =
DataPart p;
let i be
Element of
NAT ;
( S1[i] implies S1[i + 1] )
assume that A11:
(IC (Comput (P1,s1,i))) + k = IC (Comput (P2,s2,i))
and A12:
IncAddr (
(CurInstr (P1,(Comput (P1,s1,i)))),
k)
= CurInstr (
P2,
(Comput (P2,s2,i)))
and A13:
(Comput (P1,s1,i)) | (dom (DataPart p)) = (Comput (P2,s2,i)) | (dom (DataPart p))
and A14:
DataPart (Comput (P1,(s1 +* (DataPart s2)),i)) = DataPart (Comput (P2,s2,i))
;
S1[i + 1]
set Cs2i1 =
Comput (
P2,
s2,
(i + 1));
set Cs3i =
Comput (
P1,
(s1 +* (DataPart s2)),
i);
set Cs2i =
Comput (
P2,
s2,
i);
dom (Comput (P2,s2,(i + 1))) = the
carrier of
SCM
by PARTFUN1:def 2;
then A15:
dom (Comput (P2,s2,(i + 1))) = {(IC )} \/ (Data-Locations )
by STRUCT_0:4;
set Cs3i1 =
Comput (
P1,
(s1 +* (DataPart s2)),
(i + 1));
A16:
dom (DataPart (Comput (P2,s2,i))) = Data-Locations
by MEMSTR_0:9;
A17:
dom (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) = Data-Locations
by MEMSTR_0:9;
A18:
dom (DataPart (Comput (P2,s2,(i + 1)))) = Data-Locations
by MEMSTR_0:9;
A19:
now let x be
set ;
( x in dom (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) & (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) . x = (Comput (P2,s2,(i + 1))) . x implies (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . x = (DataPart (Comput (P2,s2,(i + 1)))) . x )assume that A20:
x in dom (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))))
and A21:
(Comput (P1,(s1 +* (DataPart s2)),(i + 1))) . x = (Comput (P2,s2,(i + 1))) . x
;
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . x = (DataPart (Comput (P2,s2,(i + 1)))) . xthus (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . x =
(Comput (P2,s2,(i + 1))) . x
by A20, A21, FUNCT_1:47
.=
(DataPart (Comput (P2,s2,(i + 1)))) . x
by A17, A18, A20, FUNCT_1:47
;
verum end;
A22:
dom (DataPart (Comput (P1,(s1 +* (DataPart s2)),i))) = Data-Locations
by MEMSTR_0:9;
A23:
now let x be
set ;
( x in dom (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) & (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) . x = (Comput (P1,(s1 +* (DataPart s2)),i)) . x & (Comput (P2,s2,(i + 1))) . x = (Comput (P2,s2,i)) . x implies (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . x = (DataPart (Comput (P2,s2,(i + 1)))) . x )assume that A24:
x in dom (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))))
and A25:
(
(Comput (P1,(s1 +* (DataPart s2)),(i + 1))) . x = (Comput (P1,(s1 +* (DataPart s2)),i)) . x &
(Comput (P2,s2,(i + 1))) . x = (Comput (P2,s2,i)) . x )
;
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . x = (DataPart (Comput (P2,s2,(i + 1)))) . x
(DataPart (Comput (P1,(s1 +* (DataPart s2)),i))) . x = (Comput (P1,(s1 +* (DataPart s2)),i)) . x
by A22, A17, A24, FUNCT_1:47;
hence
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . x = (DataPart (Comput (P2,s2,(i + 1)))) . x
by A14, A16, A17, A19, A24, A25, FUNCT_1:47;
verum end;
A27:
now let d be
Data-Location ;
(Comput (P1,(s1 +* (DataPart s2)),i)) . d = (Comput (P2,s2,i)) . dA28:
d in dom (DataPart (Comput (P1,(s1 +* (DataPart s2)),i)))
by A26;
hence (Comput (P1,(s1 +* (DataPart s2)),i)) . d =
(DataPart (Comput (P1,(s1 +* (DataPart s2)),i))) . d
by FUNCT_1:47
.=
(Comput (P2,s2,i)) . d
by A14, A28, FUNCT_1:47
;
verum end;
set Cs1i1 =
Comput (
P1,
s1,
(i + 1));
set Cs1i =
Comput (
P1,
s1,
i);
dom (Comput (P1,s1,(i + 1))) = the
carrier of
SCM
by PARTFUN1:def 2;
then A29:
dom (Comput (P1,s1,(i + 1))) = {(IC )} \/ (Data-Locations )
by STRUCT_0:4;
dom (DataPart p) = (dom p) /\ (Data-Locations )
by RELAT_1:61;
then A30:
dom (DataPart p) c= {(IC )} \/ (Data-Locations )
by XBOOLE_1:10, XBOOLE_1:17;
A31:
dom ((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) =
(dom (Comput (P1,s1,(i + 1)))) /\ (dom (DataPart p))
by RELAT_1:61
.=
dom (DataPart p)
by A29, A30, XBOOLE_1:28
;
A32:
now reconsider loc =
IC (Comput (P1,s1,(i + 1))) as
Element of
NAT ;
assume A33:
(IC (Comput (P1,s1,(i + 1)))) + k = IC (Comput (P2,s2,(i + 1)))
;
IncAddr ((CurInstr (P1,(Comput (P1,s1,(i + 1))))),k) = CurInstr (P2,(Comput (P2,s2,(i + 1))))reconsider kk =
loc as
Element of
NAT ;
A34:
loc in dom q
by A8, B2, AMISTD_5:def 4;
A35:
loc + k in dom (Reloc (q,k))
by A34, COMPOS_1:46;
A36:
dom P2 = NAT
by PARTFUN1:def 2;
dom P1 = NAT
by PARTFUN1:def 2;
then CurInstr (
P1,
(Comput (P1,s1,(i + 1)))) =
P1 . loc
by PARTFUN1:def 6
.=
q . loc
by A34, A4, GRFUNC_1:2
.=
q . loc
;
hence IncAddr (
(CurInstr (P1,(Comput (P1,s1,(i + 1))))),
k) =
(Reloc (q,k)) . (loc + k)
by A34, COMPOS_1:35
.=
P2 . (IC (Comput (P2,s2,(i + 1))))
by A33, A35, A5, GRFUNC_1:2
.=
CurInstr (
P2,
(Comput (P2,s2,(i + 1))))
by A36, PARTFUN1:def 6
;
verum end;
set I =
CurInstr (
P1,
(Comput (P1,s1,i)));
A37:
Comput (
P2,
s2,
(i + 1)) =
Following (
P2,
(Comput (P2,s2,i)))
by EXTPRO_1:3
.=
Exec (
(CurInstr (P2,(Comput (P2,s2,i)))),
(Comput (P2,s2,i)))
;
dom (Comput (P2,s2,i)) = the
carrier of
SCM
by PARTFUN1:def 2;
then A38:
dom (Comput (P2,s2,i)) = {(IC )} \/ (Data-Locations )
by STRUCT_0:4;
dom (Comput (P1,s1,i)) = the
carrier of
SCM
by PARTFUN1:def 2;
then A39:
dom (Comput (P1,s1,i)) = {(IC )} \/ (Data-Locations )
by STRUCT_0:4;
A40:
dom ((Comput (P1,s1,i)) | (dom (DataPart p))) =
(dom (Comput (P1,s1,i))) /\ (dom (DataPart p))
by RELAT_1:61
.=
dom (DataPart p)
by A39, A30, XBOOLE_1:28
;
A41:
Comput (
P1,
(s1 +* (DataPart s2)),
(i + 1)) =
Following (
P1,
(Comput (P1,(s1 +* (DataPart s2)),i)))
by EXTPRO_1:3
.=
Exec (
(CurInstr (P1,(Comput (P1,s1,i)))),
(Comput (P1,(s1 +* (DataPart s2)),i)))
by A2, A10, A4, AMISTD_5:7
;
A43:
dom ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) =
(dom (Comput (P2,s2,(i + 1)))) /\ (dom (DataPart p))
by RELAT_1:61
.=
dom (DataPart p)
by A15, A30, XBOOLE_1:28
;
A44:
now let x be
set ;
for d being Data-Location st d = x & d in dom (DataPart p) & (Comput (P1,s1,(i + 1))) . d = (Comput (P2,s2,(i + 1))) . d holds
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . x = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . xlet d be
Data-Location ;
( d = x & d in dom (DataPart p) & (Comput (P1,s1,(i + 1))) . d = (Comput (P2,s2,(i + 1))) . d implies ((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . x = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . x )assume that A45:
(
d = x &
d in dom (DataPart p) )
and A46:
(Comput (P1,s1,(i + 1))) . d = (Comput (P2,s2,(i + 1))) . d
;
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . x = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . xthus ((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . x =
(Comput (P2,s2,(i + 1))) . d
by A31, A45, A46, FUNCT_1:47
.=
((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . x
by A43, A45, FUNCT_1:47
;
verum end;
A47:
dom ((Comput (P2,s2,i)) | (dom (DataPart p))) =
(dom (Comput (P2,s2,i))) /\ (dom (DataPart p))
by RELAT_1:61
.=
dom (DataPart p)
by A38, A30, XBOOLE_1:28
;
A48:
now let x be
set ;
for d being Data-Location st d = x & d in dom (DataPart p) & (Comput (P1,s1,(i + 1))) . d = (Comput (P1,s1,i)) . d & (Comput (P2,s2,(i + 1))) . d = (Comput (P2,s2,i)) . d holds
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . x = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . xlet d be
Data-Location ;
( d = x & d in dom (DataPart p) & (Comput (P1,s1,(i + 1))) . d = (Comput (P1,s1,i)) . d & (Comput (P2,s2,(i + 1))) . d = (Comput (P2,s2,i)) . d implies ((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . x = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . x )assume that A49:
d = x
and A50:
d in dom (DataPart p)
and A51:
(
(Comput (P1,s1,(i + 1))) . d = (Comput (P1,s1,i)) . d &
(Comput (P2,s2,(i + 1))) . d = (Comput (P2,s2,i)) . d )
;
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . x = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . x
(
((Comput (P1,s1,i)) | (dom (DataPart p))) . d = (Comput (P1,s1,i)) . d &
((Comput (P2,s2,i)) | (dom (DataPart p))) . d = (Comput (P2,s2,i)) . d )
by A40, A47, A50, FUNCT_1:47;
hence ((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . x =
(Comput (P2,s2,(i + 1))) . d
by A13, A31, A49, A50, A51, FUNCT_1:47
.=
((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . x
by A43, A49, A50, FUNCT_1:47
;
verum end;
reconsider j =
IC (Comput (P1,s1,i)) as
Element of
NAT ;
A52:
Comput (
P1,
s1,
(i + 1)) =
Following (
P1,
(Comput (P1,s1,i)))
by EXTPRO_1:3
.=
Exec (
(CurInstr (P1,(Comput (P1,s1,i)))),
(Comput (P1,s1,i)))
;
A53:
succ ((IC (Comput (P1,s1,i))) + k) =
(j + k) + 1
by NAT_1:38
.=
(j + 1) + k
.=
(succ j) + k
by NAT_1:38
;
per cases
( InsCode (CurInstr (P1,(Comput (P1,s1,i)))) = 0 or InsCode (CurInstr (P1,(Comput (P1,s1,i)))) = 1 or InsCode (CurInstr (P1,(Comput (P1,s1,i)))) = 2 or InsCode (CurInstr (P1,(Comput (P1,s1,i)))) = 3 or InsCode (CurInstr (P1,(Comput (P1,s1,i)))) = 4 or InsCode (CurInstr (P1,(Comput (P1,s1,i)))) = 5 or InsCode (CurInstr (P1,(Comput (P1,s1,i)))) = 6 or InsCode (CurInstr (P1,(Comput (P1,s1,i)))) = 7 or InsCode (CurInstr (P1,(Comput (P1,s1,i)))) = 8 )
by AMI_5:5, NAT_1:32;
suppose
InsCode (CurInstr (P1,(Comput (P1,s1,i)))) = 0
;
S1[i + 1]then A54:
CurInstr (
P1,
(Comput (P1,s1,i)))
= halt SCM
by AMI_5:7;
thus (IC (Comput (P1,s1,(i + 1)))) + k =
(IC (Comput (P1,s1,i))) + k
by A52, A54, EXTPRO_1:def 3
.=
IC (Comput (P2,s2,(i + 1)))
by A11, A37, A54, A12, EXTPRO_1:def 3
;
( IncAddr ((CurInstr (P1,(Comput (P1,s1,(i + 1))))),k) = CurInstr (P2,(Comput (P2,s2,(i + 1)))) & (Comput (P1,s1,(i + 1))) | (dom (DataPart p)) = (Comput (P2,s2,(i + 1))) | (dom (DataPart p)) & DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1))) )hence
IncAddr (
(CurInstr (P1,(Comput (P1,s1,(i + 1))))),
k)
= CurInstr (
P2,
(Comput (P2,s2,(i + 1))))
by A32;
( (Comput (P1,s1,(i + 1))) | (dom (DataPart p)) = (Comput (P2,s2,(i + 1))) | (dom (DataPart p)) & DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1))) )A55:
Comput (
P2,
s2,
(i + 1))
= Comput (
P2,
s2,
i)
by A37, A54, A12, EXTPRO_1:def 3;
hence
(Comput (P1,s1,(i + 1))) | (dom (DataPart p)) = (Comput (P2,s2,(i + 1))) | (dom (DataPart p))
by A13, A52, A54, EXTPRO_1:def 3;
DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1)))thus
DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1)))
by A14, A41, A54, A55, EXTPRO_1:def 3;
verum end; suppose
InsCode (CurInstr (P1,(Comput (P1,s1,i)))) = 1
;
S1[i + 1]then consider da,
db being
Data-Location such that A56:
CurInstr (
P1,
(Comput (P1,s1,i)))
= da := db
by AMI_5:8;
A57:
IncAddr (
(CurInstr (P1,(Comput (P1,s1,i)))),
k)
= da := db
by A56, COMPOS_1:11;
A58:
(Exec ((CurInstr (P1,(Comput (P1,s1,i)))),(Comput (P1,s1,i)))) . (IC ) = succ (IC (Comput (P1,s1,i)))
by A56, AMI_3:2;
hence
(IC (Comput (P1,s1,(i + 1)))) + k = IC (Comput (P2,s2,(i + 1)))
by A11, A12, A52, A37, A53, A57, AMI_3:2;
( IncAddr ((CurInstr (P1,(Comput (P1,s1,(i + 1))))),k) = CurInstr (P2,(Comput (P2,s2,(i + 1)))) & (Comput (P1,s1,(i + 1))) | (dom (DataPart p)) = (Comput (P2,s2,(i + 1))) | (dom (DataPart p)) & DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1))) )thus
IncAddr (
(CurInstr (P1,(Comput (P1,s1,(i + 1))))),
k)
= CurInstr (
P2,
(Comput (P2,s2,(i + 1))))
by A11, A12, A32, A52, A37, A53, A57, A58, AMI_3:2;
( (Comput (P1,s1,(i + 1))) | (dom (DataPart p)) = (Comput (P2,s2,(i + 1))) | (dom (DataPart p)) & DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1))) )A59:
(Comput (P1,(s1 +* (DataPart s2)),i)) . db = (Comput (P2,s2,i)) . db
by A27;
now
DataPart p c= p
by RELAT_1:59;
then A60:
dom (DataPart p) c= dom p
by GRFUNC_1:2;
let x be
set ;
( x in dom ((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) implies ((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . b1 = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . b1 )assume A61:
x in dom ((Comput (P1,s1,(i + 1))) | (dom (DataPart p)))
;
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . b1 = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . b1
dom (DataPart p) c= Data-Locations
by RELAT_1:58;
then
x in Data-Locations
by A31, A61;
then reconsider d =
x as
Data-Location by AMI_3:27, AMI_3:def 2;
per cases
( da = d or da <> d )
;
suppose A62:
da = d
;
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . b1 = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . b1then
(
(Comput (P1,s1,(i + 1))) . d = (Comput (P1,s1,i)) . db &
(Comput (P2,s2,(i + 1))) . d = (Comput (P2,s2,i)) . db )
by A12, A52, A37, A56, A57, AMI_3:2;
hence
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . x = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . x
by A2, A10, A31, A44, A56, A59, A61, A60, A62, A4, AMI_5:17;
verum end; suppose
da <> d
;
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . b1 = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . b1then
(
(Comput (P1,s1,(i + 1))) . d = (Comput (P1,s1,i)) . d &
(Comput (P2,s2,(i + 1))) . d = (Comput (P2,s2,i)) . d )
by A12, A52, A37, A56, A57, AMI_3:2;
hence
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . x = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . x
by A31, A48, A61;
verum end; end; end; then
(Comput (P1,s1,(i + 1))) | (dom (DataPart p)) c= (Comput (P2,s2,(i + 1))) | (dom (DataPart p))
by A31, A43, GRFUNC_1:2;
hence
(Comput (P1,s1,(i + 1))) | (dom (DataPart p)) = (Comput (P2,s2,(i + 1))) | (dom (DataPart p))
by A31, A43, GRFUNC_1:3;
DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1)))now let x be
set ;
( x in dom (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) implies (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . b1 = (DataPart (Comput (P2,s2,(i + 1)))) . b1 )assume A63:
x in dom (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))))
;
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . b1 = (DataPart (Comput (P2,s2,(i + 1)))) . b1then reconsider d =
x as
Data-Location by A17, AMI_3:27, AMI_3:def 2;
per cases
( da = d or da <> d )
;
suppose
da = d
;
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . b1 = (DataPart (Comput (P2,s2,(i + 1)))) . b1then
(
(Comput (P2,s2,(i + 1))) . d = (Comput (P2,s2,i)) . db &
(Comput (P1,(s1 +* (DataPart s2)),(i + 1))) . d = (Comput (P1,(s1 +* (DataPart s2)),i)) . db )
by A12, A37, A41, A56, A57, AMI_3:2;
hence
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . x = (DataPart (Comput (P2,s2,(i + 1)))) . x
by A27, A19, A63;
verum end; suppose
da <> d
;
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . b1 = (DataPart (Comput (P2,s2,(i + 1)))) . b1then
(
(Comput (P1,(s1 +* (DataPart s2)),(i + 1))) . d = (Comput (P1,(s1 +* (DataPart s2)),i)) . d &
(Comput (P2,s2,(i + 1))) . d = (Comput (P2,s2,i)) . d )
by A12, A37, A41, A56, A57, AMI_3:2;
hence
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . x = (DataPart (Comput (P2,s2,(i + 1)))) . x
by A23, A63;
verum end; end; end; then
DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) c= DataPart (Comput (P2,s2,(i + 1)))
by A17, A18, GRFUNC_1:2;
hence
DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1)))
by A17, A18, GRFUNC_1:3;
verum end; suppose
InsCode (CurInstr (P1,(Comput (P1,s1,i)))) = 2
;
S1[i + 1]then consider da,
db being
Data-Location such that A64:
CurInstr (
P1,
(Comput (P1,s1,i)))
= AddTo (
da,
db)
by AMI_5:9;
A65:
IncAddr (
(CurInstr (P1,(Comput (P1,s1,i)))),
k)
= AddTo (
da,
db)
by A64, COMPOS_1:11;
A66:
(Exec ((CurInstr (P1,(Comput (P1,s1,i)))),(Comput (P1,s1,i)))) . (IC ) = succ (IC (Comput (P1,s1,i)))
by A64, AMI_3:3;
hence
(IC (Comput (P1,s1,(i + 1)))) + k = IC (Comput (P2,s2,(i + 1)))
by A11, A12, A52, A37, A53, A65, AMI_3:3;
( IncAddr ((CurInstr (P1,(Comput (P1,s1,(i + 1))))),k) = CurInstr (P2,(Comput (P2,s2,(i + 1)))) & (Comput (P1,s1,(i + 1))) | (dom (DataPart p)) = (Comput (P2,s2,(i + 1))) | (dom (DataPart p)) & DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1))) )thus
IncAddr (
(CurInstr (P1,(Comput (P1,s1,(i + 1))))),
k)
= CurInstr (
P2,
(Comput (P2,s2,(i + 1))))
by A11, A12, A32, A52, A37, A53, A65, A66, AMI_3:3;
( (Comput (P1,s1,(i + 1))) | (dom (DataPart p)) = (Comput (P2,s2,(i + 1))) | (dom (DataPart p)) & DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1))) )A67:
(
(Comput (P1,(s1 +* (DataPart s2)),i)) . da = (Comput (P2,s2,i)) . da &
(Comput (P1,(s1 +* (DataPart s2)),i)) . db = (Comput (P2,s2,i)) . db )
by A27;
now
DataPart p c= p
by RELAT_1:59;
then A68:
dom (DataPart p) c= dom p
by GRFUNC_1:2;
let x be
set ;
( x in dom ((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) implies ((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . b1 = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . b1 )assume A69:
x in dom ((Comput (P1,s1,(i + 1))) | (dom (DataPart p)))
;
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . b1 = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . b1
dom (DataPart p) c= Data-Locations
by RELAT_1:58;
then
x in Data-Locations
by A31, A69;
then reconsider d =
x as
Data-Location by AMI_3:27, AMI_3:def 2;
per cases
( da = d or da <> d )
;
suppose A70:
da = d
;
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . b1 = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . b1then
(
(Comput (P1,s1,(i + 1))) . d = ((Comput (P1,s1,i)) . da) + ((Comput (P1,s1,i)) . db) &
(Comput (P2,s2,(i + 1))) . d = ((Comput (P2,s2,i)) . da) + ((Comput (P2,s2,i)) . db) )
by A12, A52, A37, A64, A65, AMI_3:3;
hence
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . x = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . x
by A2, A10, A31, A44, A64, A67, A69, A68, A70, A4, AMI_5:18;
verum end; suppose
da <> d
;
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . b1 = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . b1then
(
(Comput (P1,s1,(i + 1))) . d = (Comput (P1,s1,i)) . d &
(Comput (P2,s2,(i + 1))) . d = (Comput (P2,s2,i)) . d )
by A12, A52, A37, A64, A65, AMI_3:3;
hence
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . x = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . x
by A31, A48, A69;
verum end; end; end; then
(Comput (P1,s1,(i + 1))) | (dom (DataPart p)) c= (Comput (P2,s2,(i + 1))) | (dom (DataPart p))
by A31, A43, GRFUNC_1:2;
hence
(Comput (P1,s1,(i + 1))) | (dom (DataPart p)) = (Comput (P2,s2,(i + 1))) | (dom (DataPart p))
by A31, A43, GRFUNC_1:3;
DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1)))now let x be
set ;
( x in dom (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) implies (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . b1 = (DataPart (Comput (P2,s2,(i + 1)))) . b1 )assume A71:
x in dom (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))))
;
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . b1 = (DataPart (Comput (P2,s2,(i + 1)))) . b1then reconsider d =
x as
Data-Location by A17, AMI_3:27, AMI_3:def 2;
per cases
( da = d or da <> d )
;
suppose
da = d
;
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . b1 = (DataPart (Comput (P2,s2,(i + 1)))) . b1then
(
(Comput (P2,s2,(i + 1))) . d = ((Comput (P2,s2,i)) . da) + ((Comput (P2,s2,i)) . db) &
(Comput (P1,(s1 +* (DataPart s2)),(i + 1))) . d = ((Comput (P1,(s1 +* (DataPart s2)),i)) . da) + ((Comput (P1,(s1 +* (DataPart s2)),i)) . db) )
by A12, A37, A41, A64, A65, AMI_3:3;
hence
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . x = (DataPart (Comput (P2,s2,(i + 1)))) . x
by A19, A67, A71;
verum end; suppose
da <> d
;
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . b1 = (DataPart (Comput (P2,s2,(i + 1)))) . b1then
(
(Comput (P1,(s1 +* (DataPart s2)),(i + 1))) . d = (Comput (P1,(s1 +* (DataPart s2)),i)) . d &
(Comput (P2,s2,(i + 1))) . d = (Comput (P2,s2,i)) . d )
by A12, A37, A41, A64, A65, AMI_3:3;
hence
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . x = (DataPart (Comput (P2,s2,(i + 1)))) . x
by A23, A71;
verum end; end; end; then
DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) c= DataPart (Comput (P2,s2,(i + 1)))
by A17, A18, GRFUNC_1:2;
hence
DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1)))
by A17, A18, GRFUNC_1:3;
verum end; suppose
InsCode (CurInstr (P1,(Comput (P1,s1,i)))) = 3
;
S1[i + 1]then consider da,
db being
Data-Location such that A72:
CurInstr (
P1,
(Comput (P1,s1,i)))
= SubFrom (
da,
db)
by AMI_5:10;
A73:
IncAddr (
(CurInstr (P1,(Comput (P1,s1,i)))),
k)
= SubFrom (
da,
db)
by A72, COMPOS_1:11;
A74:
(Exec ((CurInstr (P1,(Comput (P1,s1,i)))),(Comput (P1,s1,i)))) . (IC ) = succ (IC (Comput (P1,s1,i)))
by A72, AMI_3:4;
hence
(IC (Comput (P1,s1,(i + 1)))) + k = IC (Comput (P2,s2,(i + 1)))
by A11, A12, A52, A37, A53, A73, AMI_3:4;
( IncAddr ((CurInstr (P1,(Comput (P1,s1,(i + 1))))),k) = CurInstr (P2,(Comput (P2,s2,(i + 1)))) & (Comput (P1,s1,(i + 1))) | (dom (DataPart p)) = (Comput (P2,s2,(i + 1))) | (dom (DataPart p)) & DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1))) )thus
IncAddr (
(CurInstr (P1,(Comput (P1,s1,(i + 1))))),
k)
= CurInstr (
P2,
(Comput (P2,s2,(i + 1))))
by A11, A12, A32, A52, A37, A53, A73, A74, AMI_3:4;
( (Comput (P1,s1,(i + 1))) | (dom (DataPart p)) = (Comput (P2,s2,(i + 1))) | (dom (DataPart p)) & DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1))) )A75:
(
(Comput (P1,(s1 +* (DataPart s2)),i)) . da = (Comput (P2,s2,i)) . da &
(Comput (P1,(s1 +* (DataPart s2)),i)) . db = (Comput (P2,s2,i)) . db )
by A27;
now
DataPart p c= p
by RELAT_1:59;
then A76:
dom (DataPart p) c= dom p
by GRFUNC_1:2;
let x be
set ;
( x in dom ((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) implies ((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . b1 = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . b1 )assume A77:
x in dom ((Comput (P1,s1,(i + 1))) | (dom (DataPart p)))
;
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . b1 = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . b1
dom (DataPart p) c= Data-Locations
by RELAT_1:58;
then
x in Data-Locations
by A31, A77;
then reconsider d =
x as
Data-Location by AMI_3:27, AMI_3:def 2;
per cases
( da = d or da <> d )
;
suppose A78:
da = d
;
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . b1 = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . b1then
(
(Comput (P1,s1,(i + 1))) . d = ((Comput (P1,s1,i)) . da) - ((Comput (P1,s1,i)) . db) &
(Comput (P2,s2,(i + 1))) . d = ((Comput (P2,s2,i)) . da) - ((Comput (P2,s2,i)) . db) )
by A12, A52, A37, A72, A73, AMI_3:4;
hence
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . x = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . x
by A2, A10, A31, A44, A72, A75, A77, A76, A78, A4, AMI_5:19;
verum end; suppose
da <> d
;
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . b1 = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . b1then
(
(Comput (P1,s1,(i + 1))) . d = (Comput (P1,s1,i)) . d &
(Comput (P2,s2,(i + 1))) . d = (Comput (P2,s2,i)) . d )
by A12, A52, A37, A72, A73, AMI_3:4;
hence
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . x = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . x
by A31, A48, A77;
verum end; end; end; then
(Comput (P1,s1,(i + 1))) | (dom (DataPart p)) c= (Comput (P2,s2,(i + 1))) | (dom (DataPart p))
by A31, A43, GRFUNC_1:2;
hence
(Comput (P1,s1,(i + 1))) | (dom (DataPart p)) = (Comput (P2,s2,(i + 1))) | (dom (DataPart p))
by A31, A43, GRFUNC_1:3;
DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1)))now let x be
set ;
( x in dom (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) implies (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . b1 = (DataPart (Comput (P2,s2,(i + 1)))) . b1 )assume A79:
x in dom (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))))
;
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . b1 = (DataPart (Comput (P2,s2,(i + 1)))) . b1then reconsider d =
x as
Data-Location by A17, AMI_3:27, AMI_3:def 2;
per cases
( da = d or da <> d )
;
suppose
da = d
;
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . b1 = (DataPart (Comput (P2,s2,(i + 1)))) . b1then
(
(Comput (P2,s2,(i + 1))) . d = ((Comput (P2,s2,i)) . da) - ((Comput (P2,s2,i)) . db) &
(Comput (P1,(s1 +* (DataPart s2)),(i + 1))) . d = ((Comput (P1,(s1 +* (DataPart s2)),i)) . da) - ((Comput (P1,(s1 +* (DataPart s2)),i)) . db) )
by A12, A37, A41, A72, A73, AMI_3:4;
hence
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . x = (DataPart (Comput (P2,s2,(i + 1)))) . x
by A19, A75, A79;
verum end; suppose
da <> d
;
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . b1 = (DataPart (Comput (P2,s2,(i + 1)))) . b1then
(
(Comput (P1,(s1 +* (DataPart s2)),(i + 1))) . d = (Comput (P1,(s1 +* (DataPart s2)),i)) . d &
(Comput (P2,s2,(i + 1))) . d = (Comput (P2,s2,i)) . d )
by A12, A37, A41, A72, A73, AMI_3:4;
hence
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . x = (DataPart (Comput (P2,s2,(i + 1)))) . x
by A23, A79;
verum end; end; end; then
DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) c= DataPart (Comput (P2,s2,(i + 1)))
by A17, A18, GRFUNC_1:2;
hence
DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1)))
by A17, A18, GRFUNC_1:3;
verum end; suppose
InsCode (CurInstr (P1,(Comput (P1,s1,i)))) = 4
;
S1[i + 1]then consider da,
db being
Data-Location such that A80:
CurInstr (
P1,
(Comput (P1,s1,i)))
= MultBy (
da,
db)
by AMI_5:11;
A81:
IncAddr (
(CurInstr (P1,(Comput (P1,s1,i)))),
k)
= MultBy (
da,
db)
by A80, COMPOS_1:11;
A82:
(Exec ((CurInstr (P1,(Comput (P1,s1,i)))),(Comput (P1,s1,i)))) . (IC ) = succ (IC (Comput (P1,s1,i)))
by A80, AMI_3:5;
hence
(IC (Comput (P1,s1,(i + 1)))) + k = IC (Comput (P2,s2,(i + 1)))
by A11, A12, A52, A37, A53, A81, AMI_3:5;
( IncAddr ((CurInstr (P1,(Comput (P1,s1,(i + 1))))),k) = CurInstr (P2,(Comput (P2,s2,(i + 1)))) & (Comput (P1,s1,(i + 1))) | (dom (DataPart p)) = (Comput (P2,s2,(i + 1))) | (dom (DataPart p)) & DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1))) )thus
IncAddr (
(CurInstr (P1,(Comput (P1,s1,(i + 1))))),
k)
= CurInstr (
P2,
(Comput (P2,s2,(i + 1))))
by A11, A12, A32, A52, A37, A53, A81, A82, AMI_3:5;
( (Comput (P1,s1,(i + 1))) | (dom (DataPart p)) = (Comput (P2,s2,(i + 1))) | (dom (DataPart p)) & DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1))) )A83:
(
(Comput (P1,(s1 +* (DataPart s2)),i)) . da = (Comput (P2,s2,i)) . da &
(Comput (P1,(s1 +* (DataPart s2)),i)) . db = (Comput (P2,s2,i)) . db )
by A27;
now
DataPart p c= p
by RELAT_1:59;
then A84:
dom (DataPart p) c= dom p
by GRFUNC_1:2;
let x be
set ;
( x in dom ((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) implies ((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . b1 = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . b1 )assume A85:
x in dom ((Comput (P1,s1,(i + 1))) | (dom (DataPart p)))
;
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . b1 = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . b1
dom (DataPart p) c= Data-Locations
by RELAT_1:58;
then
x in Data-Locations
by A31, A85;
then reconsider d =
x as
Data-Location by AMI_3:27, AMI_3:def 2;
per cases
( da = d or da <> d )
;
suppose A86:
da = d
;
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . b1 = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . b1then
(
(Comput (P1,s1,(i + 1))) . d = ((Comput (P1,s1,i)) . da) * ((Comput (P1,s1,i)) . db) &
(Comput (P2,s2,(i + 1))) . d = ((Comput (P2,s2,i)) . da) * ((Comput (P2,s2,i)) . db) )
by A12, A52, A37, A80, A81, AMI_3:5;
hence
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . x = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . x
by A2, A10, A31, A44, A80, A83, A85, A84, A86, A4, AMI_5:20;
verum end; suppose
da <> d
;
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . b1 = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . b1then
(
(Comput (P1,s1,(i + 1))) . d = (Comput (P1,s1,i)) . d &
(Comput (P2,s2,(i + 1))) . d = (Comput (P2,s2,i)) . d )
by A12, A52, A37, A80, A81, AMI_3:5;
hence
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . x = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . x
by A31, A48, A85;
verum end; end; end; then
(Comput (P1,s1,(i + 1))) | (dom (DataPart p)) c= (Comput (P2,s2,(i + 1))) | (dom (DataPart p))
by A31, A43, GRFUNC_1:2;
hence
(Comput (P1,s1,(i + 1))) | (dom (DataPart p)) = (Comput (P2,s2,(i + 1))) | (dom (DataPart p))
by A31, A43, GRFUNC_1:3;
DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1)))now let x be
set ;
( x in dom (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) implies (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . b1 = (DataPart (Comput (P2,s2,(i + 1)))) . b1 )assume A87:
x in dom (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))))
;
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . b1 = (DataPart (Comput (P2,s2,(i + 1)))) . b1then reconsider d =
x as
Data-Location by A17, AMI_3:27, AMI_3:def 2;
per cases
( da = d or da <> d )
;
suppose
da = d
;
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . b1 = (DataPart (Comput (P2,s2,(i + 1)))) . b1then
(
(Comput (P2,s2,(i + 1))) . d = ((Comput (P2,s2,i)) . da) * ((Comput (P2,s2,i)) . db) &
(Comput (P1,(s1 +* (DataPart s2)),(i + 1))) . d = ((Comput (P1,(s1 +* (DataPart s2)),i)) . da) * ((Comput (P1,(s1 +* (DataPart s2)),i)) . db) )
by A12, A37, A41, A80, A81, AMI_3:5;
hence
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . x = (DataPart (Comput (P2,s2,(i + 1)))) . x
by A19, A83, A87;
verum end; suppose
da <> d
;
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . b1 = (DataPart (Comput (P2,s2,(i + 1)))) . b1then
(
(Comput (P1,(s1 +* (DataPart s2)),(i + 1))) . d = (Comput (P1,(s1 +* (DataPart s2)),i)) . d &
(Comput (P2,s2,(i + 1))) . d = (Comput (P2,s2,i)) . d )
by A12, A37, A41, A80, A81, AMI_3:5;
hence
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . x = (DataPart (Comput (P2,s2,(i + 1)))) . x
by A23, A87;
verum end; end; end; then
DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) c= DataPart (Comput (P2,s2,(i + 1)))
by A17, A18, GRFUNC_1:2;
hence
DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1)))
by A17, A18, GRFUNC_1:3;
verum end; suppose
InsCode (CurInstr (P1,(Comput (P1,s1,i)))) = 5
;
S1[i + 1]then consider da,
db being
Data-Location such that A88:
CurInstr (
P1,
(Comput (P1,s1,i)))
= Divide (
da,
db)
by AMI_5:12;
A89:
IncAddr (
(CurInstr (P1,(Comput (P1,s1,i)))),
k)
= Divide (
da,
db)
by A88, COMPOS_1:11;
A90:
(
(Comput (P1,(s1 +* (DataPart s2)),i)) . da = (Comput (P2,s2,i)) . da &
(Comput (P1,(s1 +* (DataPart s2)),i)) . db = (Comput (P2,s2,i)) . db )
by A27;
per cases
( da <> db or da = db )
;
suppose A91:
da <> db
;
S1[i + 1]A92:
(Exec ((CurInstr (P1,(Comput (P1,s1,i)))),(Comput (P1,s1,i)))) . (IC ) = succ (IC (Comput (P1,s1,i)))
by A88, AMI_3:6;
hence
(IC (Comput (P1,s1,(i + 1)))) + k = IC (Comput (P2,s2,(i + 1)))
by A11, A12, A52, A37, A53, A89, AMI_3:6;
( IncAddr ((CurInstr (P1,(Comput (P1,s1,(i + 1))))),k) = CurInstr (P2,(Comput (P2,s2,(i + 1)))) & (Comput (P1,s1,(i + 1))) | (dom (DataPart p)) = (Comput (P2,s2,(i + 1))) | (dom (DataPart p)) & DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1))) )thus
IncAddr (
(CurInstr (P1,(Comput (P1,s1,(i + 1))))),
k)
= CurInstr (
P2,
(Comput (P2,s2,(i + 1))))
by A11, A12, A32, A52, A37, A53, A89, A92, AMI_3:6;
( (Comput (P1,s1,(i + 1))) | (dom (DataPart p)) = (Comput (P2,s2,(i + 1))) | (dom (DataPart p)) & DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1))) )now
DataPart p c= p
by RELAT_1:59;
then A93:
dom (DataPart p) c= dom p
by GRFUNC_1:2;
let x be
set ;
( x in dom ((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) implies ((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . b1 = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . b1 )assume A94:
x in dom ((Comput (P1,s1,(i + 1))) | (dom (DataPart p)))
;
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . b1 = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . b1
dom (DataPart p) c= Data-Locations
by RELAT_1:58;
then
x in Data-Locations
by A31, A94;
then reconsider d =
x as
Data-Location by AMI_3:27, AMI_3:def 2;
per cases
( da = d or db = d or ( da <> d & db <> d ) )
;
suppose A95:
da = d
;
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . b1 = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . b1then A96:
(
(Comput (P1,s1,(i + 1))) . d = ((Comput (P1,s1,i)) . da) div ((Comput (P1,s1,i)) . db) &
(Comput (P2,s2,(i + 1))) . d = ((Comput (P2,s2,i)) . da) div ((Comput (P2,s2,i)) . db) )
by A12, A52, A37, A88, A89, A91, AMI_3:6;
((Comput (P1,(s1 +* (DataPart s2)),i)) . da) div ((Comput (P1,(s1 +* (DataPart s2)),i)) . db) = ((Comput (P1,s1,i)) . da) div ((Comput (P1,s1,i)) . db)
by A2, A10, A31, A88, A91, A94, A93, A95, A4, AMI_5:21;
hence ((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . x =
(Comput (P2,s2,(i + 1))) . d
by A90, A94, A96, FUNCT_1:47
.=
((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . x
by A31, A43, A94, FUNCT_1:47
;
verum end; suppose A97:
db = d
;
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . b1 = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . b1then
(
(Comput (P1,s1,(i + 1))) . d = ((Comput (P1,s1,i)) . da) mod ((Comput (P1,s1,i)) . db) &
(Comput (P2,s2,(i + 1))) . d = ((Comput (P2,s2,i)) . da) mod ((Comput (P2,s2,i)) . db) )
by A12, A52, A37, A88, A89, AMI_3:6;
hence
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . x = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . x
by A2, A10, A31, A44, A88, A90, A94, A93, A97, A4, AMI_5:22;
verum end; suppose
(
da <> d &
db <> d )
;
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . b1 = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . b1then
(
(Comput (P1,s1,(i + 1))) . d = (Comput (P1,s1,i)) . d &
(Comput (P2,s2,(i + 1))) . d = (Comput (P2,s2,i)) . d )
by A12, A52, A37, A88, A89, AMI_3:6;
hence
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . x = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . x
by A31, A48, A94;
verum end; end; end; then
(Comput (P1,s1,(i + 1))) | (dom (DataPart p)) c= (Comput (P2,s2,(i + 1))) | (dom (DataPart p))
by A31, A43, GRFUNC_1:2;
hence
(Comput (P1,s1,(i + 1))) | (dom (DataPart p)) = (Comput (P2,s2,(i + 1))) | (dom (DataPart p))
by A31, A43, GRFUNC_1:3;
DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1)))now let x be
set ;
( x in dom (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) implies (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . b1 = (DataPart (Comput (P2,s2,(i + 1)))) . b1 )assume A98:
x in dom (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))))
;
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . b1 = (DataPart (Comput (P2,s2,(i + 1)))) . b1then reconsider d =
x as
Data-Location by A17, AMI_3:27, AMI_3:def 2;
per cases
( da = d or db = d or ( da <> d & db <> d ) )
;
suppose
da = d
;
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . b1 = (DataPart (Comput (P2,s2,(i + 1)))) . b1then
(
(Comput (P2,s2,(i + 1))) . d = ((Comput (P2,s2,i)) . da) div ((Comput (P2,s2,i)) . db) &
(Comput (P1,(s1 +* (DataPart s2)),(i + 1))) . d = ((Comput (P1,(s1 +* (DataPart s2)),i)) . da) div ((Comput (P1,(s1 +* (DataPart s2)),i)) . db) )
by A12, A37, A41, A88, A89, A91, AMI_3:6;
hence
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . x = (DataPart (Comput (P2,s2,(i + 1)))) . x
by A19, A90, A98;
verum end; suppose
db = d
;
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . b1 = (DataPart (Comput (P2,s2,(i + 1)))) . b1then
(
(Comput (P2,s2,(i + 1))) . d = ((Comput (P2,s2,i)) . da) mod ((Comput (P2,s2,i)) . db) &
(Comput (P1,(s1 +* (DataPart s2)),(i + 1))) . d = ((Comput (P1,(s1 +* (DataPart s2)),i)) . da) mod ((Comput (P1,(s1 +* (DataPart s2)),i)) . db) )
by A12, A37, A41, A88, A89, AMI_3:6;
hence
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . x = (DataPart (Comput (P2,s2,(i + 1)))) . x
by A19, A90, A98;
verum end; suppose
(
da <> d &
db <> d )
;
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . b1 = (DataPart (Comput (P2,s2,(i + 1)))) . b1then
(
(Comput (P1,(s1 +* (DataPart s2)),(i + 1))) . d = (Comput (P1,(s1 +* (DataPart s2)),i)) . d &
(Comput (P2,s2,(i + 1))) . d = (Comput (P2,s2,i)) . d )
by A12, A37, A41, A88, A89, AMI_3:6;
hence
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . x = (DataPart (Comput (P2,s2,(i + 1)))) . x
by A23, A98;
verum end; end; end; then
DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) c= DataPart (Comput (P2,s2,(i + 1)))
by A17, A18, GRFUNC_1:2;
hence
DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1)))
by A17, A18, GRFUNC_1:3;
verum end; suppose A99:
da = db
;
S1[i + 1]A100:
(Exec ((CurInstr (P1,(Comput (P1,s1,i)))),(Comput (P1,s1,i)))) . (IC ) = succ (IC (Comput (P1,s1,i)))
by A88, AMI_3:6;
hence
(IC (Comput (P1,s1,(i + 1)))) + k = IC (Comput (P2,s2,(i + 1)))
by A11, A12, A52, A37, A53, A89, AMI_3:6;
( IncAddr ((CurInstr (P1,(Comput (P1,s1,(i + 1))))),k) = CurInstr (P2,(Comput (P2,s2,(i + 1)))) & (Comput (P1,s1,(i + 1))) | (dom (DataPart p)) = (Comput (P2,s2,(i + 1))) | (dom (DataPart p)) & DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1))) )thus
IncAddr (
(CurInstr (P1,(Comput (P1,s1,(i + 1))))),
k)
= CurInstr (
P2,
(Comput (P2,s2,(i + 1))))
by A11, A12, A32, A52, A37, A53, A89, A100, AMI_3:6;
( (Comput (P1,s1,(i + 1))) | (dom (DataPart p)) = (Comput (P2,s2,(i + 1))) | (dom (DataPart p)) & DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1))) )now let x be
set ;
( x in dom ((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) implies ((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . b1 = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . b1 )assume A101:
x in dom ((Comput (P1,s1,(i + 1))) | (dom (DataPart p)))
;
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . b1 = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . b1
dom (DataPart p) c= Data-Locations
by RELAT_1:58;
then
x in Data-Locations
by A31, A101;
then reconsider d =
x as
Data-Location by AMI_3:27, AMI_3:def 2;
per cases
( da = d or da <> d )
;
suppose A102:
da = d
;
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . b1 = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . b1A103:
(
((Comput (P1,s1,i)) | (dom (DataPart p))) . d = (Comput (P1,s1,i)) . d &
((Comput (P2,s2,i)) | (dom (DataPart p))) . d = (Comput (P2,s2,i)) . d )
by A31, A40, A47, A101, FUNCT_1:47;
A104:
(
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . d = (Comput (P1,s1,(i + 1))) . d &
((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . d = (Comput (P2,s2,(i + 1))) . d )
by A31, A43, A101, FUNCT_1:47;
(Comput (P2,s2,(i + 1))) . d = ((Comput (P2,s2,i)) . da) mod ((Comput (P2,s2,i)) . db)
by A12, A37, A89, A99, A102, AMI_3:6;
hence
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . x = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . x
by A13, A52, A88, A99, A102, A103, A104, AMI_3:6;
verum end; suppose
da <> d
;
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . b1 = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . b1then
(
(Comput (P1,s1,(i + 1))) . d = (Comput (P1,s1,i)) . d &
(Comput (P2,s2,(i + 1))) . d = (Comput (P2,s2,i)) . d )
by A12, A52, A37, A88, A89, A99, AMI_3:6;
hence
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . x = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . x
by A31, A48, A101;
verum end; end; end; then
(Comput (P1,s1,(i + 1))) | (dom (DataPart p)) c= (Comput (P2,s2,(i + 1))) | (dom (DataPart p))
by A31, A43, GRFUNC_1:2;
hence
(Comput (P1,s1,(i + 1))) | (dom (DataPart p)) = (Comput (P2,s2,(i + 1))) | (dom (DataPart p))
by A31, A43, GRFUNC_1:3;
DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1)))now let x be
set ;
( x in dom (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) implies (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . b1 = (DataPart (Comput (P2,s2,(i + 1)))) . b1 )assume A105:
x in dom (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))))
;
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . b1 = (DataPart (Comput (P2,s2,(i + 1)))) . b1then reconsider d =
x as
Data-Location by A17, AMI_3:27, AMI_3:def 2;
per cases
( da = d or da <> d )
;
suppose
da = d
;
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . b1 = (DataPart (Comput (P2,s2,(i + 1)))) . b1then
(
(Comput (P2,s2,(i + 1))) . d = ((Comput (P2,s2,i)) . da) mod ((Comput (P2,s2,i)) . db) &
(Comput (P1,(s1 +* (DataPart s2)),(i + 1))) . d = ((Comput (P1,(s1 +* (DataPart s2)),i)) . da) mod ((Comput (P1,(s1 +* (DataPart s2)),i)) . db) )
by A12, A37, A41, A88, A89, A99, AMI_3:6;
hence
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . x = (DataPart (Comput (P2,s2,(i + 1)))) . x
by A19, A90, A105;
verum end; suppose
da <> d
;
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . b1 = (DataPart (Comput (P2,s2,(i + 1)))) . b1then
(
(Comput (P1,(s1 +* (DataPart s2)),(i + 1))) . d = (Comput (P1,(s1 +* (DataPart s2)),i)) . d &
(Comput (P2,s2,(i + 1))) . d = (Comput (P2,s2,i)) . d )
by A12, A37, A41, A88, A89, A99, AMI_3:6;
hence
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . x = (DataPart (Comput (P2,s2,(i + 1)))) . x
by A23, A105;
verum end; end; end; then
DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) c= DataPart (Comput (P2,s2,(i + 1)))
by A17, A18, GRFUNC_1:2;
hence
DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1)))
by A17, A18, GRFUNC_1:3;
verum end; end; end; suppose
InsCode (CurInstr (P1,(Comput (P1,s1,i)))) = 6
;
S1[i + 1]then consider loc being
Element of
NAT such that A106:
CurInstr (
P1,
(Comput (P1,s1,i)))
= SCM-goto loc
by AMI_5:13;
A107:
CurInstr (
P2,
(Comput (P2,s2,i)))
= SCM-goto (loc + k)
by A12, A106, Th1;
thus (IC (Comput (P1,s1,(i + 1)))) + k =
loc + k
by A52, A106, AMI_3:7
.=
IC (Comput (P2,s2,(i + 1)))
by A37, A107, AMI_3:7
;
( IncAddr ((CurInstr (P1,(Comput (P1,s1,(i + 1))))),k) = CurInstr (P2,(Comput (P2,s2,(i + 1)))) & (Comput (P1,s1,(i + 1))) | (dom (DataPart p)) = (Comput (P2,s2,(i + 1))) | (dom (DataPart p)) & DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1))) )hence
IncAddr (
(CurInstr (P1,(Comput (P1,s1,(i + 1))))),
k)
= CurInstr (
P2,
(Comput (P2,s2,(i + 1))))
by A32;
( (Comput (P1,s1,(i + 1))) | (dom (DataPart p)) = (Comput (P2,s2,(i + 1))) | (dom (DataPart p)) & DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1))) )now let x be
set ;
( x in dom ((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) implies ((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . x = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . x )assume A108:
x in dom ((Comput (P1,s1,(i + 1))) | (dom (DataPart p)))
;
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . x = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . x
dom (DataPart p) c= Data-Locations
by RELAT_1:58;
then
x in Data-Locations
by A31, A108;
then reconsider d =
x as
Data-Location by AMI_3:27, AMI_3:def 2;
(
(Comput (P1,s1,(i + 1))) . d = (Comput (P1,s1,i)) . d &
(Comput (P2,s2,(i + 1))) . d = (Comput (P2,s2,i)) . d )
by A52, A37, A106, A107, AMI_3:7;
hence
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . x = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . x
by A31, A48, A108;
verum end; then
(Comput (P1,s1,(i + 1))) | (dom (DataPart p)) c= (Comput (P2,s2,(i + 1))) | (dom (DataPart p))
by A31, A43, GRFUNC_1:2;
hence
(Comput (P1,s1,(i + 1))) | (dom (DataPart p)) = (Comput (P2,s2,(i + 1))) | (dom (DataPart p))
by A31, A43, GRFUNC_1:3;
DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1)))now let x be
set ;
( x in dom (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) implies (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . x = (DataPart (Comput (P2,s2,(i + 1)))) . x )assume A109:
x in dom (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))))
;
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . x = (DataPart (Comput (P2,s2,(i + 1)))) . xthen reconsider d =
x as
Data-Location by A17, AMI_3:27, AMI_3:def 2;
(
(Comput (P1,(s1 +* (DataPart s2)),(i + 1))) . d = (Comput (P1,(s1 +* (DataPart s2)),i)) . d &
(Comput (P2,s2,(i + 1))) . d = (Comput (P2,s2,i)) . d )
by A37, A41, A106, A107, AMI_3:7;
hence
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . x = (DataPart (Comput (P2,s2,(i + 1)))) . x
by A23, A109;
verum end; then
DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) c= DataPart (Comput (P2,s2,(i + 1)))
by A17, A18, GRFUNC_1:2;
hence
DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1)))
by A17, A18, GRFUNC_1:3;
verum end; suppose
InsCode (CurInstr (P1,(Comput (P1,s1,i)))) = 7
;
S1[i + 1]then consider loc being
Element of
NAT ,
da being
Data-Location such that A110:
CurInstr (
P1,
(Comput (P1,s1,i)))
= da =0_goto loc
by AMI_5:14;
A112:
CurInstr (
P2,
(Comput (P2,s2,i)))
= da =0_goto (loc + k)
by A12, A110, Th2;
A114:
(Comput (P1,(s1 +* (DataPart s2)),i)) . da = (Comput (P2,s2,i)) . da
by A27;
A115:
now per cases
( loc <> succ (IC (Comput (P1,s1,i))) or loc = succ (IC (Comput (P1,s1,i))) )
;
suppose
loc <> succ (IC (Comput (P1,s1,i)))
;
(IC (Comput (P1,s1,(i + 1)))) + k = IC (Comput (P2,s2,(i + 1)))hence
(IC (Comput (P1,s1,(i + 1)))) + k = IC (Comput (P2,s2,(i + 1)))
by A2, A10, A110, A114, A111, A113, A4, AMI_5:23;
verum end; end; end; hence
(IC (Comput (P1,s1,(i + 1)))) + k = IC (Comput (P2,s2,(i + 1)))
;
( IncAddr ((CurInstr (P1,(Comput (P1,s1,(i + 1))))),k) = CurInstr (P2,(Comput (P2,s2,(i + 1)))) & (Comput (P1,s1,(i + 1))) | (dom (DataPart p)) = (Comput (P2,s2,(i + 1))) | (dom (DataPart p)) & DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1))) )thus
IncAddr (
(CurInstr (P1,(Comput (P1,s1,(i + 1))))),
k)
= CurInstr (
P2,
(Comput (P2,s2,(i + 1))))
by A32, A115;
( (Comput (P1,s1,(i + 1))) | (dom (DataPart p)) = (Comput (P2,s2,(i + 1))) | (dom (DataPart p)) & DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1))) )now let x be
set ;
( x in dom ((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) implies ((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . x = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . x )assume A116:
x in dom ((Comput (P1,s1,(i + 1))) | (dom (DataPart p)))
;
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . x = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . x
dom (DataPart p) c= Data-Locations
by RELAT_1:58;
then
x in Data-Locations
by A31, A116;
then reconsider d =
x as
Data-Location by AMI_3:27, AMI_3:def 2;
(
(Comput (P1,s1,(i + 1))) . d = (Comput (P1,s1,i)) . d &
(Comput (P2,s2,(i + 1))) . d = (Comput (P2,s2,i)) . d )
by A52, A37, A110, A112, AMI_3:8;
hence
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . x = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . x
by A31, A48, A116;
verum end; then
(Comput (P1,s1,(i + 1))) | (dom (DataPart p)) c= (Comput (P2,s2,(i + 1))) | (dom (DataPart p))
by A31, A43, GRFUNC_1:2;
hence
(Comput (P1,s1,(i + 1))) | (dom (DataPart p)) = (Comput (P2,s2,(i + 1))) | (dom (DataPart p))
by A31, A43, GRFUNC_1:3;
DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1)))now let x be
set ;
( x in dom (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) implies (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . x = (DataPart (Comput (P2,s2,(i + 1)))) . x )assume A117:
x in dom (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))))
;
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . x = (DataPart (Comput (P2,s2,(i + 1)))) . xthen reconsider d =
x as
Data-Location by A17, AMI_3:27, AMI_3:def 2;
(
(Comput (P1,(s1 +* (DataPart s2)),(i + 1))) . d = (Comput (P1,(s1 +* (DataPart s2)),i)) . d &
(Comput (P2,s2,(i + 1))) . d = (Comput (P2,s2,i)) . d )
by A37, A41, A110, A112, AMI_3:8;
hence
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . x = (DataPart (Comput (P2,s2,(i + 1)))) . x
by A23, A117;
verum end; then
DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) c= DataPart (Comput (P2,s2,(i + 1)))
by A17, A18, GRFUNC_1:2;
hence
DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1)))
by A17, A18, GRFUNC_1:3;
verum end; suppose
InsCode (CurInstr (P1,(Comput (P1,s1,i)))) = 8
;
S1[i + 1]then consider loc being
Element of
NAT ,
da being
Data-Location such that A118:
CurInstr (
P1,
(Comput (P1,s1,i)))
= da >0_goto loc
by AMI_5:15;
A120:
CurInstr (
P2,
(Comput (P2,s2,i)))
= da >0_goto (loc + k)
by A12, A118, Th3;
A122:
(Comput (P1,(s1 +* (DataPart s2)),i)) . da = (Comput (P2,s2,i)) . da
by A27;
A123:
now per cases
( loc <> succ (IC (Comput (P1,s1,i))) or loc = succ (IC (Comput (P1,s1,i))) )
;
suppose
loc <> succ (IC (Comput (P1,s1,i)))
;
(IC (Comput (P1,s1,(i + 1)))) + k = IC (Comput (P2,s2,(i + 1)))hence
(IC (Comput (P1,s1,(i + 1)))) + k = IC (Comput (P2,s2,(i + 1)))
by A2, A10, A118, A122, A119, A121, A4, AMI_5:24;
verum end; end; end; hence
(IC (Comput (P1,s1,(i + 1)))) + k = IC (Comput (P2,s2,(i + 1)))
;
( IncAddr ((CurInstr (P1,(Comput (P1,s1,(i + 1))))),k) = CurInstr (P2,(Comput (P2,s2,(i + 1)))) & (Comput (P1,s1,(i + 1))) | (dom (DataPart p)) = (Comput (P2,s2,(i + 1))) | (dom (DataPart p)) & DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1))) )thus
IncAddr (
(CurInstr (P1,(Comput (P1,s1,(i + 1))))),
k)
= CurInstr (
P2,
(Comput (P2,s2,(i + 1))))
by A32, A123;
( (Comput (P1,s1,(i + 1))) | (dom (DataPart p)) = (Comput (P2,s2,(i + 1))) | (dom (DataPart p)) & DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1))) )now let x be
set ;
( x in dom ((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) implies ((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . x = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . x )assume A124:
x in dom ((Comput (P1,s1,(i + 1))) | (dom (DataPart p)))
;
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . x = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . x
dom (DataPart p) c= Data-Locations
by RELAT_1:58;
then
x in Data-Locations
by A31, A124;
then reconsider d =
x as
Data-Location by AMI_3:27, AMI_3:def 2;
(
(Comput (P1,s1,(i + 1))) . d = (Comput (P1,s1,i)) . d &
(Comput (P2,s2,(i + 1))) . d = (Comput (P2,s2,i)) . d )
by A52, A37, A118, A120, AMI_3:9;
hence
((Comput (P1,s1,(i + 1))) | (dom (DataPart p))) . x = ((Comput (P2,s2,(i + 1))) | (dom (DataPart p))) . x
by A31, A48, A124;
verum end; then
(Comput (P1,s1,(i + 1))) | (dom (DataPart p)) c= (Comput (P2,s2,(i + 1))) | (dom (DataPart p))
by A31, A43, GRFUNC_1:2;
hence
(Comput (P1,s1,(i + 1))) | (dom (DataPart p)) = (Comput (P2,s2,(i + 1))) | (dom (DataPart p))
by A31, A43, GRFUNC_1:3;
DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1)))now let x be
set ;
( x in dom (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) implies (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . x = (DataPart (Comput (P2,s2,(i + 1)))) . x )assume A125:
x in dom (DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))))
;
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . x = (DataPart (Comput (P2,s2,(i + 1)))) . xthen reconsider d =
x as
Data-Location by A17, AMI_3:27, AMI_3:def 2;
(
(Comput (P1,(s1 +* (DataPart s2)),(i + 1))) . d = (Comput (P1,(s1 +* (DataPart s2)),i)) . d &
(Comput (P2,s2,(i + 1))) . d = (Comput (P2,s2,i)) . d )
by A37, A41, A118, A120, AMI_3:9;
hence
(DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1)))) . x = (DataPart (Comput (P2,s2,(i + 1)))) . x
by A23, A125;
verum end; then
DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) c= DataPart (Comput (P2,s2,(i + 1)))
by A17, A18, GRFUNC_1:2;
hence
DataPart (Comput (P1,(s1 +* (DataPart s2)),(i + 1))) = DataPart (Comput (P2,s2,(i + 1)))
by A17, A18, GRFUNC_1:3;
verum end; end;
end;
B127:
DataPart p c= p
by RELAT_1:59;
B130:
IC in dom (IncIC (p,k))
by MEMSTR_0:52;
now thus (IC (Comput (P1,s1,0))) + k =
(IC s1) + k
by EXTPRO_1:2
.=
(IC p) + k
by A2, B1, GRFUNC_1:2
.=
(IC p) + k
.=
IC (IncIC (p,k))
by MEMSTR_0:53
.=
IC s2
by A3, B130, GRFUNC_1:2
.=
IC (Comput (P2,s2,0))
by EXTPRO_1:2
;
( IncAddr ((CurInstr (P1,(Comput (P1,s1,0)))),k) = CurInstr (P2,(Comput (P2,s2,0))) & (Comput (P1,s1,0)) | (dom (DataPart p)) = (Comput (P2,s2,0)) | (dom (DataPart p)) & DataPart (Comput (P1,(s1 +* (DataPart s2)),0)) = DataPart (Comput (P2,s2,0)) )reconsider loc =
IC p as
Element of
NAT ;
A131:
IC p = IC s1
by A2, B1, GRFUNC_1:2;
then
IC p = IC (Comput (P1,s1,0))
by EXTPRO_1:2;
then A132:
loc in dom q
by A8, B2, AMISTD_5:def 4;
A133:
(IC p) + k in dom (Reloc (q,k))
by A132, COMPOS_1:46;
B134:
IC in dom (IncIC (p,k))
by MEMSTR_0:52;
A135:
q . (IC p) = P1 . (IC s1)
by A131, A132, A4, GRFUNC_1:2;
dom P2 = NAT
by PARTFUN1:def 2;
then A136:
CurInstr (
P2,
(Comput (P2,s2,0))) =
P2 . (IC (Comput (P2,s2,0)))
by PARTFUN1:def 6
.=
P2 . (IC s2)
by EXTPRO_1:2
.=
P2 . (IC (IncIC (p,k)))
by A3, B134, GRFUNC_1:2
.=
P2 . ((IC p) + k)
by MEMSTR_0:53
.=
P2 . ((IC p) + k)
.=
(Reloc (q,k)) . ((IC p) + k)
by A133, A4, GRFUNC_1:2
;
A137:
dom P1 = NAT
by PARTFUN1:def 2;
CurInstr (
P1,
(Comput (P1,s1,0))) =
CurInstr (
P1,
s1)
by EXTPRO_1:2
.=
P1 . (IC s1)
by A137, PARTFUN1:def 6
;
hence
IncAddr (
(CurInstr (P1,(Comput (P1,s1,0)))),
k)
= CurInstr (
P2,
(Comput (P2,s2,0)))
by A132, A135, A136, COMPOS_1:35;
( (Comput (P1,s1,0)) | (dom (DataPart p)) = (Comput (P2,s2,0)) | (dom (DataPart p)) & DataPart (Comput (P1,(s1 +* (DataPart s2)),0)) = DataPart (Comput (P2,s2,0)) )A138:
dom (DataPart s2) = Data-Locations
by MEMSTR_0:9;
X1:
DataPart p c= s1
by A2, B127, XBOOLE_1:1;
HH:
DataPart (IncIC (p,k)) = DataPart p
by MEMSTR_0:51;
IncIC (
p,
k)
= IncIC (
p,
k)
;
then
DataPart p c= IncIC (
p,
k)
by HH, MEMSTR_0:12;
then X2:
DataPart p c= s2
by A3, XBOOLE_1:1;
thus (Comput (P1,s1,0)) | (dom (DataPart p)) =
s1 | (dom (DataPart p))
by EXTPRO_1:2
.=
DataPart p
by X1, GRFUNC_1:23
.=
s2 | (dom (DataPart p))
by X2, GRFUNC_1:23
.=
(Comput (P2,s2,0)) | (dom (DataPart p))
by EXTPRO_1:2
;
DataPart (Comput (P1,(s1 +* (DataPart s2)),0)) = DataPart (Comput (P2,s2,0))thus DataPart (Comput (P1,(s1 +* (DataPart s2)),0)) =
DataPart (s1 +* (DataPart s2))
by EXTPRO_1:2
.=
DataPart s2
by A138, FUNCT_4:23
.=
DataPart (Comput (P2,s2,0))
by EXTPRO_1:2
;
verum end;
then A139:
S1[ 0 ]
;
thus
for i being Element of NAT holds S1[i]
from NAT_1:sch 1(A139, A126); verum