let D be non empty set ; :: thesis: for d, d1, d2 being Element of D
for F being BinOp of D st F is having_a_unity & F is associative & F is having_an_inverseOp & ( F . d,d1 = F . d,d2 or F . d1,d = F . d2,d ) holds
d1 = d2

let d, d1, d2 be Element of D; :: thesis: for F being BinOp of D st F is having_a_unity & F is associative & F is having_an_inverseOp & ( F . d,d1 = F . d,d2 or F . d1,d = F . d2,d ) holds
d1 = d2

let F be BinOp of D; :: thesis: ( F is having_a_unity & F is associative & F is having_an_inverseOp & ( F . d,d1 = F . d,d2 or F . d1,d = F . d2,d ) implies d1 = d2 )
assume that
A1: F is having_a_unity and
A2: F is associative and
A3: F is having_an_inverseOp and
A4: ( F . d,d1 = F . d,d2 or F . d1,d = F . d2,d ) ; :: thesis: d1 = d2
set e = the_unity_wrt F;
set u = the_inverseOp_wrt F;
per cases ( F . d,d1 = F . d,d2 or F . d1,d = F . d2,d ) by A4;
suppose A5: F . d,d1 = F . d,d2 ; :: thesis: d1 = d2
thus d1 = F . (the_unity_wrt F),d1 by A1, SETWISEO:23
.= F . (F . ((the_inverseOp_wrt F) . d),d),d1 by A1, A2, A3, Th63
.= F . ((the_inverseOp_wrt F) . d),(F . d,d2) by A2, A5, BINOP_1:def 3
.= F . (F . ((the_inverseOp_wrt F) . d),d),d2 by A2, BINOP_1:def 3
.= F . (the_unity_wrt F),d2 by A1, A2, A3, Th63
.= d2 by A1, SETWISEO:23 ; :: thesis: verum
end;
suppose A6: F . d1,d = F . d2,d ; :: thesis: d1 = d2
thus d1 = F . d1,(the_unity_wrt F) by A1, SETWISEO:23
.= F . d1,(F . d,((the_inverseOp_wrt F) . d)) by A1, A2, A3, Th63
.= F . (F . d2,d),((the_inverseOp_wrt F) . d) by A2, A6, BINOP_1:def 3
.= F . d2,(F . d,((the_inverseOp_wrt F) . d)) by A2, BINOP_1:def 3
.= F . d2,(the_unity_wrt F) by A1, A2, A3, Th63
.= d2 by A1, SETWISEO:23 ; :: thesis: verum
end;
end;