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;
now
let x be set ; :: thesis: ( x in the Sorts of A . (the_result_sort_of o) implies f . x = g . x )
assume x in the Sorts of A . (the_result_sort_of o) ; :: thesis: f . x = g . x
then reconsider x1 = x as Element of the Sorts of A . (the_result_sort_of o) ;
( f . x1 = Class R,x1 & g . x1 = Class R,x1 ) by A7, A8;
hence f . x = g . x ; :: thesis: verum
end;
hence f = g by A13, FUNCT_1:9; :: thesis: verum