reserve U0,U1,U2,U3 for Universal_Algebra,
  n for Nat,
  x,y for set;
reserve A for non empty Subset of U0,
  o for operation of U0,
  x1,y1 for FinSequence of A;

theorem Th24:
  UniAlg_join(U0) is commutative
proof
  set o = UniAlg_join(U0);
  for x,y be Element of Sub(U0) holds o.(x,y)=o.(y,x)
  proof
    let x,y be Element of Sub(U0);
    reconsider U1=x,U2=y as strict SubAlgebra of U0 by Def14;
    reconsider B=(the carrier of U1) \/ (the carrier of U2) as non empty set;
    the carrier of U1 is Subset of U0 & the carrier of U2 is Subset of U0
    by Def7;
    then reconsider B as non empty Subset of U0 by XBOOLE_1:8;
A1: U1"\/" U2 = GenUnivAlg(B) by Def13;
    o.(x,y) = U1 "\/" U2 & o.(y,x) = U2 "\/" U1 by Def15;
    hence thesis by A1,Def13;
  end;
  hence thesis by BINOP_1:def 2;
end;
