set rs = the_result_sort_of o;
set D = the Sorts of A . (the_result_sort_of o);
deffunc H1( Element of the Sorts of A . (the_result_sort_of o)) -> Element of OSClass R,(the_result_sort_of o) = OSClass R,$1;
consider f being Function such that
A1:
( dom f = the Sorts of A . (the_result_sort_of o) & ( for d being Element of the Sorts of A . (the_result_sort_of o) holds f . d = H1(d) ) )
from FUNCT_1:sch 4();
A2:
o in the carrier' of S
;
A3:
( dom the ResultSort of S = the carrier' of S & rng the ResultSort of S c= the carrier of S )
by FUNCT_2:def 1;
o in dom (the Sorts of A * the ResultSort of S)
by A2, PARTFUN1:def 4;
then A4: (the Sorts of A * the ResultSort of S) . o =
the Sorts of A . (the ResultSort of S . o)
by FUNCT_1:22
.=
the Sorts of A . (the_result_sort_of o)
by MSUALG_1:def 7
;
dom ((OSClass R) * the ResultSort of S) = dom the ResultSort of S
by A3, PARTFUN1:def 4;
then A5: ((OSClass R) * the ResultSort of S) . o =
(OSClass R) . (the ResultSort of S . o)
by A3, FUNCT_1:22
.=
(OSClass R) . (the_result_sort_of o)
by MSUALG_1:def 7
;
for x being set st x in the Sorts of A . (the_result_sort_of o) holds
f . x in (OSClass R) . (the_result_sort_of o)
then reconsider f = f as Function of ((the Sorts of A * the ResultSort of S) . o),(((OSClass R) * the ResultSort of S) . o) by A1, A4, A5, FUNCT_2:5;
take
f
; :: thesis: for x being Element of the Sorts of A . (the_result_sort_of o) holds f . x = OSClass R,x
thus
for x being Element of the Sorts of A . (the_result_sort_of o) holds f . x = OSClass R,x
by A1; :: thesis: verum