
theorem
  for G1 being _finite connected real-weighted WGraph, G2 being
  inducedWSubgraph of G1, (PRIM:MST(G1))`1, (PRIM:MST(G1))`2 holds G2 is
  minimumSpanningTree of G1
proof
  let G1 be _finite connected real-weighted WGraph;
  set PMST = PRIM:MST(G1);
  let G2 be inducedWSubgraph of G1, PMST`1, PMST`2;
  reconsider G29=G2 as Tree-like _Graph by Th38;
  set VG1 = the_Vertices_of G1, EG1 = the_Edges_of G1;
  set WG1 = the_Weight_of G1;
  set PCS = PRIM:CompSeq(G1);
A1: PMST`1 = VG1 by Th39;
  PMST`2 c= EG1;
  then
A2: PMST`2 c= G1.edgesBetween(PMST`1) by A1,GLIB_000:34;
A3: the_Vertices_of G2 = VG1 by A1,A2,GLIB_000:def 37;
A4: the_Edges_of G2 = PMST`2 by A1,A2,GLIB_000:def 37;
A5: G2 is Tree-like by Th38;
  now
    set X = {x where x is Element of G1.allWSubgraphs() : x is
    minimumSpanningTree of G1};
    now
      let x be object;
      assume x in X;
      then ex G2 being Element of G1.allWSubgraphs() st x = G2 & G2 is
      minimumSpanningTree of G1;
      hence x in G1.allWSubgraphs();
    end;
    then reconsider X as finite Subset of G1.allWSubgraphs() by TARSKI:def 3;
    defpred Z[_finite _Graph, Nat] means not (PCS.($2+1))`2 c= the_Edges_of $1
    & for n being Nat st n <= $2 holds (PCS.n)`2 c= the_Edges_of $1;
    defpred P[_finite _Graph, _finite _Graph] means card (the_Edges_of $1 /\
    the_Edges_of G2) > card (the_Edges_of $2 /\ the_Edges_of G2) or (card (
the_Edges_of $1 /\ the_Edges_of G2) = card (the_Edges_of $2 /\ the_Edges_of G2)
    & for k1,k2 being Nat st Z[$1,k1] & Z[$2,k2] holds k1 >= k2);
A6: G1.edgesBetween(VG1) = EG1 by GLIB_000:34;
    now
      set M = the minimumSpanningTree of G1;
      set M9 = M|(WGraphSelectors);
      M9 == M & the_Weight_of M9 = the_Weight_of M by Lm4;
      then reconsider M9 as minimumSpanningTree of G1 by Th41;
      dom M9 = WGraphSelectors by Lm5;
      then M9 in G1.allWSubgraphs() by Def5;
      then M9 in X;
      hence X <> {};
    end;
    then reconsider X as non empty finite Subset of G1.allWSubgraphs();
    assume
A7: not G2 is minimumSpanningTree of G1;
A8: now
      let G be Element of X;
      G in X;
      then ex G9 being Element of G1.allWSubgraphs() st G = G9 & G9 is
      minimumSpanningTree of G1;
      then reconsider G9 = G as minimumSpanningTree of G1;
      defpred P4[Nat] means not (PCS.$1)`2c= the_Edges_of G9;
A9:  the_Vertices_of G2 = the_Vertices_of G9 by A3,GLIB_000:def 33;
A10:  now
        assume
A11:    the_Edges_of G2 = the_Edges_of G9;
        the_Weight_of G2 = (WG1) | the_Edges_of G2 by GLIB_003:def 10
          .= the_Weight_of G9 by A11,GLIB_003:def 10;
        hence contradiction by A7,A9,A11,Th41,GLIB_000:86;
      end;
      now
        assume the_Edges_of G2 c= the_Edges_of G9;
        then the_Edges_of G2 c< the_Edges_of G9 by A10,XBOOLE_0:def 8;
        then G2.size() + 1 < G9.size() + 1 by CARD_2:48,XREAL_1:8;
        then
A12:    G2.order() < G9.size() + 1 by A5,GLIB_002:46;
        G2.order() = G9.order() by A3,GLIB_000:def 33;
        hence contradiction by A12,GLIB_002:46;
      end;
      then
A13:  ex n being Nat st P4[n] by A4;
      consider k3 being Nat such that
A14:  P4[k3] & for n being Nat st P4[n] holds k3 <= n from NAT_1:sch
      5(A13 );
      now
        assume k3 = 0;
        then
        not (PRIM:Init(G1))`2 c= the_Edges_of G9 by A14,Def17;
        hence contradiction;
      end;
      then consider k2 being Nat such that
A16:  k2 + 1 = k3 by NAT_1:6;
      k2 + 1 - 1 < k3 - 0 by A16,XREAL_1:15;
      then
A17:  (PCS.k2)`2 c= the_Edges_of G9 by A14;
      now
        let n be Nat;
        assume n <= k2;
        then (PCS.n)`2 c= (PCS.k2)`2 by Th34;
        hence (PCS.n)`2 c= the_Edges_of G9 by A17;
      end;
      hence ex k1 being Nat st Z[G,k1] by A14,A16;
    end;
    now
      let x,y,z be Element of X;
      assume that
A18:  P[x,y] and
A19:  P[y,z];
      y in X;
      then consider y9 being WSubgraph of G1 such that
A20:  y9 = y and
      dom y9 = WGraphSelectors by Def5;
      set CY = card (the_Edges_of y9 /\ the_Edges_of G2);
      x in X;
      then consider x9 being WSubgraph of G1 such that
A21:  x9 = x and
      dom x9 = WGraphSelectors by Def5;
      z in X;
      then consider z9 being WSubgraph of G1 such that
A22:  z9 = z and
      dom z9 = WGraphSelectors by Def5;
      set CZ = card (the_Edges_of z9 /\ the_Edges_of G2);
      set CX = card (the_Edges_of x9 /\ the_Edges_of G2);
      now
        per cases by A18,A21,A20;
        suppose
A23:      CX > CY;
          now
            per cases by A19,A20,A22;
            suppose
              CY > CZ;
              hence P[x,z] by A21,A22,A23,XXREAL_0:2;
            end;
            suppose
              CY = CZ & for ky,kz being Nat st Z[y9,ky] & Z[z9,kz]
              holds ky >= kz;
              hence P[x,z] by A21,A22,A23;
            end;
          end;
          hence P[x,z];
        end;
        suppose
A24:      CX = CY & for kx,ky being Nat st Z[x9,kx] & Z[y9,ky] holds kx >= ky;
          now
            per cases by A19,A20,A22;
            suppose
              CY > CZ;
              hence P[x,z] by A21,A22,A24;
            end;
            suppose
A25:          CY = CZ & for ky,kz being Nat st Z[y9,ky] & Z[z9,kz]
              holds ky >= kz;
              consider zy being Nat such that
A26:          Z[y,zy] by A8;
              now
                let kx,kz be Nat;
                assume ( Z[x9,kx])& Z[z9,kz];
                then kx >= zy & zy >= kz by A20,A24,A25,A26;
                hence kx >= kz by XXREAL_0:2;
              end;
              hence P[x,z] by A21,A22,A24,A25;

            end;
          end;
          hence P[x,z];
        end;
      end;
      hence P[x,z];
    end;
    then
A27: for x,y,z being Element of X st P[x,y] & P[y,z] holds P[x,z];
A28: now
      let G be Element of X, k1,k2 be Nat;
      assume
A29:  ( Z[G,k1])& Z[G,k2];
      then k2+1 > k1;
      then
A30:  k2 >= k1 by NAT_1:13;
      k1+1 > k2 by A29;
      then k1 >= k2 by NAT_1:13;
      hence k1 = k2 by A30,XXREAL_0:1;
    end;
    now
      let x,y be Element of X;
      x in X;
      then consider x9 being WSubgraph of G1 such that
A31:  x9 = x and
      dom x9 = WGraphSelectors by Def5;
      set CX = card (the_Edges_of x9 /\ the_Edges_of G2);
      y in X;
      then consider y9 being WSubgraph of G1 such that
A32:  y9 = y and
      dom y9 = WGraphSelectors by Def5;
      set CY = card (the_Edges_of y9 /\ the_Edges_of G2);
      now
        per cases by XXREAL_0:1;
        suppose
          CX < CY;
          hence P[x,y] or P[y,x] by A31,A32;
        end;
        suppose
A33:      CY = CX;
          consider k1 being Nat such that
A34:      Z[x,k1] by A8;
          consider k2 being Nat such that
A35:      Z[y,k2] by A8;
          now
            per cases;
            suppose
A36:          k1 >= k2;
              now
                let z1,z2 be Nat;
                assume that
A37:            Z[x,z1] and
A38:            Z[y,z2 ];
                z1 = k1 by A28,A34,A37;
                hence z1 >= z2 by A28,A35,A36,A38;
              end;
              hence P[x,y] or P[y,x] by A31,A32,A33;
            end;
            suppose
A39:          k1 < k2;
              now
                let z1,z2 be Nat;
                assume that
A40:            Z[x,z1] and
A41:            Z[y,z2 ];
                z1 = k1 by A28,A34,A40;
                hence z1 <= z2 by A28,A35,A39,A41;
              end;
              hence P[x,y] or P[y,x] by A31,A32,A33;
            end;
          end;
          hence P[x,y] or P[y,x];
        end;
        suppose
          CX > CY;
          hence P[x,y] or P[y,x] by A31,A32;
        end;
      end;
      hence P[x,y] or P[y,x];
    end;
    then
A42: for x,y being Element of X holds P[x,y] or P[y,x];
A43: X is finite & X <> {} & X c= X;
    consider M being Element of X such that
A44: M in X & for y being Element of X st y in X holds P[M,y] from
    CQC_SIM1:sch 4(A43,A42,A27);
    ex x being Element of G1.allWSubgraphs() st M = x & x is
    minimumSpanningTree of G1 by A44;
    then reconsider M as minimumSpanningTree of G1;
    defpred P2[Nat] means not (PCS.$1)`2 c= the_Edges_of M;
A45: the_Vertices_of G2 = the_Vertices_of M by A3,GLIB_000:def 33;
A46: now
      assume
A47:  the_Edges_of G2 = the_Edges_of M;
      the_Weight_of G2 = (WG1) | the_Edges_of G2 by GLIB_003:def 10
        .= the_Weight_of M by A47,GLIB_003:def 10;
      hence contradiction by A7,A45,A47,Th41,GLIB_000:86;
    end;
    now
      assume the_Edges_of G2 c= the_Edges_of M;
      then the_Edges_of G2 c< the_Edges_of M by A46,XBOOLE_0:def 8;
      then G2.size() + 1 < M.size() + 1 by CARD_2:48,XREAL_1:8;
      then
A48:  G2.order() < M.size() + 1 by A5,GLIB_002:46;
      G2.order() = M.order() by A3,GLIB_000:def 33;
      hence contradiction by A48,GLIB_002:46;
    end;
    then
A49: ex k being Nat st P2[k] by A4;
    consider k being Nat such that
A50: P2[k] & for n being Nat st P2[n] holds k <= n from NAT_1:sch 5(
    A49);
    now
      assume k = 0;
      then
      not (PRIM:Init(G1))`2 c= the_Edges_of M by A50,Def17;
      hence contradiction;
    end;
    then consider k1o being Nat such that
A52: k = k1o + 1 by NAT_1:6;
    set Gk1b = PCS.k1o, Gk = PCS.k;
    k1o + 1 - 1 < k - 0 by A52,XREAL_1:15;
    then
A53: Gk1b`2 c= the_Edges_of M by A50;
    set Next = PRIM:NextBestEdges(Gk1b), ep = the Element of Next;
A54: Gk = PRIM:Step(Gk1b) by A52,Def17;
    then
A55: Next <> {} by A50,A53,Def15;
    then
A56: ep SJoins Gk1b`1, VG1 \ Gk1b`1,G1 by Def13;
    ex v being Vertex of G1 st ( not v in Gk1b`1)& Gk = [ Gk1b `1 \/ {v},
    Gk1b`2 \/ {ep} ] by A54,A55,Th28;
    then
A57: Gk`2 = Gk1b`2 \/ {ep};
    then
A58: not {ep} c= the_Edges_of M by A50,A53,XBOOLE_1:8;
    then
A59: not ep in the_Edges_of M by ZFMISC_1:31;
    set Mep = the inducedWSubgraph of G1,VG1, the_Edges_of M \/ {ep};
A60: ep in Next by A55;
    then {ep} c= EG1 by ZFMISC_1:31;
    then the_Edges_of M \/ {ep} c= EG1 by XBOOLE_1:8;
    then
A61: VG1 c= VG1 & the_Edges_of M \/ {ep} c= G1.edgesBetween(VG1) by GLIB_000:34
;
    then
A62: the_Vertices_of Mep = VG1 by GLIB_000:def 37;
    VG1 = the_Vertices_of M by GLIB_000:def 33;
    then VG1 c= VG1 & M is inducedWSubgraph of G1,VG1, the_Edges_of M by A6,
GLIB_000:def 37;
    then
A63: Mep.cost() = M.cost() + (WG1).ep by A60,A59,A6,Th11;
    set MG2 = the_Edges_of M /\ the_Edges_of G2;
A64: Gk`2 c= PMST`2 by Th42;
    ep in {ep} by TARSKI:def 1;
    then
A65: ep in Gk`2 by A57,XBOOLE_0:def 3;
    then
A66: {ep} /\ the_Edges_of G2 = {ep} by A4,A64,ZFMISC_1:46;
    now
      assume MG2 /\ {ep} <> {};
      then consider x being object such that
A67:  x in MG2 /\ {ep} by XBOOLE_0:def 1;
      x in {ep} by A67,XBOOLE_0:def 4;
      then
A68:  x = ep by TARSKI:def 1;
      x in MG2 by A67,XBOOLE_0:def 4;
      then x in the_Edges_of M by XBOOLE_0:def 4;
      hence contradiction by A58,A68,ZFMISC_1:31;
    end;
    then
A69: MG2 misses {ep} by XBOOLE_0:def 7;
    set v1 = (the_Source_of Mep).ep, v2 = (the_Target_of Mep).ep;
    set V = Gk1b`1;
A70: the_Weight_of Mep = (WG1) | the_Edges_of Mep by GLIB_003:def 10;
A71: VG1 = the_Vertices_of M by GLIB_000:def 33;
    then reconsider V as non empty Subset of the_Vertices_of M by Th30;
A72: the_Edges_of Mep = the_Edges_of M \/ {ep} by A61,GLIB_000:def 37;
    the_Vertices_of M c= the_Vertices_of Mep by A62;
    then reconsider M9=M as connected Subgraph of Mep by A72,GLIB_000:44
,XBOOLE_1:7;
    ep in {ep} by TARSKI:def 1;
    then
A73: ep in the_Edges_of Mep by A72,XBOOLE_0:def 3;
    the_Vertices_of Mep = the_Vertices_of M by A62,GLIB_000:def 33;
    then reconsider v1,v2 as Vertex of M by A73,FUNCT_2:5;
    consider W being Walk of M9 such that
A74: W is_Walk_from v2,v1 by GLIB_002:def 1;
    set PW = the Path of W;
    reconsider P=PW as Path of Mep by GLIB_001:175;
A75: PW is_Walk_from v2,v1 by A74,GLIB_001:160;
    then
A76: P is_Walk_from v2,v1 by GLIB_001:19;
A77: now
      reconsider PM = P as Walk of M;
      let n be odd Element of NAT;
      assume that
A78:  1 < n & n <= len P and
A79:  P.n = v2;
      v2 = P.first() by A76,GLIB_001:def 23
        .= P.(2*0+1) by GLIB_001:def 6;
      then n = len P by A78,A79,GLIB_001:def 28;
      then P.last() = v2 by A79,GLIB_001:def 7
        .= P.first() by A76,GLIB_001:def 23;
      then P is closed by GLIB_001:def 24;
      then
A80:  PM is closed by GLIB_001:176;
      PM is non trivial by A78,GLIB_001:126;
      then PM is Cycle-like by A80,GLIB_001:def 31;
      hence contradiction by GLIB_002:def 2;
    end;
A81: ep Joins v1,v2,Mep by A73;
    then
A82: ep Joins P.last(),v2,Mep by A76,GLIB_001:def 23;
    ep Joins v1,v2,G1 by A81,GLIB_000:72;
    then
A83: ep Joins v1,v2,G29 by A4,A65,A64,GLIB_000:73;
    v1 <> v2 by A83,GLIB_000:def 18;
    then v1 <> P.first() by A76,GLIB_001:def 23;
    then P.last() <> P.first() by A76,GLIB_001:def 23;
    then
A84: P is open by GLIB_001:def 24;
    PW.edges() c= the_Edges_of M;
    then P.edges() c= the_Edges_of M by GLIB_001:110;
    then not ep in P.edges() by A58,ZFMISC_1:31;
    then
A85: P.addEdge(ep) is Path-like by A84,A82,A77,GLIB_001:150;
    P.addEdge(ep) is_Walk_from v2,v2 by A76,A81,GLIB_001:66;
    then
A86: P.addEdge(ep) is closed by GLIB_001:119;
    the_Vertices_of M c= the_Vertices_of Mep by A62;
    then reconsider M9=M as connected Subgraph of Mep by A72,GLIB_000:44
,XBOOLE_1:7;
    the_Vertices_of M9 = the_Vertices_of Mep by A62,GLIB_000:def 33;
    then M9 is spanning;
    then
A87: Mep is connected by GLIB_002:23;
A88: v2 = P.1 by A75,GLIB_001:17;
    set C = P.addEdge(ep);
A89: v1 = P.(len P) by A75,GLIB_001:17;
A90: (the_Source_of G1).ep = v1 & (the_Target_of G1).ep = v2 by A73,
GLIB_000:def 32;
    now
      per cases by A56,A90;
      suppose
A91:    v1 in Gk1b`1 & v2 in VG1\Gk1b`1;
A92:    len C = len P + 2 & C.(len P + 1) = ep by A82,GLIB_001:64,65;
        defpred P3[Nat] means $1 is odd & $1 <= len P & P.$1 in Gk1b`1;
A93:    ex n being Nat st P3[n] by A89,A91;
        consider m being Nat such that
A94:    P3[m] & for n being Nat st P3[n] holds m <= n from NAT_1:sch
        5(A93 );
        reconsider m as odd Element of NAT by A94,ORDINAL1:def 12;
        1 <= m & m <> 1 by A88,A91,A94,ABIAN:12,XBOOLE_0:def 5;
        then 1 < m by XXREAL_0:1;
        then 1+1 <= m by NAT_1:13;
        then reconsider m2k = m-2*1 as odd Element of NAT by INT_1:5;
A95:    m2k < m - 0 by XREAL_1:15;
        then
A96:    m2k < len P by A94,XXREAL_0:2;
        then
A97:    not P.m2k in Gk1b`1 by A94,A95;
        set em = P.(m2k+1);
A98:    em in P.edges() by A96,GLIB_001:100;
        then consider i being even Element of NAT such that
A99:   1 <= i and
A100:   i <= len P and
A101:   P.i = em by GLIB_001:99;
        i in dom P by A99,A100,FINSEQ_3:25;
        then
A102:   C.i = em by A82,A101,GLIB_001:65;
        take em;
        C.edges() = P.edges() \/ {ep} by A82,GLIB_001:111;
        hence em in C.edges() by A98,XBOOLE_0:def 3;
A103:   len P + 1 <= len P + 2 by XREAL_1:7;
        len P + 0 < len P + 1 by XREAL_1:8;
        then i < len P + 1 by A100,XXREAL_0:2;
        hence em <> ep by A85,A99,A102,A92,A103,GLIB_001:138;
        m2k+2 = m;
        then
A104:   em Joins PW.m2k, PW.m, M by A96,GLIB_001:def 3;
        then PW.m2k in the_Vertices_of M by GLIB_000:13;
        then PW.m2k in the_Vertices_of M\Gk1b`1 by A97,XBOOLE_0:def 5;
        hence em SJoins V, the_Vertices_of M \ V, M by A94,A104;
      end;
      suppose
A105:   v2 in Gk1b`1 & v1 in VG1\Gk1b `1;
A106:   len C = len P + 2 & C.(len P + 1) = ep by A82,GLIB_001:64,65;
        defpred P3[Nat] means $1 is odd & $1 <= len P & P.$1 in VG1\Gk1b`1;
A107:   ex n being Nat st P3[n] by A89,A105;
        consider m being Nat such that
A108:   P3[m] & for n being Nat st P3[n] holds m <= n from NAT_1:sch
        5(A107);
        reconsider m as odd Element of NAT by A108,ORDINAL1:def 12;
        1 <= m & m <> 1 by A88,A105,A108,ABIAN:12,XBOOLE_0:def 5;
        then 1 < m by XXREAL_0:1;
        then 1+1 <= m by NAT_1:13;
        then reconsider m2k = m-2*1 as odd Element of NAT by INT_1:5;
A109:   m2k < m - 0 by XREAL_1:15;
        then
A110:   m2k < len P by A108,XXREAL_0:2;
A111:   now
          assume
A112:     not P.m2k in Gk1b`1;
          P.m2k in VG1 by A71,A110,GLIB_001:7;
          then P.m2k in VG1\Gk1b`1 by A112,XBOOLE_0:def 5;
          hence contradiction by A108,A109,A110;
        end;
        set em = P.(m2k+1);
A113:   em in P.edges() by A110,GLIB_001:100;
        then consider i being even Element of NAT such that
A114:   1 <= i and
A115:   i <= len P and
A116:   P.i = em by GLIB_001:99;
        i in dom P by A114,A115,FINSEQ_3:25;
        then
A117:   C.i = em by A82,A116,GLIB_001:65;
        take em;
        C.edges() = P.edges() \/ {ep} by A82,GLIB_001:111;
        hence em in C.edges() by A113,XBOOLE_0:def 3;
A118:   len P + 1 <= len P + 2 by XREAL_1:7;
        len P + 0 < len P + 1 by XREAL_1:8;
        then i < len P + 1 by A115,XXREAL_0:2;
        hence em <> ep by A85,A114,A117,A106,A118,GLIB_001:138;
        m2k+2 = m;
        then em Joins PW.m2k, PW.m, M by A110,GLIB_001:def 3;
        hence em SJoins V, the_Vertices_of M \ V, M by A71,A108,A111;
      end;
    end;
    then consider em being set such that
A119: em in C.edges() and
A120: em <> ep and
A121: em SJoins V, the_Vertices_of M \ V, M;
    set M2 = the weight-inheriting [Weighted] removeEdge of Mep,em;
    reconsider M2 as WSubgraph of G1 by GLIB_003:9;
A122: M2.order() = card VG1 by A62,GLIB_000:53
      .= M.order() by GLIB_000:def 33;
A123: em SJoins V, VG1 \ V, G1 by A71,A121,GLIB_000:72;
    then
A124: (WG1).ep <= (WG1).em by A55,Def13;
    set M29 = M2|(WGraphSelectors);
A125: M29 == M2 by Lm4;
A126: the_Edges_of M2 = the_Edges_of M \/ {ep} \{em} by A72,GLIB_000:51;
    then
A127: the_Edges_of M29 = the_Edges_of M \/ {ep} \ {em} by A125;
    {em} c= the_Edges_of M \/ {ep} by A72,A119,ZFMISC_1:31;
    then M2.size() = card (the_Edges_of M \/{ep})-card {em} by A126,CARD_2:44
      .= card (the_Edges_of M \/ {ep}) - 1 by CARD_1:30
      .= card the_Edges_of M + 1 - 1 by A59,CARD_2:41
      .= M.size();
    then
A128: M2.order() = M2.size() + 1 by A122,GLIB_002:46;
A129: the_Weight_of M29 = the_Weight_of M2 by Lm4;
    then reconsider M29 as WSubgraph of G1 by A125,GLIB_003:8;
A130: the_Vertices_of M29 = the_Vertices_of M2 by A125
      .= VG1 by A62,GLIB_000:53;
    P.addEdge(ep) is non trivial by A82,GLIB_001:132;
    then C is Cycle-like by A85,A86,GLIB_001:def 31;
    then M2 is connected by A119,A87,GLIB_002:5;
    then M2 is Tree-like by A128,GLIB_002:47;
    then M29 is Tree-like by Lm4,GLIB_002:48;
    then reconsider M29 as spanning Tree-like WSubgraph of G1 by A130,
GLIB_000:def 33;
    M2.cost() + (the_Weight_of Mep).em = Mep.cost() by A119,Th10;
    then M2.cost() = Mep.cost() - (the_Weight_of Mep).em;
    then M2.cost() = M.cost()+(WG1).ep-(WG1).em by A119,A63,A70,FUNCT_1:49;
    then M29.cost() = M.cost()+(WG1).ep - (WG1).em by A125,A129;
    then
A131: M29.cost() + (WG1).em - (WG1).em <= M.cost() + (WG1).ep - (WG1).ep
    by A124,XREAL_1:13;
    now
      let G3 being spanning Tree-like WSubgraph of G1;
      M.cost() <= G3.cost() by Def19;
      hence M29.cost() <= G3.cost() by A131,XXREAL_0:2;
    end;
    then reconsider M29 as minimumSpanningTree of G1 by Def19;
    set MG29 = the_Edges_of M29 /\ the_Edges_of G2;
A132: MG29 = ((the_Edges_of M \/ {ep}) /\ the_Edges_of G2) \ {em} /\
    the_Edges_of G2 by A127,XBOOLE_1:50;
    dom M29 = WGraphSelectors by Lm5;
    then M29 in G1.allWSubgraphs() by Def5;
    then
A133: M29 in X;
A134: now
      thus not (PCS.(k1o+1))`2 c= the_Edges_of M by A50,A52;
      let n be Nat;
      assume n <= k1o;
      then (PCS.n)`2 c= Gk1b`2 by Th34;
      hence (PCS.n)`2 c= the_Edges_of M by A53;
    end;
A135: now
      consider k2 being Nat such that
A136: Z[M29,k2] by A8,A133;
A137: now
        set Vr = VG1 \ V;
        assume
A138:   em in Gk1b`2;
A139:   Gk1b`2 c= G1.edgesBetween(Gk1b`1) by Th30;
        then (the_Target_of G1).em in Gk1b`1 by A138,GLIB_000:31;
        then
A140:   not (the_Target_of G1).em in Vr by XBOOLE_0:def 5;
        (the_Source_of G1).em in Gk1b`1 by A138,A139,GLIB_000:31;
        then not (the_Source_of G1).em in Vr by XBOOLE_0:def 5;
        hence contradiction by A123,A140;
      end;
      now
        let x be object;
        assume
A141:   x in Gk`2;
        now
          per cases by A57,A141,XBOOLE_0:def 3;
          suppose
            x in Gk1b`2;
            then x in the_Edges_of M \/ {ep} & not x in {em} by A53,A137,
TARSKI:def 1,XBOOLE_0:def 3;
            hence x in the_Edges_of M29 by A127,XBOOLE_0:def 5;
          end;
          suppose
A142:       x in {ep};
            then x = ep by TARSKI:def 1;
            then
A143:       not x in {em} by A120,TARSKI:def 1;
            x in the_Edges_of M \/ {ep} by A142,XBOOLE_0:def 3;
            hence x in the_Edges_of M29 by A127,A143,XBOOLE_0:def 5;
          end;
        end;
        hence x in the_Edges_of M29;
      end;
      then
A144: Gk`2 c= the_Edges_of M29;
A145: now
        assume k2 < k;
        then k2+1 <= k by NAT_1:13;
        then (PCS.(k2+1))`2 c= Gk`2 by Th34;
        hence contradiction by A136,A144,XBOOLE_1:1;
      end;
      assume
A146: em in the_Edges_of G2;
      now
        let x be object;
        assume x in {em};
        then x = em by TARSKI:def 1;
        hence x in (the_Edges_of M \/ {ep}) /\ the_Edges_of G2 by A72,A119,A146
,XBOOLE_0:def 4;
      end;
      then
A147: {em}c=(the_Edges_of M\/{ep})/\the_Edges_of G2;
      MG29=((the_Edges_of M\/{ep})/\the_Edges_of G2)\{em} by A132,A146,
ZFMISC_1:46;
      then card MG29 = card (the_Edges_of Mep /\ the_Edges_of G2) - card {em}
      by A72,A147,CARD_2:44
        .= card (the_Edges_of Mep /\ the_Edges_of G2) - 1 by CARD_1:30
        .= card (MG2 \/ {ep}) - 1 by A72,A66,XBOOLE_1:23
        .= card MG2 + card {ep} - 1 by A69,CARD_2:40
        .= card MG2 + 1 - 1 by CARD_1:30
        .= card MG2;
      then
A148: k1o >= k2 by A44,A133,A134,A136;
      k1o + 1 - 1 < k - 0 by A52,XREAL_1:15;
      hence contradiction by A145,A148,XXREAL_0:2;
    end;
    now
      assume {em} /\ the_Edges_of G2 <> {};
      then consider x being object such that
A149: x in {em} /\ the_Edges_of G2 by XBOOLE_0:def 1;
      x in {em} & x in the_Edges_of G2 by A149,XBOOLE_0:def 4;
      hence contradiction by A135,TARSKI:def 1;
    end;
    then
A150: MG29 = MG2 \/ ({ep} /\ the_Edges_of G2) by A132,XBOOLE_1:23;
    now
      assume MG2 /\ {ep} <> {};
      then consider x being object such that
A151: x in MG2 /\ {ep} by XBOOLE_0:def 1;
      x in {ep} by A151,XBOOLE_0:def 4;
      then
A152: x = ep by TARSKI:def 1;
      x in MG2 by A151,XBOOLE_0:def 4;
      then x in the_Edges_of M by XBOOLE_0:def 4;
      hence contradiction by A58,A152,ZFMISC_1:31;
    end;
    then MG2 misses {ep} by XBOOLE_0:def 7;
    then card MG29 = card MG2 + card {ep} by A66,A150,CARD_2:40
      .= card MG2 + 1 by CARD_1:30;
    then card MG2 + 0 >= card MG2 + 1 by A44,A133;
    hence contradiction by XREAL_1:6;
  end;
  hence thesis;
end;
