let G2 be _Graph; :: thesis: for v being object
for V1 being set
for V2 being finite set
for G1 being addAdjVertexAll of G2,v,V1 \/ V2 st V1 \/ V2 c= the_Vertices_of G2 & not v in the_Vertices_of G2 & V1 misses V2 holds
ex p being non empty Graph-yielding FinSequence st
( p . 1 = G2 & p . (len p) = G1 & len p = (card V2) + 2 & p . 2 is addAdjVertexAll of G2,v,V1 & ( for n being Element of dom p st 2 <= n & n <= (len p) - 1 holds
ex w being Vertex of G2 ex e being object st
( e in (the_Edges_of G1) \ (the_Edges_of (p . n)) & ( p . (n + 1) is addEdge of p . n,v,e,w or p . (n + 1) is addEdge of p . n,w,e,v ) ) ) )

let v be object ; :: thesis: for V1 being set
for V2 being finite set
for G1 being addAdjVertexAll of G2,v,V1 \/ V2 st V1 \/ V2 c= the_Vertices_of G2 & not v in the_Vertices_of G2 & V1 misses V2 holds
ex p being non empty Graph-yielding FinSequence st
( p . 1 = G2 & p . (len p) = G1 & len p = (card V2) + 2 & p . 2 is addAdjVertexAll of G2,v,V1 & ( for n being Element of dom p st 2 <= n & n <= (len p) - 1 holds
ex w being Vertex of G2 ex e being object st
( e in (the_Edges_of G1) \ (the_Edges_of (p . n)) & ( p . (n + 1) is addEdge of p . n,v,e,w or p . (n + 1) is addEdge of p . n,w,e,v ) ) ) )

let V1 be set ; :: thesis: for V2 being finite set
for G1 being addAdjVertexAll of G2,v,V1 \/ V2 st V1 \/ V2 c= the_Vertices_of G2 & not v in the_Vertices_of G2 & V1 misses V2 holds
ex p being non empty Graph-yielding FinSequence st
( p . 1 = G2 & p . (len p) = G1 & len p = (card V2) + 2 & p . 2 is addAdjVertexAll of G2,v,V1 & ( for n being Element of dom p st 2 <= n & n <= (len p) - 1 holds
ex w being Vertex of G2 ex e being object st
( e in (the_Edges_of G1) \ (the_Edges_of (p . n)) & ( p . (n + 1) is addEdge of p . n,v,e,w or p . (n + 1) is addEdge of p . n,w,e,v ) ) ) )

defpred S1[ Nat] means for V2 being finite set
for G1 being addAdjVertexAll of G2,v,V1 \/ V2 st V1 \/ V2 c= the_Vertices_of G2 & not v in the_Vertices_of G2 & V1 misses V2 & card V2 = $1 holds
ex p being non empty Graph-yielding FinSequence st
( p . 1 = G2 & p . (len p) = G1 & len p = (card V2) + 2 & p . 2 is addAdjVertexAll of G2,v,V1 & ( for n being Element of dom p st 2 <= n & n <= (len p) - 1 holds
ex w being Vertex of G2 ex e being object st
( e in (the_Edges_of G1) \ (the_Edges_of (p . n)) & ( p . (n + 1) is addEdge of p . n,v,e,w or p . (n + 1) is addEdge of p . n,w,e,v ) ) ) );
A1: S1[ 0 ]
proof
let V2 be finite set ; :: thesis: for G1 being addAdjVertexAll of G2,v,V1 \/ V2 st V1 \/ V2 c= the_Vertices_of G2 & not v in the_Vertices_of G2 & V1 misses V2 & card V2 = 0 holds
ex p being non empty Graph-yielding FinSequence st
( p . 1 = G2 & p . (len p) = G1 & len p = (card V2) + 2 & p . 2 is addAdjVertexAll of G2,v,V1 & ( for n being Element of dom p st 2 <= n & n <= (len p) - 1 holds
ex w being Vertex of G2 ex e being object st
( e in (the_Edges_of G1) \ (the_Edges_of (p . n)) & ( p . (n + 1) is addEdge of p . n,v,e,w or p . (n + 1) is addEdge of p . n,w,e,v ) ) ) )

let G1 be addAdjVertexAll of G2,v,V1 \/ V2; :: thesis: ( V1 \/ V2 c= the_Vertices_of G2 & not v in the_Vertices_of G2 & V1 misses V2 & card V2 = 0 implies ex p being non empty Graph-yielding FinSequence st
( p . 1 = G2 & p . (len p) = G1 & len p = (card V2) + 2 & p . 2 is addAdjVertexAll of G2,v,V1 & ( for n being Element of dom p st 2 <= n & n <= (len p) - 1 holds
ex w being Vertex of G2 ex e being object st
( e in (the_Edges_of G1) \ (the_Edges_of (p . n)) & ( p . (n + 1) is addEdge of p . n,v,e,w or p . (n + 1) is addEdge of p . n,w,e,v ) ) ) ) )

assume that
( V1 \/ V2 c= the_Vertices_of G2 & not v in the_Vertices_of G2 ) and
A2: ( V1 misses V2 & card V2 = 0 ) ; :: thesis: ex p being non empty Graph-yielding FinSequence st
( p . 1 = G2 & p . (len p) = G1 & len p = (card V2) + 2 & p . 2 is addAdjVertexAll of G2,v,V1 & ( for n being Element of dom p st 2 <= n & n <= (len p) - 1 holds
ex w being Vertex of G2 ex e being object st
( e in (the_Edges_of G1) \ (the_Edges_of (p . n)) & ( p . (n + 1) is addEdge of p . n,v,e,w or p . (n + 1) is addEdge of p . n,w,e,v ) ) ) )

reconsider p = <*G2,G1*> as non empty Graph-yielding FinSequence ;
take p ; :: thesis: ( p . 1 = G2 & p . (len p) = G1 & len p = (card V2) + 2 & p . 2 is addAdjVertexAll of G2,v,V1 & ( for n being Element of dom p st 2 <= n & n <= (len p) - 1 holds
ex w being Vertex of G2 ex e being object st
( e in (the_Edges_of G1) \ (the_Edges_of (p . n)) & ( p . (n + 1) is addEdge of p . n,v,e,w or p . (n + 1) is addEdge of p . n,w,e,v ) ) ) )

thus p . 1 = G2 ; :: thesis: ( p . (len p) = G1 & len p = (card V2) + 2 & p . 2 is addAdjVertexAll of G2,v,V1 & ( for n being Element of dom p st 2 <= n & n <= (len p) - 1 holds
ex w being Vertex of G2 ex e being object st
( e in (the_Edges_of G1) \ (the_Edges_of (p . n)) & ( p . (n + 1) is addEdge of p . n,v,e,w or p . (n + 1) is addEdge of p . n,w,e,v ) ) ) )

thus p . (len p) = p . 2 by FINSEQ_1:44
.= G1 ; :: thesis: ( len p = (card V2) + 2 & p . 2 is addAdjVertexAll of G2,v,V1 & ( for n being Element of dom p st 2 <= n & n <= (len p) - 1 holds
ex w being Vertex of G2 ex e being object st
( e in (the_Edges_of G1) \ (the_Edges_of (p . n)) & ( p . (n + 1) is addEdge of p . n,v,e,w or p . (n + 1) is addEdge of p . n,w,e,v ) ) ) )

thus len p = (card V2) + 2 by A2, FINSEQ_1:44; :: thesis: ( p . 2 is addAdjVertexAll of G2,v,V1 & ( for n being Element of dom p st 2 <= n & n <= (len p) - 1 holds
ex w being Vertex of G2 ex e being object st
( e in (the_Edges_of G1) \ (the_Edges_of (p . n)) & ( p . (n + 1) is addEdge of p . n,v,e,w or p . (n + 1) is addEdge of p . n,w,e,v ) ) ) )

V2 = {} by A2;
hence p . 2 is addAdjVertexAll of G2,v,V1 ; :: thesis: for n being Element of dom p st 2 <= n & n <= (len p) - 1 holds
ex w being Vertex of G2 ex e being object st
( e in (the_Edges_of G1) \ (the_Edges_of (p . n)) & ( p . (n + 1) is addEdge of p . n,v,e,w or p . (n + 1) is addEdge of p . n,w,e,v ) )

let n be Element of dom p; :: thesis: ( 2 <= n & n <= (len p) - 1 implies ex w being Vertex of G2 ex e being object st
( e in (the_Edges_of G1) \ (the_Edges_of (p . n)) & ( p . (n + 1) is addEdge of p . n,v,e,w or p . (n + 1) is addEdge of p . n,w,e,v ) ) )

assume ( 2 <= n & n <= (len p) - 1 ) ; :: thesis: ex w being Vertex of G2 ex e being object st
( e in (the_Edges_of G1) \ (the_Edges_of (p . n)) & ( p . (n + 1) is addEdge of p . n,v,e,w or p . (n + 1) is addEdge of p . n,w,e,v ) )

then ( 2 <= n & n <= 2 - 1 ) by FINSEQ_1:44;
hence ex w being Vertex of G2 ex e being object st
( e in (the_Edges_of G1) \ (the_Edges_of (p . n)) & ( p . (n + 1) is addEdge of p . n,v,e,w or p . (n + 1) is addEdge of p . n,w,e,v ) ) by XXREAL_0:2; :: thesis: verum
end;
A3: for k being Nat st S1[k] holds
S1[k + 1]
proof
let k be Nat; :: thesis: ( S1[k] implies S1[k + 1] )
assume A4: S1[k] ; :: thesis: S1[k + 1]
let V2 be finite set ; :: thesis: for G1 being addAdjVertexAll of G2,v,V1 \/ V2 st V1 \/ V2 c= the_Vertices_of G2 & not v in the_Vertices_of G2 & V1 misses V2 & card V2 = k + 1 holds
ex p being non empty Graph-yielding FinSequence st
( p . 1 = G2 & p . (len p) = G1 & len p = (card V2) + 2 & p . 2 is addAdjVertexAll of G2,v,V1 & ( for n being Element of dom p st 2 <= n & n <= (len p) - 1 holds
ex w being Vertex of G2 ex e being object st
( e in (the_Edges_of G1) \ (the_Edges_of (p . n)) & ( p . (n + 1) is addEdge of p . n,v,e,w or p . (n + 1) is addEdge of p . n,w,e,v ) ) ) )

let G1 be addAdjVertexAll of G2,v,V1 \/ V2; :: thesis: ( V1 \/ V2 c= the_Vertices_of G2 & not v in the_Vertices_of G2 & V1 misses V2 & card V2 = k + 1 implies ex p being non empty Graph-yielding FinSequence st
( p . 1 = G2 & p . (len p) = G1 & len p = (card V2) + 2 & p . 2 is addAdjVertexAll of G2,v,V1 & ( for n being Element of dom p st 2 <= n & n <= (len p) - 1 holds
ex w being Vertex of G2 ex e being object st
( e in (the_Edges_of G1) \ (the_Edges_of (p . n)) & ( p . (n + 1) is addEdge of p . n,v,e,w or p . (n + 1) is addEdge of p . n,w,e,v ) ) ) ) )

assume that
A5: ( V1 \/ V2 c= the_Vertices_of G2 & not v in the_Vertices_of G2 ) and
A6: ( V1 misses V2 & card V2 = k + 1 ) ; :: thesis: ex p being non empty Graph-yielding FinSequence st
( p . 1 = G2 & p . (len p) = G1 & len p = (card V2) + 2 & p . 2 is addAdjVertexAll of G2,v,V1 & ( for n being Element of dom p st 2 <= n & n <= (len p) - 1 holds
ex w being Vertex of G2 ex e being object st
( e in (the_Edges_of G1) \ (the_Edges_of (p . n)) & ( p . (n + 1) is addEdge of p . n,v,e,w or p . (n + 1) is addEdge of p . n,w,e,v ) ) ) )

set v0 = the Element of V2;
set V3 = V2 \ { the Element of V2};
A7: not V2 is empty by A6;
A8: V2 = (V2 \ { the Element of V2}) \/ { the Element of V2} by A7, ZFMISC_1:116;
V1 \/ (V2 \ { the Element of V2}) c= V1 \/ V2 by XBOOLE_1:9;
then A9: V1 \/ (V2 \ { the Element of V2}) c= the_Vertices_of G2 by A5, XBOOLE_1:1;
A10: V1 misses V2 \ { the Element of V2} by A6, XBOOLE_1:64;
the Element of V2 in { the Element of V2} by TARSKI:def 1;
then A11: not the Element of V2 in V2 \ { the Element of V2} by XBOOLE_0:def 5;
then A12: card V2 = (card (V2 \ { the Element of V2})) + 1 by A8, CARD_2:41;
then A13: card (V2 \ { the Element of V2}) = k by A6;
the Element of V2 in V1 \/ V2 by A7, XBOOLE_1:7, TARSKI:def 3;
then reconsider v0 = the Element of V2 as Vertex of G2 by A5;
V1 /\ V2 = {} by A6, XBOOLE_0:def 7;
then not v0 in V1 by A7, XBOOLE_0:def 4;
then A14: not v0 in V1 \/ (V2 \ { the Element of V2}) by A11, XBOOLE_0:def 3;
G1 is addAdjVertexAll of G2,v,(V1 \/ (V2 \ { the Element of V2})) \/ {v0} by A8, XBOOLE_1:4;
then consider G3 being addAdjVertexAll of G2,v,V1 \/ (V2 \ { the Element of V2}), e being object such that
A15: not e in the_Edges_of G3 and
A16: ( G1 is addEdge of G3,v,e,v0 or G1 is addEdge of G3,v0,e,v ) by A5, A9, A14, Lm9;
consider p being non empty Graph-yielding FinSequence such that
A17: ( p . 1 = G2 & p . (len p) = G3 & len p = (card (V2 \ { the Element of V2})) + 2 & p . 2 is addAdjVertexAll of G2,v,V1 ) and
A18: for n being Element of dom p st 2 <= n & n <= (len p) - 1 holds
ex w being Vertex of G2 ex e being object st
( e in (the_Edges_of G3) \ (the_Edges_of (p . n)) & ( p . (n + 1) is addEdge of p . n,v,e,w or p . (n + 1) is addEdge of p . n,w,e,v ) ) by A4, A5, A9, A10, A13;
reconsider q = p ^ <*G1*> as non empty Graph-yielding FinSequence ;
take q ; :: thesis: ( q . 1 = G2 & q . (len q) = G1 & len q = (card V2) + 2 & q . 2 is addAdjVertexAll of G2,v,V1 & ( for n being Element of dom q st 2 <= n & n <= (len q) - 1 holds
ex w being Vertex of G2 ex e being object st
( e in (the_Edges_of G1) \ (the_Edges_of (q . n)) & ( q . (n + 1) is addEdge of q . n,v,e,w or q . (n + 1) is addEdge of q . n,w,e,v ) ) ) )

1 in dom p by FINSEQ_5:6;
hence q . 1 = G2 by A17, FINSEQ_1:def 7; :: thesis: ( q . (len q) = G1 & len q = (card V2) + 2 & q . 2 is addAdjVertexAll of G2,v,V1 & ( for n being Element of dom q st 2 <= n & n <= (len q) - 1 holds
ex w being Vertex of G2 ex e being object st
( e in (the_Edges_of G1) \ (the_Edges_of (q . n)) & ( q . (n + 1) is addEdge of q . n,v,e,w or q . (n + 1) is addEdge of q . n,w,e,v ) ) ) )

A19: len q = (len p) + (len <*G1*>) by FINSEQ_1:22
.= (len p) + 1 by FINSEQ_1:40 ;
hence A20: q . (len q) = G1 by FINSEQ_1:42; :: thesis: ( len q = (card V2) + 2 & q . 2 is addAdjVertexAll of G2,v,V1 & ( for n being Element of dom q st 2 <= n & n <= (len q) - 1 holds
ex w being Vertex of G2 ex e being object st
( e in (the_Edges_of G1) \ (the_Edges_of (q . n)) & ( q . (n + 1) is addEdge of q . n,v,e,w or q . (n + 1) is addEdge of q . n,w,e,v ) ) ) )

thus len q = (card V2) + 2 by A12, A17, A19; :: thesis: ( q . 2 is addAdjVertexAll of G2,v,V1 & ( for n being Element of dom q st 2 <= n & n <= (len q) - 1 holds
ex w being Vertex of G2 ex e being object st
( e in (the_Edges_of G1) \ (the_Edges_of (q . n)) & ( q . (n + 1) is addEdge of q . n,v,e,w or q . (n + 1) is addEdge of q . n,w,e,v ) ) ) )

(2 + (card (V2 \ { the Element of V2}))) - (card (V2 \ { the Element of V2})) <= (len p) - 0 by A17, XREAL_1:13;
then 2 in dom p by FINSEQ_3:25;
hence q . 2 is addAdjVertexAll of G2,v,V1 by A17, FINSEQ_1:def 7; :: thesis: for n being Element of dom q st 2 <= n & n <= (len q) - 1 holds
ex w being Vertex of G2 ex e being object st
( e in (the_Edges_of G1) \ (the_Edges_of (q . n)) & ( q . (n + 1) is addEdge of q . n,v,e,w or q . (n + 1) is addEdge of q . n,w,e,v ) )

let n be Element of dom q; :: thesis: ( 2 <= n & n <= (len q) - 1 implies ex w being Vertex of G2 ex e being object st
( e in (the_Edges_of G1) \ (the_Edges_of (q . n)) & ( q . (n + 1) is addEdge of q . n,v,e,w or q . (n + 1) is addEdge of q . n,w,e,v ) ) )

assume A21: ( 2 <= n & n <= (len q) - 1 ) ; :: thesis: ex w being Vertex of G2 ex e being object st
( e in (the_Edges_of G1) \ (the_Edges_of (q . n)) & ( q . (n + 1) is addEdge of q . n,v,e,w or q . (n + 1) is addEdge of q . n,w,e,v ) )

per cases then ( n = (len q) - 1 or n <= (len p) - 1 ) by Lm12;
suppose A22: n = (len q) - 1 ; :: thesis: ex w being Vertex of G2 ex e being object st
( e in (the_Edges_of G1) \ (the_Edges_of (q . n)) & ( q . (n + 1) is addEdge of q . n,v,e,w or q . (n + 1) is addEdge of q . n,w,e,v ) )

then A23: q . (n + 1) = G1 by A20;
1 <= n by FINSEQ_3:25;
then n in dom p by A19, A22, FINSEQ_3:25;
then A26: q . n = G3 by A17, A19, A22, FINSEQ_1:def 7;
( v0 in the_Vertices_of G3 & v in the_Vertices_of G3 ) then ( e DJoins v,v0,G1 or e DJoins v0,v,G1 ) by A15, A16, GLIB_006:105;
then A28: e in the_Edges_of G1 by GLIB_000:def 14;
take v0 ; :: thesis: ex e being object st
( e in (the_Edges_of G1) \ (the_Edges_of (q . n)) & ( q . (n + 1) is addEdge of q . n,v,e,v0 or q . (n + 1) is addEdge of q . n,v0,e,v ) )

take e ; :: thesis: ( e in (the_Edges_of G1) \ (the_Edges_of (q . n)) & ( q . (n + 1) is addEdge of q . n,v,e,v0 or q . (n + 1) is addEdge of q . n,v0,e,v ) )
thus e in (the_Edges_of G1) \ (the_Edges_of (q . n)) by A15, A26, A28, XBOOLE_0:def 5; :: thesis: ( q . (n + 1) is addEdge of q . n,v,e,v0 or q . (n + 1) is addEdge of q . n,v0,e,v )
thus ( q . (n + 1) is addEdge of q . n,v,e,v0 or q . (n + 1) is addEdge of q . n,v0,e,v ) by A16, A23, A26; :: thesis: verum
end;
suppose A29: n <= (len p) - 1 ; :: thesis: ex w being Vertex of G2 ex e being object st
( e in (the_Edges_of G1) \ (the_Edges_of (q . n)) & ( q . (n + 1) is addEdge of q . n,v,e,w or q . (n + 1) is addEdge of q . n,w,e,v ) )

then A30: 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 A30, FINSEQ_3:25;
consider w being Vertex of G2, e being object such that
A31: ( e in (the_Edges_of G3) \ (the_Edges_of (p . m)) & ( p . (m + 1) is addEdge of p . m,v,e,w or p . (m + 1) is addEdge of p . m,w,e,v ) ) by A18, A21, A29;
( 1 + 0 <= n + 1 & n + 1 <= ((len p) - 1) + 1 ) by A29, XREAL_1:6;
then n + 1 in dom p by FINSEQ_3:25;
then A32: q . (n + 1) = p . (m + 1) by FINSEQ_1:def 7;
A33: q . n = p . m by FINSEQ_1:def 7;
the_Edges_of G3 c= the_Edges_of G1 by A16, GLIB_006:def 9;
then A34: (the_Edges_of G3) \ (the_Edges_of (p . m)) c= (the_Edges_of G1) \ (the_Edges_of (p . m)) by XBOOLE_1:33;
take w ; :: thesis: ex e being object st
( e in (the_Edges_of G1) \ (the_Edges_of (q . n)) & ( q . (n + 1) is addEdge of q . n,v,e,w or q . (n + 1) is addEdge of q . n,w,e,v ) )

take e ; :: thesis: ( e in (the_Edges_of G1) \ (the_Edges_of (q . n)) & ( q . (n + 1) is addEdge of q . n,v,e,w or q . (n + 1) is addEdge of q . n,w,e,v ) )
thus ( e in (the_Edges_of G1) \ (the_Edges_of (q . n)) & ( q . (n + 1) is addEdge of q . n,v,e,w or q . (n + 1) is addEdge of q . n,w,e,v ) ) by A31, A32, A33, A34; :: thesis: verum
end;
end;
end;
for k being Nat holds S1[k] from NAT_1:sch 2(A1, A3);
hence for V2 being finite set
for G1 being addAdjVertexAll of G2,v,V1 \/ V2 st V1 \/ V2 c= the_Vertices_of G2 & not v in the_Vertices_of G2 & V1 misses V2 holds
ex p being non empty Graph-yielding FinSequence st
( p . 1 = G2 & p . (len p) = G1 & len p = (card V2) + 2 & p . 2 is addAdjVertexAll of G2,v,V1 & ( for n being Element of dom p st 2 <= n & n <= (len p) - 1 holds
ex w being Vertex of G2 ex e being object st
( e in (the_Edges_of G1) \ (the_Edges_of (p . n)) & ( p . (n + 1) is addEdge of p . n,v,e,w or p . (n + 1) is addEdge of p . n,w,e,v ) ) ) ) ; :: thesis: verum