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