reserve n for Nat,
        p,p1,p2 for Point of TOP-REAL n,
        x for Real;
reserve n,m for non zero Nat;
reserve i,j for Nat;
reserve f for PartFunc of REAL-NS m,REAL-NS n;
reserve g for PartFunc of REAL m,REAL n;
reserve h for PartFunc of REAL m,REAL;
reserve x for Point of REAL-NS m;
reserve y for Element of REAL m;
reserve X for set;

theorem Th29:
for m be non zero Nat, f be PartFunc of REAL m,REAL 1
 ex f0 be PartFunc of REAL m,REAL st f = <>*f0
proof
   let m be non zero Nat, f be PartFunc of REAL m,REAL 1;
   defpred P[object] means $1 in dom f;
   deffunc F(object) = proj(1,1).(f/.$1);
A1:for x be object st P[x] holds F(x) in REAL;
   consider f0 be PartFunc of REAL m,REAL such that
A2: (for x be object holds x in dom f0 iff x in REAL m & P[x]) &
    for x be object st x in dom f0 holds f0.x = F(x) from PARTFUN1:sch 3(A1);
   take f0;
    for x be object st x in dom f holds x in dom f0 by A2;
then A3:dom f c= dom f0;
    for x be object st x in dom f0 holds x in dom f by A2;
then A4:dom f0 c= dom f;
then A5:dom f = dom f0 by A3;
A6:rng f0 c= dom(proj(1,1) qua Function") by PDIFF_1:2;
then A7:dom(proj(1,1) qua Function" * f0) = dom f0 by RELAT_1:27;
    for x be Element of REAL m st x in dom (<>*f0) holds (<>*f0).x = f.x
   proof
    let x be Element of REAL m;
    assume A8: x in dom(<>*f0);
    then (<>*f0).x = (proj(1,1) qua Function").(f0.x) by FUNCT_1:12;
then A9: (<>*f0).x = (proj(1,1) qua Function").(proj(1,1).(f/.x)) by A8,A7,A2;
     f/.x is Element of 1-tuples_on REAL;
    then consider x0 be Element of REAL such that
A10:  f/.x = <*x0*> by FINSEQ_2:97;
     proj(1,1).(f/.x) = x0 by A10,PDIFF_1:1;
    then (<>*f0).x = f/.x by A9,A10,PDIFF_1:1;
    hence thesis by A7,A4,A8,PARTFUN1:def 6;
   end;
   hence f = <>*f0 by A6,A5,PARTFUN1:5,RELAT_1:27;
end;
