let A, B, C be set ; for f being Function st A <> {} & B <> {} & f in Funcs (A,(Funcs (B,C))) holds
commute (commute f) = f
let f be Function; ( A <> {} & B <> {} & f in Funcs (A,(Funcs (B,C))) implies commute (commute f) = f )
assume that
A1:
( A <> {} & B <> {} )
and
A2:
f in Funcs (A,(Funcs (B,C)))
; commute (commute f) = f
A3:
ex g being Function st
( g = f & dom g = A & rng g c= Funcs (B,C) )
by A2, FUNCT_2:def 2;
set cf = commute f;
A4:
commute f in Funcs (B,(Funcs (A,C)))
by A1, A2, Th50;
then
commute (commute f) in Funcs (A,(Funcs (B,C)))
by A1, Th50;
then A5:
ex h being Function st
( h = commute (commute f) & dom h = A & rng h c= Funcs (B,C) )
by FUNCT_2:def 2;
A6:
ex g being Function st
( g = commute f & dom g = B & rng g c= Funcs (A,C) )
by A4, FUNCT_2:def 2;
for x being object st x in A holds
f . x = (commute (commute f)) . x
proof
set ccf =
commute (commute f);
set uf =
uncurry f;
set ucf =
uncurry (commute f);
let x be
object ;
( x in A implies f . x = (commute (commute f)) . x )
assume A7:
x in A
;
f . x = (commute (commute f)) . x
then
f . x in rng f
by A3, FUNCT_1:def 3;
then consider g being
Function such that A8:
(
g = f . x &
dom g = B )
and
rng g c= C
by A3, FUNCT_2:def 2;
(commute (commute f)) . x in rng (commute (commute f))
by A5, A7, FUNCT_1:def 3;
then consider h being
Function such that A9:
h = (commute (commute f)) . x
and A10:
dom h = B
and
rng h c= C
by A5, FUNCT_2:def 2;
A11:
for
y being
object st
y in B holds
for
h being
Function st
h = (commute f) . y holds
(
x in dom h &
h . x = g . y )
A13:
for
y being
object st
y in B holds
(
[y,x] in dom (uncurry (commute f)) &
(uncurry (commute f)) . (
y,
x)
= g . y )
for
y being
object st
y in B holds
h . y = g . y
hence
f . x = (commute (commute f)) . x
by A8, A9, A10, FUNCT_1:2;
verum
end;
hence
commute (commute f) = f
by A3, A5; verum