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)

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 <> {} )
;

end;

suppose A2:
Y <> {}
; :: thesis: F [:] (f,(F . (x1,x2))) = F [:] ((F [:] (f,x1)),x2)

end;

now :: thesis: for y being Element of Y holds (F [:] (f,(F . (x1,x2)))) . y = F . (((F [:] (f,x1)) . y),x2)

hence
F [:] (f,(F . (x1,x2))) = F [:] ((F [:] (f,x1)),x2)
by A2, Th49; :: thesis: verumlet 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;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