reserve X for set;
reserve n,i for Element of NAT;
reserve a,b,c,d,e,r,x0 for Real;
reserve A for non empty closed_interval Subset of REAL;
reserve f,g,h for PartFunc of REAL,REAL n;
reserve E for Element of REAL n;

theorem Th34:
  for f be PartFunc of REAL,REAL n, g be PartFunc of REAL,REAL-NS n st f=g
  holds f is bounded iff g is bounded
  proof
    let f be PartFunc of REAL,REAL n, g be PartFunc of REAL,REAL-NS n;
    assume A1: f=g;
    thus f is bounded implies g is bounded
    proof
      assume
A2:   f is bounded;
      defpred Pd[Nat,Element of REAL] means
      for y be set st y in dom (proj($1,n)*f) holds
      |.(proj($1,n)*f).y.| < $2;
A3:   for i be Nat st i in Seg n
      ex di be Element of REAL st Pd[i,di]
      proof
        let i be Nat; set P = proj(i,n);
        assume i in Seg n; then
        P*f is bounded by A2; then
        consider r be Real such that
A4:     for y be set st y in dom (P*f) holds
        |.(P*f).y.| < r by COMSEQ_2:def 3;
        reconsider r as Element of REAL by XREAL_0:def 1;
        take r;
        thus thesis by A4;
      end;
      consider d be FinSequence of REAL such that
A5:   dom d = Seg n & for k be Nat st k in Seg n holds
      Pd[k,d/.k] from RECDEF_1:sch 17(A3);
      set K = max d;
      for y be set st y in dom g holds ||. g/.y .|| < n*K + 1
      proof
        let y be set;
        assume A6: y in dom g;
        set s = f/.y;
        now
          let i; set P = proj(i,n);
          assume A7: 1 <= i & i <= n; then
A8:       i in Seg n;
          dom (P)=REAL n by FUNCT_2:def 1; then
          rng f c= dom(P); then
A9:       y in dom (P*f) by A6,A1,RELAT_1:27; then
A10:      |.(P*f).y.| < d/.i by A8,A5;
          f.y = s by A6,A1,PARTFUN1:def 6; then
          (P*f).y = P.s by A9,FUNCT_1:12; then
A11:      |.s.i.| < d/.i by A10,PDIFF_1:def 1;
          len d = n by A5,FINSEQ_1:def 3;
          then d.i <= K by A7,RFINSEQ2:1;
          then d/.i <= K by A8,A5,PARTFUN1:def 6;
          hence |.s.i.| <= K by A11,XXREAL_0:2;
        end; then
A12:    |. s .| < n*K + 1 by PDIFF_8:15,XREAL_1:145;
        g/.y = g.y by A6,PARTFUN1:def 6
        .= f/.y by A1,A6,PARTFUN1:def 6;
        hence ||. g/.y .|| < n*K + 1 by A12,REAL_NS1:1;
      end;
      hence g is bounded;
    end;
    assume A13: g is bounded;
    consider r be Real such that
A14: for y be set st y in dom g holds ||. g/.y .|| < r by A13;
     let i; set P = proj(i,n);
     assume A15: i in Seg n;
     for y be set st y in dom (P*f) holds |.(P*f).y.| < r
     proof
       let y be set;
       assume A16: y in dom (P*f);
       dom (P)=REAL n by FUNCT_2:def 1; then
       rng f c= dom(P); then
A17:   y in dom f by A16,RELAT_1:27; then
A18:   ||. g/.y .|| < r by A14,A1;
       set s = f/.y;
       g/.y = g.y by A17,A1,PARTFUN1:def 6
       .= f/.y by A1,A17,PARTFUN1:def 6; then
A19:   |. s .| < r by A18,REAL_NS1:1;
       |.s.i.| <= |. s .| by A15,REAL_NS1:8; then
A20:   |.s.i.| < r by A19,XXREAL_0:2;
       f.y = s by A17,PARTFUN1:def 6; then
       (P*f).y = P.s by A16,FUNCT_1:12;
       hence |.(P*f).y.| < r by A20,PDIFF_1:def 1;
     end;
     hence P*f is bounded by COMSEQ_2:def 3;
   end;
