defpred S1[ set , set ] means ex m being Element of NAT st
( ( $1 = IC & $2 = F4() ) or ( $1 = m & $2 = F1(m) ) or ( $1 = intloc m & $2 = F2(m) ) or ( $1 = fsloc m & $2 = F3(m) ) );
A1:
for e being set st e in the carrier of SCM+FSA holds
ex u being set st S1[e,u]
proof
let e be
set ;
( e in the carrier of SCM+FSA implies ex u being set st S1[e,u] )
assume
e in the
carrier of
SCM+FSA
;
ex u being set st S1[e,u]
then
e in ((Data-Locations SCM+FSA) \/ {(IC )}) \/ NAT
by COMPOS_1:160;
then
(
e in (Data-Locations SCM+FSA) \/ {(IC )} or
e in NAT )
by XBOOLE_0:def 3;
then A2:
(
e in Data-Locations SCM+FSA or
e in {(IC )} or
e in NAT )
by XBOOLE_0:def 3;
then consider m being
Element of
NAT such that A3:
(
e = IC or
e = m or
e = intloc m or
e = fsloc m )
;
per cases
( e = IC or e = m or e = intloc m or e = fsloc m )
by A3;
suppose A4:
e = IC
;
ex u being set st S1[e,u]take u =
F4();
S1[e,u]thus
S1[
e,
u]
by A4;
verum end; suppose A5:
e = m
;
ex u being set st S1[e,u]take u =
F1(
m);
S1[e,u]thus
S1[
e,
u]
by A5;
verum end; suppose A6:
e = intloc m
;
ex u being set st S1[e,u]take u =
F2(
m);
S1[e,u]thus
S1[
e,
u]
by A6;
verum end; suppose A7:
e = fsloc m
;
ex u being set st S1[e,u]take u =
F3(
m);
S1[e,u]thus
S1[
e,
u]
by A7;
verum end; end;
end;
consider f being Function such that
A8:
dom f = the carrier of SCM+FSA
and
A9:
for e being set st e in the carrier of SCM+FSA holds
S1[e,f . e]
from CLASSES1:sch 1(A1);
A10:
dom the Object-Kind of SCM+FSA = the carrier of SCM+FSA
by FUNCT_2:def 1;
then reconsider f = f as State of SCM+FSA by A8, A10, FUNCT_1:def 20, PARTFUN1:def 4, RELAT_1:def 18;
take
f
; ( IC f = F4() & ( for i being Element of NAT holds
( f . i = F1(i) & f . (intloc i) = F2(i) & f . (fsloc i) = F3(i) ) ) )
ex m being Element of NAT st
( ( IC = IC & f . (IC ) = F4() ) or ( IC = m & f . (IC ) = F1(m) ) or ( IC = intloc m & f . (IC ) = F2(m) ) or ( IC = fsloc m & f . (IC ) = F3(m) ) )
by A9;
hence
IC f = F4()
by COMPOS_1:3, SCMFSA_2:81, SCMFSA_2:82; for i being Element of NAT holds
( f . i = F1(i) & f . (intloc i) = F2(i) & f . (fsloc i) = F3(i) )
let i be Element of NAT ; ( f . i = F1(i) & f . (intloc i) = F2(i) & f . (fsloc i) = F3(i) )
A18:
i in NAT
;
NAT c= the carrier of SCM+FSA
by COMPOS_1:def 2;
then
ex m being Element of NAT st
( ( i = IC & f . i = F4() ) or ( i = m & f . i = F1(m) ) or ( i = intloc m & f . i = F2(m) ) or ( i = fsloc m & f . i = F3(m) ) )
by A9, A18;
hence
f . i = F1(i)
by COMPOS_1:3, SCMFSA_2:84, SCMFSA_2:85; ( f . (intloc i) = F2(i) & f . (fsloc i) = F3(i) )
ex m being Element of NAT st
( ( intloc i = IC & f . (intloc i) = F4() ) or ( intloc i = m & f . (intloc i) = F1(m) ) or ( intloc i = intloc m & f . (intloc i) = F2(m) ) or ( intloc i = fsloc m & f . (intloc i) = F3(m) ) )
by A9;
hence
f . (intloc i) = F2(i)
by AMI_3:52, SCMFSA_2:81, SCMFSA_2:83, SCMFSA_2:84; f . (fsloc i) = F3(i)
ex m being Element of NAT st
( ( fsloc i = IC & f . (fsloc i) = F4() ) or ( fsloc i = m & f . (fsloc i) = F1(m) ) or ( fsloc i = intloc m & f . (fsloc i) = F2(m) ) or ( fsloc i = fsloc m & f . (fsloc i) = F3(m) ) )
by A9;
hence
f . (fsloc i) = F3(i)
by SCMFSA_2:82, SCMFSA_2:83, SCMFSA_2:85; verum