
theorem Th73:
  for X be strict RealNormSpace st DualSp X is separable holds X is separable
proof
  let X be strict RealNormSpace;
  set Y = DualSp X;
  assume Y is separable; then
  consider Yseq be sequence of Y such that
P1: rng Yseq is dense by NORMSP_3:21;
  defpred P[Nat,Point of X] means
    ||.Yseq.$1.|| /2 <= |.(Yseq.$1).$2.| & ||.$2.|| <= 1;
F2: for n be Element of NAT ex x be Point of X st P[n,x]
  proof
    let n be Element of NAT;
    per cases;
    suppose A1: ||.Yseq.n.|| = 0;
      set x = 0.X;
      take x;
      thus ||.Yseq.n.|| /2 <= |.(Yseq.n).x.| by A1,COMPLEX1:46;
      thus ||.x.|| <= 1;
    end;
    suppose A21: ||.Yseq.n.|| <> 0;
      assume
A31:  not (ex x be Point of X st
             ||.Yseq.n.|| /2 <= |.(Yseq.n).x.| & ||.x.|| <= 1);
      reconsider f=Yseq.n as Lipschitzian linear-Functional of X
        by DUALSP01:def 10;
      now let r be Real;
        assume r in PreNorms f; then
        ex x be Point of X st
         r = |.f.x.| & ||.x.|| <= 1;
        hence r <= ||.Yseq.n.|| /2 by A31;
      end; then
      upper_bound PreNorms f <= ||.Yseq.n.|| /2 by SEQ_4:45; then
      ||.Yseq.n.|| <= ||.Yseq.n.|| /2 by DUALSP01:24;
      hence contradiction by XREAL_1:216,A21;
    end;
  end;
  consider Xseq be Function of NAT,the carrier of X such that
D4: for n be Element of NAT holds P[n,Xseq.n]
    from FUNCT_2:sch 3(F2);
  for n be Nat holds
    ||.Yseq.n.|| /2 <= |.(Yseq.n).(Xseq.n).| & ||.Xseq.n.|| <= 1
  proof
    let n be Nat;
    n is Element of NAT by ORDINAL1:def 12;
    hence thesis by D4;
  end; then
  consider Xseq be sequence of X such that
P2: for n be Nat holds
      ||.Yseq.n.|| /2 <= |.(Yseq.n).(Xseq.n).| & ||.Xseq.n.|| <= 1;
  set X1 = rng Xseq;
  set M = ClNLin(X1);
  set Y1 = rng Yseq;
  for f be Point of Y st
    (for x be Point of X st x in X1 holds (Bound2Lipschitz(f,X)).x = 0)
   holds Bound2Lipschitz(f,X) = 0.Y
  proof
    let f be Point of Y;
    assume
AS: for x be Point of X st x in X1 holds (Bound2Lipschitz(f,X)).x = 0;
    reconsider f1=f as Lipschitzian linear-Functional of X
      by DUALSP01:def 10;
A1: f1 = Bound2Lipschitz(f,X) by DUALSP01:23;
    consider seq be sequence of Y such that
B0:   rng seq c= Y1 & seq is convergent & lim seq = f
        by P1,NORMSP_3:14;
B1: ||. seq - f .|| is convergent & lim ||. seq - f .|| = 0
      by B0,NORMSP_1:24;
B2: ||. seq .|| is convergent by B0,LOPBAN_1:20;
    for n be Nat holds ((1/2)(#)||. seq .||).n <= ||. seq - f .||.n
    proof
      let n be Nat;
      seq.n in rng seq by FUNCT_2:4,ORDINAL1:def 12; then
      consider m be object such that
E1:     m in NAT & Yseq.m = seq.n by FUNCT_2:11,B0;
      reconsider m as Nat by E1;
      reconsider x1=Xseq.m as Point of X;
C1:   f1.x1 = 0 by A1,AS,E1,FUNCT_2:4;
C2:   |. (seq.n).x1 - f.x1 .| = |.(seq.n - f).x1 .| by DUALSP01:33;
      reconsider g=seq.n - f as Lipschitzian linear-Functional of X
        by DUALSP01:def 10;
C3:   |. g.x1 .| <= ||. seq.n - f .|| * ||. x1 .|| by DUALSP01:26;
      ||. seq.n - f .|| * ||. x1 .|| <= ||. seq.n - f .|| * 1
        by P2,XREAL_1:64; then
C4:   |. (seq.n).x1 - f.x1 .| <= ||. seq.n - f .|| by C2,C3,XXREAL_0:2;
      ||. seq.n .||/2 <= |. (seq.n).x1 .| by P2,E1; then
C71:  (1/2)*||. seq.n .|| <= ||. seq.n - f .|| by C4,XXREAL_0:2,C1;
C8:   ||. seq.n - f .|| = ||. (seq - f).n .|| by NORMSP_1:def 4
                       .= ||. seq - f .||.n by NORMSP_0:def 4;
      (1/2)*(||. seq .||.n) = ((1/2)(#)||. seq .||).n by SEQ_1:9;
      hence thesis by C71,NORMSP_0:def 4,C8;
    end; then
B5: lim ((1/2)(#)||. seq .||) <= 0 by B1,B2,SEQ_2:18;
    reconsider rseq=||. seq .|| as Real_Sequence;
B6: now let n be Nat;
      0 <= (1/2)*||. seq.n .||; then
      0 <= (1/2)*(rseq.n) by NORMSP_0:def 4;
      hence 0 <= ((1/2)(#)rseq).n by SEQ_1:9;
    end;
    (1/2)*(lim rseq) = lim ((1/2)(#)rseq) by B0,LOPBAN_1:20,SEQ_2:8; then
    lim ||. seq .|| = 0 by B5,B6,B2,SEQ_2:17; then
    ||. f .|| = 0 by B0,LOPBAN_1:20; then
    f1 = 0.Y by DUALSP01:31;
    hence thesis by DUALSP01:23;
  end; then
  M = X by Lm73;
  hence X is separable;
end;
