let f, g be Function of ((the Sorts of A * the ResultSort of S) . o),(((Class R) * the ResultSort of S) . o); :: thesis: ( ( for x being Element of the Sorts of A . (the_result_sort_of o) holds f . x = Class R,x ) & ( for x being Element of the Sorts of A . (the_result_sort_of o) holds g . x = Class R,x ) implies f = g )
set SA = the Sorts of A;
set RS = the ResultSort of S;
set rs = the_result_sort_of o;
assume that
A7:
for x being Element of the Sorts of A . (the_result_sort_of o) holds f . x = Class R,x
and
A8:
for x being Element of the Sorts of A . (the_result_sort_of o) holds g . x = Class R,x
; :: thesis: f = g
A10:
o in the carrier' of S
;
A11:
( 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 A10, PARTFUN1:def 4;
then A12: (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 ((Class R) * the ResultSort of S) = dom the ResultSort of S
by A11, PARTFUN1:def 4;
then ((Class R) * the ResultSort of S) . o =
(Class R) . (the ResultSort of S . o)
by A11, FUNCT_1:22
.=
(Class R) . (the_result_sort_of o)
by MSUALG_1:def 7
;
then A13:
( dom f = the Sorts of A . (the_result_sort_of o) & rng f c= (Class R) . (the_result_sort_of o) & dom g = the Sorts of A . (the_result_sort_of o) & rng g c= (Class R) . (the_result_sort_of o) )
by A12, FUNCT_2:def 1;
hence
f = g
by A13, FUNCT_1:9; :: thesis: verum