reserve x,y,z, X,Y,Z for set,
  n for Element of NAT;
reserve A for set,
  D for non empty set,
  a,b,c,l,r for Element of D,
  o,o9 for BinOp of D,
  f,g,h for Function of A,D;

theorem Th14:
  o is uniquely-decomposable implies (o,D).:A is uniquely-decomposable
proof
  assume that
A1: o is having_a_unity and
A2: for a,b st o.(a,b) = the_unity_wrt o holds a = b & b = the_unity_wrt o;
A3: the_unity_wrt (o,D).:A = A --> the_unity_wrt o by A1,Th10;
  thus (o,D).:A is having_a_unity by A1,Th10;
  let f,g be Element of Funcs(A,D) such that
A4: (o,D).:A.(f,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
    let x be object;
    assume
A8: x in A;
    then reconsider a = f.x, b = g.x as Element of D by FUNCT_2:5;
    (o.:(f,g)).x = o.(a,b) & (A --> the_unity_wrt o).x = the_unity_wrt o
    by A5,A8,FUNCOP_1:7,22;
    hence f.x = g.x by A2,A4,A6,A3;
  end;
A9: now
    let x be object;
    assume
A10: x in A;
    then reconsider a = f.x, b = g.x as Element of D by FUNCT_2:5;
    (o.:(f,g)).x = o.(a,b) & (A --> the_unity_wrt o).x = the_unity_wrt o
    by A5,A10,FUNCOP_1:7,22;
    hence g.x = (A --> the_unity_wrt o).x by A2,A4,A6,A3;
  end;
A11: dom g = A by FUNCT_2:def 1;
  dom f = A by FUNCT_2:def 1;
  hence f = g by A11,A7,FUNCT_1:2;
  dom (A --> the_unity_wrt o) = A;
  hence thesis by A3,A11,A9,FUNCT_1:2;
end;
