let f be Function; ( curry f = curry' (~ f) & uncurry f = ~ (uncurry' f) )
A1:
dom (curry (~ (~ f))) = proj1 (dom (~ (~ f)))
by FUNCT_5:def 3;
A2:
dom (curry f) = proj1 (dom f)
by FUNCT_5:def 3;
A3:
dom (curry (~ (~ f))) = dom (curry f)
A6:
curry' (~ f) = curry (~ (~ f))
by FUNCT_5:def 5;
now let x be
set ;
( x in dom (curry f) implies (curry f) . x = (curry' (~ f)) . x )assume A7:
x in dom (curry f)
;
(curry f) . x = (curry' (~ f)) . xthen reconsider g =
(curry f) . x,
h =
(curry' (~ f)) . x as
Function by A6, A3, FUNCT_5:37;
A8:
dom g = proj2 ((dom f) /\ [:{x},(proj2 (dom f)):])
by A7, FUNCT_5:38;
A9:
dom h = proj1 ((dom (~ f)) /\ [:(proj1 (dom (~ f))),{x}:])
by A6, A3, A7, FUNCT_5:41;
A10:
dom g = dom h
proof
thus
dom g c= dom h
XBOOLE_0:def 10 dom h c= dom gproof
let a be
set ;
TARSKI:def 3 ( not a in dom g or a in dom h )
assume
a in dom g
;
a in dom h
then consider b being
set such that A11:
[b,a] in (dom f) /\ [:{x},(proj2 (dom f)):]
by A8, RELAT_1:def 5;
[b,a] in [:{x},(proj2 (dom f)):]
by A11, XBOOLE_0:def 4;
then A12:
[a,b] in [:(proj2 (dom f)),{x}:]
by ZFMISC_1:107;
[b,a] in dom f
by A11, XBOOLE_0:def 4;
then A13:
[a,b] in dom (~ f)
by FUNCT_4:43;
proj2 (dom f) = proj1 (dom (~ f))
by FUNCT_5:20;
then
[a,b] in (dom (~ f)) /\ [:(proj1 (dom (~ f))),{x}:]
by A13, A12, XBOOLE_0:def 4;
hence
a in dom h
by A9, RELAT_1:def 4;
verum
end;
let a be
set ;
TARSKI:def 3 ( not a in dom h or a in dom g )
assume
a in dom h
;
a in dom g
then consider b being
set such that A14:
[a,b] in (dom (~ f)) /\ [:(proj1 (dom (~ f))),{x}:]
by A9, RELAT_1:def 4;
[a,b] in [:(proj1 (dom (~ f))),{x}:]
by A14, XBOOLE_0:def 4;
then A15:
[b,a] in [:{x},(proj1 (dom (~ f))):]
by ZFMISC_1:107;
[a,b] in dom (~ f)
by A14, XBOOLE_0:def 4;
then A16:
[b,a] in dom f
by FUNCT_4:43;
proj2 (dom f) = proj1 (dom (~ f))
by FUNCT_5:20;
then
[b,a] in (dom f) /\ [:{x},(proj2 (dom f)):]
by A16, A15, XBOOLE_0:def 4;
hence
a in dom g
by A8, RELAT_1:def 5;
verum
end; now let a be
set ;
( a in dom g implies g . a = h . a )assume A17:
a in dom g
;
g . a = h . athen A18:
(
[x,a] in dom f &
g . a = f . x,
a )
by A7, FUNCT_5:38;
h . a = (~ f) . a,
x
by A6, A3, A7, A10, A17, FUNCT_5:41;
hence
g . a = h . a
by A18, FUNCT_4:def 2;
verum end; hence
(curry f) . x = (curry' (~ f)) . x
by A10, FUNCT_1:9;
verum end;
hence
curry f = curry' (~ f)
by A6, A3, FUNCT_1:9; uncurry f = ~ (uncurry' f)
A19:
dom (uncurry f) = dom (~ (~ (uncurry f)))
uncurry' f = ~ (uncurry f)
by FUNCT_5:def 6;
hence
uncurry f = ~ (uncurry' f)
by A19, A22, FUNCT_1:9; verum