reserve A,B,C for Ordinal,
  K,L,M,N for Cardinal,
  x,y,y1,y2,z,u for object,X,Y,Z,Z1,Z2 for set,
  n for Nat,
  f,f1,g,h for Function,
  Q,R for Relation;
reserve ff for Cardinal-Function;
reserve F,G for Cardinal-Function;
reserve A,B for set;

theorem
  PFuncs(A,B) = sproduct (A --> B)
proof
  now per cases;
    case
   A = {};
      then A --> B = {} --> B;
      hence thesis by Th57,PARTFUN1:48;
    end;
    case A <> {};
      then
A2:   rng (A --> B) = { B } by FUNCOP_1:8;
A3:   dom(A --> B) = A;
A4:   B = union rng (A --> B) by A2,ZFMISC_1:25;
      thus PFuncs(A,B) c= sproduct (A --> B)
      proof
        let x be object;
        assume x in PFuncs(A,B);
        then consider f being Function such that
A5:     x = f and
A6:     dom f c= A and
A7:     rng f c= B by PARTFUN1:def 3;
A8:     dom f c= dom (A --> B) by A6;
        now
          let x be object;
          assume
A9:       x in dom f;
          then f.x in rng f by FUNCT_1:def 3;
          then f.x in B by A7;
          hence f.x in (A --> B).x by A6,A9,FUNCOP_1:7;
        end;
        hence thesis by A5,A8,Def9;
      end;
      thus sproduct (A --> B) c= PFuncs(A,B) by A3,A4,Th55;
    end;
  end;
  hence thesis;
end;
