reserve X,G for RealNormSpace-Sequence,
          Y for RealNormSpace;
reserve f for MultilinearOperator of X,Y;

theorem NDIFF824:
  for x be Point of product X,
      r be Real
  st 0 < r
  ex s be FinSequence of REAL,
     Y be non empty non-empty FinSequence
  st dom s = dom X & dom Y = dom X
   & product Y c= Ball(x,r)
   & for i be Element of dom X holds 0 < s.i & s.i < r
   & Y.i = Ball(x.i,s.i)
  proof
    let x be Point of product X, r be Real;
    assume
    A1: 0 < r;
    A2: product X = NORMSTR(# (product (carr X)),(zeros X),[:(addop X):],
      [:(multop X):],(productnorm X) #) by PRVECT_2:6;
    consider s0 be Real such that
    A3: 0 < s0 & s0 < r and
    A4: sqrt((s0 * s0) * len X) < r by A1,NDIFF825;
    set CST = len X |-> s0;
    len X is natural Number & s0 is Element of REAL by XREAL_0:def 1; then
    reconsider CST as Element of len X -tuples_on REAL by FINSEQ_2:112;
    A5: for i be Element of dom X holds 0 < CST.i & CST.i < r
    proof
      let i be Element of dom X;
      i in dom X; then
      i in Seg len X by FINSEQ_1:def 3;
      hence thesis by A3,FINSEQ_2:57;
    end;
    defpred P1[object, object] means
    ex i be Element of dom X
    st $1 = i & $2 = Ball(x.i,CST.i);
    A6: for n being Nat st n in Seg len X holds
         ex d being object st P1[n,d]
    proof
      let n be Nat;
      assume n in Seg len X; then
      reconsider i = n as Element of dom X by FINSEQ_1:def 3;
      set d = Ball(x.i,CST.i);
      take d;
      thus thesis;
    end;
    consider Y being FinSequence such that
    A7: dom Y = Seg len X
       & for n being Nat st n in Seg len X holds
         P1[n,Y . n] from FINSEQ_1:sch 1(A6);
    not {} in rng Y
    proof
      assume {} in rng Y; then
      consider z be object such that
      A9: z in dom Y & {} = Y.z by FUNCT_1:def 3;
      reconsider n = z as Nat by A9;
      consider i be Element of dom X such that
      A10: n = i & Y.n = Ball(x.i,CST.i) by A7,A9;
      0 < CST.i by A5;
      hence contradiction by A9,A10,NDIFF_8:14;
    end; then
    reconsider Y as non empty non-empty FinSequence
      by A7,FINSEQ_1:def 3,RELAT_1:def 9;
    take CST,Y;
    thus dom CST = Seg len X by FUNCT_2:def 1
    .= dom X by FINSEQ_1:def 3;
    thus
    A12: dom Y = dom X by A7,FINSEQ_1:def 3;
    A14: for i be Element of dom X holds Y.i = Ball(x.i,CST.i)
    proof
      let i be Element of dom X;
      A13: i in dom X;
      reconsider n = i as Nat;
      n in Seg len X by A13,FINSEQ_1:def 3; then
      ex i be Element of dom X
      st n = i & Y.n = Ball(x.i,CST.i) by A7;
      hence Y.i = Ball(x.i, CST.i);
    end;
    for z be object st z in product Y holds z in Ball(x,r)
    proof
      let z be object;
      assume z in product Y; then
      consider g be Function such that
      A15: z = g & dom g = dom Y
        & for i be object st i in dom Y holds g.i in Y.i by CARD_3:def 5;
      A16: dom carr X = dom X by DCARXX;
      A17: dom g = dom carr X by A12,A15,DCARXX;
      A18: for i0 be object st i0 in dom (carr X) holds
            ( g.i0 in (carr X).i0 &
              ex i be Element of dom X
              st i0 = i
               & g.i in Ball(x.i,CST.i)
               & g.i in the carrier of (X.i) )
      proof
        let i0 be object;
        assume i0 in dom (carr X); then
        reconsider i = i0 as Element of dom X by DCARXX;
        g.i in Y.i by A12,A15; then
        A19: g.i in Ball(x.i,CST.i) by A14; then
        g.i in the carrier of (X.i);
        hence thesis by A19,PRVECT_1:def 11;
      end; then
      A20: for i0 be object st i0 in dom (carr X)
           holds g.i0 in (carr X).i0; then
      reconsider x1 = g as Point of product X by A2,A17,CARD_3:def 5;
      reconsider y1 = g as Element of product carr X by A20,A17,CARD_3:def 5;
      reconsider xx1 = x-x1 as Element of product carr X by A2;
      A21: ||.x-x1.|| = |. normsequence (X,xx1) .| by A2,PRVECT_2:def 12;
      A22: len normsequence (X,xx1) = len X by PRVECT_2:def 11; then
      A23: dom normsequence (X,xx1) = Seg len X by FINSEQ_1:def 3
      .= dom X by FINSEQ_1:def 3;
      now
        let i0 be Nat;
        assume i0 in dom normsequence (X,xx1); then
        reconsider i = i0 as Element of dom X by A23;
        reconsider xx1i = xx1.i as Point of X.i;
        reconsider yi = x.i as Point of X.i;
        reconsider y1i = y1.i as Point of X.i;
        i in dom X; then
        A24: i in Seg len X by FINSEQ_1:def 3;
        A25: normsequence (X,xx1).i = ||. xx1i .|| by PRVECT_2:def 11;
        hence 0 <= normsequence(X,xx1).i0;
        A26: xx1.i = x.i - y1.i by LOPBAN10:26;
        ex j be Element of dom X
        st i = j
         & g.j in Ball(x.j,CST.j)
         & g.j in the carrier of (X.j) by A16,A18; then
        ex y be Point of X.i st
        y = y1i & ||.x.i - y.|| < CST.i;
        hence normsequence (X,xx1).i0 <= s0 by A24,A25,A26,FINSEQ_2:57;
      end; then
      |.normsequence (X,xx1).|
      <= sqrt ( (s0*s0)*len X ) by A22,NDIFF823; then
      ||.x-x1.|| < r by A4,A21,XXREAL_0:2;
      hence z in Ball(x,r) by A15;
    end;
    hence thesis by A5,A14,TARSKI:def 3;
  end;
