let A, B, C be set ; :: thesis: for f being Function st A <> {} & B <> {} & f in Funcs A,(Funcs B,C) holds
commute (commute f) = f
let f be Function; :: thesis: ( A <> {} & B <> {} & f in Funcs A,(Funcs B,C) implies commute (commute f) = f )
assume A1:
( A <> {} & B <> {} & f in Funcs A,(Funcs B,C) )
; :: thesis: commute (commute f) = f
then A2:
ex g being Function st
( g = f & dom g = A & rng g c= Funcs B,C )
by FUNCT_2:def 2;
A3:
commute f in Funcs B,(Funcs A,C)
by A1, Th85;
set cf = commute f;
A4:
ex g being Function st
( g = commute f & dom g = B & rng g c= Funcs A,C )
by A3, FUNCT_2:def 2;
commute (commute f) in Funcs A,(Funcs B,C)
by A1, A3, Th85;
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;
for x being set st x in A holds
f . x = (commute (commute f)) . x
hence
commute (commute f) = f
by A2, A5, FUNCT_1:9; :: thesis: verum