let k be Element of NAT ; :: thesis: for p being autonomic FinPartState of SCM+FSA
for s1, s2 being State of SCM+FSA st IC SCM+FSA in dom p & p c= s1 & Relocated p,k c= s2 holds
for i being Element of NAT holds
( (IC (Computation s1,i)) + k = IC (Computation s2,i) & IncAddr (CurInstr (Computation s1,i)),k = CurInstr (Computation s2,i) & (Computation s1,i) | (dom (DataPart p)) = (Computation s2,i) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),i) = DataPart (Computation s2,i) )
let p be autonomic FinPartState of SCM+FSA ; :: thesis: for s1, s2 being State of SCM+FSA st IC SCM+FSA in dom p & p c= s1 & Relocated p,k c= s2 holds
for i being Element of NAT holds
( (IC (Computation s1,i)) + k = IC (Computation s2,i) & IncAddr (CurInstr (Computation s1,i)),k = CurInstr (Computation s2,i) & (Computation s1,i) | (dom (DataPart p)) = (Computation s2,i) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),i) = DataPart (Computation s2,i) )
let s1, s2 be State of SCM+FSA ; :: thesis: ( IC SCM+FSA in dom p & p c= s1 & Relocated p,k c= s2 implies for i being Element of NAT holds
( (IC (Computation s1,i)) + k = IC (Computation s2,i) & IncAddr (CurInstr (Computation s1,i)),k = CurInstr (Computation s2,i) & (Computation s1,i) | (dom (DataPart p)) = (Computation s2,i) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),i) = DataPart (Computation s2,i) ) )
assume that
A1:
IC SCM+FSA in dom p
and
A2:
p c= s1
and
A3:
Relocated p,k c= s2
; :: thesis: for i being Element of NAT holds
( (IC (Computation s1,i)) + k = IC (Computation s2,i) & IncAddr (CurInstr (Computation s1,i)),k = CurInstr (Computation s2,i) & (Computation s1,i) | (dom (DataPart p)) = (Computation s2,i) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),i) = DataPart (Computation s2,i) )
set s3 = s1 +* (DataPart s2);
A5:
IC SCM+FSA in dom (Relocated p,k)
by Th5;
A6:
DataPart p = DataPart (Relocated p,k)
by Th1;
A7:
DataPart p c= p
by RELAT_1:88;
A8:
DataPart (Relocated p,k) c= Relocated p,k
by RELAT_1:88;
A9:
not p is NAT -defined
by A1, AMI_1:109;
A10:
p c= s1 +* (DataPart s2)
by A2, A3, Th10;
defpred S1[ Element of NAT ] means ( (IC (Computation s1,$1)) + k = IC (Computation s2,$1) & IncAddr (CurInstr (Computation s1,$1)),k = CurInstr (Computation s2,$1) & (Computation s1,$1) | (dom (DataPart p)) = (Computation s2,$1) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),$1) = DataPart (Computation s2,$1) );
reconsider ii = IC p as Element of NAT ;
now thus (IC (Computation s1,0 )) + k =
(IC s1) + k
by AMI_1:13
.=
(IC p) + k
by A1, A2, AMI_1:97
.=
IC (Relocated p,k)
by Th6
.=
IC s2
by A3, A5, AMI_1:97
.=
IC (Computation s2,0 )
by AMI_1:13
;
:: thesis: ( IncAddr (CurInstr (Computation s1,0 )),k = CurInstr (Computation s2,0 ) & (Computation s1,0 ) | (dom (DataPart p)) = (Computation s2,0 ) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),0 ) = DataPart (Computation s2,0 ) )reconsider loc =
IC p as
Instruction-Location of
SCM+FSA ;
A11:
IC p = IC s1
by A1, A2, AMI_1:97;
then
IC p = IC (Computation s1,0 )
by AMI_1:13;
then A12:
loc in dom (ProgramPart p)
by A2, A9, SCMFSA_3:17;
ProgramPart p c= p
by RELAT_1:88;
then A13:
dom (ProgramPart p) c= dom p
by GRFUNC_1:8;
then A14:
p . ii = s1 . (IC s1)
by A2, A11, A12, GRFUNC_1:8;
A15:
IncAddr (CurInstr (Computation s1,0 )),
k =
IncAddr (CurInstr s1),
k
by AMI_1:13
.=
IncAddr (s1 . (IC s1)),
k
;
A16:
IC SCM+FSA in dom (Relocated p,k)
by Th5;
A17:
(IC p) + k in dom (Relocated p,k)
by A12, A13, Th4;
CurInstr (Computation s2,0 ) =
CurInstr s2
by AMI_1:13
.=
s2 . (IC (Relocated p,k))
by A3, A16, AMI_1:97
.=
s2 . ((IC p) + k)
by Th6
.=
(Relocated p,k) . ((IC p) + k)
by A3, A17, GRFUNC_1:8
;
hence
IncAddr (CurInstr (Computation s1,0 )),
k = CurInstr (Computation s2,0 )
by A12, A14, A15, Th7;
:: thesis: ( (Computation s1,0 ) | (dom (DataPart p)) = (Computation s2,0 ) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),0 ) = DataPart (Computation s2,0 ) )thus (Computation s1,0 ) | (dom (DataPart p)) =
s1 | (dom (DataPart p))
by AMI_1:13
.=
DataPart p
by A2, A7, GRFUNC_1:64, XBOOLE_1:1
.=
s2 | (dom (DataPart p))
by A3, A6, A8, GRFUNC_1:64, XBOOLE_1:1
.=
(Computation s2,0 ) | (dom (DataPart (Relocated p,k)))
by A6, AMI_1:13
;
:: thesis: DataPart (Computation (s1 +* (DataPart s2)),0 ) = DataPart (Computation s2,0 )thus DataPart (Computation (s1 +* (DataPart s2)),0 ) =
DataPart (s1 +* (DataPart s2))
by AMI_1:13
.=
DataPart s2
by CARD_3:99
.=
DataPart (Computation s2,0 )
by AMI_1:13
;
:: thesis: verum end;
then A19:
S1[ 0 ]
;
A20:
for i being Element of NAT st S1[i] holds
S1[i + 1]
proof
let i be
Element of
NAT ;
:: thesis: ( S1[i] implies S1[i + 1] )
assume that A21:
(IC (Computation s1,i)) + k = IC (Computation s2,i)
and A22:
IncAddr (CurInstr (Computation s1,i)),
k = CurInstr (Computation s2,i)
and A23:
(Computation s1,i) | (dom (DataPart p)) = (Computation s2,i) | (dom (DataPart (Relocated p,k)))
and A24:
DataPart (Computation (s1 +* (DataPart s2)),i) = DataPart (Computation s2,i)
;
:: thesis: S1[i + 1]
set Cs1i =
Computation s1,
i;
set Cs2i =
Computation s2,
i;
set Cs3i =
Computation (s1 +* (DataPart s2)),
i;
set Cs1i1 =
Computation s1,
(i + 1);
set Cs2i1 =
Computation s2,
(i + 1);
set Cs3i1 =
Computation (s1 +* (DataPart s2)),
(i + 1);
set DPp =
DataPart p;
A25:
dom (DataPart p) = dom (DataPart (Relocated p,k))
by Th1;
A26:
dom (Computation s1,(i + 1)) = ((Int-Locations \/ FinSeq-Locations ) \/ {(IC SCM+FSA )}) \/ NAT
by AMI_1:79, SCMFSA_2:8;
A27:
dom (Computation s2,(i + 1)) = ((Int-Locations \/ FinSeq-Locations ) \/ {(IC SCM+FSA )}) \/ NAT
by AMI_1:79, SCMFSA_2:8;
A28:
dom (Computation s1,i) = ((Int-Locations \/ FinSeq-Locations ) \/ {(IC SCM+FSA )}) \/ NAT
by AMI_1:79, SCMFSA_2:8;
A29:
dom (Computation s2,i) = ((Int-Locations \/ FinSeq-Locations ) \/ {(IC SCM+FSA )}) \/ NAT
by AMI_1:79, SCMFSA_2:8;
dom (DataPart p) = (dom p) /\ (Int-Locations \/ FinSeq-Locations )
by RELAT_1:90, SCMFSA_2:127;
then A30:
dom (DataPart p) c= {(IC SCM+FSA )} \/ (Int-Locations \/ FinSeq-Locations )
by XBOOLE_1:10, XBOOLE_1:17;
A31:
dom ((Computation s1,(i + 1)) | (dom (DataPart p))) =
(dom (Computation s1,(i + 1))) /\ (dom (DataPart p))
by RELAT_1:90
.=
dom (DataPart p)
by A26, A30, XBOOLE_1:10, XBOOLE_1:28
;
A32:
dom ((Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k)))) =
(dom (Computation s2,(i + 1))) /\ (dom (DataPart p))
by A25, RELAT_1:90
.=
dom (DataPart p)
by A27, A30, XBOOLE_1:10, XBOOLE_1:28
;
A33:
dom ((Computation s1,i) | (dom (DataPart p))) =
(dom (Computation s1,i)) /\ (dom (DataPart p))
by RELAT_1:90
.=
dom (DataPart p)
by A28, A30, XBOOLE_1:10, XBOOLE_1:28
;
A34:
dom ((Computation s2,i) | (dom (DataPart (Relocated p,k)))) =
(dom (Computation s2,i)) /\ (dom (DataPart p))
by A25, RELAT_1:90
.=
dom (DataPart p)
by A29, A30, XBOOLE_1:10, XBOOLE_1:28
;
A35:
dom (DataPart (Computation (s1 +* (DataPart s2)),i)) = Int-Locations \/ FinSeq-Locations
by SCMFSA_2:127, SCMNORM:14;
A36:
dom (DataPart (Computation s2,i)) = Int-Locations \/ FinSeq-Locations
by SCMFSA_2:127, SCMNORM:14;
A37:
dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) = Int-Locations \/ FinSeq-Locations
by SCMFSA_2:127, SCMNORM:14;
A38:
dom (DataPart (Computation s2,(i + 1))) = Int-Locations \/ FinSeq-Locations
by SCMFSA_2:127, SCMNORM:14;
A45:
now let x,
d be
set ;
:: thesis: ( d = x & d in dom (DataPart p) & (Computation s1,(i + 1)) . d = (Computation s1,i) . d & (Computation s2,(i + 1)) . d = (Computation s2,i) . d implies ((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x )assume that A46:
(
d = x &
d in dom (DataPart p) )
and A47:
(
(Computation s1,(i + 1)) . d = (Computation s1,i) . d &
(Computation s2,(i + 1)) . d = (Computation s2,i) . d )
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
(
((Computation s1,i) | (dom (DataPart p))) . d = (Computation s1,i) . d &
((Computation s2,i) | (dom (DataPart p))) . d = (Computation s2,i) . d )
by A25, A33, A34, A46, FUNCT_1:70;
hence ((Computation s1,(i + 1)) | (dom (DataPart p))) . x =
(Computation s2,(i + 1)) . d
by A23, A25, A31, A46, A47, FUNCT_1:70
.=
((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A25, A32, A46, FUNCT_1:70
;
:: thesis: verum end;
A48:
now let x,
d be
set ;
:: thesis: ( d = x & d in dom (DataPart p) & (Computation s1,(i + 1)) . d = (Computation s2,(i + 1)) . d implies ((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x )assume that A49:
(
d = x &
d in dom (DataPart p) )
and A50:
(Computation s1,(i + 1)) . d = (Computation s2,(i + 1)) . d
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . xthus ((Computation s1,(i + 1)) | (dom (DataPart p))) . x =
(Computation s2,(i + 1)) . d
by A31, A49, A50, FUNCT_1:70
.=
((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A25, A32, A49, FUNCT_1:70
;
:: thesis: verum end;
A51:
now let x be
set ;
:: thesis: ( x in dom ((Computation (s1 +* (DataPart s2)),(i + 1)) | (Int-Locations \/ FinSeq-Locations )) & (Computation (s1 +* (DataPart s2)),(i + 1)) . x = (Computation s2,(i + 1)) . x implies (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x )assume A52:
(
x in dom ((Computation (s1 +* (DataPart s2)),(i + 1)) | (Int-Locations \/ FinSeq-Locations )) &
(Computation (s1 +* (DataPart s2)),(i + 1)) . x = (Computation s2,(i + 1)) . x )
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . xhence (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x =
(Computation s2,(i + 1)) . x
by FUNCT_1:70, SCMFSA_2:127
.=
(DataPart (Computation s2,(i + 1))) . x
by A37, A38, A52, FUNCT_1:70, SCMFSA_2:127
;
:: thesis: verum end;
A53:
now let x be
set ;
:: thesis: ( x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) & (Computation (s1 +* (DataPart s2)),(i + 1)) . x = (Computation (s1 +* (DataPart s2)),i) . x & (Computation s2,(i + 1)) . x = (Computation s2,i) . x implies (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x )assume A54:
(
x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) &
(Computation (s1 +* (DataPart s2)),(i + 1)) . x = (Computation (s1 +* (DataPart s2)),i) . x &
(Computation s2,(i + 1)) . x = (Computation s2,i) . x )
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . xthen
(
(DataPart (Computation (s1 +* (DataPart s2)),i)) . x = (Computation (s1 +* (DataPart s2)),i) . x &
(DataPart (Computation s2,i)) . x = (Computation s2,i) . x )
by A35, A36, A37, FUNCT_1:70;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A24, A51, A54, SCMFSA_2:127;
:: thesis: verum end;
A55:
now assume A56:
(IC (Computation s1,(i + 1))) + k = IC (Computation s2,(i + 1))
;
:: thesis: IncAddr (CurInstr (Computation s1,(i + 1))),k = CurInstr (Computation s2,(i + 1))reconsider loc =
IC (Computation s1,(i + 1)) as
Instruction-Location of
SCM+FSA ;
reconsider ii =
loc as
Element of
NAT by ORDINAL1:def 13;
A57:
ii in dom (ProgramPart p)
by A2, A9, SCMFSA_3:17;
ProgramPart p c= p
by RELAT_1:88;
then A58:
dom (ProgramPart p) c= dom p
by GRFUNC_1:8;
A59:
CurInstr (Computation s1,(i + 1)) =
s1 . loc
by AMI_1:54
.=
p . ii
by A2, A57, A58, GRFUNC_1:8
;
loc + k in dom (Relocated p,k)
by A57, A58, Th4;
then (Relocated p,k) . (loc + k) =
s2 . (loc + k)
by A3, GRFUNC_1:8
.=
(Computation s2,(i + 1)) . (loc + k)
by AMI_1:54
;
hence
IncAddr (CurInstr (Computation s1,(i + 1))),
k = CurInstr (Computation s2,(i + 1))
by A56, A57, A59, Th7;
:: thesis: verum end;
A60:
Computation s1,
(i + 1) =
Following (Computation s1,i)
by AMI_1:14
.=
Exec (CurInstr (Computation s1,i)),
(Computation s1,i)
;
A61:
Computation s2,
(i + 1) =
Following (Computation s2,i)
by AMI_1:14
.=
Exec (CurInstr (Computation s2,i)),
(Computation s2,i)
;
A62:
Computation (s1 +* (DataPart s2)),
(i + 1) =
Following (Computation (s1 +* (DataPart s2)),i)
by AMI_1:14
.=
Exec (CurInstr (Computation s1,i)),
(Computation (s1 +* (DataPart s2)),i)
by A2, A9, A10, SCMFSA_3:18
;
reconsider j =
IC (Computation s1,i) as
Element of
NAT by ORDINAL1:def 13;
A64:
Next ((IC (Computation s1,i)) + k) =
insloc ((j + k) + 1)
by NAT_1:39
.=
(insloc (j + 1)) + k
.=
(Next (IC (Computation s1,i))) + k
by NAT_1:39
;
set I =
CurInstr (Computation s1,i);
A65:
InsCode (CurInstr (Computation s1,i)) <= 11
+ 1
by SCMFSA_2:35;
A66:
( not
InsCode (CurInstr (Computation s1,i)) <= 10
+ 1 or
InsCode (CurInstr (Computation s1,i)) <= 10 or
InsCode (CurInstr (Computation s1,i)) = 11 )
by NAT_1:8;
A67:
( not
InsCode (CurInstr (Computation s1,i)) <= 9
+ 1 or
InsCode (CurInstr (Computation s1,i)) <= 8
+ 1 or
InsCode (CurInstr (Computation s1,i)) = 10 )
by NAT_1:8;
per cases
( InsCode (CurInstr (Computation s1,i)) = 0 or InsCode (CurInstr (Computation s1,i)) = 1 or InsCode (CurInstr (Computation s1,i)) = 2 or InsCode (CurInstr (Computation s1,i)) = 3 or InsCode (CurInstr (Computation s1,i)) = 4 or InsCode (CurInstr (Computation s1,i)) = 5 or InsCode (CurInstr (Computation s1,i)) = 6 or InsCode (CurInstr (Computation s1,i)) = 7 or InsCode (CurInstr (Computation s1,i)) = 8 or InsCode (CurInstr (Computation s1,i)) = 9 or InsCode (CurInstr (Computation s1,i)) = 10 or InsCode (CurInstr (Computation s1,i)) = 11 or InsCode (CurInstr (Computation s1,i)) = 12 )
by A65, A66, A67, NAT_1:8, NAT_1:33;
suppose
InsCode (CurInstr (Computation s1,i)) = 0
;
:: thesis: S1[i + 1]then A68:
CurInstr (Computation s1,i) = halt SCM+FSA
by SCMFSA_2:122;
then A69:
CurInstr (Computation s2,i) = halt SCM+FSA
by A22, SCMFSA_4:8;
thus (IC (Computation s1,(i + 1))) + k =
(IC (Computation s1,i)) + k
by A60, A68, AMI_1:def 8
.=
IC (Computation s2,(i + 1))
by A21, A61, A69, AMI_1:def 8
;
:: thesis: ( IncAddr (CurInstr (Computation s1,(i + 1))),k = CurInstr (Computation s2,(i + 1)) & (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )hence
IncAddr (CurInstr (Computation s1,(i + 1))),
k = CurInstr (Computation s2,(i + 1))
by A55;
:: thesis: ( (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )A70:
(
Computation s2,
(i + 1) = Computation s2,
i &
Computation s1,
(i + 1) = Computation s1,
i )
by A60, A61, A68, A69, AMI_1:def 8;
hence
(Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k)))
by A23;
:: thesis: DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))thus
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))
by A24, A62, A68, A70, AMI_1:def 8;
:: thesis: verum end; suppose
InsCode (CurInstr (Computation s1,i)) = 1
;
:: thesis: S1[i + 1]then consider da,
db being
Int-Location such that A71:
CurInstr (Computation s1,i) = da := db
by SCMFSA_2:54;
A72:
IncAddr (CurInstr (Computation s1,i)),
k = da := db
by A71, SCMFSA_4:9;
A73:
(Exec (CurInstr (Computation s1,i)),(Computation s1,i)) . (IC SCM+FSA ) = Next (IC (Computation s1,i))
by A71, SCMFSA_2:89;
A74:
(Computation (s1 +* (DataPart s2)),i) . db = (Computation s2,i) . db
by A41;
thus
(IC (Computation s1,(i + 1))) + k = IC (Computation s2,(i + 1))
by A21, A22, A60, A61, A64, A72, A73, SCMFSA_2:89;
:: thesis: ( IncAddr (CurInstr (Computation s1,(i + 1))),k = CurInstr (Computation s2,(i + 1)) & (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )thus
IncAddr (CurInstr (Computation s1,(i + 1))),
k = CurInstr (Computation s2,(i + 1))
by A21, A22, A55, A60, A61, A64, A72, A73, SCMFSA_2:89;
:: thesis: ( (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )now let x be
set ;
:: thesis: ( x in dom ((Computation s1,(i + 1)) | (dom (DataPart p))) implies ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1 )assume A75:
x in dom ((Computation s1,(i + 1)) | (dom (DataPart p)))
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1A76:
dom (DataPart p) c= Int-Locations \/ FinSeq-Locations
by RELAT_1:87, SCMFSA_2:127;
per cases
( x in FinSeq-Locations or da = x or ( da <> x & x in Int-Locations ) )
by A31, A75, A76, XBOOLE_0:def 3;
suppose
x in FinSeq-Locations
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then reconsider d =
x as
FinSeq-Location by SCMFSA_2:12;
(
(Computation s1,(i + 1)) . d = (Computation s1,i) . d &
(Computation s2,(i + 1)) . d = (Computation s2,i) . d )
by A22, A60, A61, A71, A72, SCMFSA_2:89;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A31, A45, A75;
:: thesis: verum end; suppose A77:
da = x
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then A78:
(Computation s1,(i + 1)) . x = (Computation s1,i) . db
by A60, A71, SCMFSA_2:89;
A79:
(Computation s2,(i + 1)) . x = (Computation s2,i) . db
by A22, A61, A72, A77, SCMFSA_2:89;
DataPart p c= p
by RELAT_1:88;
then
dom (DataPart p) c= dom p
by GRFUNC_1:8;
then
(Computation (s1 +* (DataPart s2)),i) . db = (Computation s1,i) . db
by A2, A9, A10, A31, A71, A75, A77, SCMFSA_3:19;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A31, A48, A74, A75, A78, A79;
:: thesis: verum end; suppose A80:
(
da <> x &
x in Int-Locations )
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then reconsider d =
x as
Int-Location by SCMFSA_2:11;
(
(Computation s1,(i + 1)) . d = (Computation s1,i) . d &
(Computation s2,(i + 1)) . d = (Computation s2,i) . d )
by A22, A60, A61, A71, A72, A80, SCMFSA_2:89;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A31, A45, A75;
:: thesis: verum end; end; end; then
(Computation s1,(i + 1)) | (dom (DataPart p)) c= (Computation s2,(i + 1)) | (dom (DataPart p))
by A25, A31, A32, GRFUNC_1:8;
hence
(Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k)))
by A25, A31, A32, GRFUNC_1:9;
:: thesis: DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))now let x be
set ;
:: thesis: ( x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) implies (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1 )assume A81:
x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1)))
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1per cases
( x in FinSeq-Locations or da = x or ( da <> x & x in Int-Locations ) )
by A37, A81, XBOOLE_0:def 3;
suppose
x in FinSeq-Locations
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then reconsider f =
x as
FinSeq-Location by SCMFSA_2:12;
A82:
(Computation (s1 +* (DataPart s2)),(i + 1)) . f = (Computation (s1 +* (DataPart s2)),i) . f
by A62, A71, SCMFSA_2:89;
(Computation s2,(i + 1)) . f = (Computation s2,i) . f
by A22, A61, A72, SCMFSA_2:89;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A53, A81, A82;
:: thesis: verum end; suppose A83:
da = x
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1
(
(Computation s2,(i + 1)) . da = (Computation s2,i) . db &
(Computation (s1 +* (DataPart s2)),(i + 1)) . da = (Computation (s1 +* (DataPart s2)),i) . db )
by A22, A61, A62, A71, A72, SCMFSA_2:89;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A41, A51, A81, A83, SCMFSA_2:127;
:: thesis: verum end; suppose A84:
(
da <> x &
x in Int-Locations )
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then reconsider d =
x as
Int-Location by SCMFSA_2:11;
A85:
(Computation (s1 +* (DataPart s2)),(i + 1)) . d = (Computation (s1 +* (DataPart s2)),i) . d
by A62, A71, A84, SCMFSA_2:89;
(Computation s2,(i + 1)) . d = (Computation s2,i) . d
by A22, A61, A72, A84, SCMFSA_2:89;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A53, A81, A85;
:: thesis: verum end; end; end; then
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) c= DataPart (Computation s2,(i + 1))
by A37, A38, GRFUNC_1:8;
hence
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))
by A37, A38, GRFUNC_1:9;
:: thesis: verum end; suppose
InsCode (CurInstr (Computation s1,i)) = 2
;
:: thesis: S1[i + 1]then consider da,
db being
Int-Location such that A86:
CurInstr (Computation s1,i) = AddTo da,
db
by SCMFSA_2:55;
A87:
IncAddr (CurInstr (Computation s1,i)),
k = AddTo da,
db
by A86, SCMFSA_4:10;
A88:
(Exec (CurInstr (Computation s1,i)),(Computation s1,i)) . (IC SCM+FSA ) = Next (IC (Computation s1,i))
by A86, SCMFSA_2:90;
A89:
(Computation (s1 +* (DataPart s2)),i) . da = (Computation s2,i) . da
by A41;
A90:
(Computation (s1 +* (DataPart s2)),i) . db = (Computation s2,i) . db
by A41;
thus
(IC (Computation s1,(i + 1))) + k = IC (Computation s2,(i + 1))
by A21, A22, A60, A61, A64, A87, A88, SCMFSA_2:90;
:: thesis: ( IncAddr (CurInstr (Computation s1,(i + 1))),k = CurInstr (Computation s2,(i + 1)) & (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )thus
IncAddr (CurInstr (Computation s1,(i + 1))),
k = CurInstr (Computation s2,(i + 1))
by A21, A22, A55, A60, A61, A64, A87, A88, SCMFSA_2:90;
:: thesis: ( (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )now let x be
set ;
:: thesis: ( x in dom ((Computation s1,(i + 1)) | (dom (DataPart p))) implies ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1 )assume A91:
x in dom ((Computation s1,(i + 1)) | (dom (DataPart p)))
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1A92:
dom (DataPart p) c= Int-Locations \/ FinSeq-Locations
by RELAT_1:87, SCMFSA_2:127;
per cases
( x in FinSeq-Locations or da = x or ( da <> x & x in Int-Locations ) )
by A31, A91, A92, XBOOLE_0:def 3;
suppose
x in FinSeq-Locations
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then reconsider d =
x as
FinSeq-Location by SCMFSA_2:12;
(
(Computation s1,(i + 1)) . d = (Computation s1,i) . d &
(Computation s2,(i + 1)) . d = (Computation s2,i) . d )
by A22, A60, A61, A86, A87, SCMFSA_2:90;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A31, A45, A91;
:: thesis: verum end; suppose A93:
da = x
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then A94:
(Computation s1,(i + 1)) . x = ((Computation s1,i) . da) + ((Computation s1,i) . db)
by A60, A86, SCMFSA_2:90;
DataPart p c= p
by RELAT_1:88;
then A95:
dom (DataPart p) c= dom p
by GRFUNC_1:8;
(Computation s2,(i + 1)) . x = ((Computation s2,i) . da) + ((Computation s2,i) . db)
by A22, A61, A87, A93, SCMFSA_2:90;
then
(Computation s1,(i + 1)) . x = (Computation s2,(i + 1)) . x
by A2, A9, A10, A31, A86, A89, A90, A91, A93, A94, A95, SCMFSA_3:20;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A31, A48, A91;
:: thesis: verum end; suppose A96:
(
da <> x &
x in Int-Locations )
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then reconsider d =
x as
Int-Location by SCMFSA_2:11;
(
(Computation s1,(i + 1)) . d = (Computation s1,i) . d &
(Computation s2,(i + 1)) . d = (Computation s2,i) . d )
by A22, A60, A61, A86, A87, A96, SCMFSA_2:90;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A31, A45, A91;
:: thesis: verum end; end; end; then
(Computation s1,(i + 1)) | (dom (DataPart p)) c= (Computation s2,(i + 1)) | (dom (DataPart p))
by A25, A31, A32, GRFUNC_1:8;
hence
(Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k)))
by A25, A31, A32, GRFUNC_1:9;
:: thesis: DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))now let x be
set ;
:: thesis: ( x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) implies (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1 )assume A97:
x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1)))
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1per cases
( x in FinSeq-Locations or da = x or ( da <> x & x in Int-Locations ) )
by A37, A97, XBOOLE_0:def 3;
suppose
x in FinSeq-Locations
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then reconsider d =
x as
FinSeq-Location by SCMFSA_2:12;
A98:
(Computation (s1 +* (DataPart s2)),(i + 1)) . d = (Computation (s1 +* (DataPart s2)),i) . d
by A62, A86, SCMFSA_2:90;
(Computation s2,(i + 1)) . d = (Computation s2,i) . d
by A22, A61, A87, SCMFSA_2:90;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A53, A97, A98;
:: thesis: verum end; suppose A99:
da = x
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then A100:
(Computation s2,(i + 1)) . x = ((Computation s2,i) . da) + ((Computation s2,i) . db)
by A22, A61, A87, SCMFSA_2:90;
(Computation (s1 +* (DataPart s2)),(i + 1)) . x = ((Computation (s1 +* (DataPart s2)),i) . da) + ((Computation (s1 +* (DataPart s2)),i) . db)
by A62, A86, A99, SCMFSA_2:90;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A51, A89, A90, A97, A100, SCMFSA_2:127;
:: thesis: verum end; suppose A101:
(
da <> x &
x in Int-Locations )
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then reconsider d =
x as
Int-Location by SCMFSA_2:11;
A102:
(Computation (s1 +* (DataPart s2)),(i + 1)) . d = (Computation (s1 +* (DataPart s2)),i) . d
by A62, A86, A101, SCMFSA_2:90;
(Computation s2,(i + 1)) . d = (Computation s2,i) . d
by A22, A61, A87, A101, SCMFSA_2:90;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A53, A97, A102;
:: thesis: verum end; end; end; then
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) c= DataPart (Computation s2,(i + 1))
by A37, A38, GRFUNC_1:8;
hence
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))
by A37, A38, GRFUNC_1:9;
:: thesis: verum end; suppose
InsCode (CurInstr (Computation s1,i)) = 3
;
:: thesis: S1[i + 1]then consider da,
db being
Int-Location such that A103:
CurInstr (Computation s1,i) = SubFrom da,
db
by SCMFSA_2:56;
A104:
IncAddr (CurInstr (Computation s1,i)),
k = SubFrom da,
db
by A103, SCMFSA_4:11;
A105:
(Exec (CurInstr (Computation s1,i)),(Computation s1,i)) . (IC SCM+FSA ) = Next (IC (Computation s1,i))
by A103, SCMFSA_2:91;
A106:
(Computation (s1 +* (DataPart s2)),i) . da = (Computation s2,i) . da
by A41;
A107:
(Computation (s1 +* (DataPart s2)),i) . db = (Computation s2,i) . db
by A41;
thus
(IC (Computation s1,(i + 1))) + k = IC (Computation s2,(i + 1))
by A21, A22, A60, A61, A64, A104, A105, SCMFSA_2:91;
:: thesis: ( IncAddr (CurInstr (Computation s1,(i + 1))),k = CurInstr (Computation s2,(i + 1)) & (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )thus
IncAddr (CurInstr (Computation s1,(i + 1))),
k = CurInstr (Computation s2,(i + 1))
by A21, A22, A55, A60, A61, A64, A104, A105, SCMFSA_2:91;
:: thesis: ( (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )now let x be
set ;
:: thesis: ( x in dom ((Computation s1,(i + 1)) | (dom (DataPart p))) implies ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1 )assume A108:
x in dom ((Computation s1,(i + 1)) | (dom (DataPart p)))
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1A109:
dom (DataPart p) c= Int-Locations \/ FinSeq-Locations
by RELAT_1:87, SCMFSA_2:127;
per cases
( x in FinSeq-Locations or da = x or ( da <> x & x in Int-Locations ) )
by A31, A108, A109, XBOOLE_0:def 3;
suppose
x in FinSeq-Locations
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then reconsider d =
x as
FinSeq-Location by SCMFSA_2:12;
(
(Computation s1,(i + 1)) . d = (Computation s1,i) . d &
(Computation s2,(i + 1)) . d = (Computation s2,i) . d )
by A22, A60, A61, A103, A104, SCMFSA_2:91;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A31, A45, A108;
:: thesis: verum end; suppose A110:
da = x
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then A111:
(Computation s1,(i + 1)) . x = ((Computation s1,i) . da) - ((Computation s1,i) . db)
by A60, A103, SCMFSA_2:91;
DataPart p c= p
by RELAT_1:88;
then A112:
dom (DataPart p) c= dom p
by GRFUNC_1:8;
(Computation s2,(i + 1)) . x = ((Computation s2,i) . da) - ((Computation s2,i) . db)
by A22, A61, A104, A110, SCMFSA_2:91;
then
((Computation s1,i) . da) - ((Computation s1,i) . db) = (Computation s2,(i + 1)) . x
by A2, A9, A10, A31, A103, A106, A107, A108, A110, A112, SCMFSA_3:21;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A31, A48, A108, A111;
:: thesis: verum end; suppose A113:
(
da <> x &
x in Int-Locations )
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then reconsider d =
x as
Int-Location by SCMFSA_2:11;
(
(Computation s1,(i + 1)) . d = (Computation s1,i) . d &
(Computation s2,(i + 1)) . d = (Computation s2,i) . d )
by A22, A60, A61, A103, A104, A113, SCMFSA_2:91;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A31, A45, A108;
:: thesis: verum end; end; end; then
(Computation s1,(i + 1)) | (dom (DataPart p)) c= (Computation s2,(i + 1)) | (dom (DataPart p))
by A25, A31, A32, GRFUNC_1:8;
hence
(Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k)))
by A25, A31, A32, GRFUNC_1:9;
:: thesis: DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))now let x be
set ;
:: thesis: ( x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) implies (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1 )assume A114:
x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1)))
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1per cases
( x in FinSeq-Locations or da = x or ( da <> x & x in Int-Locations ) )
by A37, A114, XBOOLE_0:def 3;
suppose
x in FinSeq-Locations
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then reconsider d =
x as
FinSeq-Location by SCMFSA_2:12;
A115:
(Computation (s1 +* (DataPart s2)),(i + 1)) . d = (Computation (s1 +* (DataPart s2)),i) . d
by A62, A103, SCMFSA_2:91;
(Computation s2,(i + 1)) . d = (Computation s2,i) . d
by A22, A61, A104, SCMFSA_2:91;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A53, A114, A115;
:: thesis: verum end; suppose A116:
da = x
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then A117:
(Computation s2,(i + 1)) . x = ((Computation s2,i) . da) - ((Computation s2,i) . db)
by A22, A61, A104, SCMFSA_2:91;
(Computation (s1 +* (DataPart s2)),(i + 1)) . x = ((Computation (s1 +* (DataPart s2)),i) . da) - ((Computation (s1 +* (DataPart s2)),i) . db)
by A62, A103, A116, SCMFSA_2:91;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A51, A106, A107, A114, A117, SCMFSA_2:127;
:: thesis: verum end; suppose A118:
(
da <> x &
x in Int-Locations )
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then reconsider d =
x as
Int-Location by SCMFSA_2:11;
A119:
(Computation (s1 +* (DataPart s2)),(i + 1)) . d = (Computation (s1 +* (DataPart s2)),i) . d
by A62, A103, A118, SCMFSA_2:91;
(Computation s2,(i + 1)) . d = (Computation s2,i) . d
by A22, A61, A104, A118, SCMFSA_2:91;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A53, A114, A119;
:: thesis: verum end; end; end; then
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) c= DataPart (Computation s2,(i + 1))
by A37, A38, GRFUNC_1:8;
hence
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))
by A37, A38, GRFUNC_1:9;
:: thesis: verum end; suppose
InsCode (CurInstr (Computation s1,i)) = 4
;
:: thesis: S1[i + 1]then consider da,
db being
Int-Location such that A120:
CurInstr (Computation s1,i) = MultBy da,
db
by SCMFSA_2:57;
A121:
IncAddr (CurInstr (Computation s1,i)),
k = MultBy da,
db
by A120, SCMFSA_4:12;
A122:
(Exec (CurInstr (Computation s1,i)),(Computation s1,i)) . (IC SCM+FSA ) = Next (IC (Computation s1,i))
by A120, SCMFSA_2:92;
A123:
(Computation (s1 +* (DataPart s2)),i) . da = (Computation s2,i) . da
by A41;
A124:
(Computation (s1 +* (DataPart s2)),i) . db = (Computation s2,i) . db
by A41;
thus
(IC (Computation s1,(i + 1))) + k = IC (Computation s2,(i + 1))
by A21, A22, A60, A61, A64, A121, A122, SCMFSA_2:92;
:: thesis: ( IncAddr (CurInstr (Computation s1,(i + 1))),k = CurInstr (Computation s2,(i + 1)) & (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )thus
IncAddr (CurInstr (Computation s1,(i + 1))),
k = CurInstr (Computation s2,(i + 1))
by A21, A22, A55, A60, A61, A64, A121, A122, SCMFSA_2:92;
:: thesis: ( (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )now let x be
set ;
:: thesis: ( x in dom ((Computation s1,(i + 1)) | (dom (DataPart p))) implies ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1 )assume A125:
x in dom ((Computation s1,(i + 1)) | (dom (DataPart p)))
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1A126:
dom (DataPart p) c= Int-Locations \/ FinSeq-Locations
by RELAT_1:87, SCMFSA_2:127;
per cases
( x in FinSeq-Locations or da = x or ( da <> x & x in Int-Locations ) )
by A31, A125, A126, XBOOLE_0:def 3;
suppose
x in FinSeq-Locations
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then reconsider d =
x as
FinSeq-Location by SCMFSA_2:12;
(
(Computation s1,(i + 1)) . d = (Computation s1,i) . d &
(Computation s2,(i + 1)) . d = (Computation s2,i) . d )
by A22, A60, A61, A120, A121, SCMFSA_2:92;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A31, A45, A125;
:: thesis: verum end; suppose A127:
da = x
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then A128:
(Computation s1,(i + 1)) . x = ((Computation s1,i) . da) * ((Computation s1,i) . db)
by A60, A120, SCMFSA_2:92;
DataPart p c= p
by RELAT_1:88;
then A129:
dom (DataPart p) c= dom p
by GRFUNC_1:8;
(Computation s2,(i + 1)) . x = ((Computation s2,i) . da) * ((Computation s2,i) . db)
by A22, A61, A121, A127, SCMFSA_2:92;
then
(Computation s1,(i + 1)) . x = (Computation s2,(i + 1)) . x
by A2, A9, A10, A31, A120, A123, A124, A125, A127, A128, A129, SCMFSA_3:22;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A31, A48, A125;
:: thesis: verum end; suppose A130:
(
da <> x &
x in Int-Locations )
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then reconsider d =
x as
Int-Location by SCMFSA_2:11;
(
(Computation s1,(i + 1)) . d = (Computation s1,i) . d &
(Computation s2,(i + 1)) . d = (Computation s2,i) . d )
by A22, A60, A61, A120, A121, A130, SCMFSA_2:92;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A31, A45, A125;
:: thesis: verum end; end; end; then
(Computation s1,(i + 1)) | (dom (DataPart p)) c= (Computation s2,(i + 1)) | (dom (DataPart p))
by A25, A31, A32, GRFUNC_1:8;
hence
(Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k)))
by A25, A31, A32, GRFUNC_1:9;
:: thesis: DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))now let x be
set ;
:: thesis: ( x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) implies (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1 )assume A131:
x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1)))
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1per cases
( x in FinSeq-Locations or da = x or ( da <> x & x in Int-Locations ) )
by A37, A131, XBOOLE_0:def 3;
suppose
x in FinSeq-Locations
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then reconsider d =
x as
FinSeq-Location by SCMFSA_2:12;
A132:
(Computation (s1 +* (DataPart s2)),(i + 1)) . d = (Computation (s1 +* (DataPart s2)),i) . d
by A62, A120, SCMFSA_2:92;
(Computation s2,(i + 1)) . d = (Computation s2,i) . d
by A22, A61, A121, SCMFSA_2:92;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A53, A131, A132;
:: thesis: verum end; suppose A133:
da = x
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then A134:
(Computation s2,(i + 1)) . x = ((Computation s2,i) . da) * ((Computation s2,i) . db)
by A22, A61, A121, SCMFSA_2:92;
(Computation (s1 +* (DataPart s2)),(i + 1)) . x = ((Computation (s1 +* (DataPart s2)),i) . da) * ((Computation (s1 +* (DataPart s2)),i) . db)
by A62, A120, A133, SCMFSA_2:92;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A51, A123, A124, A131, A134, SCMFSA_2:127;
:: thesis: verum end; suppose A135:
(
da <> x &
x in Int-Locations )
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then reconsider d =
x as
Int-Location by SCMFSA_2:11;
A136:
(Computation (s1 +* (DataPart s2)),(i + 1)) . d = (Computation (s1 +* (DataPart s2)),i) . d
by A62, A120, A135, SCMFSA_2:92;
(Computation s2,(i + 1)) . d = (Computation s2,i) . d
by A22, A61, A121, A135, SCMFSA_2:92;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A53, A131, A136;
:: thesis: verum end; end; end; then
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) c= DataPart (Computation s2,(i + 1))
by A37, A38, GRFUNC_1:8;
hence
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))
by A37, A38, GRFUNC_1:9;
:: thesis: verum end; suppose
InsCode (CurInstr (Computation s1,i)) = 5
;
:: thesis: S1[i + 1]then consider da,
db being
Int-Location such that A137:
CurInstr (Computation s1,i) = Divide da,
db
by SCMFSA_2:58;
A138:
IncAddr (CurInstr (Computation s1,i)),
k = Divide da,
db
by A137, SCMFSA_4:13;
A139:
(Computation (s1 +* (DataPart s2)),i) . da = (Computation s2,i) . da
by A41;
A140:
(Computation (s1 +* (DataPart s2)),i) . db = (Computation s2,i) . db
by A41;
now per cases
( da <> db or da = db )
;
suppose A141:
da <> db
;
:: thesis: ( (IC (Computation s1,(i + 1))) + k = IC (Computation s2,(i + 1)) & IncAddr (CurInstr (Computation s1,(i + 1))),k = CurInstr (Computation s2,(i + 1)) & (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )A142:
(Exec (CurInstr (Computation s1,i)),(Computation s1,i)) . (IC SCM+FSA ) = Next (IC (Computation s1,i))
by A137, SCMFSA_2:93;
hence
(IC (Computation s1,(i + 1))) + k = IC (Computation s2,(i + 1))
by A21, A22, A60, A61, A64, A138, SCMFSA_2:93;
:: thesis: ( IncAddr (CurInstr (Computation s1,(i + 1))),k = CurInstr (Computation s2,(i + 1)) & (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )thus
IncAddr (CurInstr (Computation s1,(i + 1))),
k = CurInstr (Computation s2,(i + 1))
by A21, A22, A55, A60, A61, A64, A138, A142, SCMFSA_2:93;
:: thesis: ( (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )now let x be
set ;
:: thesis: ( x in dom ((Computation s1,(i + 1)) | (dom (DataPart p))) implies ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1 )assume A143:
x in dom ((Computation s1,(i + 1)) | (dom (DataPart p)))
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1A144:
dom (DataPart p) c= Int-Locations \/ FinSeq-Locations
by RELAT_1:87, SCMFSA_2:127;
per cases
( ( db <> x & x in FinSeq-Locations ) or da = x or db = x or ( da <> x & db <> x & x in Int-Locations ) )
by A31, A143, A144, XBOOLE_0:def 3;
suppose
(
db <> x &
x in FinSeq-Locations )
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then reconsider d =
x as
FinSeq-Location by SCMFSA_2:12;
(
(Computation s1,(i + 1)) . d = (Computation s1,i) . d &
(Computation s2,(i + 1)) . d = (Computation s2,i) . d )
by A22, A60, A61, A137, A138, SCMFSA_2:93;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A31, A45, A143;
:: thesis: verum end; suppose A145:
da = x
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then A146:
(Computation s1,(i + 1)) . x = ((Computation s1,i) . da) div ((Computation s1,i) . db)
by A60, A137, A141, SCMFSA_2:93;
A147:
(Computation s2,(i + 1)) . x = ((Computation s2,i) . da) div ((Computation s2,i) . db)
by A22, A61, A138, A141, A145, SCMFSA_2:93;
DataPart p c= p
by RELAT_1:88;
then
dom (DataPart p) c= dom p
by GRFUNC_1:8;
then
((Computation (s1 +* (DataPart s2)),i) . da) div ((Computation (s1 +* (DataPart s2)),i) . db) = ((Computation s1,i) . da) div ((Computation s1,i) . db)
by A2, A9, A10, A31, A137, A141, A143, A145, SCMFSA_3:23;
hence ((Computation s1,(i + 1)) | (dom (DataPart p))) . x =
(Computation s2,(i + 1)) . x
by A139, A140, A143, A146, A147, FUNCT_1:70
.=
((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A25, A31, A32, A143, FUNCT_1:70
;
:: thesis: verum end; suppose A148:
db = x
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then A149:
(Computation s1,(i + 1)) . x = ((Computation s1,i) . da) mod ((Computation s1,i) . db)
by A60, A137, SCMFSA_2:93;
DataPart p c= p
by RELAT_1:88;
then A150:
dom (DataPart p) c= dom p
by GRFUNC_1:8;
(Computation s2,(i + 1)) . x = ((Computation s2,i) . da) mod ((Computation s2,i) . db)
by A22, A61, A138, A148, SCMFSA_2:93;
then
(Computation s1,(i + 1)) . x = (Computation s2,(i + 1)) . x
by A2, A9, A10, A31, A137, A139, A140, A141, A143, A148, A149, A150, SCMFSA_3:24;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A31, A48, A143;
:: thesis: verum end; suppose A151:
(
da <> x &
db <> x &
x in Int-Locations )
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then reconsider d =
x as
Int-Location by SCMFSA_2:11;
(
(Computation s1,(i + 1)) . d = (Computation s1,i) . d &
(Computation s2,(i + 1)) . d = (Computation s2,i) . d )
by A22, A60, A61, A137, A138, A151, SCMFSA_2:93;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A31, A45, A143;
:: thesis: verum end; end; end; then
(Computation s1,(i + 1)) | (dom (DataPart p)) c= (Computation s2,(i + 1)) | (dom (DataPart p))
by A25, A31, A32, GRFUNC_1:8;
hence
(Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k)))
by A25, A31, A32, GRFUNC_1:9;
:: thesis: DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))now let x be
set ;
:: thesis: ( x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) implies (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1 )assume A152:
x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1)))
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1per cases
( x in FinSeq-Locations or da = x or db = x or ( da <> x & db <> x & x in Int-Locations ) )
by A37, A152, XBOOLE_0:def 3;
suppose
x in FinSeq-Locations
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then reconsider d =
x as
FinSeq-Location by SCMFSA_2:12;
A153:
(Computation (s1 +* (DataPart s2)),(i + 1)) . d = (Computation (s1 +* (DataPart s2)),i) . d
by A62, A137, SCMFSA_2:93;
(Computation s2,(i + 1)) . d = (Computation s2,i) . d
by A22, A61, A138, SCMFSA_2:93;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A53, A152, A153;
:: thesis: verum end; suppose A154:
da = x
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then A155:
(Computation s2,(i + 1)) . x = ((Computation s2,i) . da) div ((Computation s2,i) . db)
by A22, A61, A138, A141, SCMFSA_2:93;
(Computation (s1 +* (DataPart s2)),(i + 1)) . x = ((Computation (s1 +* (DataPart s2)),i) . da) div ((Computation (s1 +* (DataPart s2)),i) . db)
by A62, A137, A141, A154, SCMFSA_2:93;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A51, A139, A140, A152, A155, SCMFSA_2:127;
:: thesis: verum end; suppose A156:
db = x
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then A157:
(Computation s2,(i + 1)) . x = ((Computation s2,i) . da) mod ((Computation s2,i) . db)
by A22, A61, A138, SCMFSA_2:93;
(Computation (s1 +* (DataPart s2)),(i + 1)) . x = ((Computation (s1 +* (DataPart s2)),i) . da) mod ((Computation (s1 +* (DataPart s2)),i) . db)
by A62, A137, A156, SCMFSA_2:93;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A51, A139, A140, A152, A157, SCMFSA_2:127;
:: thesis: verum end; suppose A158:
(
da <> x &
db <> x &
x in Int-Locations )
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then reconsider d =
x as
Int-Location by SCMFSA_2:11;
A159:
(Computation (s1 +* (DataPart s2)),(i + 1)) . d = (Computation (s1 +* (DataPart s2)),i) . d
by A62, A137, A158, SCMFSA_2:93;
(Computation s2,(i + 1)) . d = (Computation s2,i) . d
by A22, A61, A138, A158, SCMFSA_2:93;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A53, A152, A159;
:: thesis: verum end; end; end; then
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) c= DataPart (Computation s2,(i + 1))
by A37, A38, GRFUNC_1:8;
hence
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))
by A37, A38, GRFUNC_1:9;
:: thesis: verum end; suppose A160:
da = db
;
:: thesis: ( (IC (Computation s1,(i + 1))) + k = IC (Computation s2,(i + 1)) & IncAddr (CurInstr (Computation s1,(i + 1))),k = CurInstr (Computation s2,(i + 1)) & (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )then A161:
(Exec (CurInstr (Computation s1,i)),(Computation s1,i)) . (IC SCM+FSA ) = Next (IC (Computation s1,i))
by A137, SCMFSA_2:94;
hence
(IC (Computation s1,(i + 1))) + k = IC (Computation s2,(i + 1))
by A21, A22, A60, A61, A64, A138, A160, SCMFSA_2:94;
:: thesis: ( IncAddr (CurInstr (Computation s1,(i + 1))),k = CurInstr (Computation s2,(i + 1)) & (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )thus
IncAddr (CurInstr (Computation s1,(i + 1))),
k = CurInstr (Computation s2,(i + 1))
by A21, A22, A55, A60, A61, A64, A138, A160, A161, SCMFSA_2:94;
:: thesis: ( (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )now let x be
set ;
:: thesis: ( x in dom ((Computation s1,(i + 1)) | (dom (DataPart p))) implies ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1 )assume A162:
x in dom ((Computation s1,(i + 1)) | (dom (DataPart p)))
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1A163:
dom (DataPart p) c= Int-Locations \/ FinSeq-Locations
by RELAT_1:87, SCMFSA_2:127;
per cases
( x in FinSeq-Locations or da = x or ( da <> x & x in Int-Locations ) )
by A31, A162, A163, XBOOLE_0:def 3;
suppose
x in FinSeq-Locations
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then reconsider d =
x as
FinSeq-Location by SCMFSA_2:12;
(
(Computation s1,(i + 1)) . d = (Computation s1,i) . d &
(Computation s2,(i + 1)) . d = (Computation s2,i) . d )
by A22, A60, A61, A137, A138, A160, SCMFSA_2:94;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A31, A45, A162;
:: thesis: verum end; suppose A164:
da = x
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then A165:
(Computation s2,(i + 1)) . x = ((Computation s2,i) . da) mod ((Computation s2,i) . db)
by A22, A61, A138, A160, SCMFSA_2:94;
A166:
(
((Computation s1,i) | (dom (DataPart p))) . x = (Computation s1,i) . x &
((Computation s2,i) | (dom (DataPart p))) . x = (Computation s2,i) . x )
by A25, A31, A33, A34, A162, FUNCT_1:70;
(
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = (Computation s1,(i + 1)) . x &
((Computation s2,(i + 1)) | (dom (DataPart p))) . x = (Computation s2,(i + 1)) . x )
by A25, A31, A32, A162, FUNCT_1:70;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A23, A25, A60, A137, A160, A164, A165, A166, SCMFSA_2:94;
:: thesis: verum end; suppose A167:
(
da <> x &
x in Int-Locations )
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then reconsider d =
x as
Int-Location by SCMFSA_2:11;
(
(Computation s1,(i + 1)) . d = (Computation s1,i) . d &
(Computation s2,(i + 1)) . d = (Computation s2,i) . d )
by A22, A60, A61, A137, A138, A160, A167, SCMFSA_2:94;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A31, A45, A162;
:: thesis: verum end; end; end; then
(Computation s1,(i + 1)) | (dom (DataPart p)) c= (Computation s2,(i + 1)) | (dom (DataPart p))
by A25, A31, A32, GRFUNC_1:8;
hence
(Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k)))
by A25, A31, A32, GRFUNC_1:9;
:: thesis: DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))now let x be
set ;
:: thesis: ( x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) implies (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1 )assume A168:
x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1)))
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1per cases
( x in FinSeq-Locations or da = x or ( da <> x & x in Int-Locations ) )
by A37, A168, XBOOLE_0:def 3;
suppose
x in FinSeq-Locations
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then reconsider d =
x as
FinSeq-Location by SCMFSA_2:12;
A169:
(Computation (s1 +* (DataPart s2)),(i + 1)) . d = (Computation (s1 +* (DataPart s2)),i) . d
by A62, A137, A160, SCMFSA_2:94;
(Computation s2,(i + 1)) . d = (Computation s2,i) . d
by A22, A61, A138, A160, SCMFSA_2:94;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A53, A168, A169;
:: thesis: verum end; suppose A170:
da = x
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then A171:
(Computation s2,(i + 1)) . x = ((Computation s2,i) . da) mod ((Computation s2,i) . db)
by A22, A61, A138, A160, SCMFSA_2:94;
(Computation (s1 +* (DataPart s2)),(i + 1)) . x = ((Computation (s1 +* (DataPart s2)),i) . da) mod ((Computation (s1 +* (DataPart s2)),i) . db)
by A62, A137, A160, A170, SCMFSA_2:94;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A51, A139, A140, A168, A171, SCMFSA_2:127;
:: thesis: verum end; suppose A172:
(
da <> x &
x in Int-Locations )
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then reconsider d =
x as
Int-Location by SCMFSA_2:11;
A173:
(Computation (s1 +* (DataPart s2)),(i + 1)) . d = (Computation (s1 +* (DataPart s2)),i) . d
by A62, A137, A160, A172, SCMFSA_2:94;
(Computation s2,(i + 1)) . d = (Computation s2,i) . d
by A22, A61, A138, A160, A172, SCMFSA_2:94;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A53, A168, A173;
:: thesis: verum end; end; end; then
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) c= DataPart (Computation s2,(i + 1))
by A37, A38, GRFUNC_1:8;
hence
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))
by A37, A38, GRFUNC_1:9;
:: thesis: verum end; end; end; hence
S1[
i + 1]
;
:: thesis: verum end; suppose
InsCode (CurInstr (Computation s1,i)) = 6
;
:: thesis: S1[i + 1]then consider loc being
Instruction-Location of
SCM+FSA such that A174:
CurInstr (Computation s1,i) = goto loc
by SCMFSA_2:59;
A175:
CurInstr (Computation s2,i) = goto (loc + k)
by A22, A174, SCMFSA_4:14;
thus (IC (Computation s1,(i + 1))) + k =
loc + k
by A60, A174, SCMFSA_2:95
.=
IC (Computation s2,(i + 1))
by A61, A175, SCMFSA_2:95
;
:: thesis: ( IncAddr (CurInstr (Computation s1,(i + 1))),k = CurInstr (Computation s2,(i + 1)) & (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )hence
IncAddr (CurInstr (Computation s1,(i + 1))),
k = CurInstr (Computation s2,(i + 1))
by A55;
:: thesis: ( (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )now let x be
set ;
:: thesis: ( x in dom ((Computation s1,(i + 1)) | (dom (DataPart p))) implies ((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x )assume A176:
x in dom ((Computation s1,(i + 1)) | (dom (DataPart p)))
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
dom (DataPart p) c= Int-Locations \/ FinSeq-Locations
by RELAT_1:87, SCMFSA_2:127;
then
(
x in Int-Locations or
x in FinSeq-Locations )
by A31, A176, XBOOLE_0:def 3;
then
(
x is
Int-Location or
x is
FinSeq-Location )
by SCMFSA_2:11, SCMFSA_2:12;
then
(
(Computation s1,(i + 1)) . x = (Computation s1,i) . x &
(Computation s2,(i + 1)) . x = (Computation s2,i) . x )
by A60, A61, A174, A175, SCMFSA_2:95;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A31, A45, A176;
:: thesis: verum end; then
(Computation s1,(i + 1)) | (dom (DataPart p)) c= (Computation s2,(i + 1)) | (dom (DataPart p))
by A25, A31, A32, GRFUNC_1:8;
hence
(Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k)))
by A25, A31, A32, GRFUNC_1:9;
:: thesis: DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))now let x be
set ;
:: thesis: ( x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) implies (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x )assume A177:
x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1)))
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . xthen
(
x in Int-Locations or
x in FinSeq-Locations )
by A37, XBOOLE_0:def 3;
then
(
x is
Int-Location or
x is
FinSeq-Location )
by SCMFSA_2:11, SCMFSA_2:12;
then
(
(Computation (s1 +* (DataPart s2)),(i + 1)) . x = (Computation (s1 +* (DataPart s2)),i) . x &
(Computation s2,(i + 1)) . x = (Computation s2,i) . x )
by A61, A62, A174, A175, SCMFSA_2:95;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A53, A177;
:: thesis: verum end; then
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) c= DataPart (Computation s2,(i + 1))
by A37, A38, GRFUNC_1:8;
hence
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))
by A37, A38, GRFUNC_1:9;
:: thesis: verum end; suppose
InsCode (CurInstr (Computation s1,i)) = 7
;
:: thesis: S1[i + 1]then consider loc being
Instruction-Location of
SCM+FSA ,
da being
Int-Location such that A178:
CurInstr (Computation s1,i) = da =0_goto loc
by SCMFSA_2:60;
A179:
CurInstr (Computation s2,i) = da =0_goto (loc + k)
by A22, A178, SCMFSA_4:15;
A180:
(Computation (s1 +* (DataPart s2)),i) . da = (Computation s2,i) . da
by A41;
hence
(IC (Computation s1,(i + 1))) + k = IC (Computation s2,(i + 1))
;
:: thesis: ( IncAddr (CurInstr (Computation s1,(i + 1))),k = CurInstr (Computation s2,(i + 1)) & (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )thus
IncAddr (CurInstr (Computation s1,(i + 1))),
k = CurInstr (Computation s2,(i + 1))
by A55, A183;
:: thesis: ( (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )now let x be
set ;
:: thesis: ( x in dom ((Computation s1,(i + 1)) | (dom (DataPart p))) implies ((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x )assume A184:
x in dom ((Computation s1,(i + 1)) | (dom (DataPart p)))
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
dom (DataPart p) c= Int-Locations \/ FinSeq-Locations
by RELAT_1:87, SCMFSA_2:127;
then
(
x in Int-Locations or
x in FinSeq-Locations )
by A31, A184, XBOOLE_0:def 3;
then
(
x is
Int-Location or
x is
FinSeq-Location )
by SCMFSA_2:11, SCMFSA_2:12;
then
(
(Computation s1,(i + 1)) . x = (Computation s1,i) . x &
(Computation s2,(i + 1)) . x = (Computation s2,i) . x )
by A60, A61, A178, A179, SCMFSA_2:96;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A31, A45, A184;
:: thesis: verum end; then
(Computation s1,(i + 1)) | (dom (DataPart p)) c= (Computation s2,(i + 1)) | (dom (DataPart p))
by A25, A31, A32, GRFUNC_1:8;
hence
(Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k)))
by A25, A31, A32, GRFUNC_1:9;
:: thesis: DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))now let x be
set ;
:: thesis: ( x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) implies (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x )assume A185:
x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1)))
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . xthen
(
x in Int-Locations or
x in FinSeq-Locations )
by A37, XBOOLE_0:def 3;
then
(
x is
Int-Location or
x is
FinSeq-Location )
by SCMFSA_2:11, SCMFSA_2:12;
then
(
(Computation (s1 +* (DataPart s2)),(i + 1)) . x = (Computation (s1 +* (DataPart s2)),i) . x &
(Computation s2,(i + 1)) . x = (Computation s2,i) . x )
by A61, A62, A178, A179, SCMFSA_2:96;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A53, A185;
:: thesis: verum end; then
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) c= DataPart (Computation s2,(i + 1))
by A37, A38, GRFUNC_1:8;
hence
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))
by A37, A38, GRFUNC_1:9;
:: thesis: verum end; suppose
InsCode (CurInstr (Computation s1,i)) = 8
;
:: thesis: S1[i + 1]then consider loc being
Instruction-Location of
SCM+FSA ,
da being
Int-Location such that A186:
CurInstr (Computation s1,i) = da >0_goto loc
by SCMFSA_2:61;
A187:
CurInstr (Computation s2,i) = da >0_goto (loc + k)
by A22, A186, SCMFSA_4:16;
A188:
(Computation (s1 +* (DataPart s2)),i) . da = (Computation s2,i) . da
by A41;
hence
(IC (Computation s1,(i + 1))) + k = IC (Computation s2,(i + 1))
;
:: thesis: ( IncAddr (CurInstr (Computation s1,(i + 1))),k = CurInstr (Computation s2,(i + 1)) & (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )thus
IncAddr (CurInstr (Computation s1,(i + 1))),
k = CurInstr (Computation s2,(i + 1))
by A55, A191;
:: thesis: ( (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )now let x be
set ;
:: thesis: ( x in dom ((Computation s1,(i + 1)) | (dom (DataPart p))) implies ((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x )assume A192:
x in dom ((Computation s1,(i + 1)) | (dom (DataPart p)))
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
dom (DataPart p) c= Int-Locations \/ FinSeq-Locations
by RELAT_1:87, SCMFSA_2:127;
then
(
x in Int-Locations or
x in FinSeq-Locations )
by A31, A192, XBOOLE_0:def 3;
then
(
x is
Int-Location or
x is
FinSeq-Location )
by SCMFSA_2:11, SCMFSA_2:12;
then
(
(Computation s1,(i + 1)) . x = (Computation s1,i) . x &
(Computation s2,(i + 1)) . x = (Computation s2,i) . x )
by A60, A61, A186, A187, SCMFSA_2:97;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A31, A45, A192;
:: thesis: verum end; then
(Computation s1,(i + 1)) | (dom (DataPart p)) c= (Computation s2,(i + 1)) | (dom (DataPart p))
by A25, A31, A32, GRFUNC_1:8;
hence
(Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k)))
by A25, A31, A32, GRFUNC_1:9;
:: thesis: DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))now let x be
set ;
:: thesis: ( x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) implies (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x )assume A193:
x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1)))
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . xthen
(
x in Int-Locations or
x in FinSeq-Locations )
by A37, XBOOLE_0:def 3;
then
(
x is
Int-Location or
x is
FinSeq-Location )
by SCMFSA_2:11, SCMFSA_2:12;
then
(
(Computation (s1 +* (DataPart s2)),(i + 1)) . x = (Computation (s1 +* (DataPart s2)),i) . x &
(Computation s2,(i + 1)) . x = (Computation s2,i) . x )
by A61, A62, A186, A187, SCMFSA_2:97;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A53, A193;
:: thesis: verum end; then
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) c= DataPart (Computation s2,(i + 1))
by A37, A38, GRFUNC_1:8;
hence
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))
by A37, A38, GRFUNC_1:9;
:: thesis: verum end; suppose
InsCode (CurInstr (Computation s1,i)) = 9
;
:: thesis: S1[i + 1]then consider db,
da being
Int-Location ,
f being
FinSeq-Location such that A194:
CurInstr (Computation s1,i) = da := f,
db
by SCMFSA_2:62;
A195:
IncAddr (CurInstr (Computation s1,i)),
k = da := f,
db
by A194, SCMFSA_4:17;
A196:
(Exec (CurInstr (Computation s1,i)),(Computation s1,i)) . (IC SCM+FSA ) = Next (IC (Computation s1,i))
by A194, SCMFSA_2:98;
A197:
(Computation (s1 +* (DataPart s2)),i) . db = (Computation s2,i) . db
by A41;
A198:
(Computation (s1 +* (DataPart s2)),i) . f = (Computation s2,i) . f
by A43;
thus
(IC (Computation s1,(i + 1))) + k = IC (Computation s2,(i + 1))
by A21, A22, A60, A61, A64, A195, A196, SCMFSA_2:98;
:: thesis: ( IncAddr (CurInstr (Computation s1,(i + 1))),k = CurInstr (Computation s2,(i + 1)) & (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )thus
IncAddr (CurInstr (Computation s1,(i + 1))),
k = CurInstr (Computation s2,(i + 1))
by A21, A22, A55, A60, A61, A64, A195, A196, SCMFSA_2:98;
:: thesis: ( (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )now let x be
set ;
:: thesis: ( x in dom ((Computation s1,(i + 1)) | (dom (DataPart p))) implies ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1 )assume A199:
x in dom ((Computation s1,(i + 1)) | (dom (DataPart p)))
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1A200:
dom (DataPart p) c= Int-Locations \/ FinSeq-Locations
by RELAT_1:87, SCMFSA_2:127;
per cases
( x in FinSeq-Locations or da = x or ( da <> x & x in Int-Locations ) )
by A31, A199, A200, XBOOLE_0:def 3;
suppose
x in FinSeq-Locations
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then reconsider d =
x as
FinSeq-Location by SCMFSA_2:12;
(
(Computation s1,(i + 1)) . d = (Computation s1,i) . d &
(Computation s2,(i + 1)) . d = (Computation s2,i) . d )
by A22, A60, A61, A194, A195, SCMFSA_2:98;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A31, A45, A199;
:: thesis: verum end; suppose A201:
da = x
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then consider k1 being
Element of
NAT such that A202:
(
k1 = abs ((Computation s1,i) . db) &
(Computation s1,(i + 1)) . x = ((Computation s1,i) . f) /. k1 )
by A60, A194, SCMFSA_2:98;
consider k2 being
Element of
NAT such that A203:
(
k2 = abs ((Computation s2,i) . db) &
(Computation s2,(i + 1)) . x = ((Computation s2,i) . f) /. k2 )
by A22, A61, A195, A201, SCMFSA_2:98;
DataPart p c= p
by RELAT_1:88;
then
dom (DataPart p) c= dom p
by GRFUNC_1:8;
then
((Computation (s1 +* (DataPart s2)),i) . f) /. k2 = ((Computation s1,i) . f) /. k1
by A2, A9, A10, A31, A194, A197, A199, A201, A202, A203, SCMFSA_3:27;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A31, A48, A198, A199, A202, A203;
:: thesis: verum end; suppose A204:
(
da <> x &
x in Int-Locations )
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then reconsider d =
x as
Int-Location by SCMFSA_2:11;
(
(Computation s1,(i + 1)) . d = (Computation s1,i) . d &
(Computation s2,(i + 1)) . d = (Computation s2,i) . d )
by A22, A60, A61, A194, A195, A204, SCMFSA_2:98;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A31, A45, A199;
:: thesis: verum end; end; end; then
(Computation s1,(i + 1)) | (dom (DataPart p)) c= (Computation s2,(i + 1)) | (dom (DataPart p))
by A25, A31, A32, GRFUNC_1:8;
hence
(Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k)))
by A25, A31, A32, GRFUNC_1:9;
:: thesis: DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))now let x be
set ;
:: thesis: ( x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) implies (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1 )assume A205:
x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1)))
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1per cases
( x in FinSeq-Locations or da = x or ( da <> x & x in Int-Locations ) )
by A37, A205, XBOOLE_0:def 3;
suppose
x in FinSeq-Locations
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then reconsider f =
x as
FinSeq-Location by SCMFSA_2:12;
A206:
(Computation (s1 +* (DataPart s2)),(i + 1)) . f = (Computation (s1 +* (DataPart s2)),i) . f
by A62, A194, SCMFSA_2:98;
(Computation s2,(i + 1)) . f = (Computation s2,i) . f
by A22, A61, A195, SCMFSA_2:98;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A53, A205, A206;
:: thesis: verum end; suppose A207:
da = x
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then consider k1 being
Element of
NAT such that A208:
(
k1 = abs ((Computation (s1 +* (DataPart s2)),i) . db) &
(Computation (s1 +* (DataPart s2)),(i + 1)) . x = ((Computation (s1 +* (DataPart s2)),i) . f) /. k1 )
by A62, A194, SCMFSA_2:98;
consider k2 being
Element of
NAT such that A209:
(
k2 = abs ((Computation s2,i) . db) &
(Computation s2,(i + 1)) . x = ((Computation s2,i) . f) /. k2 )
by A22, A61, A195, A207, SCMFSA_2:98;
thus
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A51, A197, A198, A205, A208, A209, SCMFSA_2:127;
:: thesis: verum end; suppose A210:
(
da <> x &
x in Int-Locations )
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then reconsider d =
x as
Int-Location by SCMFSA_2:11;
A211:
(Computation (s1 +* (DataPart s2)),(i + 1)) . d = (Computation (s1 +* (DataPart s2)),i) . d
by A62, A194, A210, SCMFSA_2:98;
(Computation s2,(i + 1)) . d = (Computation s2,i) . d
by A22, A61, A195, A210, SCMFSA_2:98;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A53, A205, A211;
:: thesis: verum end; end; end; then
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) c= DataPart (Computation s2,(i + 1))
by A37, A38, GRFUNC_1:8;
hence
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))
by A37, A38, GRFUNC_1:9;
:: thesis: verum end; suppose
InsCode (CurInstr (Computation s1,i)) = 10
;
:: thesis: S1[i + 1]then consider db,
da being
Int-Location ,
f being
FinSeq-Location such that A212:
CurInstr (Computation s1,i) = f,
db := da
by SCMFSA_2:63;
A213:
IncAddr (CurInstr (Computation s1,i)),
k = f,
db := da
by A212, SCMFSA_4:18;
A214:
(Exec (CurInstr (Computation s1,i)),(Computation s1,i)) . (IC SCM+FSA ) = Next (IC (Computation s1,i))
by A212, SCMFSA_2:99;
A215:
(Computation (s1 +* (DataPart s2)),i) . db = (Computation s2,i) . db
by A41;
A216:
(Computation (s1 +* (DataPart s2)),i) . da = (Computation s2,i) . da
by A41;
A217:
(Computation (s1 +* (DataPart s2)),i) . f = (Computation s2,i) . f
by A43;
thus
(IC (Computation s1,(i + 1))) + k = IC (Computation s2,(i + 1))
by A21, A22, A60, A61, A64, A213, A214, SCMFSA_2:99;
:: thesis: ( IncAddr (CurInstr (Computation s1,(i + 1))),k = CurInstr (Computation s2,(i + 1)) & (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )thus
IncAddr (CurInstr (Computation s1,(i + 1))),
k = CurInstr (Computation s2,(i + 1))
by A21, A22, A55, A60, A61, A64, A213, A214, SCMFSA_2:99;
:: thesis: ( (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )now let x be
set ;
:: thesis: ( x in dom ((Computation s1,(i + 1)) | (dom (DataPart p))) implies ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1 )assume A218:
x in dom ((Computation s1,(i + 1)) | (dom (DataPart p)))
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1A219:
dom (DataPart p) c= Int-Locations \/ FinSeq-Locations
by RELAT_1:87, SCMFSA_2:127;
per cases
( x in Int-Locations or f = x or ( f <> x & x in FinSeq-Locations ) )
by A31, A218, A219, XBOOLE_0:def 3;
suppose
x in Int-Locations
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then reconsider d =
x as
Int-Location by SCMFSA_2:11;
(
(Computation s1,(i + 1)) . d = (Computation s1,i) . d &
(Computation s2,(i + 1)) . d = (Computation s2,i) . d )
by A22, A60, A61, A212, A213, SCMFSA_2:99;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A31, A45, A218;
:: thesis: verum end; suppose A220:
f = x
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then consider k1 being
Element of
NAT such that A221:
(
k1 = abs ((Computation s1,i) . db) &
(Computation s1,(i + 1)) . x = ((Computation s1,i) . f) +* k1,
((Computation s1,i) . da) )
by A60, A212, SCMFSA_2:99;
consider k2 being
Element of
NAT such that A222:
(
k2 = abs ((Computation s2,i) . db) &
(Computation s2,(i + 1)) . x = ((Computation s2,i) . f) +* k2,
((Computation s2,i) . da) )
by A22, A61, A213, A220, SCMFSA_2:99;
DataPart p c= p
by RELAT_1:88;
then
dom (DataPart p) c= dom p
by GRFUNC_1:8;
then
((Computation (s1 +* (DataPart s2)),i) . f) +* k2,
((Computation (s1 +* (DataPart s2)),i) . da) = ((Computation s1,i) . f) +* k1,
((Computation s1,i) . da)
by A2, A9, A10, A31, A212, A215, A218, A220, A221, A222, SCMFSA_3:28;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A31, A48, A216, A217, A218, A221, A222;
:: thesis: verum end; suppose A223:
(
f <> x &
x in FinSeq-Locations )
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then reconsider d =
x as
FinSeq-Location by SCMFSA_2:12;
(
(Computation s1,(i + 1)) . d = (Computation s1,i) . d &
(Computation s2,(i + 1)) . d = (Computation s2,i) . d )
by A22, A60, A61, A212, A213, A223, SCMFSA_2:99;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A31, A45, A218;
:: thesis: verum end; end; end; then
(Computation s1,(i + 1)) | (dom (DataPart p)) c= (Computation s2,(i + 1)) | (dom (DataPart p))
by A25, A31, A32, GRFUNC_1:8;
hence
(Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k)))
by A25, A31, A32, GRFUNC_1:9;
:: thesis: DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))now let x be
set ;
:: thesis: ( x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) implies (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1 )assume A224:
x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1)))
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1per cases
( x in Int-Locations or f = x or ( f <> x & x in FinSeq-Locations ) )
by A37, A224, XBOOLE_0:def 3;
suppose
x in Int-Locations
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then reconsider f =
x as
Int-Location by SCMFSA_2:11;
A225:
(Computation (s1 +* (DataPart s2)),(i + 1)) . f = (Computation (s1 +* (DataPart s2)),i) . f
by A62, A212, SCMFSA_2:99;
(Computation s2,(i + 1)) . f = (Computation s2,i) . f
by A22, A61, A213, SCMFSA_2:99;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A53, A224, A225;
:: thesis: verum end; suppose A226:
f = x
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then consider k1 being
Element of
NAT such that A227:
(
k1 = abs ((Computation (s1 +* (DataPart s2)),i) . db) &
(Computation (s1 +* (DataPart s2)),(i + 1)) . x = ((Computation (s1 +* (DataPart s2)),i) . f) +* k1,
((Computation (s1 +* (DataPart s2)),i) . da) )
by A62, A212, SCMFSA_2:99;
consider k2 being
Element of
NAT such that A228:
(
k2 = abs ((Computation s2,i) . db) &
(Computation s2,(i + 1)) . x = ((Computation s2,i) . f) +* k2,
((Computation s2,i) . da) )
by A22, A61, A213, A226, SCMFSA_2:99;
thus
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A51, A215, A216, A217, A224, A227, A228, SCMFSA_2:127;
:: thesis: verum end; suppose A229:
(
f <> x &
x in FinSeq-Locations )
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then reconsider d =
x as
FinSeq-Location by SCMFSA_2:12;
A230:
(Computation (s1 +* (DataPart s2)),(i + 1)) . d = (Computation (s1 +* (DataPart s2)),i) . d
by A62, A212, A229, SCMFSA_2:99;
(Computation s2,(i + 1)) . d = (Computation s2,i) . d
by A22, A61, A213, A229, SCMFSA_2:99;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A53, A224, A230;
:: thesis: verum end; end; end; then
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) c= DataPart (Computation s2,(i + 1))
by A37, A38, GRFUNC_1:8;
hence
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))
by A37, A38, GRFUNC_1:9;
:: thesis: verum end; suppose
InsCode (CurInstr (Computation s1,i)) = 11
;
:: thesis: S1[i + 1]then consider da being
Int-Location ,
f being
FinSeq-Location such that A231:
CurInstr (Computation s1,i) = da :=len f
by SCMFSA_2:64;
A232:
IncAddr (CurInstr (Computation s1,i)),
k = da :=len f
by A231, SCMFSA_4:19;
A233:
(Exec (CurInstr (Computation s1,i)),(Computation s1,i)) . (IC SCM+FSA ) = Next (IC (Computation s1,i))
by A231, SCMFSA_2:100;
A234:
(Computation (s1 +* (DataPart s2)),i) . f = (Computation s2,i) . f
by A43;
thus
(IC (Computation s1,(i + 1))) + k = IC (Computation s2,(i + 1))
by A21, A22, A60, A61, A64, A232, A233, SCMFSA_2:100;
:: thesis: ( IncAddr (CurInstr (Computation s1,(i + 1))),k = CurInstr (Computation s2,(i + 1)) & (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )thus
IncAddr (CurInstr (Computation s1,(i + 1))),
k = CurInstr (Computation s2,(i + 1))
by A21, A22, A55, A60, A61, A64, A232, A233, SCMFSA_2:100;
:: thesis: ( (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )now let x be
set ;
:: thesis: ( x in dom ((Computation s1,(i + 1)) | (dom (DataPart p))) implies ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1 )assume A235:
x in dom ((Computation s1,(i + 1)) | (dom (DataPart p)))
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1A236:
dom (DataPart p) c= Int-Locations \/ FinSeq-Locations
by RELAT_1:87, SCMFSA_2:127;
per cases
( x in FinSeq-Locations or da = x or ( da <> x & x in Int-Locations ) )
by A31, A235, A236, XBOOLE_0:def 3;
suppose
x in FinSeq-Locations
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then reconsider d =
x as
FinSeq-Location by SCMFSA_2:12;
(
(Computation s1,(i + 1)) . d = (Computation s1,i) . d &
(Computation s2,(i + 1)) . d = (Computation s2,i) . d )
by A22, A60, A61, A231, A232, SCMFSA_2:100;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A31, A45, A235;
:: thesis: verum end; suppose A237:
da = x
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then A238:
(Computation s1,(i + 1)) . x = len ((Computation s1,i) . f)
by A60, A231, SCMFSA_2:100;
A239:
(Computation s2,(i + 1)) . x = len ((Computation s2,i) . f)
by A22, A61, A232, A237, SCMFSA_2:100;
DataPart p c= p
by RELAT_1:88;
then
dom (DataPart p) c= dom p
by GRFUNC_1:8;
then
len ((Computation (s1 +* (DataPart s2)),i) . f) = len ((Computation s1,i) . f)
by A2, A9, A10, A31, A231, A235, A237, SCMFSA_3:29;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A31, A48, A234, A235, A238, A239;
:: thesis: verum end; suppose A240:
(
da <> x &
x in Int-Locations )
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then reconsider d =
x as
Int-Location by SCMFSA_2:11;
(
(Computation s1,(i + 1)) . d = (Computation s1,i) . d &
(Computation s2,(i + 1)) . d = (Computation s2,i) . d )
by A22, A60, A61, A231, A232, A240, SCMFSA_2:100;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A31, A45, A235;
:: thesis: verum end; end; end; then
(Computation s1,(i + 1)) | (dom (DataPart p)) c= (Computation s2,(i + 1)) | (dom (DataPart p))
by A25, A31, A32, GRFUNC_1:8;
hence
(Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k)))
by A25, A31, A32, GRFUNC_1:9;
:: thesis: DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))now let x be
set ;
:: thesis: ( x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) implies (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1 )assume A241:
x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1)))
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1per cases
( x in FinSeq-Locations or da = x or ( da <> x & x in Int-Locations ) )
by A37, A241, XBOOLE_0:def 3;
suppose
x in FinSeq-Locations
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then reconsider f =
x as
FinSeq-Location by SCMFSA_2:12;
A242:
(Computation (s1 +* (DataPart s2)),(i + 1)) . f = (Computation (s1 +* (DataPart s2)),i) . f
by A62, A231, SCMFSA_2:100;
(Computation s2,(i + 1)) . f = (Computation s2,i) . f
by A22, A61, A232, SCMFSA_2:100;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A53, A241, A242;
:: thesis: verum end; suppose A243:
da = x
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then A244:
(Computation (s1 +* (DataPart s2)),(i + 1)) . x = len ((Computation (s1 +* (DataPart s2)),i) . f)
by A62, A231, SCMFSA_2:100;
(Computation s2,(i + 1)) . x = len ((Computation s2,i) . f)
by A22, A61, A232, A243, SCMFSA_2:100;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A51, A234, A241, A244, SCMFSA_2:127;
:: thesis: verum end; suppose A245:
(
da <> x &
x in Int-Locations )
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then reconsider d =
x as
Int-Location by SCMFSA_2:11;
A246:
(Computation (s1 +* (DataPart s2)),(i + 1)) . d = (Computation (s1 +* (DataPart s2)),i) . d
by A62, A231, A245, SCMFSA_2:100;
(Computation s2,(i + 1)) . d = (Computation s2,i) . d
by A22, A61, A232, A245, SCMFSA_2:100;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A53, A241, A246;
:: thesis: verum end; end; end; then
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) c= DataPart (Computation s2,(i + 1))
by A37, A38, GRFUNC_1:8;
hence
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))
by A37, A38, GRFUNC_1:9;
:: thesis: verum end; suppose
InsCode (CurInstr (Computation s1,i)) = 12
;
:: thesis: S1[i + 1]then consider da being
Int-Location ,
f being
FinSeq-Location such that A247:
CurInstr (Computation s1,i) = f :=<0,...,0> da
by SCMFSA_2:65;
A248:
IncAddr (CurInstr (Computation s1,i)),
k = f :=<0,...,0> da
by A247, SCMFSA_4:20;
A249:
(Exec (CurInstr (Computation s1,i)),(Computation s1,i)) . (IC SCM+FSA ) = Next (IC (Computation s1,i))
by A247, SCMFSA_2:101;
A250:
(Computation (s1 +* (DataPart s2)),i) . da = (Computation s2,i) . da
by A41;
thus
(IC (Computation s1,(i + 1))) + k = IC (Computation s2,(i + 1))
by A21, A22, A60, A61, A64, A248, A249, SCMFSA_2:101;
:: thesis: ( IncAddr (CurInstr (Computation s1,(i + 1))),k = CurInstr (Computation s2,(i + 1)) & (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )thus
IncAddr (CurInstr (Computation s1,(i + 1))),
k = CurInstr (Computation s2,(i + 1))
by A21, A22, A55, A60, A61, A64, A248, A249, SCMFSA_2:101;
:: thesis: ( (Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k))) & DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1)) )now let x be
set ;
:: thesis: ( x in dom ((Computation s1,(i + 1)) | (dom (DataPart p))) implies ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1 )assume A251:
x in dom ((Computation s1,(i + 1)) | (dom (DataPart p)))
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1A252:
dom (DataPart p) c= Int-Locations \/ FinSeq-Locations
by RELAT_1:87, SCMFSA_2:127;
per cases
( x in Int-Locations or f = x or ( f <> x & x in FinSeq-Locations ) )
by A31, A251, A252, XBOOLE_0:def 3;
suppose
x in Int-Locations
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then reconsider d =
x as
Int-Location by SCMFSA_2:11;
(
(Computation s1,(i + 1)) . d = (Computation s1,i) . d &
(Computation s2,(i + 1)) . d = (Computation s2,i) . d )
by A22, A60, A61, A247, A248, SCMFSA_2:101;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A31, A45, A251;
:: thesis: verum end; suppose A253:
f = x
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then consider k1 being
Element of
NAT such that A254:
(
k1 = abs ((Computation s1,i) . da) &
(Computation s1,(i + 1)) . x = k1 |-> 0 )
by A60, A247, SCMFSA_2:101;
consider k2 being
Element of
NAT such that A255:
(
k2 = abs ((Computation s2,i) . da) &
(Computation s2,(i + 1)) . x = k2 |-> 0 )
by A22, A61, A248, A253, SCMFSA_2:101;
DataPart p c= p
by RELAT_1:88;
then
dom (DataPart p) c= dom p
by GRFUNC_1:8;
then
k2 |-> 0 = k1 |-> 0
by A2, A9, A10, A31, A247, A250, A251, A253, A254, A255, SCMFSA_3:30;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A31, A48, A251, A254, A255;
:: thesis: verum end; suppose A256:
(
f <> x &
x in FinSeq-Locations )
;
:: thesis: ((Computation s1,(i + 1)) | (dom (DataPart p))) . b1 = ((Computation s2,(i + 1)) | (dom (DataPart p))) . b1then reconsider d =
x as
FinSeq-Location by SCMFSA_2:12;
(
(Computation s1,(i + 1)) . d = (Computation s1,i) . d &
(Computation s2,(i + 1)) . d = (Computation s2,i) . d )
by A22, A60, A61, A247, A248, A256, SCMFSA_2:101;
hence
((Computation s1,(i + 1)) | (dom (DataPart p))) . x = ((Computation s2,(i + 1)) | (dom (DataPart p))) . x
by A31, A45, A251;
:: thesis: verum end; end; end; then
(Computation s1,(i + 1)) | (dom (DataPart p)) c= (Computation s2,(i + 1)) | (dom (DataPart p))
by A25, A31, A32, GRFUNC_1:8;
hence
(Computation s1,(i + 1)) | (dom (DataPart p)) = (Computation s2,(i + 1)) | (dom (DataPart (Relocated p,k)))
by A25, A31, A32, GRFUNC_1:9;
:: thesis: DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))now let x be
set ;
:: thesis: ( x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) implies (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1 )assume A257:
x in dom (DataPart (Computation (s1 +* (DataPart s2)),(i + 1)))
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1per cases
( x in Int-Locations or f = x or ( f <> x & x in FinSeq-Locations ) )
by A37, A257, XBOOLE_0:def 3;
suppose
x in Int-Locations
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then reconsider f =
x as
Int-Location by SCMFSA_2:11;
A258:
(Computation (s1 +* (DataPart s2)),(i + 1)) . f = (Computation (s1 +* (DataPart s2)),i) . f
by A62, A247, SCMFSA_2:101;
(Computation s2,(i + 1)) . f = (Computation s2,i) . f
by A22, A61, A248, SCMFSA_2:101;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A53, A257, A258;
:: thesis: verum end; suppose A259:
f = x
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then consider k1 being
Element of
NAT such that A260:
(
k1 = abs ((Computation (s1 +* (DataPart s2)),i) . da) &
(Computation (s1 +* (DataPart s2)),(i + 1)) . x = k1 |-> 0 )
by A62, A247, SCMFSA_2:101;
consider k2 being
Element of
NAT such that A261:
(
k2 = abs ((Computation s2,i) . da) &
(Computation s2,(i + 1)) . x = k2 |-> 0 )
by A22, A61, A248, A259, SCMFSA_2:101;
thus
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A51, A250, A257, A260, A261, SCMFSA_2:127;
:: thesis: verum end; suppose A262:
(
f <> x &
x in FinSeq-Locations )
;
:: thesis: (DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . b1 = (DataPart (Computation s2,(i + 1))) . b1then reconsider d =
x as
FinSeq-Location by SCMFSA_2:12;
A263:
(Computation (s1 +* (DataPart s2)),(i + 1)) . d = (Computation (s1 +* (DataPart s2)),i) . d
by A62, A247, A262, SCMFSA_2:101;
(Computation s2,(i + 1)) . d = (Computation s2,i) . d
by A22, A61, A248, A262, SCMFSA_2:101;
hence
(DataPart (Computation (s1 +* (DataPart s2)),(i + 1))) . x = (DataPart (Computation s2,(i + 1))) . x
by A53, A257, A263;
:: thesis: verum end; end; end; then
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) c= DataPart (Computation s2,(i + 1))
by A37, A38, GRFUNC_1:8;
hence
DataPart (Computation (s1 +* (DataPart s2)),(i + 1)) = DataPart (Computation s2,(i + 1))
by A37, A38, GRFUNC_1:9;
:: thesis: verum end; end;
end;
thus
for i being Element of NAT holds S1[i]
from NAT_1:sch 1(A19, A20); :: thesis: verum