set D = (the_Vertices_of G) \/ (the_Edges_of G);
set X = { x where x is Element of ((the_Vertices_of G) \/ (the_Edges_of G)) * : len x <= (2 * (G .size())) + 1 } ;
A1:
now for W being Trail of G holds len W <= (2 * (G .size())) + 1let W be
Trail of
G;
len W <= (2 * (G .size())) + 1consider f being
Function such that A2:
(
dom f = W .edgeSeq() & ( for
x being
object st
x in W .edgeSeq() holds
f . x = x `2 ) )
from FUNCT_1:sch 3();
now for x1, x2 being object st x1 in dom f & x2 in dom f & f . x1 = f . x2 holds
x1 = x2A3:
W .edgeSeq() is
one-to-one
by Def27;
let x1,
x2 be
object ;
( x1 in dom f & x2 in dom f & f . x1 = f . x2 implies x1 = x2 )assume that A4:
x1 in dom f
and A5:
x2 in dom f
and A6:
f . x1 = f . x2
;
x1 = x2consider a1,
b1 being
object such that A7:
x1 = [a1,b1]
by A2, A4, RELAT_1:def 1;
A8:
a1 in dom (W .edgeSeq())
by A2, A4, A7, FUNCT_1:1;
A9:
f . x2 = x2 `2
by A2, A5;
A10:
(W .edgeSeq()) . a1 = b1
by A2, A4, A7, FUNCT_1:1;
consider a2,
b2 being
object such that A11:
x2 = [a2,b2]
by A2, A5, RELAT_1:def 1;
A12:
a2 in dom (W .edgeSeq())
by A2, A5, A11, FUNCT_1:1;
f . x1 = x1 `2
by A2, A4;
then A13:
b1 =
f . x1
by A7
.=
b2
by A6, A9, A11
;
then
(W .edgeSeq()) . a2 = b1
by A2, A5, A11, FUNCT_1:1;
hence
x1 = x2
by A7, A11, A13, A3, A8, A10, A12, FUNCT_1:def 4;
verum end; then A14:
f is
one-to-one
by FUNCT_1:def 4;
then
rng f c= the_Edges_of G
by TARSKI:def 3;
then
Segm (card (W .edgeSeq())) c= Segm (card (the_Edges_of G))
by A2, A14, CARD_1:10;
then
len (W .edgeSeq()) <= card (the_Edges_of G)
by NAT_1:39;
then
len (W .edgeSeq()) <= G .size()
by GLIB_000:def 25;
then
2
* (len (W .edgeSeq())) <= 2
* (G .size())
by XREAL_1:64;
then
(2 * (len (W .edgeSeq()))) + 1
<= (2 * (G .size())) + 1
by XREAL_1:7;
hence
len W <= (2 * (G .size())) + 1
by Def15;
verum end;
then
G .allTrails() c= { x where x is Element of ((the_Vertices_of G) \/ (the_Edges_of G)) * : len x <= (2 * (G .size())) + 1 }
by TARSKI:def 3;
hence
G .allTrails() is finite
by FINSET_1:1, GRAPH_5:3; verum