set S1 = {(IC )};
set S2 = SCM-Data-Loc ;
set S3 = NAT ;
defpred S1[ object , object ] means ex m being Nat st
( ( $1 = IC & $2 = F2() ) or ( $1 = DataLoc (m,0) & $2 = F1(m) ) );
A1: for e being object st e in the carrier of SCMPDS holds
ex u being object st S1[e,u]
proof
let e be object ; :: thesis: ( e in the carrier of SCMPDS implies ex u being object st S1[e,u] )
assume e in the carrier of SCMPDS ; :: thesis: ex u being object st S1[e,u]
then A2: e in {(IC )} \/ SCM-Data-Loc by SCMPDS_2:84, STRUCT_0:4;
now :: thesis: ( ( e in {(IC )} & e = IC ) or ( e in SCM-Data-Loc & ex m being Nat st e = DataLoc (m,0) ) )end;
then consider m being Nat such that
A3: ( e = IC or e = DataLoc (m,0) ) ;
per cases ( e = IC or e = DataLoc (m,0) ) by A3;
suppose A4: e = IC ; :: thesis: ex u being object st S1[e,u]
take u = F2(); :: thesis: S1[e,u]
thus S1[e,u] by A4; :: thesis: verum
end;
suppose A5: e = DataLoc (m,0) ; :: thesis: ex u being object st S1[e,u]
take u = F1(m); :: thesis: S1[e,u]
thus S1[e,u] by A5; :: thesis: verum
end;
end;
end;
consider f being Function such that
A6: dom f = the carrier of SCMPDS and
A7: for e being object st e in the carrier of SCMPDS holds
S1[e,f . e] from CLASSES1:sch 1(A1);
A8: dom the Object-Kind of SCMPDS = the carrier of SCMPDS by FUNCT_2:def 1;
now :: thesis: for x being object st x in dom the Object-Kind of SCMPDS holds
f . x in (the_Values_of SCMPDS) . x
end;
then reconsider f = f as State of SCMPDS by A6, A8, FUNCT_1:def 14, PARTFUN1:def 2, RELAT_1:def 18;
consider m being Nat such that
A13: ( ( IC = IC & f . (IC ) = F2() ) or ( IC = DataLoc (m,0) & f . (IC ) = F1(m) ) ) by A7;
take f ; :: thesis: ( IC f = F2() & ( for i being Nat holds f . (DataLoc (i,0)) = F1(i) ) )
thus IC f = F2() by A13, SCMPDS_2:43; :: thesis: for i being Nat holds f . (DataLoc (i,0)) = F1(i)
let i be Nat; :: thesis: f . (DataLoc (i,0)) = F1(i)
ex m being Nat st
( ( DataLoc (i,0) = IC & f . (DataLoc (i,0)) = F2() ) or ( DataLoc (i,0) = DataLoc (m,0) & f . (DataLoc (i,0)) = F1(m) ) ) by A7;
hence f . (DataLoc (i,0)) = F1(i) by Th3, SCMPDS_2:43; :: thesis: verum