let X, Y be non empty set ; :: thesis: for F being BinOp of Y
for B being Element of Fin X
for f being Function of X,Y st ( B <> {} or F is having_a_unity ) & F is idempotent & F is commutative & F is associative holds
for IT being Element of Y holds
( IT = F $$ B,f iff ex G being Function of (Fin X),Y st
( IT = G . B & ( for e being Element of Y st e is_a_unity_wrt F holds
G . {} = e ) & ( for x being Element of X holds G . {x} = f . x ) & ( for B' being Element of Fin X st B' c= B & B' <> {} holds
for x being Element of X st x in B holds
G . (B' \/ {x}) = F . (G . B'),(f . x) ) ) )

let F be BinOp of Y; :: thesis: for B being Element of Fin X
for f being Function of X,Y st ( B <> {} or F is having_a_unity ) & F is idempotent & F is commutative & F is associative holds
for IT being Element of Y holds
( IT = F $$ B,f iff ex G being Function of (Fin X),Y st
( IT = G . B & ( for e being Element of Y st e is_a_unity_wrt F holds
G . {} = e ) & ( for x being Element of X holds G . {x} = f . x ) & ( for B' being Element of Fin X st B' c= B & B' <> {} holds
for x being Element of X st x in B holds
G . (B' \/ {x}) = F . (G . B'),(f . x) ) ) )

let B be Element of Fin X; :: thesis: for f being Function of X,Y st ( B <> {} or F is having_a_unity ) & F is idempotent & F is commutative & F is associative holds
for IT being Element of Y holds
( IT = F $$ B,f iff ex G being Function of (Fin X),Y st
( IT = G . B & ( for e being Element of Y st e is_a_unity_wrt F holds
G . {} = e ) & ( for x being Element of X holds G . {x} = f . x ) & ( for B' being Element of Fin X st B' c= B & B' <> {} holds
for x being Element of X st x in B holds
G . (B' \/ {x}) = F . (G . B'),(f . x) ) ) )

let f be Function of X,Y; :: thesis: ( ( B <> {} or F is having_a_unity ) & F is idempotent & F is commutative & F is associative implies for IT being Element of Y holds
( IT = F $$ B,f iff ex G being Function of (Fin X),Y st
( IT = G . B & ( for e being Element of Y st e is_a_unity_wrt F holds
G . {} = e ) & ( for x being Element of X holds G . {x} = f . x ) & ( for B' being Element of Fin X st B' c= B & B' <> {} holds
for x being Element of X st x in B holds
G . (B' \/ {x}) = F . (G . B'),(f . x) ) ) ) )

assume that
A1: ( B <> {} or F is having_a_unity ) and
A2: F is idempotent and
A3: F is commutative and
A4: F is associative ; :: thesis: for IT being Element of Y holds
( IT = F $$ B,f iff ex G being Function of (Fin X),Y st
( IT = G . B & ( for e being Element of Y st e is_a_unity_wrt F holds
G . {} = e ) & ( for x being Element of X holds G . {x} = f . x ) & ( for B' being Element of Fin X st B' c= B & B' <> {} holds
for x being Element of X st x in B holds
G . (B' \/ {x}) = F . (G . B'),(f . x) ) ) )

let IT be Element of Y; :: thesis: ( IT = F $$ B,f iff ex G being Function of (Fin X),Y st
( IT = G . B & ( for e being Element of Y st e is_a_unity_wrt F holds
G . {} = e ) & ( for x being Element of X holds G . {x} = f . x ) & ( for B' being Element of Fin X st B' c= B & B' <> {} holds
for x being Element of X st x in B holds
G . (B' \/ {x}) = F . (G . B'),(f . x) ) ) )

thus ( IT = F $$ B,f implies ex G being Function of (Fin X),Y st
( IT = G . B & ( for e being Element of Y st e is_a_unity_wrt F holds
G . {} = e ) & ( for x being Element of X holds G . {x} = f . x ) & ( for B' being Element of Fin X st B' c= B & B' <> {} holds
for x being Element of X st x in B holds
G . (B' \/ {x}) = F . (G . B'),(f . x) ) ) ) :: thesis: ( ex G being Function of (Fin X),Y st
( IT = G . B & ( for e being Element of Y st e is_a_unity_wrt F holds
G . {} = e ) & ( for x being Element of X holds G . {x} = f . x ) & ( for B' being Element of Fin X st B' c= B & B' <> {} holds
for x being Element of X st x in B holds
G . (B' \/ {x}) = F . (G . B'),(f . x) ) ) implies IT = F $$ B,f )
proof
assume IT = F $$ B,f ; :: thesis: ex G being Function of (Fin X),Y st
( IT = G . B & ( for e being Element of Y st e is_a_unity_wrt F holds
G . {} = e ) & ( for x being Element of X holds G . {x} = f . x ) & ( for B' being Element of Fin X st B' c= B & B' <> {} holds
for x being Element of X st x in B holds
G . (B' \/ {x}) = F . (G . B'),(f . x) ) )

then consider G being Function of (Fin X),Y such that
A5: IT = G . B and
A6: for e being Element of Y st e is_a_unity_wrt F holds
G . {} = e and
A7: for x being Element of X holds G . {x} = f . x and
A8: for B' being Element of Fin X st B' c= B & B' <> {} holds
for x being Element of X st x in B \ B' holds
G . (B' \/ {x}) = F . (G . B'),(f . x) by A1, A3, A4, Def3;
for B' being Element of Fin X st B' c= B & B' <> {} holds
for x being Element of X st x in B holds
G . (B' \/ {x}) = F . (G . B'),(f . x)
proof
let B' be Element of Fin X; :: thesis: ( B' c= B & B' <> {} implies for x being Element of X st x in B holds
G . (B' \/ {x}) = F . (G . B'),(f . x) )

assume A9: ( B' c= B & B' <> {} ) ; :: thesis: for x being Element of X st x in B holds
G . (B' \/ {x}) = F . (G . B'),(f . x)

let x be Element of X; :: thesis: ( x in B implies G . (B' \/ {x}) = F . (G . B'),(f . x) )
assume A10: x in B ; :: thesis: G . (B' \/ {x}) = F . (G . B'),(f . x)
per cases ( x in B' or not x in B' ) ;
suppose x in B' ; :: thesis: G . (B' \/ {x}) = F . (G . B'),(f . x)
then A11: B' \/ {x} = B' by ZFMISC_1:46;
then A12: {x} c= B' by XBOOLE_1:7;
not x in B' \ {x} by ZFMISC_1:64;
then A13: x in B \ (B' \ {x}) by A10, XBOOLE_0:def 5;
per cases ( B' = {x} or B' <> {x} ) ;
suppose A14: B' = {x} ; :: thesis: G . (B' \/ {x}) = F . (G . B'),(f . x)
hence G . (B' \/ {x}) = f . x by A7
.= F . (f . x),(f . x) by A2, BINOP_1:def 4
.= F . (G . B'),(f . x) by A7, A14 ;
:: thesis: verum
end;
suppose B' <> {x} ; :: thesis: G . (B' \/ {x}) = F . (G . B'),(f . x)
then not B' c= {x} by A12, XBOOLE_0:def 10;
then B' \ {x} <> {} by XBOOLE_1:37;
then A15: G . ((B' \ {.x.}) \/ {.x.}) = F . (G . (B' \ {.x.})),(f . x) by A8, A9, A13, XBOOLE_1:1;
thus G . (B' \/ {x}) = G . ((B' \ {x}) \/ {x}) by XBOOLE_1:39
.= F . (G . (B' \ {x})),(F . (f . x),(f . x)) by A2, A15, BINOP_1:def 4
.= F . (F . (G . (B' \ {.x.})),(f . x)),(f . x) by A4, BINOP_1:def 3
.= F . (G . B'),(f . x) by A11, A15, XBOOLE_1:39 ; :: thesis: verum
end;
end;
end;
suppose not x in B' ; :: thesis: G . (B' \/ {x}) = F . (G . B'),(f . x)
then x in B \ B' by A10, XBOOLE_0:def 5;
hence G . (B' \/ {x}) = F . (G . B'),(f . x) by A8, A9; :: thesis: verum
end;
end;
end;
hence ex G being Function of (Fin X),Y st
( IT = G . B & ( for e being Element of Y st e is_a_unity_wrt F holds
G . {} = e ) & ( for x being Element of X holds G . {x} = f . x ) & ( for B' being Element of Fin X st B' c= B & B' <> {} holds
for x being Element of X st x in B holds
G . (B' \/ {x}) = F . (G . B'),(f . x) ) ) by A5, A6, A7; :: thesis: verum
end;
given G being Function of (Fin X),Y such that A16: IT = G . B and
A17: for e being Element of Y st e is_a_unity_wrt F holds
G . {} = e and
A18: for x being Element of X holds G . {x} = f . x and
A19: for B' being Element of Fin X st B' c= B & B' <> {} holds
for x being Element of X st x in B holds
G . (B' \/ {x}) = F . (G . B'),(f . x) ; :: thesis: IT = F $$ B,f
for B' being Element of Fin X st B' c= B & B' <> {} holds
for x being Element of X st x in B \ B' holds
G . (B' \/ {x}) = F . (G . B'),(f . x)
proof
let B' be Element of Fin X; :: thesis: ( B' c= B & B' <> {} implies for x being Element of X st x in B \ B' holds
G . (B' \/ {x}) = F . (G . B'),(f . x) )

assume A20: ( B' c= B & B' <> {} ) ; :: thesis: for x being Element of X st x in B \ B' holds
G . (B' \/ {x}) = F . (G . B'),(f . x)

let x be Element of X; :: thesis: ( x in B \ B' implies G . (B' \/ {x}) = F . (G . B'),(f . x) )
assume x in B \ B' ; :: thesis: G . (B' \/ {x}) = F . (G . B'),(f . x)
then x in B by XBOOLE_0:def 5;
hence G . (B' \/ {x}) = F . (G . B'),(f . x) by A19, A20; :: thesis: verum
end;
hence IT = F $$ B,f by A1, A3, A4, A16, A17, A18, Def3; :: thesis: verum