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

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

let F be BinOp of D; :: thesis: ( F is having_a_unity & F is associative & F is having_an_inverseOp implies ( F .: f,((the_inverseOp_wrt F) * f) = C --> (the_unity_wrt F) & F .: ((the_inverseOp_wrt F) * f),f = C --> (the_unity_wrt F) ) )
assume A1: ( F is having_a_unity & F is associative & F is having_an_inverseOp ) ; :: thesis: ( F .: f,((the_inverseOp_wrt F) * f) = C --> (the_unity_wrt F) & F .: ((the_inverseOp_wrt F) * f),f = C --> (the_unity_wrt F) )
set u = the_inverseOp_wrt F;
reconsider g = C --> (the_unity_wrt F) as Function of C,D ;
now
let c be Element of C; :: thesis: (F .: f,((the_inverseOp_wrt F) * f)) . c = g . c
thus (F .: f,((the_inverseOp_wrt F) * f)) . c = F . (f . c),(((the_inverseOp_wrt F) * f) . c) by FUNCOP_1:48
.= F . (f . c),((the_inverseOp_wrt F) . (f . c)) by FUNCT_2:21
.= the_unity_wrt F by A1, Th63
.= g . c by FUNCOP_1:13 ; :: thesis: verum
end;
hence F .: f,((the_inverseOp_wrt F) * f) = C --> (the_unity_wrt F) by FUNCT_2:113; :: thesis: F .: ((the_inverseOp_wrt F) * f),f = C --> (the_unity_wrt F)
now
let c be Element of C; :: thesis: (F .: ((the_inverseOp_wrt F) * f),f) . c = g . c
thus (F .: ((the_inverseOp_wrt F) * f),f) . c = F . (((the_inverseOp_wrt F) * f) . c),(f . c) by FUNCOP_1:48
.= F . ((the_inverseOp_wrt F) . (f . c)),(f . c) by FUNCT_2:21
.= the_unity_wrt F by A1, Th63
.= g . c by FUNCOP_1:13 ; :: thesis: verum
end;
hence F .: ((the_inverseOp_wrt F) * f),f = C --> (the_unity_wrt F) by FUNCT_2:113; :: thesis: verum