
theorem Th82:
  for G being _finite simple connected _Graph
  ex p being non empty _finite simple connected Graph-yielding FinSequence
  st p.1 is _trivial edgeless & p.len p = G & len p = G.order() &
    for n being Element of dom p st n <= len p - 1
    ex v being object, V being non empty finite set
    st v in the_Vertices_of G \ the_Vertices_of p.n &
      V c= the_Vertices_of p.n & p.(n+1) is addAdjVertexAll of p.n,v,V
proof
  defpred P[Nat] means for G being _finite simple connected _Graph
    st G.order() = $1
    ex p being non empty _finite simple connected Graph-yielding FinSequence
    st p.1 is _trivial edgeless & p.len p = G & len p = G.order() &
      for n being Element of dom p st n <= len p - 1
      ex v being object, V being non empty finite set
      st v in the_Vertices_of G \ the_Vertices_of p.n &
        V c= the_Vertices_of p.n & p.(n+1) is addAdjVertexAll of p.n,v,V;
  A1: P[1]
  proof
    let G be _finite simple connected _Graph;
    assume A2: G.order() = 1;
    set p = <* G *>;
    take p;
    G is _trivial by A2, GLIB_000:26;
    hence p.1 is _trivial edgeless;
    thus p.len p = p.1 by FINSEQ_1:40
      .= G;
    thus len p = G.order() by A2, FINSEQ_1:40;
    let n be Element of dom p;
    1 <= n & n <= len p by FINSEQ_3:25;
    then 1 <= n & n <= 1 by FINSEQ_1:40;
    then A3: n = 1 by XXREAL_0:1;
    assume n <= len p - 1;
    then n <= 1 - 1 by FINSEQ_1:40;
    hence thesis by A3;
  end;
  A4: for k being non zero Nat st P[k] holds P[k+1]
  proof
    let k be non zero Nat;
    assume A5: P[k];
    let G be _finite simple connected _Graph;
    assume A6: G.order() = k+1;
    A7: G is non _trivial
    proof
      assume G is _trivial;
      then G.order() = 0 + 1 by GLIB_000:26;
      hence contradiction by A6;
    end;
    then consider v9, v0 being Vertex of G such that
      v9 <> v0 & v9 is non cut-vertex and
      A8: v0 is non cut-vertex by GLIB_002:37;
    set G2 = the removeVertex of G,v0;
    A9: G2.order() + 1 = G.order() by A7, GLIB_000:48;
    then A10: G2.order() = k by A6;
    G2 is connected by A8, GLIB_002:36;
    then consider p being
      non empty _finite simple connected Graph-yielding FinSequence such that
      A11: p.1 is _trivial edgeless & p.len p = G2 & len p = G2.order() and
      A12: for n being Element of dom p st n <= len p - 1
        ex v being object, V being non empty finite set
        st v in the_Vertices_of G2 \ the_Vertices_of p.n &
          V c= the_Vertices_of p.n & p.(n+1) is addAdjVertexAll of p.n,v,V
      by A5, A10;
    set q = p ^ <* G *>;
    take q;
    1 in dom p by FINSEQ_5:6;
    hence q.1 is _trivial edgeless by A11, FINSEQ_1:def 7;
    A13: len q = len p + len <* G *> by FINSEQ_1:22
      .= len p + 1 by FINSEQ_1:40;
    hence A14: q.len q = G by FINSEQ_1:42;
    thus len q = G.order() by A9, A11, A13;
    let n be Element of dom q;
    assume n <= len q - 1;
    then per cases by Lm12;
    suppose A15: n = len q - 1;
      then A16: q.(n+1) = G by A14;
      A17: 1 <= n by FINSEQ_3:25;
      A18: n = len p by A13, A15;
      then n in dom p by A17, FINSEQ_3:25;
      then A19: q.n = G2 by A11, A18, FINSEQ_1:def 7;
      reconsider V = v0.allNeighbors() as non empty finite set by A7;
      take v0,V;
      v0 in {v0} by TARSKI:def 1;
      then not v0 in the_Vertices_of G \ {v0} by XBOOLE_0:def 5;
      then not v0 in the_Vertices_of G2 by A7, GLIB_000:47;
      hence v0 in the_Vertices_of G \ the_Vertices_of q.n
        by A19, XBOOLE_0:def 5;
      for x being object st x in V holds x in the_Vertices_of G2
      proof
        let x be object;
        assume A20: x in V;
        then x <> v0 by GLIB_000:112;
        then A21: not x in {v0} by TARSKI:def 1;
        x in the_Vertices_of G \ {v0} by A20, A21, XBOOLE_0:def 5;
        hence thesis by A7, GLIB_000:47;
      end;
      hence V c= the_Vertices_of q.n by A19, TARSKI:def 3;
      thus q.(n+1) is addAdjVertexAll of q.n,v0,V by A7, A16, A19, Th47;
    end;
    suppose A22: n <= len p - 1;
      then A23: n+0 <= len p - 1 + 1 by XREAL_1:7;
      1 <= n by FINSEQ_3:25;
      then reconsider m = n as Element of dom p by A23, FINSEQ_3:25;
      consider v being object, V being non empty finite set such that
        A24: v in the_Vertices_of G2 \ the_Vertices_of p.m &
          V c= the_Vertices_of p.m & p.(m+1) is addAdjVertexAll of p.m,v,V
        by A12, A22;
      1+0 <= n+1 & n+1 <= len p - 1 + 1 by A22, XREAL_1:6;
      then n+1 in dom p by FINSEQ_3:25;
      then A25: q.(n+1) = p.(m+1) by FINSEQ_1:def 7;
      A26: q.n = p.m by FINSEQ_1:def 7;
      take v,V;
      the_Vertices_of G2 \ the_Vertices_of p.m
        c= the_Vertices_of G \ the_Vertices_of p.m by XBOOLE_1:33;
      hence v in the_Vertices_of G \ the_Vertices_of q.n by A24, A26;
      thus thesis by A24, A25, A26;
    end;
  end;
  for k being non zero Nat holds P[k] from NAT_1:sch 10(A1,A4);
  hence thesis;
end;
