let C be simple Cycle-like _Graph; :: thesis: for v being Vertex of C ex P being non _trivial Path-like _Graph st
( not v in the_Vertices_of P & C is addAdjVertexAll of P,v, Endvertices P )

let v be Vertex of C; :: thesis: ex P being non _trivial Path-like _Graph st
( not v in the_Vertices_of P & C is addAdjVertexAll of P,v, Endvertices P )

set P = the removeVertex of C,v;
A1: not C is _trivial ;
then A2: the removeVertex of C,v is Path-like by Th54;
not the removeVertex of C,v is _trivial
proof end;
then reconsider P = the removeVertex of C,v as non _trivial Path-like _Graph by A2;
take P ; :: thesis: ( not v in the_Vertices_of P & C is addAdjVertexAll of P,v, Endvertices P )
A5: the_Vertices_of P = (the_Vertices_of C) \ {v} by A1, GLIB_000:47;
hence A6: not v in the_Vertices_of P by ZFMISC_1:56; :: thesis: C is addAdjVertexAll of P,v, Endvertices P
A7: C is Supergraph of P by GLIB_006:57;
A8: the_Edges_of P = C .edgesBetween ((the_Vertices_of C) \ {v}) by A1, GLIB_000:47;
now :: thesis: ( the_Vertices_of C = (the_Vertices_of P) \/ {v} & ( for e being object holds
( not e Joins v,v,C & ( for v1 being object holds
( ( not v1 in Endvertices P implies not e Joins v1,v,C ) & ( for v2 being object st v1 <> v & v2 <> v & e DJoins v1,v2,C holds
e DJoins v1,v2,P ) ) ) ) ) & ex E being set st
( card (Endvertices P) = card E & E misses the_Edges_of P & the_Edges_of C = (the_Edges_of P) \/ E & ( for v1 being object st v1 in Endvertices P holds
ex e1 being object st
( e1 in E & e1 Joins v1,v,C & ( for e2 being object st e2 Joins v1,v,C holds
e1 = e2 ) ) ) ) )
thus the_Vertices_of C = (the_Vertices_of P) \/ {v} by A5, ZFMISC_1:116; :: thesis: ( ( for e being object holds
( not e Joins v,v,C & ( for v1 being object holds
( ( not v1 in Endvertices P implies not e Joins v1,v,C ) & ( for v2 being object st v1 <> v & v2 <> v & e DJoins v1,v2,C holds
e DJoins v1,v2,P ) ) ) ) ) & ex E being set st
( card (Endvertices P) = card E & E misses the_Edges_of P & the_Edges_of C = (the_Edges_of P) \/ E & ( for v1 being object st v1 in Endvertices P holds
ex e1 being object st
( e1 in E & e1 Joins v1,v,C & ( for e2 being object st e2 Joins v1,v,C holds
e1 = e2 ) ) ) ) )

hereby :: thesis: ex E being set st
( card (Endvertices P) = card E & E misses the_Edges_of P & the_Edges_of C = (the_Edges_of P) \/ E & ( for v1 being object st v1 in Endvertices P holds
ex e1 being object st
( e1 in E & e1 Joins v1,v,C & ( for e2 being object st e2 Joins v1,v,C holds
e1 = e2 ) ) ) )
let e be object ; :: thesis: ( not e Joins v,v,C & ( for v1 being object holds
( ( not v1 in Endvertices P implies not e Joins v1,v,C ) & ( for v2 being object st v1 <> v & v2 <> v & e DJoins v1,v2,C holds
e DJoins v1,v2,P ) ) ) )

thus A10: not e Joins v,v,C by GLIB_000:18; :: thesis: for v1 being object holds
( ( not v1 in Endvertices P implies not e Joins v1,v,C ) & ( for v2 being object st v1 <> v & v2 <> v & e DJoins v1,v2,C holds
e DJoins v1,v2,P ) )

let v1 be object ; :: thesis: ( ( not v1 in Endvertices P implies not e Joins v1,v,C ) & ( for v2 being object st v1 <> v & v2 <> v & e DJoins v1,v2,C holds
e DJoins v1,v2,P ) )

hereby :: thesis: for v2 being object st v1 <> v & v2 <> v & e DJoins v1,v2,C holds
e DJoins v1,v2,P
assume A11: ( not v1 in Endvertices P & e Joins v1,v,C ) ; :: thesis: contradiction
then reconsider v1 = v1 as Vertex of C by GLIB_000:13;
v <> v1 by A10, A11;
then reconsider v2 = v1 as Vertex of P by A5, ZFMISC_1:56;
v2 .degree() <= 2 by Th17;
then not not v2 .degree() = 0 & ... & not v2 .degree() = 2 ;
per cases then ( v2 .degree() = 0 or v2 .degree() = 1 or v2 .degree() = 2 ) ;
suppose v2 .degree() = 2 ; :: thesis: contradiction
end;
end;
end;
let v2 be object ; :: thesis: ( v1 <> v & v2 <> v & e DJoins v1,v2,C implies e DJoins v1,v2,P )
assume A17: ( v1 <> v & v2 <> v & e DJoins v1,v2,C ) ; :: thesis: e DJoins v1,v2,P
then A18: e Joins v1,v2,C by GLIB_000:16;
then ( v1 in the_Vertices_of C & v2 in the_Vertices_of C ) by GLIB_000:13;
then ( v1 in (the_Vertices_of C) \ {v} & v2 in (the_Vertices_of C) \ {v} ) by A17, ZFMISC_1:56;
then A19: e in the_Edges_of P by A8, A18, GLIB_000:32;
( e is set & v1 is set & v2 is set ) by TARSKI:1;
hence e DJoins v1,v2,P by A17, A19, GLIB_000:73; :: thesis: verum
end;
thus ex E being set st
( card (Endvertices P) = card E & E misses the_Edges_of P & the_Edges_of C = (the_Edges_of P) \/ E & ( for v1 being object st v1 in Endvertices P holds
ex e1 being object st
( e1 in E & e1 Joins v1,v,C & ( for e2 being object st e2 Joins v1,v,C holds
e1 = e2 ) ) ) ) :: thesis: verum
proof
take E = v .edgesInOut() ; :: thesis: ( card (Endvertices P) = card E & E misses the_Edges_of P & the_Edges_of C = (the_Edges_of P) \/ E & ( for v1 being object st v1 in Endvertices P holds
ex e1 being object st
( e1 in E & e1 Joins v1,v,C & ( for e2 being object st e2 Joins v1,v,C holds
e1 = e2 ) ) ) )

consider P0 being vertex-distinct Path of P such that
( P0 .vertices() = the_Vertices_of P & P0 .edges() = the_Edges_of P ) and
A20: ( Endvertices P = {(P0 .first()),(P0 .last())} iff not P is _trivial ) and
( P0 is trivial iff P is _trivial ) and
A21: ( P0 is closed iff P is _trivial ) and
P0 is minlength by Th31;
A22: P0 .first() <> P0 .last() by A21, GLIB_001:def 24;
thus card (Endvertices P) = 2 by A20, A22, CARD_2:57
.= v .degree() by GLIB_016:def 4
.= card E by GLIB_000:19 ; :: thesis: ( E misses the_Edges_of P & the_Edges_of C = (the_Edges_of P) \/ E & ( for v1 being object st v1 in Endvertices P holds
ex e1 being object st
( e1 in E & e1 Joins v1,v,C & ( for e2 being object st e2 Joins v1,v,C holds
e1 = e2 ) ) ) )

thus E misses the_Edges_of P :: thesis: ( the_Edges_of C = (the_Edges_of P) \/ E & ( for v1 being object st v1 in Endvertices P holds
ex e1 being object st
( e1 in E & e1 Joins v1,v,C & ( for e2 being object st e2 Joins v1,v,C holds
e1 = e2 ) ) ) )
proof
assume E meets the_Edges_of P ; :: thesis: contradiction
then consider x being object such that
A23: ( x in E & x in the_Edges_of P ) by XBOOLE_0:3;
consider w being Vertex of C such that
A24: x Joins v,w,C by A23, GLIB_000:64;
x Joins v,w,P by A23, A24, GLIB_000:73;
then v in the_Vertices_of P by GLIB_000:13;
hence contradiction by A5, ZFMISC_1:56; :: thesis: verum
end;
for x being object holds
( x in the_Edges_of C iff ( x in the_Edges_of P or x in E ) )
proof
let x be object ; :: thesis: ( x in the_Edges_of C iff ( x in the_Edges_of P or x in E ) )
thus ( not x in the_Edges_of C or x in the_Edges_of P or x in E ) :: thesis: ( ( x in the_Edges_of P or x in E ) implies x in the_Edges_of C )
proof
assume A25: x in the_Edges_of C ; :: thesis: ( x in the_Edges_of P or x in E )
set w1 = (the_Source_of C) . x;
set w2 = (the_Target_of C) . x;
A26: x Joins (the_Source_of C) . x,(the_Target_of C) . x,C by A25, GLIB_000:def 13;
then reconsider w1 = (the_Source_of C) . x, w2 = (the_Target_of C) . x as Vertex of C by GLIB_000:13;
reconsider x = x as set by TARSKI:1;
per cases ( w1 = v or w2 = v or ( w1 <> v & w2 <> v ) ) ;
suppose ( w1 = v or w2 = v ) ; :: thesis: ( x in the_Edges_of P or x in E )
then ( x Joins v,w2,C or x Joins v,w1,C ) by A26, GLIB_000:14;
hence ( x in the_Edges_of P or x in E ) by GLIB_000:64; :: thesis: verum
end;
end;
end;
assume ( x in the_Edges_of P or x in E ) ; :: thesis: x in the_Edges_of C
end;
hence the_Edges_of C = (the_Edges_of P) \/ E by XBOOLE_0:def 3; :: thesis: for v1 being object st v1 in Endvertices P holds
ex e1 being object st
( e1 in E & e1 Joins v1,v,C & ( for e2 being object st e2 Joins v1,v,C holds
e1 = e2 ) )

let v1 be object ; :: thesis: ( v1 in Endvertices P implies ex e1 being object st
( e1 in E & e1 Joins v1,v,C & ( for e2 being object st e2 Joins v1,v,C holds
e1 = e2 ) ) )

assume A29: v1 in Endvertices P ; :: thesis: ex e1 being object st
( e1 in E & e1 Joins v1,v,C & ( for e2 being object st e2 Joins v1,v,C holds
e1 = e2 ) )

then reconsider w1 = v1 as Vertex of P ;
reconsider w2 = w1 as Vertex of C by A5, XBOOLE_0:def 5;
take e1 = the Element of (w2 .edgesInOut()) \ (w1 .edgesInOut()); :: thesis: ( e1 in E & e1 Joins v1,v,C & ( for e2 being object st e2 Joins v1,v,C holds
e1 = e2 ) )

(w2 .edgesInOut()) \ (w1 .edgesInOut()) <> {} then A33: ( e1 in w2 .edgesInOut() & not e1 in w1 .edgesInOut() ) by XBOOLE_0:def 5;
then consider u being Vertex of C such that
A34: e1 Joins w2,u,C by GLIB_000:64;
A35: u = v hence e1 in E by A34, GLIB_000:14, GLIB_000:64; :: thesis: ( e1 Joins v1,v,C & ( for e2 being object st e2 Joins v1,v,C holds
e1 = e2 ) )

thus ( e1 Joins v1,v,C & ( for e2 being object st e2 Joins v1,v,C holds
e1 = e2 ) ) by A34, A35, GLIB_000:def 20; :: thesis: verum
end;
end;
hence C is addAdjVertexAll of P,v, Endvertices P by A6, A7, GLIB_007:def 4; :: thesis: verum