let A, B, C be set ; for f being currying Function
for g being uncurrying Function st dom f c= Funcs ([:A,B:],C) & rng f c= dom g holds
g * f = id (dom f)
let f be currying Function; for g being uncurrying Function st dom f c= Funcs ([:A,B:],C) & rng f c= dom g holds
g * f = id (dom f)
let g be uncurrying Function; ( dom f c= Funcs ([:A,B:],C) & rng f c= dom g implies g * f = id (dom f) )
assume that
A1:
dom f c= Funcs ([:A,B:],C)
and
A2:
rng f c= dom g
; g * f = id (dom f)
A3:
now for x being object st x in dom f holds
(g * f) . x = xlet x be
object ;
( x in dom f implies (g * f) . x = x )assume A4:
x in dom f
;
(g * f) . x = xthen reconsider X =
x as
Function by Def2;
A5:
ex
F being
Function st
(
X = F &
dom F = [:A,B:] &
rng F c= C )
by A1, A4, FUNCT_2:def 2;
A6:
f . x in rng f
by A4, FUNCT_1:def 3;
then reconsider Y =
f . x as
Function by A2, Def1;
thus (g * f) . x =
g . (f . x)
by A4, FUNCT_1:13
.=
uncurry Y
by A2, A6, Def1
.=
uncurry (curry X)
by A4, Def2
.=
x
by A5, FUNCT_5:49
;
verum end;
dom (g * f) = dom f
by A2, RELAT_1:27;
hence
g * f = id (dom f)
by A3, FUNCT_1:17; verum