defpred S1[ object , object ] means ex m being Nat st
( ( $1 = IC & $2 = F3() ) or ( $1 = intloc m & $2 = F1(m) ) or ( $1 = fsloc m & $2 = F2(m) ) );
A1:
for e being object st e in the carrier of SCM+FSA holds
ex u being object st S1[e,u]
consider f being Function such that
A7:
dom f = the carrier of SCM+FSA
and
A8:
for e being object st e in the carrier of SCM+FSA holds
S1[e,f . e]
from CLASSES1:sch 1(A1);
A9:
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 A7, A9, FUNCT_1:def 14, PARTFUN1:def 2, RELAT_1:def 18;
take
f
; ( IC f = F3() & ( for i being Nat holds
( f . (intloc i) = F1(i) & f . (fsloc i) = F2(i) ) ) )
ex m being Nat st
( ( IC = IC & f . (IC ) = F3() ) or ( IC = intloc m & f . (IC ) = F1(m) ) or ( IC = fsloc m & f . (IC ) = F2(m) ) )
by A8;
hence
IC f = F3()
by SCMFSA_2:56, SCMFSA_2:57; for i being Nat holds
( f . (intloc i) = F1(i) & f . (fsloc i) = F2(i) )
let i be Nat; ( f . (intloc i) = F1(i) & f . (fsloc i) = F2(i) )
ex m being Nat st
( ( intloc i = IC & f . (intloc i) = F3() ) or ( intloc i = intloc m & f . (intloc i) = F1(m) ) or ( intloc i = fsloc m & f . (intloc i) = F2(m) ) )
by A8;
hence
f . (intloc i) = F1(i)
by AMI_3:10, SCMFSA_2:56, SCMFSA_2:58; f . (fsloc i) = F2(i)
ex m being Nat st
( ( fsloc i = IC & f . (fsloc i) = F3() ) or ( fsloc i = intloc m & f . (fsloc i) = F1(m) ) or ( fsloc i = fsloc m & f . (fsloc i) = F2(m) ) )
by A8;
hence
f . (fsloc i) = F2(i)
by SCMFSA_2:57, SCMFSA_2:58; verum