reserve x,y,z,X for set,
  T for Universe;

theorem
  for T be non empty 1-sorted, C be Convergence-Class of T holds
  Convergence ConvergenceSpace C = C iff C is topological
proof
  let T be non empty 1-sorted, C be Convergence-Class of T;
  set CC = ConvergenceSpace C, CCC = Convergence ConvergenceSpace C;
A1: the carrier of ConvergenceSpace C = the carrier of T by Def24;
A2: for N being net of T, n being net of CC st N = n for x being subnet of n
  holds x is subnet of N
  proof
    let N be net of T, n be net of CC such that
A3: N = n;
    let X be subnet of n;
    reconsider x = X as net of T by Def24;
    consider f being Function of X, n such that
A4: the mapping of X = (the mapping of n)*f and
A5: for m being Element of n ex n being Element of X st for p being
    Element of X st n <= p holds m <= f.p by Def9;
    reconsider f as Function of x, N by A3;
    the mapping of x = (the mapping of N)*f by A3,A4;
    hence thesis by A3,A5,Def9;
  end;
A6: for N being net of T, n being net of CC st N = n for X being subnet of N
  holds X is subnet of n
  proof
    let N be net of T, n be net of CC such that
A7: N = n;
    let X be subnet of N;
    reconsider x = X as net of CC by Def24;
    consider f being Function of X, N such that
A8: the mapping of X = (the mapping of N)*f and
A9: for m being Element of N ex n being Element of X st for p being
    Element of X st n <= p holds m <= f.p by Def9;
    reconsider f as Function of x, n by A7;
    the mapping of x = (the mapping of n)*f by A7,A8;
    hence thesis by A7,A9,Def9;
  end;
A10: for N being net of T holds N is net of CC by Def24;
  hereby
    assume
A11: CCC = C;
A12: C is (SUBNETS)
    proof
      let N be net of T, Y be subnet of N;
      reconsider M = N as net of CC by Def24;
      reconsider X = Y as subnet of M by A6;
      assume Y in NetUniv T;
      then
A13:  X in NetUniv CC by A1,Lm7;
      let p be Element of T;
      reconsider q = p as Element of CC by Def24;
      assume [N,p] in C;
      then [M,q] in CCC by A11;
      hence thesis by A11,A13,Def21;
    end;
A14: C is (ITERATED_LIMITS)
    proof
      let X be net of T, p be Element of T;
      reconsider q = p as Element of CC by Def24;
      reconsider x = X as net of CC by Def24;
      assume
A15:  [X,p] in C;
      let J be net_set of the carrier of X, T;
      reconsider I = J as ManySortedSet of the carrier of x;
      I is net_set of the carrier of x,CC
      proof
        let i be set;
        assume i in rng I;
        then i is net of T by Def12;
        hence thesis by A10;
      end;
      then reconsider I = J as net_set of the carrier of x,CC;
      assume
A16:  for i being Element of X holds [J.i,X.i] in C;
      now
        let i be Element of x;
        reconsider j = i as Element of X;
        X.j = x .i;
        hence [I.i,x .i] in CCC by A11,A16;
      end;
      then
A17:  [Iterated I,q] in CCC by A11,A15,Def23;
A18:  the RelStr of Iterated I = [:X, product J:] by Def13
        .= the RelStr of Iterated J by Def13;
A19:  now
        let j be object;
        assume j in dom the mapping of Iterated I;
        then reconsider jj = j as Element of Iterated I;
        the carrier of Iterated I = [:the carrier of x, product Carrier I
        :] by Th26;
        then consider
        j1 being Element of x, j2 being Element of product Carrier I
        such that
A20:    jj = [j1,j2] by DOMAIN_1:1;
        reconsider i1 = j1 as Element of X;
        reconsider j2 as Element of product I by YELLOW_1:def 4;
        set i2 = j2;
        the carrier of Iterated J = [:the carrier of X, product Carrier J
        :] by Th26;
        then reconsider i = [i1,i2] as Element of Iterated J by ZFMISC_1:87;
        thus (the mapping of Iterated I).j = (Iterated I).jj
          .= (the mapping of I.j1).(j2.j1) by A20,Th27
          .= (the mapping of J.i1).(i2.i1)
          .= (Iterated J).i by Th27
          .= (the mapping of Iterated J).j by A20;
      end;
      dom the mapping of Iterated I = the carrier of Iterated I by
FUNCT_2:def 1;
      then dom the mapping of Iterated I = dom the mapping of Iterated J by A18
,FUNCT_2:def 1;
      then the mapping of Iterated I = the mapping of Iterated J by A19,
FUNCT_1:2;
      hence thesis by A11,A17,A18;
    end;
A21: C is (DIVERGENCE)
    proof
      let X be net of T, p be Element of T;
      reconsider q = p as Element of CC by Def24;
      reconsider x = X as net of CC by Def24;
      assume X in NetUniv T;
      then
A22:  x in NetUniv CC by A1,Lm7;
      assume not [X,p] in C;
      then consider y being subnet of x such that
A23:  y in NetUniv CC and
A24:  not ex z being subnet of y st [z,q] in CCC by A11,A22,Def22;
      reconsider Y = y as subnet of X by A2;
      take Y;
      thus Y in NetUniv T by A1,A23,Lm7;
      let Z be subnet of Y;
      reconsider z = Z as subnet of y by A6;
      not [z,q] in CCC by A24;
      hence thesis by A11;
    end;
    C is (CONSTANTS)
    proof
      let N be constant net of T;
      reconsider M = N as net of CC by Def24;
      the mapping of N is constant;
      then the mapping of M is constant;
      then reconsider M as constant net of CC by Def4;
      assume N in NetUniv T;
      then
A25:  M in NetUniv CC by A1,Lm7;
      the_value_of M = the_value_of the mapping of M by Def8
        .= the_value_of the mapping of N
        .= the_value_of N by Def8;
      hence thesis by A11,A25,Def20;
    end;
    hence C is topological by A12,A21,A14;
  end;
  assume
A26: C is (CONSTANTS) (SUBNETS) (DIVERGENCE) (ITERATED_LIMITS);
  then reconsider C9 = C as topological Convergence-Class of T;
A27: Convergence ConvergenceSpace C c= C
  proof
    let x,y be object;
    assume
A28: [x,y] in Convergence CC;
    Convergence CC c= [:NetUniv CC,the carrier of CC:] by Def18;
    then consider
    M being Element of NetUniv CC, p being Element of CC such that
A29: [x,y] = [M,p] by A28,DOMAIN_1:1;
    reconsider q = p as Point of T by Def24;
A30: M in NetUniv CC;
A31: ex N being strict net of CC st N = M & the carrier of N in
    the_universe_of the carrier of CC by Def11;
    assume
A32: not [x,y] in C;
    reconsider M as net of CC by A31;
    reconsider N = M as net of T by Def24;
    N in NetUniv T by A1,A30,Lm7;
    then consider Y being subnet of N such that
A33: Y in NetUniv T and
A34: not ex Z being subnet of Y st [Z,q] in C by A26,A29,A32;
    reconsider Y9 = Y as subnet of M by A6;
    reconsider YY = the RelStr of Y as transitive directed non empty RelStr by
Lm1,Lm2;
    set X = ConstantNet(YY,q);
    defpred P[object,object] means
ex i being Element of Y, Ji being net of T st $1
= i & Ji = $2 & [Ji,p] in C & rng the mapping of Ji c= { Y.c where c is Element
    of Y : i <= c };
A35: the RelStr of X = YY by Def5;
    reconsider X as constant non empty strict net of T;
A36: p in Lim M by A28,A29,Def19;
A37: for x being object st x in the carrier of X
ex j being object st P[x, j]
    proof
      let x be object;
      assume x in the carrier of X;
      then reconsider i9 = x as Element of Y9 by Th4;
      reconsider i = i9 as Element of Y;
      Lim M c= Lim Y9 by Th32;
      then consider S being Subset of CC such that
A38:  S = { Y9.c where c is Element of Y9 : i9 <= c } and
A39:  p in Cl S by A36,Th34;
      consider Go being net of ConvergenceSpace C9 such that
A40:  [Go,p] in C9 and
A41:  rng the mapping of Go c= S and
      p in Lim Go by A39,Th43;
      reconsider Ji = Go as net of T by Def24;
      take Ji,i,Ji;
      thus x = i & Ji = Ji & [Ji,p] in C by A40;
      let e be object;
      assume e in rng the mapping of Ji;
      then e in S by A41;
      then consider c9 being Element of Y9 such that
A42:  e = Y9.c9 and
A43:  i9 <= c9 by A38;
      reconsider cc = c9 as Element of Y;
      e = Y.cc by A42;
      hence thesis by A43;
    end;
    consider J being ManySortedSet of the carrier of X such that
A44: for x being object st x in the carrier of X holds P[x, J.x] from
    PBOOLE:sch 3(A37);
    now
      let x be set;
      assume x in the carrier of X;
      then ex i being Element of Y, Ji being net of T st x = i & Ji = J.x & [
Ji,p] in C & rng the mapping of Ji c= { Y.c where c is Element of Y : i <= c }
      by A44;
      hence J.x is net of T;
    end;
    then reconsider
    J as yielding_non-empty_carriers net_set of the carrier of X,T
    by Th24;
    reconsider X9 = X as net of CC by Def24;
A45: the mapping of X9 is constant;
A46: for i being Element of X holds [J.i,X.i] in C
    proof
      let i be Element of X;
      ex ii being Element of Y, Ji being net of T st i = ii & Ji = J.i &
[Ji,p] in C & rng the mapping of Ji c= { Y.c where c is Element of Y : ii <= c
      } by A44;
      hence thesis by Th5;
    end;
A47: the_value_of X = q by Th13;
    reconsider X9 as constant net of CC by A45,Def4;
A48: the RelStr of Iterated J = [:X, product J:] by Def13;
    then
A49: the carrier of Iterated J = [:the carrier of X, the carrier of
    product J:] by YELLOW_3:def 2;
A50: Iterated J is subnet of Y
    proof
      set F = the Element of product J;
      set h = the mapping of Iterated J, g = the mapping of Y9;
      defpred P[object,object,object] means
ex f being Function, x being Element of X
      st f.$2 = $1 & x = $3 & (the mapping of J.x).$2 = (the mapping of Y).$1;
      deffunc F(Element of Y) = { c where c is Element of Y : $1 <= c };
      consider B being ManySortedSet of the carrier of Y such that
A51:  for i being Element of Y holds B.i = F(i) from PBOOLE:sch 5;
      now
        assume {} in rng B;
        then consider i be object such that
A52:    i in dom B and
A53:    B.i = {} by FUNCT_1:def 3;
        reconsider i as Element of Y by A52;
        consider j being Element of Y such that
A54:    i <= j and
        i <= j by Def3;
        j in { c where c is Element of Y : i <= c } by A54;
        hence contradiction by A51,A53;
      end;
      then reconsider B as non-empty ManySortedSet of the carrier of Y by
RELAT_1:def 9;
      deffunc F(Element of X) = the carrier of J.$1;
      consider M being ManySortedSet of the carrier of X such that
A55:  for x being Element of X holds M.x = F(x) from PBOOLE:sch 5;
      reconsider B9 = B as non-empty ManySortedSet of the carrier of X by A35;
A56:  for i be object st i in the carrier of X
      for x be object st x in M.i ex y be object st y in B9.i & P[y,x,i]
      proof
        let i be object such that
A57:    i in the carrier of X;
        consider e being Element of Y, Ji being net of T such that
A58:    i = e and
A59:    Ji = J.i and
        [Ji,p] in C and
A60:    rng the mapping of Ji c= { Y.c where c is Element of Y : e
        <= c } by A44,A57;
        reconsider i9 = i as Element of X by A57;
        defpred P[object,object] means
        (the mapping of Ji).$1 = (the mapping of Y).$2;
A61:    for ji being Element of Ji ex u being Element of B9.i9 st P[ji, u]
        proof
          let ji be Element of Ji;
          ji in the carrier of Ji;
          then ji in dom the mapping of Ji by FUNCT_2:def 1;
          then (the mapping of Ji).ji in rng the mapping of Ji by FUNCT_1:def 3
;
          then (the mapping of Ji).ji in { Y.c where c is Element of Y : e <=
          c } by A60;
          then consider c being Element of Y such that
A62:      (the mapping of Ji).ji = Y.c and
A63:      e <= c;
          c in { cc where cc is Element of Y : e <= cc } by A63;
          then reconsider c as Element of B9.i9 by A51,A58;
          take c;
          thus (the mapping of Ji).ji = (the mapping of Y).c by A62;
        end;
        consider f being Function of Ji, B9.i9 such that
A64:    for ji being Element of Ji holds P[ji, f.ji] from FUNCT_2:
        sch 3(A61 );
        let x be object;
        assume x in M.i;
        then reconsider ji = x as Element of Ji by A55,A57,A59;
        reconsider f as Function of Ji, B.i;
        take f.x;
        f.ji in B.i;
        hence f.x in B9.i;
        take f,i9;
        thus f.x = f.x & i9 = i;
        thus (the mapping of J.i9).x = (the mapping of Ji).ji by A59
          .= (the mapping of Y).(f.x) by A64;
      end;
      consider u be ManySortedFunction of M, B9 such that
A65:  for i be object st i in the carrier of X holds ex f be Function
      of M.i, B9.i st f = u.i &
for x be object st x in M.i holds P[f.x,x,i] from
      MSSUBFAM:sch 1(A56);
      deffunc F(Element of X, Element of product J) = u.$1 .($2.$1);
A66:  for x being Element of X, y being Element of product J holds F(x,y
      ) in the carrier of Y
      proof
        let x be Element of X, y be Element of product J;
        reconsider x9 = x as Element of X9;
        reconsider k = x as Element of Y by A35;
        defpred P[Element of Y] means k <= $1;
        set ZZ = { c where c is Element of Y : P[c] };
A67:    ZZ is Subset of Y from DOMAIN_1:sch 7;
        x9 in the carrier of X9;
        then
A68:    x9 in dom Carrier J by PARTFUN1:def 2;
        y in the carrier of product J;
        then y in product Carrier J by YELLOW_1:def 4;
        then y.x9 in (Carrier J).x9 by A68,CARD_3:9;
        then y.x9 in the carrier of J.x by Th2;
        then u.k is Function of M.k, B.k & y.x in M.k by A55,PBOOLE:def 15;
        then
A69:    u.k.(y.x) in B.k by FUNCT_2:5;
        B.k = ZZ by A51;
        hence thesis by A67,A69;
      end;
      consider f being Function of [:the carrier of X, the carrier of product
      J:], Y such that
A70:  for x being Element of X, y being Element of product J holds f
      .(x,y) = F(x,y) from FUNCT_7:sch 1(A66);
      reconsider f as Function of Iterated J,Y by A49;
A71:  for x being Element of X, j being Element of M.x holds (the
      mapping of J.x).j = (the mapping of Y).(u.x .j)
      proof
        let i be Element of X, j be Element of M.i;
        consider f be Function of M.i, B9.i such that
A72:    f = u.i and
A73:    for x be object st x in M.i holds P[f.x,x,i] by A65;
        M.i = the carrier of J.i by A55;
        then P[f.j,j,i] by A73;
        hence thesis by A72;
      end;
A74:  for x being object st x in dom h holds h.x = g.(f.x)
      proof
        let x be object;
        assume x in dom h;
        then x in the carrier of Iterated J;
        then x in [:the carrier of X9,product Carrier J:] by Th26;
        then x in [:the carrier of X9,the carrier of product J:] by
YELLOW_1:def 4;
        then consider
        x1 being Element of X9, x2 being Element of product J such
        that
A75:    x = [x1,x2] by DOMAIN_1:1;
        reconsider x9 = x1 as Element of X;
        x2 in the carrier of product J;
        then
A76:    x2 in product Carrier J by YELLOW_1:def 4;
        dom Carrier J = the carrier of X9 & the carrier of J.x9 = (
        Carrier J).x1 by Th2,PARTFUN1:def 2;
        then x2.x1 in the carrier of J.x9 by A76,CARD_3:9;
        then reconsider j = x2.x1 as Element of M.x9 by A55;
        thus h.x = h.(x1,x2) by A75
          .= (the mapping of J.x9).(x2.x1) by Def13
          .= g.(u.x9.j) by A71
          .= g.(f.(x1,x2)) by A70
          .= g.(f.x) by A75;
      end;
      take f;
      for x being object holds x in dom h iff x in dom f & f.x in dom g
      proof
        let x be object;
        hereby
          assume x in dom h;
          then x in the carrier of Iterated J;
          then x in [:the carrier of X9,product Carrier J:] by Th26;
          then
A77:      x in [:the carrier of X9,the carrier of product J:] by YELLOW_1:def 4
;
          hence x in dom f by FUNCT_2:def 1;
          f.x in the carrier of Y by A77,FUNCT_2:5;
          hence f.x in dom g by FUNCT_2:def 1;
        end;
        assume that
A78:    x in dom f and
        f.x in dom g;
        x in [:the carrier of X9,the carrier of product J:] by A78,
FUNCT_2:def 1;
        then x in [:the carrier of X9,product Carrier J:] by YELLOW_1:def 4;
        then x in the carrier of Iterated J by Th26;
        hence thesis by FUNCT_2:def 1;
      end;
      hence the mapping of Iterated J = (the mapping of Y)*f by A74,FUNCT_1:10;
      let m be Element of Y;
      reconsider n = [m,F] as Element of Iterated J by A35,A49,ZFMISC_1:87;
      take n;
      let p be Element of Iterated J;
      consider k9 being Element of X, G being Element of product J such that
A79:  p = [k9,G] by A49,DOMAIN_1:1;
      reconsider m9 = m as Element of X by A35;
      reconsider F as Element of product J;
      G in the carrier of product J;
      then
A80:  dom Carrier J = the carrier of X9 & G in product Carrier J by
PARTFUN1:def 2,YELLOW_1:def 4;
      reconsider k = k9 as Element of Y by A35;
A81:  f.(k9,G) = u.k.(G.k) by A70;
      reconsider k99 = k9 as Element of X9;
A82:  u.k is Function of M.k, B.k by PBOOLE:def 15;
      then
A83:  rng(u.k) c= B.k by RELAT_1:def 19;
      dom(u.k) = M.k by A82,FUNCT_2:def 1
        .= the carrier of J.k9 by A55
        .= (Carrier J).k99 by Th2;
      then
A84:  G.k99 in dom(u.k) by A80,CARD_3:9;
      reconsider k9 = k as Element of X;
      reconsider G as Element of product J;
      assume n <= p;
      then [m9,F] <= [k9,G] by A48,A79,Lm3;
      then m9 <= k9 by YELLOW_3:11;
      then
A85:  m <= k by A35,Lm3;
      f.p in rng(u.k) by A79,A81,A84,FUNCT_1:def 3;
      then f.p in B.k by A83;
      then f.p in { c where c is Element of Y : k <= c } by A51;
      then ex c being Element of Y st c = f.p & k <= c;
      hence thesis by A85,YELLOW_0:def 2;
    end;
A86: the RelStr of X = the RelStr of Y by Def5;
    ex N0 being strict net of T st N0 = Y & the carrier of N0 in
    the_universe_of the carrier of T by A33,Def11;
    then X in NetUniv T by A86,Def11;
    then [X,q] in C by A26,A47;
    then [Iterated J,q] in C by A26,A46;
    hence contradiction by A34,A50;
  end;
  C c= Convergence ConvergenceSpace C by Th40;
  hence thesis by A27;
end;
