let C, D be non empty set ; :: thesis: for f, f9 being Function of C,D

for F being BinOp of D st F is associative & F is having_an_inverseOp & F is having_a_unity & F .: (f,f9) = C --> (the_unity_wrt F) holds

( f = (the_inverseOp_wrt F) * f9 & (the_inverseOp_wrt F) * f = f9 )

let f, f9 be Function of C,D; :: thesis: for F being BinOp of D st F is associative & F is having_an_inverseOp & F is having_a_unity & F .: (f,f9) = C --> (the_unity_wrt F) holds

( f = (the_inverseOp_wrt F) * f9 & (the_inverseOp_wrt F) * f = f9 )

let F be BinOp of D; :: thesis: ( F is associative & F is having_an_inverseOp & F is having_a_unity & F .: (f,f9) = C --> (the_unity_wrt F) implies ( f = (the_inverseOp_wrt F) * f9 & (the_inverseOp_wrt F) * f = f9 ) )

assume that

A1: ( F is associative & F is having_an_inverseOp & F is having_a_unity ) and

A2: F .: (f,f9) = C --> (the_unity_wrt F) ; :: thesis: ( f = (the_inverseOp_wrt F) * f9 & (the_inverseOp_wrt F) * f = f9 )

set u = the_inverseOp_wrt F;

set e = the_unity_wrt F;

reconsider g = C --> (the_unity_wrt F) as Function of C,D ;

for F being BinOp of D st F is associative & F is having_an_inverseOp & F is having_a_unity & F .: (f,f9) = C --> (the_unity_wrt F) holds

( f = (the_inverseOp_wrt F) * f9 & (the_inverseOp_wrt F) * f = f9 )

let f, f9 be Function of C,D; :: thesis: for F being BinOp of D st F is associative & F is having_an_inverseOp & F is having_a_unity & F .: (f,f9) = C --> (the_unity_wrt F) holds

( f = (the_inverseOp_wrt F) * f9 & (the_inverseOp_wrt F) * f = f9 )

let F be BinOp of D; :: thesis: ( F is associative & F is having_an_inverseOp & F is having_a_unity & F .: (f,f9) = C --> (the_unity_wrt F) implies ( f = (the_inverseOp_wrt F) * f9 & (the_inverseOp_wrt F) * f = f9 ) )

assume that

A1: ( F is associative & F is having_an_inverseOp & F is having_a_unity ) and

A2: F .: (f,f9) = C --> (the_unity_wrt F) ; :: thesis: ( f = (the_inverseOp_wrt F) * f9 & (the_inverseOp_wrt F) * f = f9 )

set u = the_inverseOp_wrt F;

set e = the_unity_wrt F;

reconsider g = C --> (the_unity_wrt F) as Function of C,D ;

now :: thesis: for c being Element of C holds f . c = ((the_inverseOp_wrt F) * f9) . c

hence
f = (the_inverseOp_wrt F) * f9
by FUNCT_2:63; :: thesis: (the_inverseOp_wrt F) * f = f9let c be Element of C; :: thesis: f . c = ((the_inverseOp_wrt F) * f9) . c

F . ((f . c),(f9 . c)) = g . c by A2, FUNCOP_1:37

.= the_unity_wrt F ;

hence f . c = (the_inverseOp_wrt F) . (f9 . c) by A1, Th60

.= ((the_inverseOp_wrt F) * f9) . c by FUNCT_2:15 ;

:: thesis: verum

end;F . ((f . c),(f9 . c)) = g . c by A2, FUNCOP_1:37

.= the_unity_wrt F ;

hence f . c = (the_inverseOp_wrt F) . (f9 . c) by A1, Th60

.= ((the_inverseOp_wrt F) * f9) . c by FUNCT_2:15 ;

:: thesis: verum

now :: thesis: for c being Element of C holds ((the_inverseOp_wrt F) * f) . c = f9 . c

hence
(the_inverseOp_wrt F) * f = f9
by FUNCT_2:63; :: thesis: verumlet c be Element of C; :: thesis: ((the_inverseOp_wrt F) * f) . c = f9 . c

F . ((f . c),(f9 . c)) = g . c by A2, FUNCOP_1:37

.= the_unity_wrt F ;

then f9 . c = (the_inverseOp_wrt F) . (f . c) by A1, Th60;

hence ((the_inverseOp_wrt F) * f) . c = f9 . c by FUNCT_2:15; :: thesis: verum

end;F . ((f . c),(f9 . c)) = g . c by A2, FUNCOP_1:37

.= the_unity_wrt F ;

then f9 . c = (the_inverseOp_wrt F) . (f . c) by A1, Th60;

hence ((the_inverseOp_wrt F) * f) . c = f9 . c by FUNCT_2:15; :: thesis: verum