let X be non empty set ; :: thesis: for Y being set
for F being BinOp of X
for f being Function of Y,X
for x1, x2 being Element of X st F is associative holds
F [:] (f,(F . (x1,x2))) = F [:] ((F [:] (f,x1)),x2)

let Y be set ; :: thesis: for F being BinOp of X
for f being Function of Y,X
for x1, x2 being Element of X st F is associative holds
F [:] (f,(F . (x1,x2))) = F [:] ((F [:] (f,x1)),x2)

let F be BinOp of X; :: thesis: for f being Function of Y,X
for x1, x2 being Element of X st F is associative holds
F [:] (f,(F . (x1,x2))) = F [:] ((F [:] (f,x1)),x2)

let f be Function of Y,X; :: thesis: for x1, x2 being Element of X st F is associative holds
F [:] (f,(F . (x1,x2))) = F [:] ((F [:] (f,x1)),x2)

let x1, x2 be Element of X; :: thesis: ( F is associative implies F [:] (f,(F . (x1,x2))) = F [:] ((F [:] (f,x1)),x2) )
assume A1: F is associative ; :: thesis: F [:] (f,(F . (x1,x2))) = F [:] ((F [:] (f,x1)),x2)
per cases ( Y = {} or Y <> {} ) ;
suppose Y = {} ; :: thesis: F [:] (f,(F . (x1,x2))) = F [:] ((F [:] (f,x1)),x2)
hence F [:] (f,(F . (x1,x2))) = F [:] ((F [:] (f,x1)),x2) ; :: thesis: verum
end;
suppose A2: Y <> {} ; :: thesis: F [:] (f,(F . (x1,x2))) = F [:] ((F [:] (f,x1)),x2)
now :: thesis: for y being Element of Y holds (F [:] (f,(F . (x1,x2)))) . y = F . (((F [:] (f,x1)) . y),x2)
let y be Element of Y; :: thesis: (F [:] (f,(F . (x1,x2)))) . y = F . (((F [:] (f,x1)) . y),x2)
reconsider x3 = f . y as Element of X by A2, FUNCT_2:5;
thus (F [:] (f,(F . (x1,x2)))) . y = F . ((f . y),(F . (x1,x2))) by A2, Th48
.= F . ((F . (x3,x1)),x2) by A1
.= F . (((F [:] (f,x1)) . y),x2) by A2, Th48 ; :: thesis: verum
end;
hence F [:] (f,(F . (x1,x2))) = F [:] ((F [:] (f,x1)),x2) by A2, Th49; :: thesis: verum
end;
end;