let h1, h2 be PartFunc of [:(MapsT X),(MapsT X):],(MapsT X); :: thesis: ( ( for m2, m1 being Element of MapsT X holds
( [m2,m1] in dom h1 iff dom m2 = cod m1 ) ) & ( for m2, m1 being Element of MapsT X st dom m2 = cod m1 holds
h1 . [m2,m1] = m2 * m1 ) & ( for m2, m1 being Element of MapsT X holds
( [m2,m1] in dom h2 iff dom m2 = cod m1 ) ) & ( for m2, m1 being Element of MapsT X st dom m2 = cod m1 holds
h2 . [m2,m1] = m2 * m1 ) implies h1 = h2 )

assume that
A10: for m2, m1 being Element of MapsT X holds
( [m2,m1] in dom h1 iff dom m2 = cod m1 ) and
A11: for m2, m1 being Element of MapsT X st dom m2 = cod m1 holds
h1 . [m2,m1] = m2 * m1 and
A12: for m2, m1 being Element of MapsT X holds
( [m2,m1] in dom h2 iff dom m2 = cod m1 ) and
A13: for m2, m1 being Element of MapsT X st dom m2 = cod m1 holds
h2 . [m2,m1] = m2 * m1 ; :: thesis: h1 = h2
A14: dom h1 = dom h2
proof
let x, y be set ; :: according to RELAT_1:def 2 :: thesis: ( ( not [x,y] in dom h1 or [x,y] in dom h2 ) & ( not [x,y] in dom h2 or [x,y] in dom h1 ) )
thus ( [x,y] in dom h1 implies [x,y] in dom h2 ) :: thesis: ( not [x,y] in dom h2 or [x,y] in dom h1 )
proof
assume A15: [x,y] in dom h1 ; :: thesis: [x,y] in dom h2
then reconsider m2 = x, m1 = y as Element of MapsT X by ZFMISC_1:106;
dom m2 = cod m1 by A10, A15;
hence [x,y] in dom h2 by A12; :: thesis: verum
end;
assume A16: [x,y] in dom h2 ; :: thesis: [x,y] in dom h1
then reconsider m2 = x, m1 = y as Element of MapsT X by ZFMISC_1:106;
dom m2 = cod m1 by A12, A16;
hence [x,y] in dom h1 by A10; :: thesis: verum
end;
now
let m be Element of [:(MapsT X),(MapsT X):]; :: thesis: ( m in dom h1 implies h1 . m = h2 . m )
assume A17: m in dom h1 ; :: thesis: h1 . m = h2 . m
consider m2, m1 being Element of MapsT X such that
A18: m = [m2,m1] by DOMAIN_1:9;
dom m2 = cod m1 by A10, A17, A18;
then ( h1 . [m2,m1] = m2 * m1 & h2 . [m2,m1] = m2 * m1 ) by A11, A13;
hence h1 . m = h2 . m by A18; :: thesis: verum
end;
hence h1 = h2 by A14, PARTFUN1:34; :: thesis: verum