theorem 
 for 
X, 
Y, 
Z, 
V1, 
V2 being    
set   for 
f being   
Function  st (  
curry f in  Funcs (
X,
(Funcs (Y,Z))) or  
curry' f in  Funcs (
Y,
(Funcs (X,Z))) ) &  
dom f c= [:V1,V2:] holds 
f in  Funcs (
[:X,Y:],
Z)
 
theorem 
 for 
X, 
Y, 
Z, 
V1, 
V2 being    
set   for 
f being   
Function  st (  
uncurry f in  Funcs (
[:X,Y:],
Z) or  
uncurry' f in  Funcs (
[:Y,X:],
Z) ) &  
rng f c=  PFuncs (
V1,
V2) &  
dom f = X holds 
f in  Funcs (
X,
(Funcs (Y,Z)))
 
theorem 
 for 
X, 
Y, 
Z, 
V1, 
V2 being    
set   for 
f being   
Function  st (  
curry f in  PFuncs (
X,
(PFuncs (Y,Z))) or  
curry' f in  PFuncs (
Y,
(PFuncs (X,Z))) ) &  
dom f c= [:V1,V2:] holds 
f in  PFuncs (
[:X,Y:],
Z)
 
theorem 
 for 
X, 
Y, 
Z, 
V1, 
V2 being    
set   for 
f being   
Function  st (  
uncurry f in  PFuncs (
[:X,Y:],
Z) or  
uncurry' f in  PFuncs (
[:Y,X:],
Z) ) &  
rng f c=  PFuncs (
V1,
V2) &  
dom f c= X holds 
f in  PFuncs (
X,
(PFuncs (Y,Z)))
 
Lm1: 
 for f being   Function-yielding  Function holds   rng (Frege f) c=  product (rngs f)
 
Lm2: 
 for f being   Function-yielding  Function holds   product (rngs f) c=  rng (Frege f)
 
Lm3: 
 for f, g being   Function
  for x, y, z being    object   st [x,y] in  dom f & g = (curry f) . x & z in  dom g holds 
[x,z] in  dom f
 
Lm4: 
 for X being    set 
  for f being   Function  st f <>  {}  & X <>  {}  holds 
 product (Funcs (X,f)), Funcs (X,(product f)) are_equipotent