let A be set ; :: thesis: for D being non empty set
for o being BinOp of D st o is uniquely-decomposable holds
(o,D) .: A is uniquely-decomposable

let D be non empty set ; :: thesis: for o being BinOp of D st o is uniquely-decomposable holds
(o,D) .: A is uniquely-decomposable

let o be BinOp of D; :: thesis: ( o is uniquely-decomposable implies (o,D) .: A is uniquely-decomposable )
assume that
A1: o is having_a_unity and
A2: for a, b being Element of D st o . (a,b) = the_unity_wrt o holds
( a = b & b = the_unity_wrt o ) ; :: according to MONOID_0:def 9 :: thesis: (o,D) .: A is uniquely-decomposable
A3: the_unity_wrt ((o,D) .: A) = A --> () by ;
thus (o,D) .: A is having_a_unity by ; :: according to MONOID_0:def 9 :: thesis: for b1, b2 being Element of Funcs (A,D) holds
( not ((o,D) .: A) . (b1,b2) = the_unity_wrt ((o,D) .: A) or ( b1 = b2 & b2 = the_unity_wrt ((o,D) .: A) ) )

let f, g be Element of Funcs (A,D); :: thesis: ( not ((o,D) .: A) . (f,g) = the_unity_wrt ((o,D) .: A) or ( f = g & g = the_unity_wrt ((o,D) .: A) ) )
assume A4: ((o,D) .: A) . (f,g) = the_unity_wrt ((o,D) .: A) ; :: thesis: ( f = g & g = the_unity_wrt ((o,D) .: A) )
A5: dom (o .: (f,g)) = A by FUNCT_2:def 1;
A6: ((o,D) .: A) . (f,g) = o .: (f,g) by Def2;
A7: now :: thesis: for x being object st x in A holds
f . x = g . x
let x be object ; :: thesis: ( x in A implies f . x = g . x )
assume A8: x in A ; :: thesis: f . x = g . x
then reconsider a = f . x, b = g . x as Element of D by FUNCT_2:5;
( (o .: (f,g)) . x = o . (a,b) & (A --> ()) . x = the_unity_wrt o ) by ;
hence f . x = g . x by A2, A4, A6, A3; :: thesis: verum
end;
A9: now :: thesis: for x being object st x in A holds
g . x = (A --> ()) . x
let x be object ; :: thesis: ( x in A implies g . x = (A --> ()) . x )
assume A10: x in A ; :: thesis: g . x = (A --> ()) . x
then reconsider a = f . x, b = g . x as Element of D by FUNCT_2:5;
( (o .: (f,g)) . x = o . (a,b) & (A --> ()) . x = the_unity_wrt o ) by ;
hence g . x = (A --> ()) . x by A2, A4, A6, A3; :: thesis: verum
end;
A11: dom g = A by FUNCT_2:def 1;
dom f = A by FUNCT_2:def 1;
hence f = g by ; :: thesis: g = the_unity_wrt ((o,D) .: A)
dom (A --> ()) = A ;
hence g = the_unity_wrt ((o,D) .: A) by ; :: thesis: verum