let D be non empty set ; :: thesis: for I, J being non empty set
for F being BinOp of D
for f being Function of [:I,J:],D
for g being Function of J,D
for X being Element of Fin I
for Y being Element of Fin J st ( for j being Element of J holds g . j = F $$ (X,((curry' f) . j)) ) & F is having_a_unity & F is commutative & F is associative holds
F $$ ([:X,Y:],f) = F $$ (Y,g)

let I, J be non empty set ; :: thesis: for F being BinOp of D
for f being Function of [:I,J:],D
for g being Function of J,D
for X being Element of Fin I
for Y being Element of Fin J st ( for j being Element of J holds g . j = F $$ (X,((curry' f) . j)) ) & F is having_a_unity & F is commutative & F is associative holds
F $$ ([:X,Y:],f) = F $$ (Y,g)

let F be BinOp of D; :: thesis: for f being Function of [:I,J:],D
for g being Function of J,D
for X being Element of Fin I
for Y being Element of Fin J st ( for j being Element of J holds g . j = F $$ (X,((curry' f) . j)) ) & F is having_a_unity & F is commutative & F is associative holds
F $$ ([:X,Y:],f) = F $$ (Y,g)

let f be Function of [:I,J:],D; :: thesis: for g being Function of J,D
for X being Element of Fin I
for Y being Element of Fin J st ( for j being Element of J holds g . j = F $$ (X,((curry' f) . j)) ) & F is having_a_unity & F is commutative & F is associative holds
F $$ ([:X,Y:],f) = F $$ (Y,g)

let g be Function of J,D; :: thesis: for X being Element of Fin I
for Y being Element of Fin J st ( for j being Element of J holds g . j = F $$ (X,((curry' f) . j)) ) & F is having_a_unity & F is commutative & F is associative holds
F $$ ([:X,Y:],f) = F $$ (Y,g)

let X be Element of Fin I; :: thesis: for Y being Element of Fin J st ( for j being Element of J holds g . j = F $$ (X,((curry' f) . j)) ) & F is having_a_unity & F is commutative & F is associative holds
F $$ ([:X,Y:],f) = F $$ (Y,g)

let Y be Element of Fin J; :: thesis: ( ( for j being Element of J holds g . j = F $$ (X,((curry' f) . j)) ) & F is having_a_unity & F is commutative & F is associative implies F $$ ([:X,Y:],f) = F $$ (Y,g) )
assume that
A1: for j being Element of J holds g . j = F $$ (X,((curry' f) . j)) and
A2: ( F is having_a_unity & F is commutative & F is associative ) ; :: thesis: F $$ ([:X,Y:],f) = F $$ (Y,g)
defpred S1[ Element of Fin J] means F $$ ([:X,$1:],f) = F $$ ($1,g);
A3: for Y1 being Element of Fin J
for y being Element of J st S1[Y1] holds
S1[Y1 \/ {.y.}]
proof
let Y1 be Element of Fin J; :: thesis: for y being Element of J st S1[Y1] holds
S1[Y1 \/ {.y.}]

let y be Element of J; :: thesis: ( S1[Y1] implies S1[Y1 \/ {.y.}] )
assume A4: F $$ ([:X,Y1:],f) = F $$ (Y1,g) ; :: thesis: S1[Y1 \/ {.y.}]
reconsider s = {.y.} as Element of Fin J ;
per cases ( y in Y1 or not y in Y1 ) ;
suppose not y in Y1 ; :: thesis: S1[Y1 \/ {.y.}]
then A5: Y1 misses {y} by ZFMISC_1:50;
then A6: [:X,Y1:] misses [:X,s:] by ZFMISC_1:104;
thus F $$ ([:X,(Y1 \/ {.y.}):],f) = F $$ (([:X,Y1:] \/ [:X,s:]),f) by ZFMISC_1:97
.= F . ((F $$ ([:X,Y1:],f)),(F $$ ([:X,s:],f))) by A2, A6, SETWOP_2:4
.= F . ((F $$ (Y1,g)),(F $$ (s,g))) by A1, A2, A4, Th31
.= F $$ ((Y1 \/ {.y.}),g) by A2, A5, SETWOP_2:4 ; :: thesis: verum
end;
end;
end;
A7: S1[ {}. J]
proof
reconsider T = {}. [:I,J:] as Element of Fin [:I,J:] ;
T = [:X,({}. J):] by ZFMISC_1:90;
then F $$ ([:X,({}. J):],f) = the_unity_wrt F by A2, SETWISEO:31;
hence S1[ {}. J] by A2, SETWISEO:31; :: thesis: verum
end;
for Y1 being Element of Fin J holds S1[Y1] from SETWISEO:sch 4(A7, A3);
hence F $$ ([:X,Y:],f) = F $$ (Y,g) ; :: thesis: verum