
theorem Th2:
  for X be finite-dimensional RealNormSpace,
      Y be RealNormSpace,
      L be LinearOperator of X,Y
    st dim X <> 0
  holds L is Lipschitzian
  proof
    let X be finite-dimensional RealNormSpace,
        Y be RealNormSpace,
        L be LinearOperator of X,Y;

    assume
    A1: dim X <> 0;
    reconsider X0 = X as finite-dimensional RealLinearSpace;
    set b = the OrdBasis of RLSp2RVSp(X);

    the RLSStruct of X = the RLSStruct of X;
    then consider r1,r2 be Real such that
    A2: 0 < r1
      & 0 < r2
      & for x be Point of X
        holds
          ||.x.|| <= r1 * max_norm(X,b).x
        & max_norm(X,b).x <= r2 * ||.x.|| by A1,REAL_NS3:24;
    reconsider e = b as FinSequence of X;
    deffunc F3(Nat) = In(||.L.(e/.$1).||,REAL);

    A3: the carrier of X = dom L by FUNCT_2:def 1;
    A4: rng e c= the carrier of X;

    consider k be FinSequence of REAL such that
    A5: len k = len b
      & for i be Nat st i in dom k
        holds k.i = F3(i) from FINSEQ_2:sch 1;

    set k1 = Sum(k);

    for i be Nat st i in dom k
    holds 0 <= k.i
    proof
      let i be Nat;
      assume i in dom k;
      then k.i
       = In(||.L.(e/.i).||,REAL) by A5
      .= ||.L.(e/.i).||;
      hence 0 <= k.i;
    end;
    then
    A6: 0 <= k1 by RVSUM_1:84;

    for x be Point of X
    holds ||.L.x.|| <= r2 * (k1 + 1) * ||.x.||
    proof
      let x be Point of X;
      consider u be Element of RLSp2RVSp(X),
               v be Element of REAL(dim X)
      such that
      A7: x = u
        & v = (u |-- b)
        & max_norm(X,b).x = (max_norm(dim X)).v
        by REAL_NS3:def 3;

      reconsider ub = (u |-- b) as FinSequence of REAL;

      A8:
      now
        let i be Nat;
        assume
        A9: i in dom(ub); then
        i in dom(abs(v)) by A7,VALUED_1:def 11;

        then abs(v).i
         = |.v.i.| by VALUED_1:def 11
        .= |.v/.i.| by A7,A9,PARTFUN1:def 6
        .= |.ub/.i.| by A7;
        hence |.ub/.i.| <= max_norm(X,b).x by A1,A7,A9,REAL_NS3:def 1;
      end;

      A10: len(u |-- b) = len b by MATRLIN:def 7;
      then
      A11: dom(u |-- b)
       = Seg len b by FINSEQ_1:def 3
      .= dom b by FINSEQ_1:def 3;
      then
      A12: dom(lmlt(u |-- b, b))
       = dom(u |-- b) by MATRLIN:12
      .= Seg len b by A10,FINSEQ_1:def 3;

      A13: lmlt(u |-- b, b)
       = (the lmult of RLSp2RVSp(X)) .: (u |-- b, b) by MATRLIN:def 5
      .= (the Mult of X) .: (ub, b);

      A14: rng((the Mult of X) .: (ub,e)) c= the carrier of X;
      reconsider f0 = (the Mult of X ) .: (ub,e)
        as FinSequence of the carrier of X;

      A15: dom f0
       = Seg len b by A12,A13
      .= dom b by FINSEQ_1:def 3;

      rng f0 c= dom L by A14,FUNCT_2:def 1;
      then
      A16: len(L * f0)
       = len f0 by FINSEQ_2:29
      .= len b by A12,A13,FINSEQ_1:def 3;

      A17: dom(L * f0)
       = Seg(len b) by A16,FINSEQ_1:def 3
      .= dom b by FINSEQ_1:def 3;

      A18: dom((the Mult of Y) .: (ub, L*e)) = dom b
      proof
        A19: dom((the Mult of Y) .: (ub, L*e))
           = dom((the Mult of Y) * (<: ub,L*e :>)) by FUNCOP_1:def 3;
        A20: dom(<: ub,L*e :>)
           = dom ub /\ dom(L*e) by FUNCT_3:def 7
          .= dom ub /\ dom e by A3,A4,RELAT_1:27
          .= dom b by A11;
        A21: dom(the Mult of Y) = [:REAL,the carrier of Y:] by FUNCT_2:def 1;
        A22: rng(<: ub,L*e :>) c= [:rng ub, rng(L*e):] by FUNCT_3:51;
        [:rng ub ,rng(L*e):] c= [:REAL,the carrier of Y:] by ZFMISC_1:96;
        then rng(<: ub,L*e :>) c= [:REAL,the carrier of Y:] by A22;
        hence thesis by A19,A20,A21,RELAT_1:27;
      end;

      A23: for i be object st i in dom(L * f0)
           holds (L * f0).i = ((the Mult of Y) .: (ub, L * e)).i
      proof
        let i0 be object;
        assume
        A24: i0 in dom(L * f0);
        then reconsider i = i0 as Nat;

        b.i in rng b by A17,A24,FUNCT_1:3;
        then reconsider bi = b.i as Element of X;
        reconsider ri = ub.i as Real;
        A25: (L * e).i
         = L.(b.i) by A17,A24,FUNCT_1:13;

        thus (L * f0).i0
         = L.(f0.i) by A24,FUNCT_1:12
        .= L.((the Mult of X).(ub.i,b.i)) by A15,A17,A24,FUNCOP_1:22
        .= L.(ri * bi)
        .= ri * L.bi by LOPBAN_1:def 5
        .= (the Mult of Y).(ub.i, (L * e).i) by A25
        .= ((the Mult of Y).:(ub, L * e)).i0 by A17,A18,A24,FUNCOP_1:22;
      end;

      reconsider f = L * f0 as FinSequence of the carrier of Y;
      A26: L.x
       = L.(Sum(lmlt(u |-- b, b))) by A7,MATRLIN:35
      .= L.(Sum(f0)) by A13,REAL_NS2:75
      .= Sum(L * f0) by Th1
      .= Sum((the Mult of Y) .: (ub, L * e)) by A17,A18,A23,FUNCT_1:2
      .= Sum(f) by A17,A18,A23,FUNCT_1:2;

      deffunc F4(Nat) = In(||.f/.$1.||,REAL);

      consider g be FinSequence of REAL such that
      A27: len g = len f
         & for i be Nat st i in dom g
           holds g.i = F4(i) from FINSEQ_2:sch 1;

      A28: for i be Element of NAT st i in dom f
           holds g.i = ||.f/.i.||
      proof
        let i be Element of NAT;
        assume i in dom f;
        then i in Seg (len f) by FINSEQ_1:def 3;
        then i in dom g by A27,FINSEQ_1:def 3;
        then g.i = In(||.f/.i.||,REAL) by A27;
        hence thesis;
      end;
      then
      A29: ||.L.x.|| <= Sum(g) by A26,A27,NDIFF_5:7;

      A30: for i be Nat st i in Seg len b
           holds g.i <= ((max_norm(X,b).x) * k).i
      proof
        let i be Nat;
        assume
        A31: i in Seg len b; then
        A32: i in dom f by A16,FINSEQ_1:def 3;
        A33: dom ub = Seg(len b) by A10,FINSEQ_1:def 3;
        A34: i in dom b by A31,FINSEQ_1:def 3;
        b/.i in the carrier of X;
        then
        A35: b/.i in dom L by FUNCT_2:def 1;
        A36: (L*b).i
         = L.(b.i) by A34,FUNCT_1:13
        .= L.(b/.i) by A34,PARTFUN1:def 6
        .= L/.(b/.i) by A35,PARTFUN1:def 6;
        A37: i in dom f by A16,A31,FINSEQ_1:def 3;

        then f/.i
         = f.i by PARTFUN1:def 6
        .= ((the Mult of Y) .: (ub,L*b)).i by A17,A18,A23,FUNCT_1:2
        .= (the Mult of Y ).(ub.i,(L*b).i) by A17,A18,A37,FUNCOP_1:22
        .= (ub/.i) * (L/.(b/.i)) by A31,A33,A36,PARTFUN1:def 6
        .= (ub/.i) * L/.(b/.i);
        then
        A38: g.i
         = ||.(ub/.i) * L/.(b/.i).|| by A28,A32
        .= |.(ub/.i).| * ||.L/.(e/.i).|| by NORMSP_1:def 1;

        i in dom k by A5,A31,FINSEQ_1:def 3;
        then k.i
         = In(||.L.(e/.i).||, REAL) by A5
        .= ||.L.(e/.i).||;
        then g.i <= (max_norm(X,b).x) * k.i by A8,A31,A33,A38,XREAL_1:64;
        hence g.i <= ((max_norm(X,b).x) * k).i by RVSUM_1:45;
      end;
      A39: g is (len b)-element by A16,A27,CARD_1:def 7;
      dom((max_norm(X,b).x) * k)
       = dom k by VALUED_1:def 5
      .= Seg len k by FINSEQ_1:def 3
      .= Seg len b by A5;
      then len((max_norm(X,b).x) * k) = len b by FINSEQ_1:def 3;
      then (max_norm(X,b).x) * k is (len b)-element by CARD_1:def 7;
      then Sum(g) <= Sum((max_norm(X,b).x) * k) by A30,A39,RVSUM_1:82;
      then Sum(g) <= (max_norm(X,b).x) * Sum(k) by RVSUM_1:87;
      then
      A40: ||.L.x.|| <= k1 * (max_norm(X,b).x) by A29,XXREAL_0:2;
      A41: 0 <= max_norm(X,b).x by A1,REAL_NS3:18;
      k1+0 < k1+1 by XREAL_1:8;
      then k1 * (max_norm(X,b).x) <= (k1+1) * (max_norm(X,b).x)
        by A41,XREAL_1:64;
      then
      A42: ||.L.x.|| <= (k1 + 1) * (max_norm(X,b).x) by A40,XXREAL_0:2;
      (k1 + 1) * (max_norm(X,b).x) <= (k1 + 1) * (r2 * ||.x.||)
        by A2,A6,XREAL_1:64;
      hence ||.L.x.|| <= r2 * (k1 + 1) * ||.x.|| by A42,XXREAL_0:2;
    end;
    hence thesis by A2,A6,LOPBAN_1:def 8;
  end;
