let x be object ; for f, g being Function st x in dom (curry' f) & g = (curry' f) . x holds
( dom g = proj1 ((dom f) /\ [:(proj1 (dom f)),{x}:]) & dom g c= proj1 (dom f) & rng g c= rng f & ( for y being object st y in dom g holds
( g . y = f . (y,x) & [y,x] in dom f ) ) )
let f, g be Function; ( x in dom (curry' f) & g = (curry' f) . x implies ( dom g = proj1 ((dom f) /\ [:(proj1 (dom f)),{x}:]) & dom g c= proj1 (dom f) & rng g c= rng f & ( for y being object st y in dom g holds
( g . y = f . (y,x) & [y,x] in dom f ) ) ) )
A1:
rng (~ f) c= rng f
by FUNCT_4:41;
assume A2:
( x in dom (curry' f) & g = (curry' f) . x )
; ( dom g = proj1 ((dom f) /\ [:(proj1 (dom f)),{x}:]) & dom g c= proj1 (dom f) & rng g c= rng f & ( for y being object st y in dom g holds
( g . y = f . (y,x) & [y,x] in dom f ) ) )
then
dom g = proj2 ((dom (~ f)) /\ [:{x},(proj2 (dom (~ f))):])
by Th24;
then A3:
dom g = proj2 ((dom (~ f)) /\ [:{x},(proj1 (dom f)):])
by Th11;
thus A4:
dom g c= proj1 ((dom f) /\ [:(proj1 (dom f)),{x}:])
XBOOLE_0:def 10 ( proj1 ((dom f) /\ [:(proj1 (dom f)),{x}:]) c= dom g & dom g c= proj1 (dom f) & rng g c= rng f & ( for y being object st y in dom g holds
( g . y = f . (y,x) & [y,x] in dom f ) ) )proof
let z be
object ;
TARSKI:def 3 ( not z in dom g or z in proj1 ((dom f) /\ [:(proj1 (dom f)),{x}:]) )
assume
z in dom g
;
z in proj1 ((dom f) /\ [:(proj1 (dom f)),{x}:])
then consider y being
object such that A5:
[y,z] in (dom (~ f)) /\ [:{x},(proj1 (dom f)):]
by A3, XTUPLE_0:def 13;
[y,z] in [:{x},(proj1 (dom f)):]
by A5, XBOOLE_0:def 4;
then A6:
[z,y] in [:(proj1 (dom f)),{x}:]
by ZFMISC_1:88;
[y,z] in dom (~ f)
by A5, XBOOLE_0:def 4;
then
[z,y] in dom f
by FUNCT_4:42;
then
[z,y] in (dom f) /\ [:(proj1 (dom f)),{x}:]
by A6, XBOOLE_0:def 4;
hence
z in proj1 ((dom f) /\ [:(proj1 (dom f)),{x}:])
by XTUPLE_0:def 12;
verum
end;
thus
proj1 ((dom f) /\ [:(proj1 (dom f)),{x}:]) c= dom g
( dom g c= proj1 (dom f) & rng g c= rng f & ( for y being object st y in dom g holds
( g . y = f . (y,x) & [y,x] in dom f ) ) )proof
let z be
object ;
TARSKI:def 3 ( not z in proj1 ((dom f) /\ [:(proj1 (dom f)),{x}:]) or z in dom g )
assume
z in proj1 ((dom f) /\ [:(proj1 (dom f)),{x}:])
;
z in dom g
then consider y being
object such that A7:
[z,y] in (dom f) /\ [:(proj1 (dom f)),{x}:]
by XTUPLE_0:def 12;
[z,y] in [:(proj1 (dom f)),{x}:]
by A7, XBOOLE_0:def 4;
then A8:
[y,z] in [:{x},(proj1 (dom f)):]
by ZFMISC_1:88;
[z,y] in dom f
by A7, XBOOLE_0:def 4;
then
[y,z] in dom (~ f)
by FUNCT_4:42;
then
[y,z] in (dom (~ f)) /\ [:{x},(proj1 (dom f)):]
by A8, XBOOLE_0:def 4;
hence
z in dom g
by A3, XTUPLE_0:def 13;
verum
end;
( dom g c= proj2 (dom (~ f)) & rng g c= rng (~ f) )
by A2, Th24;
hence
( dom g c= proj1 (dom f) & rng g c= rng f )
by A1, Th11; for y being object st y in dom g holds
( g . y = f . (y,x) & [y,x] in dom f )
let y be object ; ( y in dom g implies ( g . y = f . (y,x) & [y,x] in dom f ) )
assume A9:
y in dom g
; ( g . y = f . (y,x) & [y,x] in dom f )
then consider z being object such that
A10:
[y,z] in (dom f) /\ [:(proj1 (dom f)),{x}:]
by A4, XTUPLE_0:def 12;
[y,z] in [:(proj1 (dom f)),{x}:]
by A10, XBOOLE_0:def 4;
then A11:
z = x
by ZFMISC_1:106;
[y,z] in dom f
by A10, XBOOLE_0:def 4;
then
[z,y] in dom (~ f)
by FUNCT_4:42;
then
(~ f) . (x,y) = f . (y,x)
by A11, FUNCT_4:43;
hence
( g . y = f . (y,x) & [y,x] in dom f )
by A2, A9, A10, A11, Th24, XBOOLE_0:def 4; verum