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 Th8:
  o is associative implies (o,D).:A is associative
proof
  assume
A1: o is associative;
  set F = (o,D).:A;
  let f,g,h be Element of Funcs(A,D);
  thus F.(F.(f,g),h) = F.(o.:(f,g),h) by Def2
    .= o.:(o.:(f,g),h) by Def2
    .= o.:(f,o.:(g,h)) by A1,Th4
    .= F.(f,o.:(g,h)) by Def2
    .= F.(f,F.(g,h)) by Def2;
end;
