defpred S1[ Nat] means ex G being _Graph ex v being Vertex of G st
( G is n + 1 -vertex & G is n -edge & G is Path-like & ( not G is _trivial implies v is endvertex ) );
A1:
S1[ 0 ]
A2:
for m being Nat st S1[m] holds
S1[m + 1]
proof
let m be
Nat;
( S1[m] implies S1[m + 1] )
assume
S1[
m]
;
S1[m + 1]
then consider G2 being
_Graph,
v2 being
Vertex of
G2 such that A3:
(
G2 is
m + 1
-vertex &
G2 is
m -edge &
G2 is
Path-like )
and A4:
( not
G2 is
_trivial implies
v2 is
endvertex )
;
take G1 = the
addAdjVertex of
G2,
v2,
the_Edges_of G2,
the_Vertices_of G2;
ex v being Vertex of G1 st
( G1 is (m + 1) + 1 -vertex & G1 is m + 1 -edge & G1 is Path-like & ( not G1 is _trivial implies v is endvertex ) )
A5:
( not
the_Edges_of G2 in the_Edges_of G2 & not
the_Vertices_of G2 in the_Vertices_of G2 )
;
reconsider v1 =
the_Vertices_of G2 as
Vertex of
G1 by A5, GLIB_006:129;
take
v1
;
( G1 is (m + 1) + 1 -vertex & G1 is m + 1 -edge & G1 is Path-like & ( not G1 is _trivial implies v1 is endvertex ) )
G1 .order() =
(G2 .order()) +` 1
by A5, GLIB_006:150
.=
(m + 1) +` 1
by A3, GLIB_013:def 3
.=
(m + 1) + 1
;
hence
G1 is
(m + 1) + 1
-vertex
by GLIB_013:def 3;
( G1 is m + 1 -edge & G1 is Path-like & ( not G1 is _trivial implies v1 is endvertex ) )
G1 .size() =
(G2 .size()) +` 1
by A5, GLIB_006:150
.=
m +` 1
by A3, GLIB_013:def 4
.=
m + 1
;
hence
G1 is
m + 1
-edge
by GLIB_013:def 4;
( G1 is Path-like & ( not G1 is _trivial implies v1 is endvertex ) )
thus
G1 is
Path-like
by A3, A4, Th18;
( not G1 is _trivial implies v1 is endvertex )
assume
not
G1 is
_trivial
;
v1 is endvertex
thus
v1 is
endvertex
by A5, GLIB_006:141;
verum
end;
for m being Nat holds S1[m]
from NAT_1:sch 2(A1, A2);
then consider G being _Graph, v being Vertex of G such that
A8:
( G is n + 1 -vertex & G is n -edge & G is Path-like )
and
( not G is _trivial implies v is endvertex )
;
take
G
; ( G is n + 1 -vertex & G is n -edge & G is Path-like )
thus
( G is n + 1 -vertex & G is n -edge & G is Path-like )
by A8; verum