theorem
  (for a,b st a in A & b in B holds a * b = b * a) implies A * B = B * A
proof
  assume
A1: for a,b st a in A & b in B holds a * b = b * a;
  thus A * B c= B * A
  proof
    let x be object;
    assume x in A * B;
    then consider a,b such that
A2: x = a * b and
A3: a in A & b in B;
    x = b * a by A1,A2,A3;
    hence thesis by A3;
  end;
  let x be object;
  assume x in B * A;
  then consider b,a such that
A4: x = b * a and
A5: b in B & a in A;
  x = a * b by A1,A4,A5;
  hence thesis by A5;
end;
