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 Th3:
  o is commutative implies o.:(f,g) = o.:(g,f)
proof
A1: dom (o.:(f,g)) = A by FUNCT_2:def 1;
A2: dom f = A & dom g = A by FUNCT_2:def 1;
A3: dom (o.:(g,f)) = A by FUNCT_2:def 1;
  assume
A4: o.(a,b) = o.(b,a);
  now
    let x be object;
    assume
A5: x in A;
    then f.x in rng f & g.x in rng g by A2,FUNCT_1:def 3;
    then reconsider a = f.x, b = g.x as Element of D;
    thus (o.:(f,g)).x = o.(a,b) by A1,A5,FUNCOP_1:22
      .= o.(b,a) by A4
      .= (o.:(g,f)).x by A3,A5,FUNCOP_1:22;
  end;
  hence thesis by A1,A3,FUNCT_1:2;
end;
