let I be Program of SCM+FSA ; :: thesis: for n being Element of NAT
for s, t being State of SCM+FSA st I +* (Start-At (insloc 0 )) c= s & I +* (Start-At (insloc 0 )) c= t & s | (UsedIntLoc I) = t | (UsedIntLoc I) & s | (UsedInt*Loc I) = t | (UsedInt*Loc I) & ( for m being Element of NAT st m < n holds
IC (Computation s,m) in dom I ) holds
( ( for m being Element of NAT st m < n holds
IC (Computation t,m) in dom I ) & ( for m being Element of NAT st m <= n holds
( IC (Computation s,m) = IC (Computation t,m) & ( for a being Int-Location st a in UsedIntLoc I holds
(Computation s,m) . a = (Computation t,m) . a ) & ( for f being FinSeq-Location st f in UsedInt*Loc I holds
(Computation s,m) . f = (Computation t,m) . f ) ) ) )

let n be Element of NAT ; :: thesis: for s, t being State of SCM+FSA st I +* (Start-At (insloc 0 )) c= s & I +* (Start-At (insloc 0 )) c= t & s | (UsedIntLoc I) = t | (UsedIntLoc I) & s | (UsedInt*Loc I) = t | (UsedInt*Loc I) & ( for m being Element of NAT st m < n holds
IC (Computation s,m) in dom I ) holds
( ( for m being Element of NAT st m < n holds
IC (Computation t,m) in dom I ) & ( for m being Element of NAT st m <= n holds
( IC (Computation s,m) = IC (Computation t,m) & ( for a being Int-Location st a in UsedIntLoc I holds
(Computation s,m) . a = (Computation t,m) . a ) & ( for f being FinSeq-Location st f in UsedInt*Loc I holds
(Computation s,m) . f = (Computation t,m) . f ) ) ) )

let s, t be State of SCM+FSA ; :: thesis: ( I +* (Start-At (insloc 0 )) c= s & I +* (Start-At (insloc 0 )) c= t & s | (UsedIntLoc I) = t | (UsedIntLoc I) & s | (UsedInt*Loc I) = t | (UsedInt*Loc I) & ( for m being Element of NAT st m < n holds
IC (Computation s,m) in dom I ) implies ( ( for m being Element of NAT st m < n holds
IC (Computation t,m) in dom I ) & ( for m being Element of NAT st m <= n holds
( IC (Computation s,m) = IC (Computation t,m) & ( for a being Int-Location st a in UsedIntLoc I holds
(Computation s,m) . a = (Computation t,m) . a ) & ( for f being FinSeq-Location st f in UsedInt*Loc I holds
(Computation s,m) . f = (Computation t,m) . f ) ) ) ) )

assume that
A1: ( I +* (Start-At (insloc 0 )) c= s & I +* (Start-At (insloc 0 )) c= t ) and
A2: ( s | (UsedIntLoc I) = t | (UsedIntLoc I) & s | (UsedInt*Loc I) = t | (UsedInt*Loc I) ) and
A3: for m being Element of NAT st m < n holds
IC (Computation s,m) in dom I ; :: thesis: ( ( for m being Element of NAT st m < n holds
IC (Computation t,m) in dom I ) & ( for m being Element of NAT st m <= n holds
( IC (Computation s,m) = IC (Computation t,m) & ( for a being Int-Location st a in UsedIntLoc I holds
(Computation s,m) . a = (Computation t,m) . a ) & ( for f being FinSeq-Location st f in UsedInt*Loc I holds
(Computation s,m) . f = (Computation t,m) . f ) ) ) )

defpred S1[ Element of NAT ] means ( $1 < n implies ( IC (Computation t,$1) in dom I & IC (Computation s,$1) = IC (Computation t,$1) & ( for a being Int-Location st a in UsedIntLoc I holds
(Computation s,$1) . a = (Computation t,$1) . a ) & ( for f being FinSeq-Location st f in UsedInt*Loc I holds
(Computation s,$1) . f = (Computation t,$1) . f ) ) );
A4: S1[ 0 ]
proof
assume A5: 0 < n ; :: thesis: ( IC (Computation t,0 ) in dom I & IC (Computation s,0 ) = IC (Computation t,0 ) & ( for a being Int-Location st a in UsedIntLoc I holds
(Computation s,0 ) . a = (Computation t,0 ) . a ) & ( for f being FinSeq-Location st f in UsedInt*Loc I holds
(Computation s,0 ) . f = (Computation t,0 ) . f ) )

A6: IC (Computation s,0 ) = IC s by AMI_1:13
.= insloc 0 by A1, Th67 ;
A7: IC (Computation t,0 ) = IC t by AMI_1:13
.= insloc 0 by A1, Th67 ;
hence IC (Computation t,0 ) in dom I by A3, A5, A6; :: thesis: ( IC (Computation s,0 ) = IC (Computation t,0 ) & ( for a being Int-Location st a in UsedIntLoc I holds
(Computation s,0 ) . a = (Computation t,0 ) . a ) & ( for f being FinSeq-Location st f in UsedInt*Loc I holds
(Computation s,0 ) . f = (Computation t,0 ) . f ) )

thus IC (Computation s,0 ) = IC (Computation t,0 ) by A6, A7; :: thesis: ( ( for a being Int-Location st a in UsedIntLoc I holds
(Computation s,0 ) . a = (Computation t,0 ) . a ) & ( for f being FinSeq-Location st f in UsedInt*Loc I holds
(Computation s,0 ) . f = (Computation t,0 ) . f ) )

hereby :: thesis: for f being FinSeq-Location st f in UsedInt*Loc I holds
(Computation s,0 ) . f = (Computation t,0 ) . f
let a be Int-Location ; :: thesis: ( a in UsedIntLoc I implies (Computation s,0 ) . a = (Computation t,0 ) . a )
assume A8: a in UsedIntLoc I ; :: thesis: (Computation s,0 ) . a = (Computation t,0 ) . a
thus (Computation s,0 ) . a = s . a by AMI_1:13
.= (s | (UsedIntLoc I)) . a by A8, FUNCT_1:72
.= t . a by A2, A8, FUNCT_1:72
.= (Computation t,0 ) . a by AMI_1:13 ; :: thesis: verum
end;
let f be FinSeq-Location ; :: thesis: ( f in UsedInt*Loc I implies (Computation s,0 ) . f = (Computation t,0 ) . f )
assume A9: f in UsedInt*Loc I ; :: thesis: (Computation s,0 ) . f = (Computation t,0 ) . f
thus (Computation s,0 ) . f = s . f by AMI_1:13
.= (s | (UsedInt*Loc I)) . f by A9, FUNCT_1:72
.= t . f by A2, A9, FUNCT_1:72
.= (Computation t,0 ) . f by AMI_1:13 ; :: thesis: verum
end;
A10: now
let m be Element of NAT ; :: thesis: ( S1[m] implies S1[m + 1] )
assume A11: S1[m] ; :: thesis: S1[m + 1]
thus S1[m + 1] :: thesis: verum
proof
set m1 = m + 1;
assume A12: m + 1 < n ; :: thesis: ( IC (Computation t,(m + 1)) in dom I & IC (Computation s,(m + 1)) = IC (Computation t,(m + 1)) & ( for a being Int-Location st a in UsedIntLoc I holds
(Computation s,(m + 1)) . a = (Computation t,(m + 1)) . a ) & ( for f being FinSeq-Location st f in UsedInt*Loc I holds
(Computation s,(m + 1)) . f = (Computation t,(m + 1)) . f ) )

then A13: m < n by NAT_1:13;
A14: Computation s,(m + 1) = Following (Computation s,m) by AMI_1:14
.= Exec ((Computation s,m) . (IC (Computation s,m))),(Computation s,m) ;
A15: Computation t,(m + 1) = Following (Computation t,m) by AMI_1:14
.= Exec ((Computation t,m) . (IC (Computation t,m))),(Computation t,m) ;
dom I misses dom (Start-At (insloc 0 )) by Th64;
then I c= I +* (Start-At (insloc 0 )) by FUNCT_4:33;
then ( I c= s & I c= t ) by A1, XBOOLE_1:1;
then A16: ( I c= Computation s,m & I c= Computation t,m ) by AMI_1:81;
then A17: (Computation s,m) . (IC (Computation s,m)) = I . (IC (Computation s,m)) by A11, A12, GRFUNC_1:8, NAT_1:13;
then A18: (Computation s,m) . (IC (Computation s,m)) = (Computation t,m) . (IC (Computation t,m)) by A11, A12, A16, GRFUNC_1:8, NAT_1:13;
set i = (Computation s,m) . (IC (Computation s,m));
IC (Computation s,m) in dom I by A3, A13;
then A19: (Computation s,m) . (IC (Computation s,m)) in rng I by A17, FUNCT_1:def 5;
now
thus dom ((Computation s,m) | (UsedIntLoc I)) = (dom (Computation s,m)) /\ (UsedIntLoc I) by RELAT_1:90
.= (dom the Object-Kind of SCM+FSA ) /\ (UsedIntLoc I) by CARD_3:18
.= (dom (Computation t,m)) /\ (UsedIntLoc I) by CARD_3:18 ; :: thesis: for x being set st x in dom ((Computation s,m) | (UsedIntLoc I)) holds
((Computation s,m) | (UsedIntLoc I)) . x = (Computation t,m) . x

let x be set ; :: thesis: ( x in dom ((Computation s,m) | (UsedIntLoc I)) implies ((Computation s,m) | (UsedIntLoc I)) . x = (Computation t,m) . x )
assume x in dom ((Computation s,m) | (UsedIntLoc I)) ; :: thesis: ((Computation s,m) | (UsedIntLoc I)) . x = (Computation t,m) . x
then A20: x in UsedIntLoc I by RELAT_1:86;
then reconsider x' = x as Int-Location by SCMFSA_2:11;
thus ((Computation s,m) | (UsedIntLoc I)) . x = (Computation s,m) . x' by A20, FUNCT_1:72
.= (Computation t,m) . x by A11, A12, A20, NAT_1:13 ; :: thesis: verum
end;
then A21: (Computation s,m) | (UsedIntLoc I) = (Computation t,m) | (UsedIntLoc I) by FUNCT_1:68;
A22: (Computation s,m) | (UsedIntLoc ((Computation s,m) . (IC (Computation s,m)))) = ((Computation s,m) | (UsedIntLoc I)) | (UsedIntLoc ((Computation s,m) . (IC (Computation s,m)))) by A19, Th23, RELAT_1:103
.= (Computation t,m) | (UsedIntLoc ((Computation s,m) . (IC (Computation s,m)))) by A19, A21, Th23, RELAT_1:103 ;
now
thus dom ((Computation s,m) | (UsedInt*Loc I)) = (dom (Computation s,m)) /\ (UsedInt*Loc I) by RELAT_1:90
.= (dom the Object-Kind of SCM+FSA ) /\ (UsedInt*Loc I) by CARD_3:18
.= (dom (Computation t,m)) /\ (UsedInt*Loc I) by CARD_3:18 ; :: thesis: for x being set st x in dom ((Computation s,m) | (UsedInt*Loc I)) holds
((Computation s,m) | (UsedInt*Loc I)) . x = (Computation t,m) . x

let x be set ; :: thesis: ( x in dom ((Computation s,m) | (UsedInt*Loc I)) implies ((Computation s,m) | (UsedInt*Loc I)) . x = (Computation t,m) . x )
assume x in dom ((Computation s,m) | (UsedInt*Loc I)) ; :: thesis: ((Computation s,m) | (UsedInt*Loc I)) . x = (Computation t,m) . x
then A23: x in UsedInt*Loc I by RELAT_1:86;
then reconsider x' = x as FinSeq-Location by SCMFSA_2:12;
thus ((Computation s,m) | (UsedInt*Loc I)) . x = (Computation s,m) . x' by A23, FUNCT_1:72
.= (Computation t,m) . x by A11, A12, A23, NAT_1:13 ; :: thesis: verum
end;
then A24: (Computation s,m) | (UsedInt*Loc I) = (Computation t,m) | (UsedInt*Loc I) by FUNCT_1:68;
(Computation s,m) | (UsedInt*Loc ((Computation s,m) . (IC (Computation s,m)))) = ((Computation s,m) | (UsedInt*Loc I)) | (UsedInt*Loc ((Computation s,m) . (IC (Computation s,m)))) by A19, Th39, RELAT_1:103
.= (Computation t,m) | (UsedInt*Loc ((Computation s,m) . (IC (Computation s,m)))) by A19, A24, Th39, RELAT_1:103 ;
then A25: ( (Exec ((Computation s,m) . (IC (Computation s,m))),(Computation s,m)) | (UsedIntLoc ((Computation s,m) . (IC (Computation s,m)))) = (Exec ((Computation s,m) . (IC (Computation s,m))),(Computation t,m)) | (UsedIntLoc ((Computation s,m) . (IC (Computation s,m)))) & (Exec ((Computation s,m) . (IC (Computation s,m))),(Computation s,m)) | (UsedInt*Loc ((Computation s,m) . (IC (Computation s,m)))) = (Exec ((Computation s,m) . (IC (Computation s,m))),(Computation t,m)) | (UsedInt*Loc ((Computation s,m) . (IC (Computation s,m)))) & IC (Exec ((Computation s,m) . (IC (Computation s,m))),(Computation s,m)) = IC (Exec ((Computation s,m) . (IC (Computation s,m))),(Computation t,m)) ) by A11, A12, A22, Th72, NAT_1:13;
hence IC (Computation t,(m + 1)) in dom I by A3, A12, A14, A15, A18; :: thesis: ( IC (Computation s,(m + 1)) = IC (Computation t,(m + 1)) & ( for a being Int-Location st a in UsedIntLoc I holds
(Computation s,(m + 1)) . a = (Computation t,(m + 1)) . a ) & ( for f being FinSeq-Location st f in UsedInt*Loc I holds
(Computation s,(m + 1)) . f = (Computation t,(m + 1)) . f ) )

thus IC (Computation s,(m + 1)) = IC (Computation t,(m + 1)) by A11, A12, A14, A15, A16, A17, A25, GRFUNC_1:8, NAT_1:13; :: thesis: ( ( for a being Int-Location st a in UsedIntLoc I holds
(Computation s,(m + 1)) . a = (Computation t,(m + 1)) . a ) & ( for f being FinSeq-Location st f in UsedInt*Loc I holds
(Computation s,(m + 1)) . f = (Computation t,(m + 1)) . f ) )

hereby :: thesis: for f being FinSeq-Location st f in UsedInt*Loc I holds
(Computation s,(m + 1)) . f = (Computation t,(m + 1)) . f
let a be Int-Location ; :: thesis: ( a in UsedIntLoc I implies (Computation s,(m + 1)) . b1 = (Computation t,(m + 1)) . b1 )
assume A26: a in UsedIntLoc I ; :: thesis: (Computation s,(m + 1)) . b1 = (Computation t,(m + 1)) . b1
per cases ( a in UsedIntLoc ((Computation s,m) . (IC (Computation s,m))) or not a in UsedIntLoc ((Computation s,m) . (IC (Computation s,m))) ) ;
suppose A27: a in UsedIntLoc ((Computation s,m) . (IC (Computation s,m))) ; :: thesis: (Computation s,(m + 1)) . b1 = (Computation t,(m + 1)) . b1
hence (Computation s,(m + 1)) . a = ((Exec ((Computation s,m) . (IC (Computation s,m))),(Computation s,m)) | (UsedIntLoc ((Computation s,m) . (IC (Computation s,m))))) . a by A14, FUNCT_1:72
.= (Computation t,(m + 1)) . a by A15, A18, A25, A27, FUNCT_1:72 ;
:: thesis: verum
end;
suppose A28: not a in UsedIntLoc ((Computation s,m) . (IC (Computation s,m))) ; :: thesis: (Computation s,(m + 1)) . b1 = (Computation t,(m + 1)) . b1
hence (Computation s,(m + 1)) . a = (Computation s,m) . a by A14, Th68
.= (Computation t,m) . a by A11, A12, A26, NAT_1:13
.= (Computation t,(m + 1)) . a by A15, A18, A28, Th68 ;
:: thesis: verum
end;
end;
end;
let f be FinSeq-Location ; :: thesis: ( f in UsedInt*Loc I implies (Computation s,(m + 1)) . f = (Computation t,(m + 1)) . f )
assume A29: f in UsedInt*Loc I ; :: thesis: (Computation s,(m + 1)) . f = (Computation t,(m + 1)) . f
per cases ( f in UsedInt*Loc ((Computation s,m) . (IC (Computation s,m))) or not f in UsedInt*Loc ((Computation s,m) . (IC (Computation s,m))) ) ;
suppose A30: f in UsedInt*Loc ((Computation s,m) . (IC (Computation s,m))) ; :: thesis: (Computation s,(m + 1)) . f = (Computation t,(m + 1)) . f
hence (Computation s,(m + 1)) . f = ((Exec ((Computation s,m) . (IC (Computation s,m))),(Computation s,m)) | (UsedInt*Loc ((Computation s,m) . (IC (Computation s,m))))) . f by A14, FUNCT_1:72
.= (Computation t,(m + 1)) . f by A15, A18, A25, A30, FUNCT_1:72 ;
:: thesis: verum
end;
suppose A31: not f in UsedInt*Loc ((Computation s,m) . (IC (Computation s,m))) ; :: thesis: (Computation s,(m + 1)) . f = (Computation t,(m + 1)) . f
hence (Computation s,(m + 1)) . f = (Computation s,m) . f by A14, Th70
.= (Computation t,m) . f by A11, A12, A29, NAT_1:13
.= (Computation t,(m + 1)) . f by A15, A18, A31, Th70 ;
:: thesis: verum
end;
end;
end;
end;
A32: for m being Element of NAT holds S1[m] from NAT_1:sch 1(A4, A10);
hence for m being Element of NAT st m < n holds
IC (Computation t,m) in dom I ; :: thesis: for m being Element of NAT st m <= n holds
( IC (Computation s,m) = IC (Computation t,m) & ( for a being Int-Location st a in UsedIntLoc I holds
(Computation s,m) . a = (Computation t,m) . a ) & ( for f being FinSeq-Location st f in UsedInt*Loc I holds
(Computation s,m) . f = (Computation t,m) . f ) )

let m be Element of NAT ; :: thesis: ( m <= n implies ( IC (Computation s,m) = IC (Computation t,m) & ( for a being Int-Location st a in UsedIntLoc I holds
(Computation s,m) . a = (Computation t,m) . a ) & ( for f being FinSeq-Location st f in UsedInt*Loc I holds
(Computation s,m) . f = (Computation t,m) . f ) ) )

assume A33: m <= n ; :: thesis: ( IC (Computation s,m) = IC (Computation t,m) & ( for a being Int-Location st a in UsedIntLoc I holds
(Computation s,m) . a = (Computation t,m) . a ) & ( for f being FinSeq-Location st f in UsedInt*Loc I holds
(Computation s,m) . f = (Computation t,m) . f ) )

per cases ( m = 0 or ex p being Nat st m = p + 1 ) by NAT_1:6;
suppose A34: m = 0 ; :: thesis: ( IC (Computation s,m) = IC (Computation t,m) & ( for a being Int-Location st a in UsedIntLoc I holds
(Computation s,m) . a = (Computation t,m) . a ) & ( for f being FinSeq-Location st f in UsedInt*Loc I holds
(Computation s,m) . f = (Computation t,m) . f ) )

A35: IC (Computation s,0 ) = IC s by AMI_1:13
.= insloc 0 by A1, Th67 ;
IC (Computation t,0 ) = IC t by AMI_1:13
.= insloc 0 by A1, Th67 ;
hence IC (Computation s,m) = IC (Computation t,m) by A34, A35; :: thesis: ( ( for a being Int-Location st a in UsedIntLoc I holds
(Computation s,m) . a = (Computation t,m) . a ) & ( for f being FinSeq-Location st f in UsedInt*Loc I holds
(Computation s,m) . f = (Computation t,m) . f ) )

hereby :: thesis: for f being FinSeq-Location st f in UsedInt*Loc I holds
(Computation s,m) . f = (Computation t,m) . f
let a be Int-Location ; :: thesis: ( a in UsedIntLoc I implies (Computation s,m) . a = (Computation t,m) . a )
assume A36: a in UsedIntLoc I ; :: thesis: (Computation s,m) . a = (Computation t,m) . a
thus (Computation s,m) . a = s . a by A34, AMI_1:13
.= (s | (UsedIntLoc I)) . a by A36, FUNCT_1:72
.= t . a by A2, A36, FUNCT_1:72
.= (Computation t,m) . a by A34, AMI_1:13 ; :: thesis: verum
end;
let f be FinSeq-Location ; :: thesis: ( f in UsedInt*Loc I implies (Computation s,m) . f = (Computation t,m) . f )
assume A37: f in UsedInt*Loc I ; :: thesis: (Computation s,m) . f = (Computation t,m) . f
thus (Computation s,m) . f = s . f by A34, AMI_1:13
.= (s | (UsedInt*Loc I)) . f by A37, FUNCT_1:72
.= t . f by A2, A37, FUNCT_1:72
.= (Computation t,m) . f by A34, AMI_1:13 ; :: thesis: verum
end;
suppose ex p being Nat st m = p + 1 ; :: thesis: ( IC (Computation s,m) = IC (Computation t,m) & ( for a being Int-Location st a in UsedIntLoc I holds
(Computation s,m) . a = (Computation t,m) . a ) & ( for f being FinSeq-Location st f in UsedInt*Loc I holds
(Computation s,m) . f = (Computation t,m) . f ) )

then consider p being Nat such that
A38: m = p + 1 ;
reconsider p = p as Element of NAT by ORDINAL1:def 13;
set p1 = p + 1;
A39: p < n by A33, A38, NAT_1:13;
A40: Computation s,(p + 1) = Following (Computation s,p) by AMI_1:14
.= Exec ((Computation s,p) . (IC (Computation s,p))),(Computation s,p) ;
A41: Computation t,(p + 1) = Following (Computation t,p) by AMI_1:14
.= Exec ((Computation t,p) . (IC (Computation t,p))),(Computation t,p) ;
A42: ( IC (Computation s,p) = IC (Computation t,p) & IC (Computation s,p) in dom I ) by A3, A32, A39;
dom I misses dom (Start-At (insloc 0 )) by Th64;
then I c= I +* (Start-At (insloc 0 )) by FUNCT_4:33;
then ( I c= s & I c= t ) by A1, XBOOLE_1:1;
then A43: ( I c= Computation s,p & I c= Computation t,p ) by AMI_1:81;
then A44: (Computation s,p) . (IC (Computation s,p)) = I . (IC (Computation s,p)) by A42, GRFUNC_1:8;
then A45: (Computation s,p) . (IC (Computation s,p)) = (Computation t,p) . (IC (Computation t,p)) by A42, A43, GRFUNC_1:8;
set i = (Computation s,p) . (IC (Computation s,p));
IC (Computation s,p) in dom I by A3, A39;
then A46: (Computation s,p) . (IC (Computation s,p)) in rng I by A44, FUNCT_1:def 5;
now
thus dom ((Computation s,p) | (UsedIntLoc I)) = (dom (Computation s,p)) /\ (UsedIntLoc I) by RELAT_1:90
.= (dom the Object-Kind of SCM+FSA ) /\ (UsedIntLoc I) by CARD_3:18
.= (dom (Computation t,p)) /\ (UsedIntLoc I) by CARD_3:18 ; :: thesis: for x being set st x in dom ((Computation s,p) | (UsedIntLoc I)) holds
((Computation s,p) | (UsedIntLoc I)) . x = (Computation t,p) . x

let x be set ; :: thesis: ( x in dom ((Computation s,p) | (UsedIntLoc I)) implies ((Computation s,p) | (UsedIntLoc I)) . x = (Computation t,p) . x )
assume x in dom ((Computation s,p) | (UsedIntLoc I)) ; :: thesis: ((Computation s,p) | (UsedIntLoc I)) . x = (Computation t,p) . x
then A47: x in UsedIntLoc I by RELAT_1:86;
then reconsider x' = x as Int-Location by SCMFSA_2:11;
thus ((Computation s,p) | (UsedIntLoc I)) . x = (Computation s,p) . x' by A47, FUNCT_1:72
.= (Computation t,p) . x by A32, A39, A47 ; :: thesis: verum
end;
then A48: (Computation s,p) | (UsedIntLoc I) = (Computation t,p) | (UsedIntLoc I) by FUNCT_1:68;
A49: (Computation s,p) | (UsedIntLoc ((Computation s,p) . (IC (Computation s,p)))) = ((Computation s,p) | (UsedIntLoc I)) | (UsedIntLoc ((Computation s,p) . (IC (Computation s,p)))) by A46, Th23, RELAT_1:103
.= (Computation t,p) | (UsedIntLoc ((Computation s,p) . (IC (Computation s,p)))) by A46, A48, Th23, RELAT_1:103 ;
now
thus dom ((Computation s,p) | (UsedInt*Loc I)) = (dom (Computation s,p)) /\ (UsedInt*Loc I) by RELAT_1:90
.= (dom the Object-Kind of SCM+FSA ) /\ (UsedInt*Loc I) by CARD_3:18
.= (dom (Computation t,p)) /\ (UsedInt*Loc I) by CARD_3:18 ; :: thesis: for x being set st x in dom ((Computation s,p) | (UsedInt*Loc I)) holds
((Computation s,p) | (UsedInt*Loc I)) . x = (Computation t,p) . x

let x be set ; :: thesis: ( x in dom ((Computation s,p) | (UsedInt*Loc I)) implies ((Computation s,p) | (UsedInt*Loc I)) . x = (Computation t,p) . x )
assume x in dom ((Computation s,p) | (UsedInt*Loc I)) ; :: thesis: ((Computation s,p) | (UsedInt*Loc I)) . x = (Computation t,p) . x
then A50: x in UsedInt*Loc I by RELAT_1:86;
then reconsider x' = x as FinSeq-Location by SCMFSA_2:12;
thus ((Computation s,p) | (UsedInt*Loc I)) . x = (Computation s,p) . x' by A50, FUNCT_1:72
.= (Computation t,p) . x by A32, A39, A50 ; :: thesis: verum
end;
then A51: (Computation s,p) | (UsedInt*Loc I) = (Computation t,p) | (UsedInt*Loc I) by FUNCT_1:68;
A52: (Computation s,p) | (UsedInt*Loc ((Computation s,p) . (IC (Computation s,p)))) = ((Computation s,p) | (UsedInt*Loc I)) | (UsedInt*Loc ((Computation s,p) . (IC (Computation s,p)))) by A46, Th39, RELAT_1:103
.= (Computation t,p) | (UsedInt*Loc ((Computation s,p) . (IC (Computation s,p)))) by A46, A51, Th39, RELAT_1:103 ;
then A53: ( (Exec ((Computation s,p) . (IC (Computation s,p))),(Computation s,p)) | (UsedIntLoc ((Computation s,p) . (IC (Computation s,p)))) = (Exec ((Computation s,p) . (IC (Computation s,p))),(Computation t,p)) | (UsedIntLoc ((Computation s,p) . (IC (Computation s,p)))) & (Exec ((Computation s,p) . (IC (Computation s,p))),(Computation s,p)) | (UsedInt*Loc ((Computation s,p) . (IC (Computation s,p)))) = (Exec ((Computation s,p) . (IC (Computation s,p))),(Computation t,p)) | (UsedInt*Loc ((Computation s,p) . (IC (Computation s,p)))) & IC (Exec ((Computation s,p) . (IC (Computation s,p))),(Computation s,p)) = IC (Exec ((Computation s,p) . (IC (Computation s,p))),(Computation t,p)) ) by A42, A49, Th72;
thus IC (Computation s,m) = IC (Computation t,m) by A38, A40, A41, A42, A45, A49, A52, Th72; :: thesis: ( ( for a being Int-Location st a in UsedIntLoc I holds
(Computation s,m) . a = (Computation t,m) . a ) & ( for f being FinSeq-Location st f in UsedInt*Loc I holds
(Computation s,m) . f = (Computation t,m) . f ) )

hereby :: thesis: for f being FinSeq-Location st f in UsedInt*Loc I holds
(Computation s,m) . f = (Computation t,m) . f
let a be Int-Location ; :: thesis: ( a in UsedIntLoc I implies (Computation s,m) . b1 = (Computation t,m) . b1 )
assume A54: a in UsedIntLoc I ; :: thesis: (Computation s,m) . b1 = (Computation t,m) . b1
per cases ( a in UsedIntLoc ((Computation s,p) . (IC (Computation s,p))) or not a in UsedIntLoc ((Computation s,p) . (IC (Computation s,p))) ) ;
suppose A55: a in UsedIntLoc ((Computation s,p) . (IC (Computation s,p))) ; :: thesis: (Computation s,m) . b1 = (Computation t,m) . b1
hence (Computation s,m) . a = ((Exec ((Computation s,p) . (IC (Computation s,p))),(Computation s,p)) | (UsedIntLoc ((Computation s,p) . (IC (Computation s,p))))) . a by A38, A40, FUNCT_1:72
.= (Computation t,m) . a by A38, A41, A45, A53, A55, FUNCT_1:72 ;
:: thesis: verum
end;
suppose A56: not a in UsedIntLoc ((Computation s,p) . (IC (Computation s,p))) ; :: thesis: (Computation s,m) . b1 = (Computation t,m) . b1
hence (Computation s,m) . a = (Computation s,p) . a by A38, A40, Th68
.= (Computation t,p) . a by A32, A39, A54
.= (Computation t,m) . a by A38, A41, A45, A56, Th68 ;
:: thesis: verum
end;
end;
end;
hereby :: thesis: verum
let f be FinSeq-Location ; :: thesis: ( f in UsedInt*Loc I implies (Computation s,m) . b1 = (Computation t,m) . b1 )
assume A57: f in UsedInt*Loc I ; :: thesis: (Computation s,m) . b1 = (Computation t,m) . b1
per cases ( f in UsedInt*Loc ((Computation s,p) . (IC (Computation s,p))) or not f in UsedInt*Loc ((Computation s,p) . (IC (Computation s,p))) ) ;
suppose A58: f in UsedInt*Loc ((Computation s,p) . (IC (Computation s,p))) ; :: thesis: (Computation s,m) . b1 = (Computation t,m) . b1
hence (Computation s,m) . f = ((Exec ((Computation s,p) . (IC (Computation s,p))),(Computation s,p)) | (UsedInt*Loc ((Computation s,p) . (IC (Computation s,p))))) . f by A38, A40, FUNCT_1:72
.= (Computation t,m) . f by A38, A41, A45, A53, A58, FUNCT_1:72 ;
:: thesis: verum
end;
suppose A59: not f in UsedInt*Loc ((Computation s,p) . (IC (Computation s,p))) ; :: thesis: (Computation s,m) . b1 = (Computation t,m) . b1
hence (Computation s,m) . f = (Computation s,p) . f by A38, A40, Th70
.= (Computation t,p) . f by A32, A39, A57
.= (Computation t,m) . f by A38, A41, A45, A59, Th70 ;
:: thesis: verum
end;
end;
end;
end;
end;