glib_001.miz
begin
theorem ::
GLIB_001:1
Th1: for x,y be
odd
Element of
NAT holds x
< y iff (x
+ 2)
<= y
proof
let x,y be
odd
Element of
NAT ;
hereby
assume x
< y;
then (x
+ 1)
<= y by
NAT_1: 13;
then (x
+ 1)
< y by
XXREAL_0: 1;
then ((x
+ 1)
+ 1)
< (y
+ 1) by
XREAL_1: 8;
hence (x
+ 2)
<= y by
NAT_1: 13;
end;
assume (x
+ 2)
<= y;
then ((x
+ 2)
- 2)
< (y
-
0 ) by
XREAL_1: 15;
hence thesis;
end;
::$Canceled
theorem ::
GLIB_001:3
Th2: for X be
set, fs be
FinSequence of X, fss be
Subset of fs holds (
len (
Seq fss))
<= (
len fs)
proof
let X be
set, fs be
FinSequence of X, fss be
Subset of fs;
A1: (
Seq fss)
= (fss
* (
Sgm (
dom fss))) by
FINSEQ_1:def 14;
(
dom fss)
c= (
dom fs) by
FINSEQ_6: 151;
then
A2: (
dom fss)
c= (
Seg (
len fs)) by
FINSEQ_1:def 3;
then (
rng (
Sgm (
dom fss)))
= (
dom fss) by
FINSEQ_1:def 13;
then (
len (
Seq fss))
= (
len (
Sgm (
dom fss))) by
A1,
FINSEQ_2: 29
.= (
card (
dom fss)) by
A2,
FINSEQ_3: 39
.= (
card fss) by
CARD_1: 62;
hence thesis by
NAT_1: 43;
end;
theorem ::
GLIB_001:4
Th3: for X be
set, fs be
FinSequence of X, fss be
Subset of fs, m be
Element of
NAT st m
in (
dom (
Seq fss)) holds ex n be
Element of
NAT st n
in (
dom fs) & m
<= n & ((
Seq fss)
. m)
= (fs
. n)
proof
let X be
set, fs be
FinSequence of X, fss be
Subset of fs, m be
Element of
NAT ;
set f = (
Sgm (
dom fss)), n = (f
. m);
consider k be
Nat such that
A1: (
dom fss)
c= (
Seg k) by
FINSEQ_1:def 12;
assume
A2: m
in (
dom (
Seq fss));
then
A3: m
in (
dom (fss
* f)) by
FINSEQ_1:def 14;
then
A4: n
in (
dom fss) by
FUNCT_1: 11;
(
Seq fss)
= (fss
* f) by
FINSEQ_1:def 14;
then ((
Seq fss)
. m)
= (fss
. n) by
A2,
FUNCT_1: 12;
then
A5:
[n, ((
Seq fss)
. m)]
in fss by
A4,
FUNCT_1:def 2;
then
A6: n
in (
dom fs) by
FUNCT_1: 1;
A7: m
in (
dom f) by
A3,
FUNCT_1: 11;
A8: ((
Seq fss)
. m)
= (fs
. n) by
A5,
FUNCT_1: 1;
k
in
NAT by
ORDINAL1:def 12;
hence thesis by
A7,
A6,
A8,
A1,
FINSEQ_3: 152;
end;
theorem ::
GLIB_001:5
Th4: for X be
set, fs be
FinSequence of X, fss be
Subset of fs holds (
len (
Seq fss))
= (
card fss)
proof
let X be
set, fs be
FinSequence of X, fss be
Subset of fs;
A1: (
Seq fss)
= (fss
* (
Sgm (
dom fss))) by
FINSEQ_1:def 14;
A2: ex k be
Nat st (
dom fss)
c= (
Seg k) by
FINSEQ_1:def 12;
then (
rng (
Sgm (
dom fss)))
= (
dom fss) by
FINSEQ_1:def 13;
then (
dom (
Seq fss))
= (
dom (
Sgm (
dom fss))) by
A1,
RELAT_1: 27;
then (
dom (
Seq fss))
= (
Seg (
card (
dom fss))) by
A2,
FINSEQ_3: 40;
then (
len (
Seq fss))
= (
card (
dom fss)) by
FINSEQ_1:def 3;
hence thesis by
CARD_1: 62;
end;
theorem ::
GLIB_001:6
Th5: for X be
set, fs be
FinSequence of X, fss be
Subset of fs holds (
dom (
Seq fss))
= (
dom (
Sgm (
dom fss)))
proof
let X be
set, fs be
FinSequence of X, fss be
Subset of fs;
ex k be
Nat st (
dom fss)
c= (
Seg k) by
FINSEQ_1:def 12;
then
A1: (
rng (
Sgm (
dom fss)))
c= (
dom fss) by
FINSEQ_1:def 13;
(
Seq fss)
= (fss
* (
Sgm (
dom fss))) by
FINSEQ_1:def 14;
hence thesis by
A1,
RELAT_1: 27;
end;
begin
definition
let G be
_Graph;
::
GLIB_001:def1
mode
VertexSeq of G ->
FinSequence of (
the_Vertices_of G) means
:
Def1: for n be
Element of
NAT st 1
<= n & n
< (
len it ) holds ex e be
set st e
Joins ((it
. n),(it
. (n
+ 1)),G);
existence
proof
set v = the
Element of (
the_Vertices_of G), IT =
<*v*>;
reconsider IT as
FinSequence of (
the_Vertices_of G);
take IT;
let n be
Element of
NAT ;
assume that
A1: 1
<= n and
A2: n
< (
len IT);
thus thesis by
A1,
A2,
FINSEQ_1: 40;
end;
end
definition
let G be
_Graph;
::
GLIB_001:def2
mode
EdgeSeq of G ->
FinSequence of (
the_Edges_of G) means
:
Def2: ex vs be
FinSequence of (
the_Vertices_of G) st (
len vs)
= ((
len it )
+ 1) & for n be
Element of
NAT st 1
<= n & n
<= (
len it ) holds (it
. n)
Joins ((vs
. n),(vs
. (n
+ 1)),G);
existence
proof
set IT = (
<*> (
the_Edges_of G)), vs =
<* the
Element of (
the_Vertices_of G)*>;
reconsider vs as
FinSequence of (
the_Vertices_of G);
take IT, vs;
thus (
len vs)
= ((
len IT)
+ 1) by
FINSEQ_1: 40;
let n be
Element of
NAT ;
assume that
A1: 1
<= n and
A2: n
<= (
len IT);
thus thesis by
A1,
A2;
end;
end
definition
let G be
_Graph;
::
GLIB_001:def3
mode
Walk of G ->
FinSequence of ((
the_Vertices_of G)
\/ (
the_Edges_of G)) means
:
Def3: (
len it ) is
odd & (it
. 1)
in (
the_Vertices_of G) & for n be
odd
Element of
NAT st n
< (
len it ) holds (it
. (n
+ 1))
Joins ((it
. n),(it
. (n
+ 2)),G);
existence
proof
set VE = ((
the_Vertices_of G)
\/ (
the_Edges_of G));
consider v be
object such that
A1: v
in (
the_Vertices_of G) by
XBOOLE_0:def 1;
reconsider v as
Element of VE by
A1,
XBOOLE_0:def 3;
take
<*v*>;
thus (
len
<*v*>) is
odd by
FINSEQ_1: 40,
JORDAN12: 2;
thus (
<*v*>
. 1)
in (
the_Vertices_of G) by
A1,
FINSEQ_1: 40;
let n be
odd
Element of
NAT ;
assume n
< (
len
<*v*>);
then n
< 1 by
FINSEQ_1: 40;
hence thesis by
ABIAN: 12;
end;
end
registration
let G be
_Graph, W be
Walk of G;
cluster (
len W) ->
odd non
empty;
correctness
proof
thus (
len W) is
odd by
Def3;
hence thesis;
end;
end
definition
let G be
_Graph, v be
Vertex of G;
::
GLIB_001:def4
func G
.walkOf (v) ->
Walk of G equals
<*v*>;
coherence
proof
set VE = ((
the_Vertices_of G)
\/ (
the_Edges_of G)), W =
<*v*>, v9 = v;
reconsider v9 as
Element of VE by
XBOOLE_0:def 3;
<*v9*> is
FinSequence of VE;
then
reconsider W as
FinSequence of VE;
now
thus (
len W) is
odd by
FINSEQ_1: 40,
JORDAN12: 2;
(W
. 1)
= v by
FINSEQ_1: 40;
hence (W
. 1)
in (
the_Vertices_of G);
let n be
odd
Element of
NAT ;
A1: 1
<= n by
ABIAN: 12;
assume n
< (
len
<*v*>);
hence (W
. (n
+ 1))
Joins ((W
. n),(W
. (n
+ 2)),G) by
A1,
FINSEQ_1: 40;
end;
hence thesis by
Def3;
end;
end
definition
let G be
_Graph, x,y,e be
object;
::
GLIB_001:def5
func G
.walkOf (x,e,y) ->
Walk of G equals
:
Def5:
<*x, e, y*> if e
Joins (x,y,G)
otherwise (G
.walkOf the
Element of (
the_Vertices_of G));
coherence
proof
set VE = ((
the_Vertices_of G)
\/ (
the_Edges_of G));
hereby
set W =
<*x, e, y*>;
assume
A1: e
Joins (x,y,G);
then y is
Vertex of G by
GLIB_000: 13;
then
A2: y is
Element of VE by
XBOOLE_0:def 3;
e
in (
the_Edges_of G) by
A1,
GLIB_000:def 13;
then
A3: e is
Element of VE by
XBOOLE_0:def 3;
x is
Vertex of G by
A1,
GLIB_000: 13;
then x is
Element of VE by
XBOOLE_0:def 3;
then
reconsider W as
FinSequence of VE by
A2,
A3,
FINSEQ_2: 14;
A4: (W
. 1)
= x by
FINSEQ_1: 45;
A5: (W
. 2)
= e by
FINSEQ_1: 45;
now
reconsider aa1 = 1 as
odd
Element of
NAT by
JORDAN12: 2;
(aa1
+ 2) is
odd;
hence (
len W) is
odd by
FINSEQ_1: 45;
thus (W
. 1)
in (
the_Vertices_of G) by
A1,
A4,
GLIB_000: 13;
let n be
odd
Element of
NAT ;
assume n
< (
len W);
then n
< (2
+ 1) by
FINSEQ_1: 45;
then n
<= 2 by
NAT_1: 13;
then n
=
0 or ... or n
= 2;
hence (W
. (n
+ 1))
Joins ((W
. n),(W
. (n
+ 2)),G) by
A1,
A4,
A5,
FINSEQ_1: 45;
end;
hence
<*x, e, y*> is
Walk of G by
Def3;
end;
thus thesis;
end;
consistency ;
end
definition
let G be
_Graph, W be
Walk of G;
::
GLIB_001:def6
func W
.first() ->
Vertex of G equals (W
. 1);
coherence by
Def3;
::
GLIB_001:def7
func W
.last() ->
Vertex of G equals (W
. (
len W));
coherence
proof
now
per cases ;
suppose (
len W)
= 1;
hence thesis by
Def3;
end;
suppose
A1: (
len W)
<> 1;
1
<= (
len W) by
ABIAN: 12;
then 1
< (
len W) by
A1,
XXREAL_0: 1;
then (1
+ 1)
< ((
len W)
+ 1) by
XREAL_1: 8;
then 2
<= (
len W) by
NAT_1: 13;
then
reconsider n = ((
len W)
- (2
* 1)) as
odd
Element of
NAT by
INT_1: 5;
A2: (n
+ 2)
= (
len W);
then n
< (
len W) by
NAT_1: 16;
then (W
. (n
+ 1))
Joins ((W
. n),(W
. (
len W)),G) by
A2,
Def3;
hence thesis by
GLIB_000: 13;
end;
end;
hence thesis;
end;
end
definition
let G be
_Graph, W be
Walk of G, n be
Nat;
::
GLIB_001:def8
func W
.vertexAt (n) ->
Vertex of G equals
:
Def8: (W
. n) if n is
odd & n
<= (
len W)
otherwise (W
.first() );
correctness
proof
hereby
reconsider n1 = n as
Element of
NAT by
ORDINAL1:def 12;
assume that
A1: n is
odd and
A2: n
<= (
len W);
now
per cases ;
suppose n
= (
len W);
then (W
. n)
= (W
.last() );
hence (W
. n) is
Vertex of G;
end;
suppose n
<> (
len W);
then n
< (
len W) by
A2,
XXREAL_0: 1;
then (W
. (n1
+ 1))
Joins ((W
. n),(W
. (n
+ 2)),G) by
A1,
Def3;
hence (W
. n) is
Vertex of G by
GLIB_000: 13;
end;
end;
hence (W
. n) is
Vertex of G;
end;
thus thesis;
end;
end
definition
let G be
_Graph, W be
Walk of G;
::
GLIB_001:def9
func W
.reverse() ->
Walk of G equals (
Rev W);
coherence
proof
set W9 = (
Rev W);
reconsider W9 as
FinSequence of ((
the_Vertices_of G)
\/ (
the_Edges_of G));
A1: (
len W9)
= (
len W) by
FINSEQ_5:def 3;
now
thus (
len W9) is
odd by
A1;
(W9
. 1)
= (W
.last() ) by
FINSEQ_5: 62;
hence (W9
. 1)
in (
the_Vertices_of G);
let n be
odd
Element of
NAT ;
set rn = (((
len W)
- n)
+ 1), rnaa1 = (((
len W)
- (n
+ 1))
+ 1), rn2 = (((
len W)
- (n
+ 2))
+ 1);
assume
A2: n
< (
len W9);
then
A3: (n
+ 1)
<= (
len W) by
A1,
NAT_1: 13;
then
reconsider rnaa1 as
even
Element of
NAT by
FINSEQ_5: 1;
(n
+ 1)
< (
len W) by
A3,
XXREAL_0: 1;
then
A4: ((n
+ 1)
+ 1)
<= (
len W) by
NAT_1: 13;
then
reconsider rn2 as
odd
Element of
NAT by
FINSEQ_5: 1;
1
<= (n
+ 1) by
NAT_1: 12;
then (n
+ 1)
in (
dom W) by
A3,
FINSEQ_3: 25;
then
A5: (W9
. (n
+ 1))
= (W
. rnaa1) by
FINSEQ_5: 58
.= (W
. (rn2
+ 1));
A6: n
<= (
len W) by
A2,
FINSEQ_5:def 3;
then
reconsider rn as
odd
Element of
NAT by
FINSEQ_5: 1;
1
<= n by
ABIAN: 12;
then n
in (
dom W) by
A6,
FINSEQ_3: 25;
then
A7: (W9
. n)
= (W
. rn) by
FINSEQ_5: 58
.= (W
. (rn2
+ 2));
(1
+
0 )
< (n
+ 2) by
XREAL_1: 8;
then ((
len W)
- (n
+ 2))
< ((
len W)
- 1) by
XREAL_1: 15;
then (((
len W)
- (n
+ 2))
+ 1)
< (((
len W)
- 1)
+ 1) by
XREAL_1: 8;
then
A8: (W
. (rn2
+ 1))
Joins ((W
. rn2),(W
. (rn2
+ 2)),G) by
Def3;
1
<= (n
+ 2) by
NAT_1: 12;
then (n
+ 2)
in (
dom W) by
A4,
FINSEQ_3: 25;
then (W9
. (n
+ 1))
Joins ((W9
. (n
+ 2)),(W9
. n),G) by
A8,
A7,
A5,
FINSEQ_5: 58;
hence (W9
. (n
+ 1))
Joins ((W9
. n),(W9
. (n
+ 2)),G) by
GLIB_000: 14;
end;
hence thesis by
Def3;
end;
involutiveness ;
end
definition
let G be
_Graph, W1,W2 be
Walk of G;
::
GLIB_001:def10
func W1
.append (W2) ->
Walk of G equals
:
Def10: (W1
^' W2) if (W1
.last() )
= (W2
.first() )
otherwise W1;
correctness
proof
set W = (W1
^' W2), lenW = (
len W);
hereby
assume
A1: (W1
.last() )
= (W2
.first() );
A2:
now
let n be
odd
Element of
NAT such that
A3: n
< (
len W);
set v1 = (W
. n), v2 = (W
. (n
+ 2)), e = (W
. (n
+ 1));
now
per cases ;
suppose
A4: (n
+ 2)
<= (
len W1);
A5: 1
<= n by
ABIAN: 12;
((n
+ 2)
- 2)
<= ((
len W1)
-
0 ) by
A4,
XREAL_1: 13;
then
A6: (W
. n)
= (W1
. n) by
A5,
FINSEQ_6: 140;
((n
+ 2)
- 1)
<= ((
len W1)
-
0 ) by
A4,
XREAL_1: 13;
then
A7: (W
. (n
+ 1))
= (W1
. (n
+ 1)) by
FINSEQ_6: 140,
NAT_1: 12;
A8: (W
. (n
+ 2))
= (W1
. (n
+ 2)) by
A4,
FINSEQ_6: 140,
NAT_1: 12;
n
< (
len W1) by
A4,
NAT_1: 16,
XXREAL_0: 2;
hence (W
. (n
+ 1))
Joins ((W
. n),(W
. (n
+ 2)),G) by
A6,
A7,
A8,
Def3;
end;
suppose
A9: (
len W1)
< (n
+ 2);
then ((
len W1)
+ 1)
<= (n
+ 2) by
NAT_1: 13;
then ((
len W1)
+ 1)
< ((n
+ 1)
+ 1) by
XXREAL_0: 1;
then (
len W1)
< (n
+ 1) by
XREAL_1: 6;
then
A10: (
len W1)
<= n by
NAT_1: 13;
consider k be
Nat such that
A11: (n
+ 2)
= ((
len W1)
+ k) by
A9,
NAT_1: 10;
reconsider k as
even
Element of
NAT by
A11,
ORDINAL1:def 12;
k
<>
0 by
A9,
A11;
then (
0
+ 1)
< (k
+ 1) by
XREAL_1: 8;
then
A12: 1
<= k by
NAT_1: 13;
(n
+ 1)
< ((
len W)
+ 1) by
A3,
XREAL_1: 8;
then (n
+ 1)
< ((
len W1)
+ (
len W2)) by
CARD_1: 27,
FINSEQ_6: 139;
then ((n
+ 1)
+ 1)
< (((
len W1)
+ (
len W2))
+ 1) by
XREAL_1: 8;
then
A13: (k
+ (
len W1))
< ((
len W1)
+ ((
len W2)
+ 1)) by
A11;
then k
< ((
len W2)
+ 1) by
XREAL_1: 6;
then
A14: k
<= (
len W2) by
NAT_1: 13;
then
A15: k
< (
len W2) by
XXREAL_0: 1;
then
A16: (W
. (n
+ 2))
= (W2
. (k
+ 1)) by
A11,
A12,
FINSEQ_6: 141;
now
per cases ;
suppose
A17: n
= (
len W1);
1
<= n by
ABIAN: 12;
then
A18: (W
. n)
= (W1
. (
len W1)) by
A17,
FINSEQ_6: 140;
((1
+ 1)
+
0 )
< ((
len W2)
+ 1) by
A11,
A13,
A17,
XREAL_1: 6;
then
A19: 1
< (
len W2) by
XREAL_1: 6;
then (W
. (n
+ 1))
= (W2
. (1
+ 1)) by
A17,
FINSEQ_6: 141;
hence (W
. (n
+ 1))
Joins ((W
. n),(W
. (n
+ 2)),G) by
A1,
A11,
A16,
A17,
A18,
A19,
Def3,
JORDAN12: 2;
end;
suppose
A20: (
len W1)
<> n;
reconsider two = (2
* 1) as
even
Element of
NAT ;
A21: (
len W1)
< n by
A10,
A20,
XXREAL_0: 1;
then
reconsider k2 = (k
- two) as
even
Element of
NAT by
A11,
INT_1: 5,
XREAL_1: 8;
((2
+ (
len W1))
- (
len W1))
< ((k
+ (
len W1))
- (
len W1)) by
A11,
A21,
XREAL_1: 8;
then ((1
+ 1)
- 1)
< (((k2
+ 1)
+ 1)
- 1) by
XREAL_1: 14;
then
A22: 1
<= k2 by
NAT_1: 13;
set kaa1 = (k2
+ 1);
reconsider kaa1 as
odd
Element of
NAT ;
A23: 1
<= (k2
+ 1) by
NAT_1: 12;
((kaa1
+ 1)
- 1)
< ((
len W2)
-
0 ) by
A14,
XREAL_1: 15;
then
A24: (W2
. (kaa1
+ 1))
= (W
. ((
len W1)
+ kaa1)) by
A23,
FINSEQ_6: 141
.= (W
. (n
+ 1)) by
A11;
kaa1
< (kaa1
+ 1) by
NAT_1: 19;
then
A25: kaa1
< (
len W2) by
A14,
XXREAL_0: 2;
(kaa1
+ 2)
= (k
+ 1);
then
A26: (W2
. (kaa1
+ 2))
= (W
. (n
+ 2)) by
A11,
A12,
A15,
FINSEQ_6: 141;
k2
< (k2
+ (1
+ 1)) by
NAT_1: 16;
then
A27: k2
< (
len W2) by
A14,
XXREAL_0: 2;
(n
+ 2)
= (((
len W1)
+ k2)
+ 2) by
A11;
then (W
. n)
= (W2
. (k2
+ 1)) by
A22,
A27,
FINSEQ_6: 141;
hence e
Joins (v1,v2,G) by
A26,
A25,
A24,
Def3;
end;
end;
hence e
Joins (v1,v2,G);
end;
end;
hence e
Joins (v1,v2,G);
end;
A28:
now
assume (
len W) is
even;
then
reconsider lenW as
even
Element of
NAT ;
(lenW
+ 1)
= ((
len W1)
+ (
len W2)) by
CARD_1: 27,
FINSEQ_6: 139;
hence contradiction;
end;
1
<= (
len W1) by
ABIAN: 12;
then (W
. 1)
= (W1
.first() ) by
FINSEQ_6: 140;
hence (W1
^' W2) is
Walk of G by
A28,
A2,
Def3;
end;
thus thesis;
end;
end
definition
let G be
_Graph, W be
Walk of G, m,n be
Nat;
::
GLIB_001:def11
func W
.cut (m,n) ->
Walk of G equals
:
Def11: ((m,n)
-cut W) if m is
odd & n is
odd & m
<= n & n
<= (
len W)
otherwise W;
correctness
proof
hereby
set W2 = ((m,n)
-cut W), VG = (
the_Vertices_of G);
assume that
A1: m is
odd and
A2: n is
odd and
A3: m
<= n and
A4: n
<= (
len W);
reconsider m4 = m, n4 = n as
odd
Nat by
A1,
A2;
A5: 1
<= m by
A1,
ABIAN: 12;
then (((
len W2)
+ m4)
- m4)
= ((n4
+ 1)
- m4) by
A3,
A4,
FINSEQ_6:def 4;
then
reconsider lenW2 = (
len W2) as
odd
Element of
NAT ;
now
reconsider lenW2aa1 = (lenW2
- 1) as
Element of
NAT by
ABIAN: 12,
INT_1: 5;
lenW2 is
odd;
hence (
len W2) is
odd;
0
< (lenW2aa1
+ 1);
then
A6: (W2
. (
0
+ 1))
= (W
. (m
+
0 )) by
A3,
A4,
A5,
FINSEQ_6:def 4;
m
<= (
len W) by
A3,
A4,
XXREAL_0: 2;
then (W
. m)
= (W
.vertexAt m) by
A1,
Def8;
hence (W2
. 1)
in VG by
A6;
let i be
odd
Element of
NAT ;
reconsider x = ((m4
+ i)
- 1) as
odd
Element of
NAT by
A5,
INT_1: 5,
NAT_1: 12;
reconsider iaa1 = (i
- 1) as
even
Element of
NAT by
ABIAN: 12,
INT_1: 5;
assume
A7: i
< (
len W2);
then (i
+ 1)
<= lenW2 by
NAT_1: 13;
then (i
+ 1)
< (
len W2) by
XXREAL_0: 1;
then
A8: (W2
. ((i
+ 1)
+ 1))
= (W
. (m
+ (i
+ 1))) by
A3,
A4,
A5,
FINSEQ_6:def 4;
(i
+ m)
< ((
len W2)
+ m) by
A7,
XREAL_1: 8;
then (i
+ m)
< (n
+ 1) by
A3,
A4,
A5,
FINSEQ_6:def 4;
then (i
+ m4)
<= n4 by
NAT_1: 13;
then (m4
+ i)
< n4 by
XXREAL_0: 1;
then (m
+ i)
< (
len W) by
A4,
XXREAL_0: 2;
then ((m
+ i)
- 1)
< ((
len W)
-
0 ) by
XREAL_1: 14;
then
A9: (W
. (x
+ 1))
Joins ((W
. x),(W
. (x
+ 2)),G) by
Def3;
iaa1
< ((
len W2)
-
0 ) by
A7,
XREAL_1: 14;
then (W2
. (iaa1
+ 1))
= (W
. (m
+ iaa1)) by
A3,
A4,
A5,
FINSEQ_6:def 4;
hence (W2
. (i
+ 1))
Joins ((W2
. i),(W2
. (i
+ 2)),G) by
A3,
A4,
A5,
A7,
A8,
A9,
FINSEQ_6:def 4;
end;
hence ((m,n)
-cut W) is
Walk of G by
Def3;
end;
thus thesis;
end;
end
definition
let G be
_Graph, W be
Walk of G, m,n be
Element of
NAT ;
::
GLIB_001:def12
func W
.remove (m,n) ->
Walk of G equals
:
Def12: ((W
.cut (1,m))
.append (W
.cut (n,(
len W)))) if m is
odd & n is
odd & m
<= n & n
<= (
len W) & (W
. m)
= (W
. n)
otherwise W;
correctness ;
end
definition
let G be
_Graph, W be
Walk of G, e be
object;
::
GLIB_001:def13
func W
.addEdge (e) ->
Walk of G equals (W
.append (G
.walkOf ((W
.last() ),e,((W
.last() )
.adj e))));
coherence ;
end
definition
let G be
_Graph, W be
Walk of G;
::
GLIB_001:def14
func W
.vertexSeq() ->
VertexSeq of G means
:
Def14: ((
len W)
+ 1)
= (2
* (
len it )) & for n be
Nat st 1
<= n & n
<= (
len it ) holds (it
. n)
= (W
. ((2
* n)
- 1));
existence
proof
deffunc
F(
Nat) = (W
. ((2
* $1)
- 1));
reconsider lenW1 = ((
len W)
+ 1) as
even
Element of
NAT ;
set lenIT = (lenW1
div 2);
consider IT be
FinSequence such that
A1: (
len IT)
= lenIT & for k be
Nat st k
in (
dom IT) holds (IT
. k)
=
F(k) from
FINSEQ_1:sch 2;
A2: 2
divides lenW1 by
PEPIN: 22;
then
A3: (2
* lenIT)
= lenW1 by
NAT_D: 3;
now
let y be
object;
assume y
in (
rng IT);
then
consider x be
object such that
A4: x
in (
dom IT) and
A5: y
= (IT
. x) by
FUNCT_1:def 3;
A6: x
in (
Seg lenIT) by
A1,
A4,
FINSEQ_1:def 3;
reconsider x as
Element of
NAT by
A4;
set 2x = (x
* 2);
reconsider 2x as
even
Element of
NAT ;
set 2xaa1 = (2x
- 1);
1
<= x by
A6,
FINSEQ_1: 1;
then (1
* 2)
<= 2x by
XREAL_1: 64;
then
reconsider 2xaa1 as
odd
Element of
NAT by
INT_1: 5,
XXREAL_0: 2;
x
<= lenIT by
A6,
FINSEQ_1: 1;
then 2x
<= (lenIT
* 2) by
XREAL_1: 64;
then 2xaa1
<= (lenW1
- 1) by
A3,
XREAL_1: 9;
then (W
. 2xaa1)
= (W
.vertexAt 2xaa1) by
Def8;
then (W
. 2xaa1)
in (
the_Vertices_of G);
hence y
in (
the_Vertices_of G) by
A1,
A4,
A5;
end;
then (
rng IT)
c= (
the_Vertices_of G) by
TARSKI:def 3;
then
reconsider IT as
FinSequence of (
the_Vertices_of G) by
FINSEQ_1:def 4;
now
let n be
Element of
NAT ;
set v2 = (IT
. (n
+ 1));
assume that
A7: 1
<= n and
A8: n
< (
len IT);
set 2n = (2
* n);
reconsider 2n as
even
Element of
NAT ;
A9: 1
<= (n
+ 1) by
A7,
NAT_1: 13;
set 2naa1 = (2n
- 1);
(1
* 2)
<= (n
* 2) by
A7,
XREAL_1: 64;
then
reconsider 2naa1 as
odd
Element of
NAT by
INT_1: 5,
XXREAL_0: 2;
2n
<= lenW1 by
A3,
A1,
A8,
XREAL_1: 68;
then
A10: (2n
- 1)
<= (((
len W)
+ 1)
- 1) by
XREAL_1: 9;
2naa1
<> (
len W) by
A3,
A1,
A8;
then 2naa1
< (
len W) by
A10,
XXREAL_0: 1;
then
A11: (W
. (2naa1
+ 1))
Joins ((W
. 2naa1),(W
. (2naa1
+ 2)),G) by
Def3;
(n
+ 1)
<= lenIT by
A1,
A8,
NAT_1: 13;
then (n
+ 1)
in (
dom IT) by
A1,
A9,
FINSEQ_3: 25;
then
A12: v2
= (W
. ((2
* (n
+ 1))
- 1)) by
A1
.= (W
. (2n
+ 1));
n
in (
dom IT) by
A7,
A8,
FINSEQ_3: 25;
then (W
. (2naa1
+ 1))
Joins ((IT
. n),(W
. (2naa1
+ 2)),G) by
A1,
A11;
hence ex e be
set st e
Joins ((IT
. n),(IT
. (n
+ 1)),G) by
A12;
end;
then
reconsider IT as
VertexSeq of G by
Def1;
take IT;
thus ((
len W)
+ 1)
= (2
* (
len IT)) by
A2,
A1,
NAT_D: 3;
let n be
Nat;
assume that
A13: 1
<= n and
A14: n
<= (
len IT);
n
in (
dom IT) by
A13,
A14,
FINSEQ_3: 25;
hence thesis by
A1;
end;
uniqueness
proof
let IT1,IT2 be
VertexSeq of G such that
A15: ((
len W)
+ 1)
= (2
* (
len IT1)) and
A16: for n be
Nat st 1
<= n & n
<= (
len IT1) holds (IT1
. n)
= (W
. ((2
* n)
- 1)) and
A17: ((
len W)
+ 1)
= (2
* (
len IT2)) and
A18: for n be
Nat st 1
<= n & n
<= (
len IT2) holds (IT2
. n)
= (W
. ((2
* n)
- 1));
A19:
now
let n be
Nat such that
A20: n
in (
dom IT1);
A21: n
<= (
len IT1) by
A20,
FINSEQ_3: 25;
A22: 1
<= n by
A20,
FINSEQ_3: 25;
then (IT1
. n)
= (W
. ((2
* n)
- 1)) by
A16,
A21;
hence (IT1
. n)
= (IT2
. n) by
A15,
A17,
A18,
A22,
A21;
end;
(
dom IT1)
= (
Seg (
len IT2)) by
A15,
A17,
FINSEQ_1:def 3
.= (
dom IT2) by
FINSEQ_1:def 3;
hence IT1
= IT2 by
A19,
FINSEQ_1: 13;
end;
end
definition
let G be
_Graph, W be
Walk of G;
::
GLIB_001:def15
func W
.edgeSeq() ->
EdgeSeq of G means
:
Def15: (
len W)
= ((2
* (
len it ))
+ 1) & for n be
Nat st 1
<= n & n
<= (
len it ) holds (it
. n)
= (W
. (2
* n));
existence
proof
deffunc
F(
Nat) = (W
. (2
* $1));
reconsider lenWaa1 = ((
len W)
- 1) as
even
Element of
NAT by
ABIAN: 12,
INT_1: 5;
set lenIT = (lenWaa1
div 2);
reconsider lenIT as
Element of
NAT ;
consider IT be
FinSequence such that
A1: (
len IT)
= lenIT & for n be
Nat st n
in (
dom IT) holds (IT
. n)
=
F(n) from
FINSEQ_1:sch 2;
now
let y be
object;
A2: 2
divides lenWaa1 by
PEPIN: 22;
assume y
in (
rng IT);
then
consider x be
object such that
A3: x
in (
dom IT) and
A4: y
= (IT
. x) by
FUNCT_1:def 3;
A5: x
in (
Seg lenIT) by
A1,
A3,
FINSEQ_1:def 3;
reconsider x as
Element of
NAT by
A3;
reconsider 2x = (2
* x) as
even
Element of
NAT ;
x
<= lenIT by
A5,
FINSEQ_1: 1;
then (x
* 2)
<= (lenIT
* 2) by
XREAL_1: 64;
then 2x
<= lenWaa1 by
A2,
NAT_D: 3;
then
A6: (2x
+ 1)
<= (lenWaa1
+ 1) by
XREAL_1: 7;
1
<= x by
A5,
FINSEQ_1: 1;
then (1
* 2)
<= (2
* x) by
XREAL_1: 64;
then
reconsider 2xaa1 = (2x
- 1) as
odd
Element of
NAT by
INT_1: 5,
XXREAL_0: 2;
2x
<= (2x
+ 1) by
NAT_1: 11;
then 2x
<= (
len W) by
A6,
XXREAL_0: 2;
then 2xaa1
< (
len W) by
XREAL_1: 147;
then
A7: (W
. (2xaa1
+ 1))
Joins ((W
. 2xaa1),(W
. (2xaa1
+ 2)),G) by
Def3;
y
= (W
. (2
* x)) by
A1,
A3,
A4;
hence y
in (
the_Edges_of G) by
A7,
GLIB_000:def 13;
end;
then (
rng IT)
c= (
the_Edges_of G) by
TARSKI:def 3;
then
reconsider IT as
FinSequence of (
the_Edges_of G) by
FINSEQ_1:def 4;
2
divides lenWaa1 by
PEPIN: 22;
then
A8: lenWaa1
= (2
* lenIT) by
NAT_D: 3;
then
A9: (
len W)
= ((2
* lenIT)
+ 1);
now
set vs = (W
.vertexSeq() );
take vs;
A10: (((2
* (
len IT))
+ 1)
+ 1)
= (2
* (
len vs)) by
A8,
A1,
Def14;
then
A11: (2
* ((
len IT)
+ 1))
= (2
* (
len vs));
thus (
len vs)
= ((
len IT)
+ 1) by
A10;
let n be
Element of
NAT ;
set v1 = (vs
. n), v2 = (vs
. (n
+ 1));
assume that
A12: 1
<= n and
A13: n
<= (
len IT);
set 2n = (2
* n);
reconsider 2n as
even
Element of
NAT ;
set 2naa1 = (2n
- 1);
1
<= (n
+ n) by
A12,
NAT_1: 12;
then
reconsider 2naa1 as
odd
Element of
NAT by
INT_1: 5;
A14: 1
<= (n
+ 1) by
NAT_1: 12;
(n
* 2)
<= ((
len IT)
* 2) by
A13,
XREAL_1: 64;
then (n
* 2)
<= (
len W) by
A9,
A1,
NAT_1: 12;
then
A15: 2naa1
< ((
len W)
-
0 ) by
XREAL_1: 15;
(n
+ 1)
<= (
len vs) by
A11,
A13,
XREAL_1: 7;
then v2
= (W
. ((2
* (n
+ 1))
- 1)) by
A14,
Def14;
then
A16: v2
= (W
. (2naa1
+ 2));
n
in (
dom IT) by
A12,
A13,
FINSEQ_3: 25;
then
A17: (IT
. n)
= (W
. (2naa1
+ 1)) by
A1;
n
<= (
len vs) by
A11,
A13,
NAT_1: 12;
then v1
= (W
. ((2
* n)
- 1)) by
A12,
Def14;
hence (IT
. n)
Joins ((vs
. n),(vs
. (n
+ 1)),G) by
A17,
A16,
A15,
Def3;
end;
then
reconsider IT as
EdgeSeq of G by
Def2;
take IT;
thus (
len W)
= ((2
* (
len IT))
+ 1) by
A8,
A1;
let n be
Nat;
assume that
A18: 1
<= n and
A19: n
<= (
len IT);
n
in (
dom IT) by
A18,
A19,
FINSEQ_3: 25;
hence thesis by
A1;
end;
uniqueness
proof
let IT1,IT2 be
EdgeSeq of G such that
A20: (
len W)
= ((2
* (
len IT1))
+ 1) and
A21: for n be
Nat st 1
<= n & n
<= (
len IT1) holds (IT1
. n)
= (W
. (2
* n)) and
A22: (
len W)
= ((2
* (
len IT2))
+ 1) and
A23: for n be
Nat st 1
<= n & n
<= (
len IT2) holds (IT2
. n)
= (W
. (2
* n));
A24:
now
let n be
Nat;
assume
A25: n
in (
dom IT1);
then
A26: 1
<= n by
FINSEQ_3: 25;
A27: n
<= (
len IT2) by
A20,
A22,
A25,
FINSEQ_3: 25;
n
<= (
len IT1) by
A25,
FINSEQ_3: 25;
hence (IT1
. n)
= (W
. (2
* n)) by
A21,
A26
.= (IT2
. n) by
A23,
A26,
A27;
end;
(
dom IT1)
= (
Seg (
len IT2)) by
A20,
A22,
FINSEQ_1:def 3
.= (
dom IT2) by
FINSEQ_1:def 3;
hence IT1
= IT2 by
A24,
FINSEQ_1: 13;
end;
end
definition
let G be
_Graph, W be
Walk of G;
::
GLIB_001:def16
func W
.vertices() ->
finite
Subset of (
the_Vertices_of G) equals (
rng (W
.vertexSeq() ));
coherence ;
end
definition
let G be
_Graph, W be
Walk of G;
::
GLIB_001:def17
func W
.edges() ->
finite
Subset of (
the_Edges_of G) equals (
rng (W
.edgeSeq() ));
coherence ;
end
definition
let G be
_Graph, W be
Walk of G;
::
GLIB_001:def18
func W
.length() ->
Element of
NAT equals (
len (W
.edgeSeq() ));
coherence ;
end
definition
let G be
_Graph, W be
Walk of G, v be
set;
::
GLIB_001:def19
func W
.find (v) ->
odd
Element of
NAT means
:
Def19: it
<= (
len W) & (W
. it )
= v & for n be
odd
Nat st n
<= (
len W) & (W
. n)
= v holds it
<= n if v
in (W
.vertices() )
otherwise it
= (
len W);
existence
proof
hereby
defpred
P[
Nat] means $1 is
odd & $1
<= (
len W) & (W
. $1)
= v;
set vs = (W
.vertexSeq() );
assume
A1: v
in (W
.vertices() );
now
consider i be
Nat such that
A2: i
in (
dom vs) and
A3: (vs
. i)
= v by
A1,
FINSEQ_2: 10;
set n1 = (2
* i);
reconsider n1 as
even
Nat;
set n = (n1
- 1);
A4: 1
<= i by
A2,
FINSEQ_3: 25;
then 1
<= (i
+ i) by
NAT_1: 12;
then
reconsider n as
odd
Element of
NAT by
INT_1: 5;
take n;
A5: i
<= (
len vs) by
A2,
FINSEQ_3: 25;
then (i
* 2)
<= ((
len vs)
* 2) by
XREAL_1: 64;
then (i
* 2)
<= ((
len W)
+ 1) by
Def14;
then (n1
- 1)
<= (((
len W)
+ 1)
- 1) by
XREAL_1: 13;
hence n
<= (
len W);
thus (W
. n)
= v by
A3,
A4,
A5,
Def14;
end;
then
A6: ex k be
Nat st
P[k];
consider IT be
Nat such that
A7:
P[IT] & for n be
Nat st
P[n] holds IT
<= n from
NAT_1:sch 5(
A6);
reconsider IT as
odd
Element of
NAT by
A7,
ORDINAL1:def 12;
take IT;
thus IT
<= (
len W) & (W
. IT)
= v by
A7;
let n be
odd
Nat;
assume that
A8: n
<= (
len W) and
A9: (W
. n)
= v;
thus IT
<= n by
A7,
A8,
A9;
end;
set IT = (
len W);
assume not v
in (W
.vertices() );
take IT;
thus thesis;
end;
uniqueness
proof
let IT1,IT2 be
odd
Element of
NAT ;
hereby
assume v
in (W
.vertices() );
assume that
A10: IT1
<= (
len W) and
A11: (W
. IT1)
= v and
A12: for n be
odd
Nat st n
<= (
len W) & (W
. n)
= v holds IT1
<= n;
assume that
A13: IT2
<= (
len W) and
A14: (W
. IT2)
= v and
A15: for n be
odd
Nat st n
<= (
len W) & (W
. n)
= v holds IT2
<= n;
A16: IT2
<= IT1 by
A10,
A11,
A15;
IT1
<= IT2 by
A12,
A13,
A14;
hence IT1
= IT2 by
A16,
XXREAL_0: 1;
end;
assume not v
in (W
.vertices() );
thus thesis;
end;
consistency ;
end
definition
let G be
_Graph, W be
Walk of G, n be
Element of
NAT ;
::
GLIB_001:def20
func W
.find (n) ->
odd
Element of
NAT means
:
Def20: it
<= (
len W) & (W
. it )
= (W
. n) & for k be
odd
Nat st k
<= (
len W) & (W
. k)
= (W
. n) holds it
<= k if n is
odd & n
<= (
len W)
otherwise it
= (
len W);
existence
proof
defpred
P[
Nat] means $1 is
odd & $1
<= (
len W) & (W
. $1)
= (W
. n);
hereby
assume that
A1: n is
odd and
A2: n
<= (
len W);
A3: ex n be
Nat st
P[n] by
A1,
A2;
consider IT be
Nat such that
A4:
P[IT] & for k be
Nat st
P[k] holds IT
<= k from
NAT_1:sch 5(
A3);
reconsider IT as
odd
Element of
NAT by
A4,
ORDINAL1:def 12;
take IT;
thus IT
<= (
len W) & (W
. IT)
= (W
. n) by
A4;
let k be
odd
Nat;
thus k
<= (
len W) & (W
. k)
= (W
. n) implies IT
<= k by
A4;
end;
thus thesis;
end;
uniqueness
proof
let IT1,IT2 be
odd
Element of
NAT ;
hereby
assume that n is
odd and n
<= (
len W);
assume that
A5: IT1
<= (
len W) and
A6: (W
. IT1)
= (W
. n) and
A7: for k be
odd
Nat st k
<= (
len W) & (W
. k)
= (W
. n) holds IT1
<= k;
assume that
A8: IT2
<= (
len W) and
A9: (W
. IT2)
= (W
. n) and
A10: for k be
odd
Nat st k
<= (
len W) & (W
. k)
= (W
. n) holds IT2
<= k;
A11: IT2
<= IT1 by
A5,
A6,
A10;
IT1
<= IT2 by
A7,
A8,
A9;
hence IT1
= IT2 by
A11,
XXREAL_0: 1;
end;
thus thesis;
end;
consistency ;
end
definition
let G be
_Graph, W be
Walk of G, v be
set;
::
GLIB_001:def21
func W
.rfind (v) ->
odd
Element of
NAT means
:
Def21: it
<= (
len W) & (W
. it )
= v & for n be
odd
Element of
NAT st n
<= (
len W) & (W
. n)
= v holds n
<= it if v
in (W
.vertices() )
otherwise it
= (
len W);
existence
proof
hereby
defpred
P[
Nat] means $1 is
odd & $1
<= (
len W) & (W
. $1)
= v;
assume
A1: v
in (W
.vertices() );
then
A2: (W
. (W
.find v))
= v by
Def19;
(W
.find v)
<= (
len W) by
A1,
Def19;
then
A3: ex k be
Nat st
P[k] by
A2;
A4: for k be
Nat st
P[k] holds k
<= (
len W);
consider IT be
Nat such that
A5:
P[IT] & for n be
Nat st
P[n] holds n
<= IT from
NAT_1:sch 6(
A4,
A3);
reconsider IT as
odd
Element of
NAT by
A5,
ORDINAL1:def 12;
take IT;
thus IT
<= (
len W) & (W
. IT)
= v by
A5;
let n be
odd
Element of
NAT ;
assume that
A6: n
<= (
len W) and
A7: (W
. n)
= v;
thus n
<= IT by
A5,
A6,
A7;
end;
thus thesis;
end;
uniqueness
proof
let IT1,IT2 be
odd
Element of
NAT ;
hereby
assume v
in (W
.vertices() );
assume that
A8: IT1
<= (
len W) and
A9: (W
. IT1)
= v and
A10: for n be
odd
Element of
NAT st n
<= (
len W) & (W
. n)
= v holds n
<= IT1;
assume that
A11: IT2
<= (
len W) and
A12: (W
. IT2)
= v and
A13: for n be
odd
Element of
NAT st n
<= (
len W) & (W
. n)
= v holds n
<= IT2;
A14: IT1
<= IT2 by
A8,
A9,
A13;
IT2
<= IT1 by
A10,
A11,
A12;
hence IT1
= IT2 by
A14,
XXREAL_0: 1;
end;
thus thesis;
end;
consistency ;
end
definition
let G be
_Graph, W be
Walk of G, n be
Element of
NAT ;
::
GLIB_001:def22
func W
.rfind (n) ->
odd
Element of
NAT means
:
Def22: it
<= (
len W) & (W
. it )
= (W
. n) & for k be
odd
Element of
NAT st k
<= (
len W) & (W
. k)
= (W
. n) holds k
<= it if n is
odd & n
<= (
len W)
otherwise it
= (
len W);
existence
proof
defpred
P[
Nat] means $1 is
odd & $1
<= (
len W) & (W
. $1)
= (W
. n);
hereby
A1: for k be
Nat st
P[k] holds k
<= (
len W);
assume that
A2: n is
odd and
A3: n
<= (
len W);
A4: ex k be
Nat st
P[k] by
A2,
A3;
consider IT be
Nat such that
A5:
P[IT] & for k be
Nat st
P[k] holds k
<= IT from
NAT_1:sch 6(
A1,
A4);
reconsider IT as
odd
Element of
NAT by
A5,
ORDINAL1:def 12;
take IT;
thus IT
<= (
len W) & (W
. IT)
= (W
. n) by
A5;
thus for k be
odd
Element of
NAT st k
<= (
len W) & (W
. k)
= (W
. n) holds k
<= IT by
A5;
end;
thus thesis;
end;
uniqueness
proof
let IT1,IT2 be
odd
Element of
NAT ;
hereby
assume that n is
odd and n
<= (
len W);
assume that
A6: IT1
<= (
len W) and
A7: (W
. IT1)
= (W
. n) and
A8: for k be
odd
Element of
NAT st k
<= (
len W) & (W
. k)
= (W
. n) holds k
<= IT1;
assume that
A9: IT2
<= (
len W) and
A10: (W
. IT2)
= (W
. n) and
A11: for k be
odd
Element of
NAT st k
<= (
len W) & (W
. k)
= (W
. n) holds k
<= IT2;
A12: IT2
<= IT1 by
A8,
A9,
A10;
IT1
<= IT2 by
A6,
A7,
A11;
hence IT1
= IT2 by
A12,
XXREAL_0: 1;
end;
thus thesis;
end;
consistency ;
end
definition
let G be
_Graph, u,v be
object, W be
Walk of G;
::
GLIB_001:def23
pred W
is_Walk_from u,v means (W
.first() )
= u & (W
.last() )
= v;
end
definition
let G be
_Graph, W be
Walk of G;
::
GLIB_001:def24
attr W is
closed means
:
Def24: (W
.first() )
= (W
.last() );
::
GLIB_001:def25
attr W is
directed means
:
Def25: for n be
odd
Element of
NAT st n
< (
len W) holds ((
the_Source_of G)
. (W
. (n
+ 1)))
= (W
. n);
:: original:
trivial
redefine
::
GLIB_001:def26
attr W is
trivial means (W
.length() )
=
0 ;
compatibility
proof
W is
trivial iff (W
.length() )
=
0
proof
hereby
assume
A1: W is
trivial;
W
<>
{}
proof
assume W
=
{} ;
then (
len W)
=
0 ;
hence thesis;
end;
then
consider x be
object such that
A5: W
=
<*x*> by
A1,
JORDAN1G: 1;
set WW = (W
.edgeSeq() );
(
len W)
= 1 by
A5,
FINSEQ_1: 39;
then ((2
* (
len WW))
+ 1)
= (
0
+ 1) by
Def15;
hence (W
.length() )
=
0 ;
end;
assume (W
.length() )
=
0 ;
then (
len W)
= ((2
*
0 )
+ 1) by
Def15;
hence thesis by
NAT_D: 60;
end;
hence thesis;
end;
::
GLIB_001:def27
attr W is
Trail-like means
:
Def27: (W
.edgeSeq() ) is
one-to-one;
end
notation
let G be
_Graph, W be
Walk of G;
antonym W is
open for W is
closed;
end
definition
let G be
_Graph, W be
Walk of G;
::
GLIB_001:def28
attr W is
Path-like means
:
Def28: W is
Trail-like & for m,n be
odd
Element of
NAT st m
< n & n
<= (
len W) holds (W
. m)
= (W
. n) implies m
= 1 & n
= (
len W);
end
definition
let G be
_Graph, W be
Walk of G;
::
GLIB_001:def29
attr W is
vertex-distinct means
:
Def29: for m,n be
odd
Element of
NAT st m
<= (
len W) & n
<= (
len W) & (W
. m)
= (W
. n) holds m
= n;
end
definition
let G be
_Graph, W be
Walk of G;
::
GLIB_001:def30
attr W is
Circuit-like means W is
closed & W is
Trail-like & W is non
trivial;
::
GLIB_001:def31
attr W is
Cycle-like means W is
closed & W is
Path-like & W is non
trivial;
end
Lm1: for G be
_Graph, W be
Walk of G, n be
odd
Element of
NAT st n
<= (
len W) holds (W
. n)
in (
the_Vertices_of G)
proof
let G be
_Graph, W be
Walk of G, n be
odd
Element of
NAT ;
assume n
<= (
len W);
then (W
. n)
= (W
.vertexAt n) by
Def8;
hence thesis;
end;
Lm2: for G be
_Graph, W be
Walk of G, n be
even
Element of
NAT st n
in (
dom W) holds ex naa1 be
odd
Element of
NAT st naa1
= (n
- 1) & (n
- 1)
in (
dom W) & (n
+ 1)
in (
dom W) & (W
. n)
Joins ((W
. naa1),(W
. (n
+ 1)),G)
proof
let G be
_Graph, W be
Walk of G, n be
even
Element of
NAT ;
A1: 1
<= (1
+ n) by
NAT_1: 12;
assume
A2: n
in (
dom W);
then
A3: n
<= (
len W) by
FINSEQ_3: 25;
A4: 1
<= n by
A2,
FINSEQ_3: 25;
then
reconsider naa1 = (n
- 1) as
odd
Element of
NAT by
INT_1: 5;
take naa1;
thus naa1
= (n
- 1);
1
< n by
A4,
JORDAN12: 2,
XXREAL_0: 1;
then (1
+ 1)
<= n by
NAT_1: 13;
then ((1
+ 1)
- 1)
<= (n
- 1) by
XREAL_1: 13;
then
A5: 1
<= naa1;
(n
- 1)
<= ((
len W)
-
0 ) by
A3,
XREAL_1: 13;
hence (n
- 1)
in (
dom W) by
A5,
FINSEQ_3: 25;
n
< (
len W) by
A3,
XXREAL_0: 1;
then (n
+ 1)
<= (
len W) by
NAT_1: 13;
hence (n
+ 1)
in (
dom W) by
A1,
FINSEQ_3: 25;
(n
- 1)
< ((
len W)
-
0 ) by
A3,
XREAL_1: 15;
then (W
. (naa1
+ 1))
Joins ((W
. naa1),(W
. (naa1
+ 2)),G) by
Def3;
hence thesis;
end;
Lm3: for G be
_Graph, W be
Walk of G, n be
odd
Element of
NAT st n
< (
len W) holds n
in (
dom W) & (n
+ 1)
in (
dom W) & (n
+ 2)
in (
dom W)
proof
let G be
_Graph, W be
Walk of G, n be
odd
Element of
NAT ;
A1: 1
<= n by
ABIAN: 12;
A2: 1
<= (n
+ 1) by
NAT_1: 12;
A3: 1
<= (n
+ 2) by
NAT_1: 12;
assume
A4: n
< (
len W);
then
A5: (n
+ 1)
<= (
len W) by
NAT_1: 13;
(n
+ 2)
<= (
len W) by
A4,
Th1;
hence thesis by
A4,
A1,
A2,
A3,
A5,
FINSEQ_3: 25;
end;
Lm4: for G be
_Graph, v be
Vertex of G holds (G
.walkOf v) is
closed & (G
.walkOf v) is
directed & (G
.walkOf v) is
trivial & (G
.walkOf v) is
Trail-like & (G
.walkOf v) is
Path-like
proof
let G be
_Graph, v be
Vertex of G;
set W = (G
.walkOf v);
(W
.first() )
= (W
.last() ) by
FINSEQ_1: 40;
hence W is
closed;
now
let n be
odd
Element of
NAT ;
assume n
< (
len W);
then n
< 1 by
FINSEQ_1: 39;
hence (W
. n)
= ((
the_Source_of G)
. (W
. (n
+ 1))) by
ABIAN: 12;
end;
hence W is
directed;
thus W is
trivial;
(
len W)
= ((2
* (
len (W
.edgeSeq() )))
+ 1) by
Def15;
then (
0
+ 1)
= ((2
* (
len (W
.edgeSeq() )))
+ 1) by
FINSEQ_1: 40;
then (W
.edgeSeq() )
=
{} ;
hence
A1: W is
Trail-like;
now
let n,m be
odd
Element of
NAT ;
assume that
A2: n
< m and
A3: m
<= (
len W);
m
<= 1 by
A3,
FINSEQ_1: 40;
then n
< 1 by
A2,
XXREAL_0: 2;
hence (W
. n)
= (W
. m) implies n
= 1 & m
= (
len W) by
ABIAN: 12;
end;
hence thesis by
A1;
end;
Lm5: for G be
_Graph, x,e,y be
object holds e
Joins (x,y,G) implies (
len (G
.walkOf (x,e,y)))
= 3
proof
let G be
_Graph, x,e,y be
object;
assume e
Joins (x,y,G);
then (G
.walkOf (x,e,y))
=
<*x, e, y*> by
Def5;
hence thesis by
FINSEQ_1: 45;
end;
Lm6: for G be
_Graph, x,e,y be
object holds e
Joins (x,y,G) implies ((G
.walkOf (x,e,y))
.first() )
= x & ((G
.walkOf (x,e,y))
.last() )
= y & (G
.walkOf (x,e,y))
is_Walk_from (x,y)
proof
let G be
_Graph, x,e,y be
object;
set W = (G
.walkOf (x,e,y));
assume e
Joins (x,y,G);
then
A1: W
=
<*x, e, y*> by
Def5;
hence
A2: (W
.first() )
= x by
FINSEQ_1: 45;
(
len W)
= 3 by
A1,
FINSEQ_1: 45;
hence (W
.last() )
= y by
A1,
FINSEQ_1: 45;
hence thesis by
A2;
end;
Lm7: for G be
_Graph, W be
Walk of G holds (W
.first() )
= ((W
.reverse() )
.last() ) & (W
.last() )
= ((W
.reverse() )
.first() )
proof
let G be
_Graph, W be
Walk of G;
(
len W)
= (
len (W
.reverse() )) by
FINSEQ_5:def 3;
hence (W
.first() )
= ((W
.reverse() )
.last() ) by
FINSEQ_5: 62;
thus thesis by
FINSEQ_5: 62;
end;
Lm8: for G be
_Graph, W be
Walk of G, n be
Element of
NAT holds n
in (
dom (W
.reverse() )) implies ((W
.reverse() )
. n)
= (W
. (((
len W)
- n)
+ 1)) & (((
len W)
- n)
+ 1)
in (
dom W)
proof
let G be
_Graph, W be
Walk of G, n be
Element of
NAT ;
assume
A1: n
in (
dom (W
.reverse() ));
hence ((W
.reverse() )
. n)
= (W
. (((
len W)
- n)
+ 1)) by
FINSEQ_5:def 3;
n
in (
Seg (
len (W
.reverse() ))) by
A1,
FINSEQ_1:def 3;
then n
in (
Seg (
len W)) by
FINSEQ_5:def 3;
then (((
len W)
- n)
+ 1)
in (
Seg (
len W)) by
FINSEQ_5: 2;
hence thesis by
FINSEQ_1:def 3;
end;
Lm9: for G be
_Graph, W1,W2 be
Walk of G holds (W1
.last() )
= (W2
.first() ) implies ((
len (W1
.append W2))
+ 1)
= ((
len W1)
+ (
len W2))
proof
let G be
_Graph, W1,W2 be
Walk of G;
set W = (W1
.append W2);
assume (W1
.last() )
= (W2
.first() );
then W
= (W1
^' W2) by
Def10;
hence thesis by
CARD_1: 27,
FINSEQ_6: 139;
end;
Lm10: for G be
_Graph, W1,W2 be
Walk of G holds (W1
.last() )
= (W2
.first() ) implies (
len W1)
<= (
len (W1
.append W2)) & (
len W2)
<= (
len (W1
.append W2))
proof
let G be
_Graph, W1,W2 be
Walk of G;
set W = (W1
.append W2);
assume (W1
.last() )
= (W2
.first() );
then
A1: ((
len W)
+ 1)
= ((
len W1)
+ (
len W2)) by
Lm9;
1
<= (
len W2) by
ABIAN: 12;
then (((
len W1)
+ (
len W2))
- (
len W2))
<= (((
len W)
+ 1)
- 1) by
A1,
XREAL_1: 13;
hence (
len W1)
<= (
len W);
1
<= (
len W1) by
ABIAN: 12;
then (((
len W2)
+ (
len W1))
- (
len W1))
<= (((
len W)
+ 1)
- 1) by
A1,
XREAL_1: 13;
hence thesis;
end;
Lm11: for G be
_Graph, W1,W2 be
Walk of G holds (W1
.last() )
= (W2
.first() ) implies ((W1
.append W2)
.first() )
= (W1
.first() ) & ((W1
.append W2)
.last() )
= (W2
.last() ) & (W1
.append W2)
is_Walk_from ((W1
.first() ),(W2
.last() ))
proof
let G be
_Graph, W1,W2 be
Walk of G;
set W = (W1
.append W2);
assume
A1: (W1
.last() )
= (W2
.first() );
then
A2: W
= (W1
^' W2) by
Def10;
1
<= (
len W1) by
ABIAN: 12;
hence
A3: (W
.first() )
= (W1
.first() ) by
A2,
FINSEQ_6: 140;
now
per cases ;
suppose
A4: (
len W2)
<> 1;
1
<= (
len W2) by
ABIAN: 12;
then 1
< (
len W2) by
A4,
XXREAL_0: 1;
hence (W
.last() )
= (W2
.last() ) by
A2,
FINSEQ_6: 142;
end;
suppose
A5: (
len W2)
= 1;
A6: ((2,1)
-cut W2)
=
{} by
FINSEQ_6:def 4;
W
= (W1
^ ((2,1)
-cut W2)) by
A2,
A5,
FINSEQ_6:def 5;
hence (W
.last() )
= (W2
.last() ) by
A1,
A5,
A6,
FINSEQ_1: 34;
end;
end;
hence thesis by
A3;
end;
Lm12: for G be
_Graph, W1,W2 be
Walk of G, n be
Element of
NAT holds n
in (
dom W1) implies ((W1
.append W2)
. n)
= (W1
. n) & n
in (
dom (W1
.append W2))
proof
let G be
_Graph, W1,W2 be
Walk of G, n be
Element of
NAT ;
set W = (W1
.append W2);
assume
A1: n
in (
dom W1);
then
A2: n
<= (
len W1) by
FINSEQ_3: 25;
A3: 1
<= n by
A1,
FINSEQ_3: 25;
now
per cases ;
suppose
A4: (W1
.last() )
= (W2
.first() );
then W
= (W1
^' W2) by
Def10;
hence (W
. n)
= (W1
. n) by
A3,
A2,
FINSEQ_6: 140;
reconsider lenW2aa1 = ((
len W2)
- 1) as
Element of
NAT by
ABIAN: 12,
INT_1: 5;
n
<= ((
len W1)
+ lenW2aa1) by
A2,
NAT_1: 12;
then n
<= (((
len W1)
+ (
len W2))
+ (
- 1));
then n
<= (((
len W)
+ 1)
+ (
- 1)) by
A4,
Lm9;
hence n
in (
dom W) by
A3,
FINSEQ_3: 25;
end;
suppose (W1
.last() )
<> (W2
.first() );
hence thesis by
A1,
Def10;
end;
end;
hence thesis;
end;
Lm13: for G be
_Graph, W1,W2 be
Walk of G holds (W1
.last() )
= (W2
.first() ) implies for n be
Element of
NAT st n
< (
len W2) holds ((W1
.append W2)
. ((
len W1)
+ n))
= (W2
. (n
+ 1)) & ((
len W1)
+ n)
in (
dom (W1
.append W2))
proof
let G be
_Graph, W1,W2 be
Walk of G;
set W = (W1
.append W2);
assume
A1: (W1
.last() )
= (W2
.first() );
let n be
Element of
NAT ;
assume
A2: n
< (
len W2);
then (n
+ 1)
<= (
len W2) by
NAT_1: 13;
then ((n
+ 1)
+ (
len W1))
<= ((
len W2)
+ (
len W1)) by
XREAL_1: 7;
then (((
len W1)
+ n)
+ 1)
<= ((
len W)
+ 1) by
A1,
Lm9;
then
A3: ((
len W1)
+ n)
<= (
len W) by
XREAL_1: 6;
A4: W
= (W1
^' W2) by
A1,
Def10;
now
per cases ;
suppose
A5: n
=
0 ;
then 1
<= ((
len W1)
+ n) by
ABIAN: 12;
then ((
len W1)
+ n)
in (
dom W1) by
A5,
FINSEQ_3: 25;
hence ((W1
.append W2)
. ((
len W1)
+ n))
= (W2
. (n
+ 1)) by
A1,
A5,
Lm12;
end;
suppose n
<>
0 ;
then (
0
+ 1)
< (n
+ 1) by
XREAL_1: 8;
then 1
<= n by
NAT_1: 13;
hence ((W1
.append W2)
. ((
len W1)
+ n))
= (W2
. (n
+ 1)) by
A4,
A2,
FINSEQ_6: 141;
end;
end;
hence ((W1
.append W2)
. ((
len W1)
+ n))
= (W2
. (n
+ 1));
1
<= ((
len W1)
+ n) by
ABIAN: 12,
NAT_1: 12;
hence thesis by
A3,
FINSEQ_3: 25;
end;
Lm14: for G be
_Graph, W1,W2 be
Walk of G, n be
Element of
NAT holds n
in (
dom (W1
.append W2)) implies n
in (
dom W1) or ex k be
Element of
NAT st k
< (
len W2) & n
= ((
len W1)
+ k)
proof
let G be
_Graph, W1,W2 be
Walk of G, n be
Element of
NAT ;
set W3 = (W1
.append W2);
assume
A1: n
in (
dom W3);
then
A2: n
<= (
len W3) by
FINSEQ_3: 25;
A3: 1
<= n by
A1,
FINSEQ_3: 25;
now
per cases ;
suppose (W1
.last() )
= (W2
.first() );
then
A4: ((
len W3)
+ 1)
= ((
len W1)
+ (
len W2)) by
Lm9;
now
assume not n
in (
dom W1);
then (
len W1)
< n by
A3,
FINSEQ_3: 25;
then
reconsider k = (n
- (
len W1)) as
Element of
NAT by
INT_1: 5;
take k;
now
assume (
len W2)
<= k;
then ((
len W1)
+ (
len W2))
<= ((
len W1)
+ k) by
XREAL_1: 7;
hence contradiction by
A2,
A4,
NAT_1: 13;
end;
hence k
< (
len W2);
thus n
= ((
len W1)
+ k);
end;
hence thesis;
end;
suppose (W1
.last() )
<> (W2
.first() );
hence thesis by
A1,
Def10;
end;
end;
hence thesis;
end;
Lm15: for G be
_Graph, W be
Walk of G, m,n be
odd
Element of
NAT st m
<= n & n
<= (
len W) holds ((
len (W
.cut (m,n)))
+ m)
= (n
+ 1) & for i be
Element of
NAT st i
< (
len (W
.cut (m,n))) holds ((W
.cut (m,n))
. (i
+ 1))
= (W
. (m
+ i)) & (m
+ i)
in (
dom W)
proof
let G be
_Graph, W be
Walk of G, m,n be
odd
Element of
NAT ;
set W2 = (W
.cut (m,n));
assume that
A1: m
<= n and
A2: n
<= (
len W);
A3: 1
<= m by
ABIAN: 12;
A4: W2
= ((m,n)
-cut W) by
A1,
A2,
Def11;
hence
A5: ((
len (W
.cut (m,n)))
+ m)
= (n
+ 1) by
A1,
A2,
A3,
FINSEQ_6:def 4;
let i be
Element of
NAT ;
assume
A6: i
< (
len (W
.cut (m,n)));
hence ((W
.cut (m,n))
. (i
+ 1))
= (W
. (m
+ i)) by
A1,
A2,
A4,
A3,
FINSEQ_6:def 4;
(m
+ i)
< (n
+ 1) by
A5,
A6,
XREAL_1: 8;
then (m
+ i)
<= n by
NAT_1: 13;
then
A7: (m
+ i)
<= (
len W) by
A2,
XXREAL_0: 2;
1
<= (m
+ i) by
ABIAN: 12,
NAT_1: 12;
hence thesis by
A7,
FINSEQ_3: 25;
end;
Lm16: for G be
_Graph, W be
Walk of G, m,n be
odd
Element of
NAT st m
<= n & n
<= (
len W) holds ((W
.cut (m,n))
.first() )
= (W
. m) & ((W
.cut (m,n))
.last() )
= (W
. n) & (W
.cut (m,n))
is_Walk_from ((W
. m),(W
. n))
proof
let G be
_Graph, W be
Walk of G, m,n be
odd
Element of
NAT ;
set W2 = (W
.cut (m,n));
assume that
A1: m
<= n and
A2: n
<= (
len W);
(1
- 1)
< ((
len W2)
-
0 );
then (W2
. (
0
+ 1))
= (W
. (m
+
0 )) by
A1,
A2,
Lm15;
hence
A3: (W2
.first() )
= (W
. m);
reconsider nm4 = (n
- m) as
Element of
NAT by
A1,
INT_1: 5;
A4: (((
len W2)
+ m)
- m)
= ((n
+ 1)
- m) by
A1,
A2,
Lm15;
then (((n
- m)
+ 1)
- 1)
< ((
len W2)
-
0 ) by
XREAL_1: 15;
then nm4
< (
len W2);
then (W2
. ((n
- m)
+ 1))
= (W
. (m
+ (n
- m))) by
A1,
A2,
Lm15;
hence (W2
.last() )
= (W
. n) by
A4;
hence thesis by
A3;
end;
Lm17: for G be
_Graph, W be
Walk of G, m,n,o be
odd
Element of
NAT st m
<= n & n
<= o & o
<= (
len W) holds ((W
.cut (m,n))
.append (W
.cut (n,o)))
= (W
.cut (m,o))
proof
let G be
_Graph, W be
Walk of G, m,n,o be
odd
Element of
NAT ;
assume that
A1: m
<= n and
A2: n
<= o and
A3: o
<= (
len W);
set W1 = (W
.cut (m,n)), W2 = (W
.cut (n,o)), W3 = (W
.cut (m,o)), W4 = (W1
.append W2);
A4: n
<= (
len W) by
A2,
A3,
XXREAL_0: 2;
A5: m
<= o by
A1,
A2,
XXREAL_0: 2;
now
A6: ((
len W3)
+ m)
= (o
+ 1) by
A3,
A5,
Lm15;
A7: (W1
.last() )
= (W
. n) by
A1,
A4,
Lm16
.= (W2
.first() ) by
A2,
A3,
Lm16;
A8: ((
len W1)
+ m)
= (n
+ 1) by
A1,
A4,
Lm15;
A9: ((
len W2)
+ n)
= (o
+ 1) by
A2,
A3,
Lm15;
then (((
len W1)
+ (
len W2))
+ m)
= ((1
+ (
len W3))
+ m) by
A8,
A6;
then
A10: ((
len W4)
+ 1)
= ((
len W3)
+ 1) by
A7,
Lm9;
hence (
len W4)
= (
len W4) & (
len W3)
= (
len W4);
let x be
Nat;
assume
A11: x
in (
dom W4);
then
A12: 1
<= x by
FINSEQ_3: 25;
then
reconsider xaa1 = (x
- 1) as
Element of
NAT by
INT_1: 5;
A13: x
<= (
len W4) by
A11,
FINSEQ_3: 25;
then xaa1
< ((
len W4)
-
0 ) by
XREAL_1: 15;
then
A14: (W3
. (xaa1
+ 1))
= (W
. (m
+ xaa1)) by
A3,
A5,
A10,
Lm15;
now
per cases ;
suppose
A15: x
<= (
len W1);
then
A16: xaa1
< ((
len W1)
-
0 ) by
XREAL_1: 15;
x
in (
dom W1) by
A12,
A15,
FINSEQ_3: 25;
hence (W4
. x)
= (W1
. (xaa1
+ 1)) by
Lm12
.= (W3
. x) by
A1,
A4,
A14,
A16,
Lm15;
end;
suppose x
> (
len W1);
then
consider k be
Nat such that
A17: ((
len W1)
+ k)
= x by
NAT_1: 10;
reconsider k as
Element of
NAT by
ORDINAL1:def 12;
(((
len W1)
+ k)
+ 1)
<= ((
len W3)
+ 1) by
A10,
A13,
A17,
XREAL_1: 7;
then (((k
+ 1)
+ (
len W1))
- (
len W1))
<= (((
len W2)
+ (
len W1))
- (
len W1)) by
A8,
A9,
A6,
XREAL_1: 13;
then
A18: ((k
+ 1)
- 1)
< (((
len W2)
+ 1)
- 1) by
NAT_1: 13;
then (W4
. x)
= (W2
. (k
+ 1)) by
A7,
A17,
Lm13
.= (W
. (n
+ k)) by
A2,
A3,
A18,
Lm15;
hence (W4
. x)
= (W3
. x) by
A8,
A14,
A17;
end;
end;
hence (W4
. x)
= (W3
. x);
end;
hence thesis by
FINSEQ_2: 9;
end;
Lm18: for G be
_Graph, W be
Walk of G holds (W
.cut (1,(
len W)))
= W
proof
let G be
_Graph, W be
Walk of G;
1
<= (
len W) by
ABIAN: 12;
then (W
.cut (1,(
len W)))
= ((1,(
len W))
-cut W) by
Def11,
JORDAN12: 2;
hence thesis by
FINSEQ_6: 133;
end;
Lm19: for G be
_Graph, W be
Walk of G, n be
odd
Element of
NAT st n
<= (
len W) holds (W
.cut (n,n))
=
<*(W
.vertexAt n)*>
proof
let G be
_Graph, W be
Walk of G, n be
odd
Element of
NAT ;
A1: 1
<= n by
ABIAN: 12;
assume
A2: n
<= (
len W);
then
A3: (W
. n)
= (W
.vertexAt n) by
Def8;
(W
.cut (n,n))
= ((n,n)
-cut W) by
A2,
Def11;
hence thesis by
A2,
A3,
A1,
FINSEQ_6: 132;
end;
Lm20: for G be
_Graph, W be
Walk of G, m,n be
Element of
NAT holds m is
odd & m
<= n implies ((W
.cut (1,n))
.cut (1,m))
= (W
.cut (1,m))
proof
let G be
_Graph, W be
Walk of G, m,n be
Element of
NAT ;
set W1 = (W
.cut (1,n));
assume that
A1: m is
odd and
A2: m
<= n;
now
per cases ;
suppose
A3: n is
odd & n
<= (
len W);
A4: 1
<= m by
A1,
ABIAN: 12;
A5: 1
<= n by
A3,
ABIAN: 12;
then
A6: ((
len W1)
+ 1)
= (n
+ 1) by
A3,
Lm15,
JORDAN12: 2;
then
A7: ((
len (W1
.cut (1,m)))
+ 1)
= (m
+ 1) by
A1,
A2,
A4,
Lm15,
JORDAN12: 2;
A8: m
<= (
len W) by
A2,
A3,
XXREAL_0: 2;
then
A9: (W
.cut (1,m))
= ((1,m)
-cut W) by
A1,
A4,
Def11,
JORDAN12: 2;
A10: ((
len (W
.cut (1,m)))
+ 1)
= (m
+ 1) by
A1,
A4,
A8,
Lm15,
JORDAN12: 2;
A11: W1
= ((1,n)
-cut W) by
A3,
A5,
Def11,
JORDAN12: 2;
A12: (W1
.cut (1,m))
= ((1,m)
-cut W1) by
A1,
A2,
A4,
A6,
Def11,
JORDAN12: 2;
A13:
now
let x be
Nat;
assume
A14: x
in (
dom (W1
.cut (1,m)));
then
A15: x
<= m by
A7,
FINSEQ_3: 25;
A16: 1
<= x by
A14,
FINSEQ_3: 25;
then
reconsider xaa1 = (x
- 1) as
Element of
NAT by
INT_1: 5;
A17: 1
<= m by
A16,
A15,
XXREAL_0: 2;
A18: xaa1
< ((
len (W
.cut (1,m)))
-
0 ) by
A10,
A15,
XREAL_1: 15;
x
<= n by
A2,
A15,
XXREAL_0: 2;
then
A19: xaa1
< ((
len W1)
-
0 ) by
A6,
XREAL_1: 15;
xaa1
< ((
len (W1
.cut (1,m)))
-
0 ) by
A7,
A15,
XREAL_1: 15;
hence ((W1
.cut (1,m))
. x)
= (W1
. (1
+ xaa1)) by
A2,
A6,
A12,
A17,
FINSEQ_6:def 4
.= (W
. (1
+ xaa1)) by
A3,
A5,
A11,
A19,
FINSEQ_6:def 4
.= ((W
.cut (1,m))
. x) by
A4,
A8,
A9,
A18,
FINSEQ_6:def 4;
end;
((
len (W
.cut (1,m)))
+ 1)
= (m
+ 1) by
A1,
A4,
A8,
Lm15,
JORDAN12: 2;
hence thesis by
A7,
A13,
FINSEQ_2: 9;
end;
suppose not (n is
odd & n
<= (
len W));
hence thesis by
Def11;
end;
end;
hence thesis;
end;
Lm21: for G be
_Graph, W1,W2 be
Walk of G, m,n be
odd
Element of
NAT st m
<= n & n
<= (
len W1) & (W1
.last() )
= (W2
.first() ) holds ((W1
.append W2)
.cut (m,n))
= (W1
.cut (m,n))
proof
let G be
_Graph, W1,W2 be
Walk of G, m,n be
odd
Element of
NAT ;
assume that
A1: m
<= n and
A2: n
<= (
len W1) and
A3: (W1
.last() )
= (W2
.first() );
A4: (W1
.cut (m,n))
= ((m,n)
-cut W1) by
A1,
A2,
Def11;
set W3 = (W1
.append W2);
(
len W1)
<= (
len W3) by
A3,
Lm10;
then
A5: n
<= (
len W3) by
A2,
XXREAL_0: 2;
then
A6: ((
len (W3
.cut (m,n)))
+ m)
= (n
+ 1) by
A1,
Lm15
.= ((
len (W1
.cut (m,n)))
+ m) by
A1,
A2,
Lm15;
A7: 1
<= m by
ABIAN: 12;
A8: (W3
.cut (m,n))
= ((m,n)
-cut W3) by
A1,
A5,
Def11;
now
let x be
Nat;
assume
A9: x
in (
dom (W1
.cut (m,n)));
then 1
<= x by
FINSEQ_3: 25;
then
reconsider xaa1 = (x
- 1) as
Element of
NAT by
INT_1: 5;
A10: x
<= (
len (W1
.cut (m,n))) by
A9,
FINSEQ_3: 25;
then
A11: xaa1
< ((
len (W1
.cut (m,n)))
-
0 ) by
XREAL_1: 15;
((
len (W1
.cut (m,n)))
+ m)
= (n
+ 1) by
A1,
A2,
Lm15;
then (m
+ xaa1)
< (n
+ 1) by
A11,
XREAL_1: 8;
then (m
+ xaa1)
<= n by
NAT_1: 13;
then
A12: (m
+ xaa1)
<= (
len W1) by
A2,
XXREAL_0: 2;
1
<= (m
+ xaa1) by
ABIAN: 12,
NAT_1: 12;
then
A13: (m
+ xaa1)
in (
dom W1) by
A12,
FINSEQ_3: 25;
A14: (xaa1
+ 1)
= x;
xaa1
< ((
len (W3
.cut (m,n)))
-
0 ) by
A6,
A10,
XREAL_1: 15;
then
A15: ((W3
.cut (m,n))
. x)
= (W3
. (m
+ xaa1)) by
A1,
A5,
A8,
A7,
A14,
FINSEQ_6:def 4;
((W1
.cut (m,n))
. x)
= (W1
. (m
+ xaa1)) by
A1,
A2,
A4,
A7,
A14,
A11,
FINSEQ_6:def 4;
hence ((W3
.cut (m,n))
. x)
= ((W1
.cut (m,n))
. x) by
A15,
A13,
Lm12;
end;
hence thesis by
A6,
FINSEQ_2: 9;
end;
Lm22: for G be
_Graph, W be
Walk of G, m be
odd
Element of
NAT st m
<= (
len W) holds (
len (W
.cut (1,m)))
= m
proof
let G be
_Graph, W be
Walk of G, m be
odd
Element of
NAT ;
A1: 1
<= m by
ABIAN: 12;
assume m
<= (
len W);
then ((
len (W
.cut (1,m)))
+ 1)
= (m
+ 1) by
A1,
Lm15,
JORDAN12: 2;
hence thesis;
end;
Lm23: for G be
_Graph, W be
Walk of G, m be
odd
Element of
NAT , x be
Element of
NAT st x
in (
dom (W
.cut (1,m))) & m
<= (
len W) holds ((W
.cut (1,m))
. x)
= (W
. x)
proof
let G be
_Graph, W be
Walk of G, m be
odd
Element of
NAT , x be
Element of
NAT ;
assume that
A1: x
in (
dom (W
.cut (1,m))) and
A2: m
<= (
len W);
x
<= (
len (W
.cut (1,m))) by
A1,
FINSEQ_3: 25;
then
A3: (x
- 1)
< ((
len (W
.cut (1,m)))
-
0 ) by
XREAL_1: 15;
1
<= x by
A1,
FINSEQ_3: 25;
then
reconsider xaa1 = (x
- 1) as
Element of
NAT by
INT_1: 5;
A4: 1
<= m by
ABIAN: 12;
(xaa1
+ 1)
= x;
hence thesis by
A2,
A4,
A3,
Lm15,
JORDAN12: 2;
end;
Lm24: for G be
_Graph, W be
Walk of G, m,n be
odd
Element of
NAT st m
<= n & n
<= (
len W) & (W
. m)
= (W
. n) holds ((
len (W
.remove (m,n)))
+ n)
= ((
len W)
+ m)
proof
let G be
_Graph, W be
Walk of G, m,n be
odd
Element of
NAT ;
set W1 = (W
.cut (1,m)), W2 = (W
.cut (n,(
len W)));
assume that
A1: m
<= n and
A2: n
<= (
len W) and
A3: (W
. m)
= (W
. n);
A4: (W
.remove (m,n))
= (W1
.append W2) by
A1,
A2,
A3,
Def12;
A5: ((
len W2)
+ n)
= ((
len W)
+ 1) by
A2,
Lm15;
A6: (W
. n)
= (W2
.first() ) by
A2,
Lm16;
A7: 1
<= m by
ABIAN: 12;
A8: m
<= (
len W) by
A1,
A2,
XXREAL_0: 2;
then
A9: ((
len W1)
+ 1)
= (m
+ 1) by
A7,
Lm15,
JORDAN12: 2;
(W1
.last() )
= (W
. n) by
A3,
A7,
A8,
Lm16,
JORDAN12: 2;
then ((
len (W1
.append W2))
+ 1)
= (m
+ (((
len W)
+ 1)
+ (
- n))) by
A6,
A9,
A5,
Lm9
.= ((((
len W)
+ m)
+ (
- n))
+ 1);
hence thesis by
A4;
end;
Lm25: for G be
_Graph, W be
Walk of G, m,n be
Element of
NAT , x,y be
set holds W
is_Walk_from (x,y) implies (W
.remove (m,n))
is_Walk_from (x,y)
proof
let G be
_Graph, W be
Walk of G, m,n be
Element of
NAT , x,y be
set;
set W2 = (W
.remove (m,n)), WA = (W
.cut (1,m)), WB = (W
.cut (n,(
len W)));
assume
A1: W
is_Walk_from (x,y);
now
per cases ;
suppose
A2: m is
odd & n is
odd & m
<= n & n
<= (
len W) & (W
. m)
= (W
. n);
then
A3: (WB
.last() )
= (W
.last() ) by
Lm16
.= y by
A1;
A4: W2
= (WA
.append WB) by
A2,
Def12;
A5: m
<= (
len W) by
A2,
XXREAL_0: 2;
A6: 1
<= m by
A2,
ABIAN: 12;
then
A7: (WA
.first() )
= (W
.first() ) by
A2,
A5,
Lm16,
JORDAN12: 2
.= x by
A1;
(WA
.last() )
= (W
. n) by
A2,
A6,
A5,
Lm16,
JORDAN12: 2
.= (WB
.first() ) by
A2,
Lm16;
hence thesis by
A4,
A7,
A3,
Lm11;
end;
suppose not (m is
odd & n is
odd & m
<= n & n
<= (
len W) & (W
. m)
= (W
. n));
hence thesis by
A1,
Def12;
end;
end;
hence thesis;
end;
Lm26: for G be
_Graph, W be
Walk of G, m,n be
Element of
NAT holds (
len (W
.remove (m,n)))
<= (
len W)
proof
let G be
_Graph, W be
Walk of G, m,n be
Element of
NAT ;
set W2 = (W
.remove (m,n));
now
per cases ;
suppose
A1: m is
odd & n is
odd & m
<= n & n
<= (
len W) & (W
. m)
= (W
. n);
then ((
len W2)
+ n)
= ((
len W)
+ m) by
Lm24;
then (((
len W2)
+ n)
- n)
<= (((
len W)
+ m)
- m) by
A1,
XREAL_1: 13;
hence thesis;
end;
suppose not (m is
odd & n is
odd & m
<= n & n
<= (
len W) & (W
. m)
= (W
. n));
hence thesis by
Def12;
end;
end;
hence thesis;
end;
Lm27: for G be
_Graph, W be
Walk of G, m be
Element of
NAT holds (W
.remove (m,m))
= W
proof
let G be
_Graph, W be
Walk of G, m be
Element of
NAT ;
now
per cases ;
suppose
A1: m is
odd & m
<= (
len W) & (W
. m)
= (W
. m);
then
A2: 1
<= m by
ABIAN: 12;
thus (W
.remove (m,m))
= ((W
.cut (1,m))
.append (W
.cut (m,(
len W)))) by
A1,
Def12
.= (W
.cut (1,(
len W))) by
A1,
A2,
Lm17,
JORDAN12: 2
.= W by
Lm18;
end;
suppose not (m is
odd & m
<= (
len W) & (W
. m)
= (W
. m));
hence thesis by
Def12;
end;
end;
hence thesis;
end;
Lm28: for G be
_Graph, W be
Walk of G, m,n be
odd
Element of
NAT st m
<= n & n
<= (
len W) & (W
. m)
= (W
. n) holds ((W
.cut (1,m))
.last() )
= ((W
.cut (n,(
len W)))
.first() )
proof
let G be
_Graph, W be
Walk of G, m,n be
odd
Element of
NAT ;
assume that
A1: m
<= n and
A2: n
<= (
len W) and
A3: (W
. m)
= (W
. n);
A4: 1
<= m by
ABIAN: 12;
m
<= (
len W) by
A1,
A2,
XXREAL_0: 2;
hence ((W
.cut (1,m))
.last() )
= (W
. n) by
A3,
A4,
Lm16,
JORDAN12: 2
.= ((W
.cut (n,(
len W)))
.first() ) by
A2,
Lm16;
end;
Lm29: for G be
_Graph, W be
Walk of G, x,y be
set, m,n be
odd
Element of
NAT st m
<= n & n
<= (
len W) & (W
. m)
= (W
. n) holds for x be
Element of
NAT st x
in (
Seg m) holds ((W
.remove (m,n))
. x)
= (W
. x)
proof
let G be
_Graph, W be
Walk of G, x,y be
set, m,n be
odd
Element of
NAT ;
set W2 = (W
.remove (m,n));
assume that
A1: m
<= n and
A2: n
<= (
len W) and
A3: (W
. m)
= (W
. n);
let x be
Element of
NAT ;
assume
A4: x
in (
Seg m);
then x
<= m by
FINSEQ_1: 1;
then
A5: x
<= (
len (W
.cut (1,m))) by
A1,
A2,
Lm22,
XXREAL_0: 2;
1
<= x by
A4,
FINSEQ_1: 1;
then
A6: x
in (
dom (W
.cut (1,m))) by
A5,
FINSEQ_3: 25;
W2
= ((W
.cut (1,m))
.append (W
.cut (n,(
len W)))) by
A1,
A2,
A3,
Def12;
hence (W2
. x)
= ((W
.cut (1,m))
. x) by
A6,
Lm12
.= (W
. x) by
A1,
A2,
A6,
Lm23,
XXREAL_0: 2;
end;
Lm30: for G be
_Graph, W be
Walk of G, m,n be
odd
Element of
NAT st m
<= n & n
<= (
len W) & (W
. m)
= (W
. n) holds for x be
Element of
NAT st m
<= x & x
<= (
len (W
.remove (m,n))) holds ((W
.remove (m,n))
. x)
= (W
. ((x
- m)
+ n)) & ((x
- m)
+ n) is
Element of
NAT & ((x
- m)
+ n)
<= (
len W)
proof
let G be
_Graph, W be
Walk of G, m,n be
odd
Element of
NAT ;
set W2 = (W
.remove (m,n)), WA = (W
.cut (1,m)), WB = (W
.cut (n,(
len W)));
assume that
A1: m
<= n and
A2: n
<= (
len W) and
A3: (W
. m)
= (W
. n);
A4: (WA
.last() )
= (WB
.first() ) by
A1,
A2,
A3,
Lm28;
let x be
Element of
NAT ;
assume that
A5: m
<= x and
A6: x
<= (
len W2);
A7: (
len WA)
= m by
A1,
A2,
Lm22,
XXREAL_0: 2;
then
consider a be
Nat such that
A8: ((
len WA)
+ a)
= x by
A5,
NAT_1: 10;
reconsider a as
Element of
NAT by
ORDINAL1:def 12;
((
len W2)
+ n)
= ((
len W)
+ m) by
A1,
A2,
A3,
Lm24;
then ((m
+ a)
+ n)
<= (m
+ (
len W)) by
A7,
A6,
A8,
XREAL_1: 7;
then
A9: (((a
+ n)
+ m)
- m)
<= (((
len W)
+ m)
- m) by
XREAL_1: 13;
((
len WB)
+ n)
= ((
len W)
+ 1) by
A2,
Lm15;
then ((a
+ n)
+ 1)
<= ((
len WB)
+ n) by
A9,
XREAL_1: 7;
then (((a
+ 1)
+ n)
- n)
<= (((
len WB)
+ n)
- n) by
XREAL_1: 13;
then
A10: ((a
+ 1)
- 1)
< (((
len WB)
+ 1)
- 1) by
NAT_1: 13;
W2
= (WA
.append WB) by
A1,
A2,
A3,
Def12;
then (W2
. x)
= (WB
. (a
+ 1)) by
A4,
A8,
A10,
Lm13
.= (W
. (a
+ n)) by
A2,
A10,
Lm15;
hence (W2
. x)
= (W
. ((x
- m)
+ n)) by
A7,
A8;
(a
+ n) is
Element of
NAT ;
hence ((x
- m)
+ n) is
Element of
NAT by
A7,
A8;
thus thesis by
A7,
A8,
A9;
end;
Lm31: for G be
_Graph, W be
Walk of G, m,n be
odd
Element of
NAT st m
<= n & n
<= (
len W) & (W
. m)
= (W
. n) holds (
len (W
.remove (m,n)))
= (((
len W)
+ m)
- n)
proof
let G be
_Graph, W be
Walk of G, m,n be
odd
Element of
NAT ;
assume that
A1: m
<= n and
A2: n
<= (
len W) and
A3: (W
. m)
= (W
. n);
((
len (W
.remove (m,n)))
+ n)
= ((
len W)
+ m) by
A1,
A2,
A3,
Lm24;
hence thesis;
end;
Lm32: for G be
_Graph, W be
Walk of G, m be
Element of
NAT st (W
.first() )
= (W
. m) holds (W
.remove (1,m))
= (W
.cut (m,(
len W)))
proof
let G be
_Graph, W be
Walk of G, m be
Element of
NAT ;
assume
A1: (W
.first() )
= (W
. m);
now
per cases ;
suppose
A2: m is
odd & m
<= (
len W);
then 1
<= m by
ABIAN: 12;
then
A3: (W
.remove (1,m))
= ((W
.cut (1,1))
.append (W
.cut (m,(
len W)))) by
A1,
A2,
Def12,
JORDAN12: 2;
A4: 1
<= (
len W) by
ABIAN: 12;
then
A5: ((W
.cut (1,1))
.last() )
= (W
. m) by
A1,
Lm16,
JORDAN12: 2
.= ((W
.cut (m,(
len W)))
.first() ) by
A2,
Lm16;
A6:
now
let n be
Nat;
assume that
A7: 1
<= n and
A8: n
<= (
len (W
.remove (1,m)));
A9: n
in (
dom (W
.remove (1,m))) by
A7,
A8,
FINSEQ_3: 25;
now
per cases by
A3,
A9,
Lm14;
suppose
A10: n
in (
dom (W
.cut (1,1)));
then n
<= (
len (W
.cut (1,1))) by
FINSEQ_3: 25;
then
A11: n
<= 1 by
A4,
Lm22,
JORDAN12: 2;
A12: 1
<= n by
A10,
FINSEQ_3: 25;
then
A13: n
= 1 by
A11,
XXREAL_0: 1;
((W
.remove (1,m))
. n)
= ((W
.cut (1,1))
. n) by
A3,
A10,
Lm12
.= (
<*(W
.vertexAt 1)*>
. 1) by
A4,
A13,
Lm19,
JORDAN12: 2
.= (W
.vertexAt 1) by
FINSEQ_1:def 8
.= (W
. m) by
A1,
A4,
Def8,
JORDAN12: 2
.= ((W
.cut (m,(
len W)))
.first() ) by
A2,
Lm16
.= ((W
.cut (m,(
len W)))
. 1);
hence ((W
.remove (1,m))
. n)
= ((W
.cut (m,(
len W)))
. n) by
A12,
A11,
XXREAL_0: 1;
end;
suppose ex k be
Element of
NAT st k
< (
len (W
.cut (m,(
len W)))) & n
= ((
len (W
.cut (1,1)))
+ k);
then
consider k be
Element of
NAT such that
A14: k
< (
len (W
.cut (m,(
len W)))) and
A15: n
= ((
len (W
.cut (1,1)))
+ k);
n
= (k
+ 1) by
A14,
A15,
Lm22,
ABIAN: 12,
JORDAN12: 2;
hence ((W
.remove (1,m))
. n)
= ((W
.cut (m,(
len W)))
. n) by
A3,
A5,
A14,
A15,
Lm13;
end;
end;
hence ((W
.remove (1,m))
. n)
= ((W
.cut (m,(
len W)))
. n);
end;
((
len (W
.remove (1,m)))
+ 1)
= ((
len (W
.cut (1,1)))
+ (
len (W
.cut (m,(
len W))))) by
A3,
A5,
Lm9;
then ((
len (W
.remove (1,m)))
+ 1)
= ((
len (W
.cut (m,(
len W))))
+ 1) by
Lm22,
ABIAN: 12,
JORDAN12: 2;
hence thesis by
A6,
FINSEQ_1: 14;
end;
suppose
A16: not (m is
odd & m
<= (
len W));
then (W
.cut (m,(
len W)))
= W by
Def11;
hence thesis by
A16,
Def12;
end;
end;
hence thesis;
end;
Lm33: for G be
_Graph, W be
Walk of G, m,n be
Element of
NAT holds ((W
.remove (m,n))
.first() )
= (W
.first() ) & ((W
.remove (m,n))
.last() )
= (W
.last() )
proof
let G be
_Graph, W be
Walk of G, m,n be
Element of
NAT ;
W
is_Walk_from ((W
.first() ),(W
.last() ));
then (W
.remove (m,n))
is_Walk_from ((W
.first() ),(W
.last() )) by
Lm25;
hence thesis;
end;
Lm34: for G be
_Graph, W be
Walk of G, m,n be
odd
Element of
NAT , x be
Element of
NAT st x
in (
dom (W
.remove (m,n))) holds x
in (
Seg m) or m
<= x & x
<= (
len (W
.remove (m,n)))
proof
let G be
_Graph, W be
Walk of G, m,n be
odd
Element of
NAT , x be
Element of
NAT ;
assume that
A1: x
in (
dom (W
.remove (m,n)));
1
<= x by
A1,
FINSEQ_3: 25;
hence thesis by
A1,
FINSEQ_1: 1,
FINSEQ_3: 25;
end;
Lm35: for G be
_Graph, W be
Walk of G, e,x be
object holds e
Joins ((W
.last() ),x,G) implies (W
.addEdge e)
= (W
^
<*e, x*>)
proof
let G be
_Graph, W be
Walk of G, e,x be
object;
set W1 = (G
.walkOf ((W
.last() ),e,((W
.last() )
.adj e)));
assume
A1: e
Joins ((W
.last() ),x,G);
then
reconsider x9 = x as
Vertex of G by
GLIB_000: 13;
A2: ((W
.last() )
.adj e)
= x9 by
A1,
GLIB_000: 66;
then
A3: W1
=
<*(W
.last() ), e, x*> by
A1,
Def5;
then
A4: (
len W1)
= 3 by
FINSEQ_1: 45;
A5: (W1
. 3)
= x by
A3,
FINSEQ_1: 45;
(W1
. 2)
= e by
A3,
FINSEQ_1: 45;
then ((2,2)
-cut W1)
=
<*e*> by
A4,
FINSEQ_6: 132;
then (
<*e*>
^ (((2
+ 1),3)
-cut W1))
= (((1
+ 1),3)
-cut W1) by
A4,
FINSEQ_6: 134;
then
A6: (
<*e*>
^
<*x*>)
= ((2,3)
-cut W1) by
A4,
A5,
FINSEQ_6: 132;
(W
.last() )
= (W1
.first() ) by
A1,
A2,
Lm6;
then (W
.append W1)
= (W
^' W1) by
Def10
.= (W
^ ((2,(
len W1))
-cut W1)) by
FINSEQ_6:def 5
.= (W
^ ((2,3)
-cut W1)) by
A3,
FINSEQ_1: 45;
hence thesis by
A6,
FINSEQ_1:def 9;
end;
Lm36: for G be
_Graph, W be
Walk of G, e,x be
object holds e
Joins ((W
.last() ),x,G) implies ((W
.addEdge e)
.first() )
= (W
.first() ) & ((W
.addEdge e)
.last() )
= x & (W
.addEdge e)
is_Walk_from ((W
.first() ),x)
proof
let G be
_Graph, W be
Walk of G, e,x be
object;
set W2 = (G
.walkOf ((W
.last() ),e,((W
.last() )
.adj e)));
assume
A1: e
Joins ((W
.last() ),x,G);
then
reconsider x9 = x as
Vertex of G by
GLIB_000: 13;
A2: ((W
.last() )
.adj e)
= x9 by
A1,
GLIB_000: 66;
then
A3: (W2
.last() )
= x by
A1,
Lm6;
(W2
.first() )
= (W
.last() ) by
A1,
A2,
Lm6;
hence thesis by
A3,
Lm11;
end;
Lm37: for G be
_Graph, W be
Walk of G, e,x be
object holds e
Joins ((W
.last() ),x,G) implies (
len (W
.addEdge e))
= ((
len W)
+ 2)
proof
let G be
_Graph, W be
Walk of G, e,x be
object;
set W2 = (G
.walkOf ((W
.last() ),e,((W
.last() )
.adj e)));
assume
A1: e
Joins ((W
.last() ),x,G);
then
reconsider x9 = x as
Vertex of G by
GLIB_000: 13;
A2: ((W
.last() )
.adj e)
= x9 by
A1,
GLIB_000: 66;
then (W2
.first() )
= (W
.last() ) by
A1,
Lm6;
then
A3: ((
len (W
.addEdge e))
+ 1)
= ((
len W)
+ (
len W2)) by
Lm9;
W2
=
<*(W
.last() ), e, x*> by
A1,
A2,
Def5;
then ((
len (W
.addEdge e))
+ 1)
= ((
len W)
+ 3) by
A3,
FINSEQ_1: 45;
hence thesis;
end;
Lm38: for G be
_Graph, W be
Walk of G, e,x be
object holds e
Joins ((W
.last() ),x,G) implies ((W
.addEdge e)
. ((
len W)
+ 1))
= e & ((W
.addEdge e)
. ((
len W)
+ 2))
= x & for n be
Element of
NAT st n
in (
dom W) holds ((W
.addEdge e)
. n)
= (W
. n)
proof
let G be
_Graph, W be
Walk of G, e,x be
object;
set W2 = (W
.addEdge e);
A1: (
<*e, x*>
. 1)
= e by
FINSEQ_1: 44;
assume e
Joins ((W
.last() ),x,G);
then
A2: W2
= (W
^
<*e, x*>) by
Lm35;
A3: (
dom
<*e, x*>)
= (
Seg 2) by
FINSEQ_1: 89;
then 1
in (
dom
<*e, x*>) by
FINSEQ_1: 1;
hence (W2
. ((
len W)
+ 1))
= e by
A2,
A1,
FINSEQ_1:def 7;
A4: (
<*e, x*>
. 2)
= x by
FINSEQ_1: 44;
2
in (
dom
<*e, x*>) by
A3,
FINSEQ_1: 1;
hence (W2
. ((
len W)
+ 2))
= x by
A2,
A4,
FINSEQ_1:def 7;
let n be
Element of
NAT ;
assume n
in (
dom W);
hence thesis by
A2,
FINSEQ_1:def 7;
end;
Lm39: for G be
_Graph, W be
Walk of G, e,x,y,z be
object holds W
is_Walk_from (x,y) & e
Joins (y,z,G) implies (W
.addEdge e)
is_Walk_from (x,z) by
Lm36;
Lm40: for G be
_Graph, W be
Walk of G, n be
even
Nat st 1
<= n & n
<= (
len W) holds (n
div 2)
in (
dom (W
.edgeSeq() )) & (W
. n)
= ((W
.edgeSeq() )
. (n
div 2))
proof
let G be
_Graph, W be
Walk of G, n be
even
Nat;
assume that
A1: 1
<= n and
A2: n
<= (
len W);
A3: 2
divides n by
PEPIN: 22;
then
A4: n
= (2
* (n
div 2)) by
NAT_D: 3;
A5:
now
assume
A6: not (n
div 2)
in (
dom (W
.edgeSeq() ));
now
per cases by
A6,
FINSEQ_3: 25;
suppose (n
div 2)
< (
0
+ 1);
then (n
div 2)
=
0 by
NAT_1: 13;
then n
= (2
*
0 ) by
A3,
NAT_D: 3;
hence contradiction by
A1;
end;
suppose (n
div 2)
> (
len (W
.edgeSeq() ));
then (2
* (n
div 2))
> (2
* (
len (W
.edgeSeq() ))) by
XREAL_1: 68;
then (n
+ 1)
> ((2
* (
len (W
.edgeSeq() )))
+ 1) by
A4,
XREAL_1: 8;
then (n
+ 1)
> (
len W) by
Def15;
then n
>= (
len W) by
NAT_1: 13;
hence contradiction by
A2,
XXREAL_0: 1;
end;
end;
hence contradiction;
end;
hence (n
div 2)
in (
dom (W
.edgeSeq() ));
A7: (n
div 2)
<= (
len (W
.edgeSeq() )) by
A5,
FINSEQ_3: 25;
1
<= (n
div 2) by
A5,
FINSEQ_3: 25;
hence thesis by
A4,
A7,
Def15;
end;
Lm41: for G be
_Graph, W be
Walk of G, n be
Nat holds n
in (
dom (W
.edgeSeq() )) iff (2
* n)
in (
dom W)
proof
let G be
_Graph, W be
Walk of G, n be
Nat;
hereby
assume
A1: n
in (
dom (W
.edgeSeq() ));
then n
<= (
len (W
.edgeSeq() )) by
FINSEQ_3: 25;
then (2
* n)
<= ((
len (W
.edgeSeq() ))
* 2) by
NAT_1: 4;
then (2
* n)
<= (((
len (W
.edgeSeq() ))
* 2)
+ 1) by
NAT_1: 12;
then
A2: (2
* n)
<= (
len W) by
Def15;
1
<= n by
A1,
FINSEQ_3: 25;
then 1
<= (n
+ n) by
NAT_1: 12;
hence (2
* n)
in (
dom W) by
A2,
FINSEQ_3: 25;
end;
assume
A3: (2
* n)
in (
dom W);
then
A4: (2
* n)
<= (
len W) by
FINSEQ_3: 25;
1
<= (2
* n) by
A3,
FINSEQ_3: 25;
then ((2
* n)
div 2)
in (
dom (W
.edgeSeq() )) by
A4,
Lm40;
hence thesis by
NAT_D: 18;
end;
Lm42: for G be
_Graph, W be
Walk of G holds ex lenWaa1 be
even
Element of
NAT st lenWaa1
= ((
len W)
- 1) & (
len (W
.edgeSeq() ))
= (lenWaa1
div 2)
proof
let G be
_Graph, W be
Walk of G;
set lenWaa1 = ((
len W)
- 1);
reconsider lenWaa1 as
even
Element of
NAT by
ABIAN: 12,
INT_1: 5;
take lenWaa1;
thus lenWaa1
= ((
len W)
- 1);
2
divides lenWaa1 by
PEPIN: 22;
then
A1: lenWaa1
= (2
* (lenWaa1
div 2)) by
NAT_D: 3;
(
len W)
= ((2
* (
len (W
.edgeSeq() )))
+ 1) by
Def15;
hence thesis by
A1;
end;
Lm43: for G be
_Graph, W be
Walk of G, n be
Element of
NAT holds ((W
.cut (1,n))
.edgeSeq() )
c= (W
.edgeSeq() )
proof
let G be
_Graph, W be
Walk of G, n be
Element of
NAT ;
per cases ;
suppose
A1: n is
odd & 1
<= n & n
<= (
len W);
set f = ((W
.cut (1,n))
.edgeSeq() );
now
let e be
object;
assume
A2: e
in ((W
.cut (1,n))
.edgeSeq() );
then
consider x,y be
object such that
A3: e
=
[x, y] by
RELAT_1:def 1;
A4: y
= (f
. x) by
A2,
A3,
FUNCT_1: 1;
A5: x
in (
dom f) by
A2,
A3,
FUNCT_1: 1;
then
reconsider x as
Element of
NAT ;
A6: x
<= (
len f) by
A5,
FINSEQ_3: 25;
A7: (2
* x)
in (
dom (W
.cut (1,n))) by
A5,
Lm41;
then (2
* x)
<= (
len (W
.cut (1,n))) by
FINSEQ_3: 25;
then (2
* x)
<= n by
A1,
Lm22;
then
A8: (2
* x)
<= (
len W) by
A1,
XXREAL_0: 2;
1
<= (2
* x) by
A7,
FINSEQ_3: 25;
then (2
* x)
in (
dom W) by
A8,
FINSEQ_3: 25;
then
A9: x
in (
dom (W
.edgeSeq() )) by
Lm41;
then
A10: x
<= (
len (W
.edgeSeq() )) by
FINSEQ_3: 25;
1
<= x by
A5,
FINSEQ_3: 25;
then y
= ((W
.cut (1,n))
. (2
* x)) by
A4,
A6,
Def15;
then
A11: y
= (W
. (2
* x)) by
A1,
A7,
Lm23;
1
<= x by
A9,
FINSEQ_3: 25;
then ((W
.edgeSeq() )
. x)
= y by
A11,
A10,
Def15;
hence e
in (W
.edgeSeq() ) by
A3,
A9,
FUNCT_1: 1;
end;
hence thesis by
TARSKI:def 3;
end;
suppose not (n is
odd & 1
<= n & n
<= (
len W));
hence thesis by
Def11;
end;
end;
Lm44: for G be
_Graph, W be
Walk of G, e,x be
object holds e
Joins ((W
.last() ),x,G) implies ((W
.addEdge e)
.edgeSeq() )
= ((W
.edgeSeq() )
^
<*e*>)
proof
let G be
_Graph, W be
Walk of G, e,x be
object;
set W2 = (W
.addEdge e), W3 = ((W
.edgeSeq() )
^
<*e*>);
assume
A1: e
Joins ((W
.last() ),x,G);
then (
len W2)
= ((
len W)
+ 2) by
Lm37;
then ((
len W)
+ 2)
= ((2
* (
len (W2
.edgeSeq() )))
+ 1) by
Def15;
then (2
+ ((2
* (
len (W
.edgeSeq() )))
+ 1))
= ((2
* (
len (W2
.edgeSeq() )))
+ 1) by
Def15;
then
A2: (2
* ((
len (W
.edgeSeq() ))
+ 1))
= (2
* (
len (W2
.edgeSeq() )));
(
len W3)
= ((
len (W
.edgeSeq() ))
+ (
len
<*e*>)) by
FINSEQ_1: 22;
then
A3: (2
* (
len W3))
= (2
* (
len (W2
.edgeSeq() ))) by
A2,
FINSEQ_1: 39;
now
let k be
Nat;
assume that
A4: 1
<= k and
A5: k
<= (
len (W2
.edgeSeq() ));
A6: ((W2
.edgeSeq() )
. k)
= (W2
. (2
* k)) by
A4,
A5,
Def15;
A7: k
in (
dom W3) by
A3,
A4,
A5,
FINSEQ_3: 25;
now
per cases by
A7,
FINSEQ_1: 25;
suppose
A8: k
in (
dom (W
.edgeSeq() ));
then
A9: (2
* k)
in (
dom W) by
Lm41;
A10: 1
<= k by
A8,
FINSEQ_3: 25;
A11: k
<= (
len (W
.edgeSeq() )) by
A8,
FINSEQ_3: 25;
(W3
. k)
= ((W
.edgeSeq() )
. k) by
A8,
FINSEQ_1:def 7;
then (W3
. k)
= (W
. (2
* k)) by
A10,
A11,
Def15;
hence ((W2
.edgeSeq() )
. k)
= (W3
. k) by
A1,
A6,
A9,
Lm38;
end;
suppose ex n be
Nat st n
in (
dom
<*e*>) & k
= ((
len (W
.edgeSeq() ))
+ n);
then
consider n be
Element of
NAT such that
A12: n
in (
dom
<*e*>) and
A13: k
= ((
len (W
.edgeSeq() ))
+ n);
n
in
{1} by
A12,
FINSEQ_1: 2,
FINSEQ_1: 38;
then
A14: n
= 1 by
TARSKI:def 1;
then
A15: (2
* k)
= (((2
* (
len (W
.edgeSeq() )))
+ 1)
+ 1) by
A13
.= ((
len W)
+ 1) by
Def15;
(W3
. k)
= (
<*e*>
. 1) by
A12,
A13,
A14,
FINSEQ_1:def 7
.= e by
FINSEQ_1:def 8;
hence ((W2
.edgeSeq() )
. k)
= (W3
. k) by
A1,
A6,
A15,
Lm38;
end;
end;
hence ((W2
.edgeSeq() )
. k)
= (W3
. k);
end;
hence thesis by
A3,
FINSEQ_1: 14;
end;
Lm45: for G be
_Graph, W be
Walk of G, x be
set holds x
in (W
.vertices() ) iff ex n be
odd
Element of
NAT st n
<= (
len W) & (W
. n)
= x
proof
let G be
_Graph, W be
Walk of G, x be
set;
set vs = (W
.vertexSeq() );
hereby
assume x
in (W
.vertices() );
then
consider i be
Nat such that
A1: i
in (
dom vs) and
A2: (vs
. i)
= x by
FINSEQ_2: 10;
set n1 = (2
* i);
reconsider n1 as
even
Nat;
set n = (n1
- 1);
A3: 1
<= i by
A1,
FINSEQ_3: 25;
then 1
<= (i
+ i) by
NAT_1: 12;
then
reconsider n as
odd
Element of
NAT by
INT_1: 5;
take n;
A4: i
<= (
len vs) by
A1,
FINSEQ_3: 25;
then (i
* 2)
<= ((
len vs)
* 2) by
XREAL_1: 64;
then (i
* 2)
<= ((
len W)
+ 1) by
Def14;
then (n1
- 1)
<= (((
len W)
+ 1)
- 1) by
XREAL_1: 13;
hence n
<= (
len W);
thus (W
. n)
= x by
A2,
A3,
A4,
Def14;
end;
assume ex n be
odd
Element of
NAT st n
<= (
len W) & (W
. n)
= x;
then
consider n be
odd
Element of
NAT such that
A5: n
<= (
len W) and
A6: (W
. n)
= x;
set n1 = (n
+ 1);
reconsider n1 as
even
Element of
NAT ;
set i = (n1
div 2);
A7: 2
divides n1 by
PEPIN: 22;
then
A8: (2
* i)
= n1 by
NAT_D: 3;
reconsider i as
Element of
NAT ;
1
<= n by
ABIAN: 12;
then (1
+ 1)
<= n1 by
XREAL_1: 7;
then (2
* 1)
<= (2
* i) by
A7,
NAT_D: 3;
then
A9: 1
<= i by
XREAL_1: 68;
n1
<= ((
len W)
+ 1) by
A5,
XREAL_1: 7;
then (2
* i)
<= (2
* (
len vs)) by
A8,
Def14;
then
A10: i
<= (
len vs) by
XREAL_1: 68;
then
A11: i
in (
dom vs) by
A9,
FINSEQ_3: 25;
(vs
. i)
= (W
. ((2
* i)
- 1)) by
A9,
A10,
Def14
.= x by
A6,
A8;
hence thesis by
A11,
FUNCT_1:def 3;
end;
Lm46: for G be
_Graph, W be
Walk of G, e be
set holds e
in (W
.edges() ) iff ex n be
even
Element of
NAT st 1
<= n & n
<= (
len W) & (W
. n)
= e
proof
let G be
_Graph, W be
Walk of G, e be
set;
set es = (W
.edgeSeq() );
hereby
assume e
in (W
.edges() );
then
consider i be
Nat such that
A1: i
in (
dom es) and
A2: (es
. i)
= e by
FINSEQ_2: 10;
set n = (2
* i);
reconsider n as
even
Element of
NAT by
ORDINAL1:def 12;
take n;
A3: 1
<= i by
A1,
FINSEQ_3: 25;
then 1
<= (i
+ i) by
NAT_1: 12;
hence 1
<= n;
A4: i
<= (
len es) by
A1,
FINSEQ_3: 25;
then (i
* 2)
<= ((
len es)
* 2) by
XREAL_1: 64;
then n
<= (((
len es)
* 2)
+ 1) by
NAT_1: 12;
hence n
<= (
len W) by
Def15;
thus (W
. n)
= e by
A2,
A3,
A4,
Def15;
end;
assume ex n be
even
Element of
NAT st 1
<= n & n
<= (
len W) & (W
. n)
= e;
then
consider n be
even
Element of
NAT such that
A5: 1
<= n and
A6: n
<= (
len W) and
A7: (W
. n)
= e;
set i = (n
div 2);
2
divides n by
PEPIN: 22;
then
A8: (2
* i)
= n by
NAT_D: 3;
reconsider i as
Element of
NAT ;
1
< n by
A5,
JORDAN12: 2,
XXREAL_0: 1;
then (1
+ 1)
< (n
+ 1) by
XREAL_1: 8;
then (2
* 1)
<= (2
* i) by
A8,
NAT_1: 13;
then
A9: 1
<= i by
XREAL_1: 68;
n
< (
len W) by
A6,
XXREAL_0: 1;
then (2
* i)
< ((2
* (
len es))
+ 1) by
A8,
Def15;
then (2
* i)
<= (2
* (
len es)) by
NAT_1: 13;
then
A10: i
<= (
len es) by
XREAL_1: 68;
then
A11: i
in (
dom es) by
A9,
FINSEQ_3: 25;
(es
. i)
= e by
A7,
A8,
A9,
A10,
Def15;
hence thesis by
A11,
FUNCT_1:def 3;
end;
Lm47: for G be
_Graph, W be
Walk of G, e be
set holds e
in (W
.edges() ) implies ex v1,v2 be
Vertex of G, n be
odd
Element of
NAT st (n
+ 2)
<= (
len W) & v1
= (W
. n) & e
= (W
. (n
+ 1)) & v2
= (W
. (n
+ 2)) & e
Joins (v1,v2,G)
proof
let G be
_Graph, W be
Walk of G, e be
set;
reconsider lenW = (
len W) as
odd
Element of
NAT ;
assume e
in (W
.edges() );
then
consider n1 be
even
Element of
NAT such that
A1: 1
<= n1 and
A2: n1
<= (
len W) and
A3: (W
. n1)
= e by
Lm46;
reconsider n = (n1
- 1) as
odd
Element of
NAT by
A1,
INT_1: 5;
set v1 = (W
. n), v2 = (W
. (n
+ 2));
(n1
- 1)
<= ((
len W)
-
0 ) by
A2,
XREAL_1: 13;
then
reconsider v1 as
Vertex of G by
Lm1;
n1
< lenW by
A2,
XXREAL_0: 1;
then
A4: ((n
+ 1)
+ 1)
<= (
len W) by
NAT_1: 13;
then
reconsider v2 as
Vertex of G by
Lm1;
take v1, v2, n;
thus (n
+ 2)
<= (
len W) by
A4;
thus v1
= (W
. n) & e
= (W
. (n
+ 1)) & v2
= (W
. (n
+ 2)) by
A3;
((n
+ 1)
- 1)
< ((
len W)
-
0 ) by
A2,
XREAL_1: 15;
hence thesis by
A3,
Def3;
end;
Lm48: for G be
_Graph, W be
Walk of G, e,x,y be
object holds e
in (W
.edges() ) & e
Joins (x,y,G) implies x
in (W
.vertices() ) & y
in (W
.vertices() )
proof
let G be
_Graph, W be
Walk of G, e,x,y be
object;
assume that
A1: e
in (W
.edges() ) and
A2: e
Joins (x,y,G);
consider v1,v2 be
Vertex of G, n be
odd
Element of
NAT such that
A3: (n
+ 2)
<= (
len W) and
A4: v1
= (W
. n) and e
= (W
. (n
+ 1)) and
A5: v2
= (W
. (n
+ 2)) and
A6: e
Joins (v1,v2,G) by
A1,
Lm47;
((n
+ 2)
- 2)
<= ((
len W)
-
0 ) by
A3,
XREAL_1: 13;
then
A7: v1
in (W
.vertices() ) by
A4,
Lm45;
v2
in (W
.vertices() ) by
A3,
A5,
Lm45;
hence thesis by
A2,
A6,
A7,
GLIB_000: 15;
end;
Lm49: for G be
_Graph, W be
Walk of G, n be
odd
Element of
NAT st n
<= (
len W) holds (W
.find n)
<= n
proof
let G be
_Graph, W be
Walk of G, n be
odd
Element of
NAT ;
assume
A1: n
<= (
len W);
then for k be
odd
Element of
NAT st k
<= (
len W) & (W
. k)
= (W
. n) holds (W
.find n)
<= k by
Def20;
hence thesis by
A1;
end;
Lm50: for G be
_Graph, W be
Walk of G, n be
odd
Element of
NAT st n
<= (
len W) holds (W
.rfind n)
>= n
proof
let G be
_Graph, W be
Walk of G, n be
odd
Element of
NAT ;
assume
A1: n
<= (
len W);
then for k be
odd
Element of
NAT st k
<= (
len W) & (W
. k)
= (W
. n) holds k
<= (W
.rfind n) by
Def22;
hence thesis by
A1;
end;
Lm51: for G be
_Graph, W be
Walk of G holds W is
directed iff for n be
odd
Element of
NAT st n
< (
len W) holds (W
. (n
+ 1))
DJoins ((W
. n),(W
. (n
+ 2)),G)
proof
let G be
_Graph, W be
Walk of G;
hereby
assume
A1: W is
directed;
let n be
odd
Element of
NAT ;
assume
A2: n
< (
len W);
then
A3: (W
. n)
= ((
the_Source_of G)
. (W
. (n
+ 1))) by
A1;
A4:
now
assume
A5: (W
. (n
+ 1))
DJoins ((W
. (n
+ 2)),(W
. n),G);
then (W
. (n
+ 2))
= (W
. n) by
A3,
GLIB_000:def 14;
hence (W
. (n
+ 1))
DJoins ((W
. n),(W
. (n
+ 2)),G) by
A5;
end;
(W
. (n
+ 1))
Joins ((W
. n),(W
. (n
+ 2)),G) by
A2,
Def3;
hence (W
. (n
+ 1))
DJoins ((W
. n),(W
. (n
+ 2)),G) by
A4,
GLIB_000: 16;
end;
assume
A6: for n be
odd
Element of
NAT st n
< (
len W) holds (W
. (n
+ 1))
DJoins ((W
. n),(W
. (n
+ 2)),G);
now
let n be
odd
Element of
NAT ;
assume n
< (
len W);
then (W
. (n
+ 1))
DJoins ((W
. n),(W
. (n
+ 2)),G) by
A6;
hence ((
the_Source_of G)
. (W
. (n
+ 1)))
= (W
. n) by
GLIB_000:def 14;
end;
hence thesis;
end;
Lm52: for G be
_Graph, W be
Walk of G, x,e,y,z be
set holds W is
directed & W
is_Walk_from (x,y) & e
DJoins (y,z,G) implies (W
.addEdge e) is
directed & (W
.addEdge e)
is_Walk_from (x,z)
proof
let G be
_Graph, W be
Walk of G, x,e,y,z be
set;
set W2 = (W
.addEdge e);
assume that
A1: W is
directed and
A2: W
is_Walk_from (x,y) and
A3: e
DJoins (y,z,G);
A4: (W
.last() )
= y by
A2;
then
A5: e
Joins ((W
.last() ),z,G) by
A3,
GLIB_000: 16;
then
A6: (
len W2)
= ((
len W)
+ 2) by
Lm37;
A7: (W2
. ((
len W)
+ 1))
= e by
A5,
Lm38;
1
<= (
len W) by
ABIAN: 12;
then (
len W)
in (
dom W) by
FINSEQ_3: 25;
then
A8: (W2
. (
len W))
= y by
A4,
A5,
Lm38;
now
let n be
odd
Element of
NAT ;
assume n
< (
len W2);
then n
< (((
len W)
+ 1)
+ 1) by
A6;
then n
<= ((
len W)
+ 1) by
NAT_1: 13;
then n
< ((
len W)
+ 1) by
XXREAL_0: 1;
then
A9: n
<= (
len W) by
NAT_1: 13;
now
per cases ;
suppose n
= (
len W);
hence (W2
. n)
= ((
the_Source_of G)
. (W2
. (n
+ 1))) by
A3,
A8,
A7,
GLIB_000:def 14;
end;
suppose
A10: n
<> (
len W);
A11: 1
<= (n
+ 1) by
NAT_1: 12;
1
<= n by
ABIAN: 12;
then n
in (
dom W) by
A9,
FINSEQ_3: 25;
then
A12: (W2
. n)
= (W
. n) by
A5,
Lm38;
A13: n
< (
len W) by
A9,
A10,
XXREAL_0: 1;
then (n
+ 1)
<= (
len W) by
NAT_1: 13;
then (n
+ 1)
in (
dom W) by
A11,
FINSEQ_3: 25;
then (W2
. (n
+ 1))
= (W
. (n
+ 1)) by
A5,
Lm38;
hence (W2
. n)
= ((
the_Source_of G)
. (W2
. (n
+ 1))) by
A1,
A13,
A12;
end;
end;
hence (W2
. n)
= ((
the_Source_of G)
. (W2
. (n
+ 1)));
end;
hence (W
.addEdge e) is
directed;
thus thesis by
A2,
A5,
Lm39;
end;
Lm53: for G be
_Graph, W be
Walk of G, m,n be
Element of
NAT holds W is
directed implies (W
.cut (m,n)) is
directed
proof
let G be
_Graph, W be
Walk of G, m,n be
Element of
NAT ;
set W2 = (W
.cut (m,n));
assume
A1: W is
directed;
now
per cases ;
suppose
A2: m is
odd & n is
odd & m
<= n & n
<= (
len W);
then
reconsider m9 = m as
odd
Element of
NAT ;
now
let x be
odd
Element of
NAT ;
reconsider xaa1 = (x
- 1) as
even
Element of
NAT by
ABIAN: 12,
INT_1: 5;
assume
A3: x
< (
len W2);
then (x
+ 1)
<= (
len W2) by
NAT_1: 13;
then
A4: (x
+ 1)
< (
len W2) by
XXREAL_0: 1;
(m
+ x)
in (
dom W) by
A2,
A3,
Lm15;
then (m9
+ x)
<= (
len W) by
FINSEQ_3: 25;
then
A5: ((m9
+ x)
- 1)
< ((
len W)
-
0 ) by
XREAL_1: 15;
xaa1
< ((
len W2)
-
0 ) by
A3,
XREAL_1: 14;
then
A6: (W2
. (xaa1
+ 1))
= (W
. (m
+ xaa1)) by
A2,
Lm15;
A7: (W2
. (x
+ 2))
= (W2
. ((x
+ 1)
+ 1))
.= (W
. (m
+ (((x
- 1)
+ 1)
+ 1))) by
A2,
A4,
Lm15
.= (W
. ((m
+ xaa1)
+ 2));
(W2
. (x
+ 1))
= (W
. (((m
+ x)
- 1)
+ 1)) by
A2,
A3,
Lm15
.= (W
. ((m
+ xaa1)
+ 1));
hence (W2
. (x
+ 1))
DJoins ((W2
. x),(W2
. (x
+ 2)),G) by
A1,
A6,
A5,
A7,
Lm51;
end;
hence thesis by
Lm51;
end;
suppose not (m is
odd & n is
odd & m
<= n & n
<= (
len W));
hence thesis by
A1,
Def11;
end;
end;
hence thesis;
end;
Lm54: for G be
_Graph, W be
Walk of G holds W is non
trivial iff 3
<= (
len W)
proof
let G be
_Graph, W be
Walk of G;
hereby
assume W is non
trivial;
then (W
.length() )
<>
0 ;
then (
0
+ 1)
<= (
len (W
.edgeSeq() )) by
NAT_1: 13;
then (2
* 1)
<= (2
* (
len (W
.edgeSeq() ))) by
NAT_1: 4;
then (2
+ 1)
<= ((2
* (
len (W
.edgeSeq() )))
+ 1) by
XREAL_1: 7;
hence 3
<= (
len W) by
Def15;
end;
assume 3
<= (
len W);
then ((2
* 1)
+ 1)
<= ((2
* (
len (W
.edgeSeq() )))
+ 1) by
Def15;
then (W
.length() )
<>
0 ;
hence thesis;
end;
Lm55: for G be
_Graph, W be
Walk of G holds W is non
trivial iff (
len W)
<> 1
proof
let G be
_Graph, W be
Walk of G;
A1: 1
<= (
len W) by
ABIAN: 12;
thus W is non
trivial implies (
len W)
<> 1 by
Lm54;
assume (
len W)
<> 1;
then 1
< (
len W) by
A1,
XXREAL_0: 1;
then (1
+ 1)
<= (
len W) by
NAT_1: 13;
then (2
* 1)
< (
len W) by
XXREAL_0: 1;
then ((2
* 1)
+ 1)
<= (
len W) by
NAT_1: 13;
hence thesis by
Lm54;
end;
Lm56: for G be
_Graph, W be
Walk of G holds W is
trivial iff ex v be
Vertex of G st W
= (G
.walkOf v)
proof
let G be
_Graph, W be
Walk of G;
hereby
assume
A1: W is
trivial;
take v = (W
.first() );
(
len W)
= 1 by
A1,
Lm55;
hence W
= (G
.walkOf v) by
FINSEQ_1: 40;
end;
given v be
Vertex of G such that
A2: W
= (G
.walkOf v);
(
len W)
= 1 by
A2,
FINSEQ_1: 39;
hence thesis by
Lm55;
end;
Lm57: for G be
_Graph, W be
Walk of G holds W is
Trail-like iff for m,n be
even
Element of
NAT st 1
<= m & m
< n & n
<= (
len W) holds (W
. m)
<> (W
. n)
proof
let G be
_Graph, W be
Walk of G;
hereby
assume W is
Trail-like;
then
A1: (W
.edgeSeq() ) is
one-to-one;
let m,n be
even
Element of
NAT ;
assume that
A2: 1
<= m and
A3: m
< n and
A4: n
<= (
len W);
A5: 1
<= n by
A2,
A3,
XXREAL_0: 2;
then
A6: (n
div 2)
in (
dom (W
.edgeSeq() )) by
A4,
Lm40;
A7: m
<= (
len W) by
A3,
A4,
XXREAL_0: 2;
then
A8: (W
. m)
= ((W
.edgeSeq() )
. (m
div 2)) by
A2,
Lm40;
A9:
now
2
divides m by
PEPIN: 22;
then
A10: (2
* (m
div 2))
= m by
NAT_D: 3;
A11: 2
divides n by
PEPIN: 22;
assume (m
div 2)
= (n
div 2);
hence contradiction by
A3,
A11,
A10,
NAT_D: 3;
end;
A12: (W
. n)
= ((W
.edgeSeq() )
. (n
div 2)) by
A4,
A5,
Lm40;
(m
div 2)
in (
dom (W
.edgeSeq() )) by
A2,
A7,
Lm40;
hence (W
. m)
<> (W
. n) by
A1,
A8,
A6,
A12,
A9,
FUNCT_1:def 4;
end;
assume
A13: for m,n be
even
Element of
NAT st 1
<= m & m
< n & n
<= (
len W) holds (W
. m)
<> (W
. n);
now
let x1,x2 be
object;
assume that
A14: x1
in (
dom (W
.edgeSeq() )) and
A15: x2
in (
dom (W
.edgeSeq() )) and
A16: ((W
.edgeSeq() )
. x1)
= ((W
.edgeSeq() )
. x2);
reconsider m = x1, n = x2 as
Element of
NAT by
A14,
A15;
A17: m
<= (
len (W
.edgeSeq() )) by
A14,
FINSEQ_3: 25;
1
<= m by
A14,
FINSEQ_3: 25;
then
A18: ((W
.edgeSeq() )
. x1)
= (W
. (2
* m)) by
A17,
Def15;
A19: n
<= (
len (W
.edgeSeq() )) by
A15,
FINSEQ_3: 25;
1
<= n by
A15,
FINSEQ_3: 25;
then
A20: (W
. (2
* m))
= (W
. (2
* n)) by
A16,
A18,
A19,
Def15;
A21: (2
* n)
in (
dom W) by
A15,
Lm41;
then
A22: 1
<= (2
* n) by
FINSEQ_3: 25;
A23: (2
* m)
in (
dom W) by
A14,
Lm41;
then
A24: (2
* m)
<= (
len W) by
FINSEQ_3: 25;
A25: (2
* n)
<= (
len W) by
A21,
FINSEQ_3: 25;
A26: 1
<= (2
* m) by
A23,
FINSEQ_3: 25;
now
per cases by
XXREAL_0: 1;
suppose (2
* m)
< (2
* n);
hence x1
= x2 by
A13,
A20,
A26,
A25;
end;
suppose (2
* m)
= (2
* n);
hence x1
= x2;
end;
suppose (2
* m)
> (2
* n);
hence x1
= x2 by
A13,
A20,
A24,
A22;
end;
end;
hence x1
= x2;
end;
then (W
.edgeSeq() ) is
one-to-one by
FUNCT_1:def 4;
hence thesis;
end;
Lm58: for G be
_Graph, W be
Walk of G holds W is
Trail-like iff (W
.reverse() ) is
Trail-like
proof
let G be
_Graph, W be
Walk of G;
A1:
now
let W be
Walk of G;
assume
A2: W is
Trail-like;
now
reconsider lenW = (
len W) as
odd
Element of
NAT ;
let m,n be
even
Element of
NAT ;
assume that
A3: 1
<= m and
A4: m
< n and
A5: n
<= (
len (W
.reverse() ));
((
len W)
- n)
< ((
len W)
- m) by
A4,
XREAL_1: 15;
then
A6: (((
len W)
- n)
+ 1)
< (((
len W)
- m)
+ 1) by
XREAL_1: 8;
m
<= (
len (W
.reverse() )) by
A4,
A5,
XXREAL_0: 2;
then
A7: m
in (
dom (W
.reverse() )) by
A3,
FINSEQ_3: 25;
then
A8: (((
len W)
- m)
+ 1)
in (
dom W) by
Lm8;
then
reconsider rm = ((lenW
- m)
+ 1) as
even
Element of
NAT ;
A9: rm
<= (
len W) by
A8,
FINSEQ_3: 25;
1
<= n by
A3,
A4,
XXREAL_0: 2;
then
A10: n
in (
dom (W
.reverse() )) by
A5,
FINSEQ_3: 25;
then
A11: ((W
.reverse() )
. n)
= (W
. (((
len W)
- n)
+ 1)) by
Lm8;
A12: (((
len W)
- n)
+ 1)
in (
dom W) by
A10,
Lm8;
then
reconsider rn = ((lenW
- n)
+ 1) as
even
Element of
NAT ;
A13: 1
<= rn by
A12,
FINSEQ_3: 25;
((W
.reverse() )
. m)
= (W
. (((
len W)
- m)
+ 1)) by
A7,
Lm8;
hence ((W
.reverse() )
. m)
<> ((W
.reverse() )
. n) by
A2,
A11,
A6,
A13,
A9,
Lm57;
end;
hence (W
.reverse() ) is
Trail-like by
Lm57;
end;
hence W is
Trail-like implies (W
.reverse() ) is
Trail-like;
assume (W
.reverse() ) is
Trail-like;
then ((W
.reverse() )
.reverse() ) is
Trail-like by
A1;
hence thesis;
end;
Lm59: for G be
_Graph, W be
Walk of G, m,n be
Element of
NAT holds W is
Trail-like implies (W
.cut (m,n)) is
Trail-like
proof
let G be
_Graph, W be
Walk of G, m,n be
Element of
NAT ;
assume
A1: W is
Trail-like;
now
per cases ;
suppose
A2: m is
odd & n is
odd & m
<= n & n
<= (
len W);
now
reconsider m9 = m as
odd
Element of
NAT by
A2;
let x,y be
even
Element of
NAT ;
assume that
A3: 1
<= x and
A4: x
< y and
A5: y
<= (
len (W
.cut (m,n)));
reconsider xaa1 = (x
- 1) as
odd
Element of
NAT by
A3,
INT_1: 5;
reconsider yaa1 = (y
- 1) as
odd
Element of
NAT by
A3,
A4,
INT_1: 5,
XXREAL_0: 2;
(x
- 1)
< (y
- 1) by
A4,
XREAL_1: 14;
then
A6: (xaa1
+ m)
< (yaa1
+ m) by
XREAL_1: 8;
x
<= (
len (W
.cut (m,n))) by
A4,
A5,
XXREAL_0: 2;
then (x
- 1)
< ((
len (W
.cut (m,n)))
-
0 ) by
XREAL_1: 15;
then
A7: ((W
.cut (m,n))
. (xaa1
+ 1))
= (W
. (m
+ xaa1)) by
A2,
Lm15;
A8: (y
- 1)
< ((
len (W
.cut (m,n)))
-
0 ) by
A5,
XREAL_1: 15;
then
A9: ((W
.cut (m,n))
. (yaa1
+ 1))
= (W
. (m
+ yaa1)) by
A2,
Lm15;
(m
+ yaa1)
in (
dom W) by
A2,
A8,
Lm15;
then
A10: (m
+ yaa1)
<= (
len W) by
FINSEQ_3: 25;
1
<= (m
+ xaa1) by
ABIAN: 12,
NAT_1: 12;
then (W
. (m9
+ xaa1))
<> (W
. (m9
+ yaa1)) by
A1,
A10,
A6,
Lm57;
hence ((W
.cut (m,n))
. x)
<> ((W
.cut (m,n))
. y) by
A7,
A9;
end;
hence thesis by
Lm57;
end;
suppose not (m is
odd & n is
odd & m
<= n & n
<= (
len W));
hence thesis by
A1,
Def11;
end;
end;
hence thesis;
end;
Lm60: for G be
_Graph, W be
Walk of G, e be
set st W is
Trail-like & e
in ((W
.last() )
.edgesInOut() ) & not e
in (W
.edges() ) holds (W
.addEdge e) is
Trail-like
proof
let G be
_Graph, W be
Walk of G, e be
set;
assume that
A1: W is
Trail-like and
A2: e
in ((W
.last() )
.edgesInOut() ) and
A3: not e
in (W
.edges() );
set W2 = (W
.addEdge e);
reconsider lenW2 = (
len W2) as
odd
Element of
NAT ;
A4: e
Joins ((W
.last() ),((W
.last() )
.adj e),G) by
A2,
GLIB_000: 67;
now
let m,n be
even
Element of
NAT ;
assume that
A5: 1
<= m and
A6: m
< n and
A7: n
<= (
len W2);
now
per cases ;
suppose
A8: n
<= (
len W);
then m
<= (
len W) by
A6,
XXREAL_0: 2;
then m
in (
dom W) by
A5,
FINSEQ_3: 25;
then
A9: (W2
. m)
= (W
. m) by
A4,
Lm38;
1
<= n by
A5,
A6,
XXREAL_0: 2;
then n
in (
dom W) by
A8,
FINSEQ_3: 25;
then (W2
. n)
= (W
. n) by
A4,
Lm38;
hence (W2
. m)
<> (W2
. n) by
A1,
A5,
A6,
A8,
A9,
Lm57;
end;
suppose
A10: n
> (
len W);
n
< lenW2 by
A7,
XXREAL_0: 1;
then (n
+ 1)
<= (
len W2) by
NAT_1: 13;
then ((n
+ 1)
- 1)
<= ((
len W2)
- 1) by
XREAL_1: 13;
then
A11: n
<= (((
len W)
+ (1
+ 1))
- 1) by
A4,
Lm37;
((
len W)
+ 1)
<= n by
A10,
NAT_1: 13;
then
A12: n
= ((
len W)
+ 1) by
A11,
XXREAL_0: 1;
then
A13: (W2
. n)
= e by
A4,
Lm38;
A14: ((m
+ 1)
- 1)
<= (((
len W)
+ 1)
- 1) by
A6,
A12,
NAT_1: 13;
then m
in (
dom W) by
A5,
FINSEQ_3: 25;
then (W2
. m)
= (W
. m) by
A4,
Lm38;
hence (W2
. m)
<> (W2
. n) by
A3,
A5,
A13,
A14,
Lm46;
end;
end;
hence (W2
. m)
<> (W2
. n);
end;
hence thesis by
Lm57;
end;
Lm61: for G be
_Graph, W be
Walk of G holds (
len W)
<= 3 implies W is
Trail-like
proof
let G be
_Graph, W be
Walk of G;
assume
A1: (
len W)
<= 3;
now
per cases ;
suppose (
len W)
= 1;
then W is
trivial by
Lm55;
then ex v be
Vertex of G st W
= (G
.walkOf v) by
Lm56;
hence thesis by
Lm4;
end;
suppose
A2: (
len W)
<> 1;
1
<= (
len W) by
ABIAN: 12;
then 1
< (
len W) by
A2,
XXREAL_0: 1;
then (1
+ 2)
<= (
len W) by
Th1,
JORDAN12: 2;
then
A3: (
len W)
= 3 by
A1,
XXREAL_0: 1;
now
let m,n be
even
Element of
NAT such that
A4: 1
<= m and
A5: m
< n and
A6: n
<= (
len W);
((2
*
0 )
+ 1)
< m by
A4,
XXREAL_0: 1;
then
A7: (1
+ 1)
<= m by
NAT_1: 13;
n
< (2
+ 1) by
A3,
A6,
XXREAL_0: 1;
then n
<= 2 by
NAT_1: 13;
hence (W
. m)
<> (W
. n) by
A5,
A7,
XXREAL_0: 2;
end;
hence thesis by
Lm57;
end;
end;
hence thesis;
end;
Lm62: for G be
_Graph, x,e,y be
object holds e
Joins (x,y,G) implies (G
.walkOf (x,e,y)) is
Path-like
proof
let G be
_Graph, x,e,y be
object;
set W = (G
.walkOf (x,e,y));
assume
A1: e
Joins (x,y,G);
then
A2: (
len W)
= 3 by
Lm5;
A3:
now
let m,n be
odd
Element of
NAT ;
assume that
A4: m
< n and
A5: n
<= (
len W);
assume (W
. m)
= (W
. n);
A6: 1
<= m by
ABIAN: 12;
then 1
< n by
A4,
XXREAL_0: 2;
then (1
+ 1)
< (n
+ 1) by
XREAL_1: 8;
then (2
* 1)
<= n by
NAT_1: 13;
then (2
* 1)
< n by
XXREAL_0: 1;
then (2
+ 1)
< (n
+ 1) by
XREAL_1: 8;
then
A7: 3
<= n by
NAT_1: 13;
then
A8: n
= 3 by
A2,
A5,
XXREAL_0: 1;
now
assume m
<> 1;
then 1
< m by
A6,
XXREAL_0: 1;
then (1
+ 1)
< (m
+ 1) by
XREAL_1: 8;
then (2
* 1)
<= m by
NAT_1: 13;
then (2
* 1)
< m by
XXREAL_0: 1;
then (2
+ 1)
< (m
+ 1) by
XREAL_1: 8;
hence contradiction by
A4,
A8,
NAT_1: 13;
end;
hence m
= 1 & n
= (
len W) by
A2,
A5,
A7,
XXREAL_0: 1;
end;
now
let m,n be
even
Element of
NAT ;
assume that
A9: 1
<= m and
A10: m
< n and
A11: n
<= (
len W);
1
< m by
A9,
JORDAN12: 2,
XXREAL_0: 1;
then (1
+ 1)
<= m by
NAT_1: 13;
then
A12: 2
< n by
A10,
XXREAL_0: 2;
n
<= 3 by
A1,
A11,
Lm5;
then n
< ((2
* 1)
+ 1) by
XXREAL_0: 1;
hence (W
. m)
<> (W
. n) by
A12,
NAT_1: 13;
end;
then W is
Trail-like by
Lm57;
hence thesis by
A3;
end;
Lm63: for G be
_Graph, W be
Walk of G holds W is
Path-like iff (W
.reverse() ) is
Path-like
proof
let G be
_Graph, W be
Walk of G;
A1:
now
let W be
Walk of G;
reconsider lenW = (
len W) as
odd
Element of
NAT ;
assume
A2: W is
Path-like;
A3:
now
let m,n be
odd
Element of
NAT ;
assume that
A4: m
< n and
A5: n
<= (
len (W
.reverse() )) and
A6: ((W
.reverse() )
. m)
= ((W
.reverse() )
. n);
A7: 1
<= m by
ABIAN: 12;
m
<= (
len (W
.reverse() )) by
A4,
A5,
XXREAL_0: 2;
then
A8: m
in (
dom (W
.reverse() )) by
A7,
FINSEQ_3: 25;
then
A9: (((
len W)
- m)
+ 1)
in (
dom W) by
Lm8;
then
reconsider rm = ((lenW
- m)
+ 1) as
odd
Element of
NAT ;
1
<= n by
ABIAN: 12;
then
A10: n
in (
dom (W
.reverse() )) by
A5,
FINSEQ_3: 25;
then (((
len W)
- n)
+ 1)
in (
dom W) by
Lm8;
then
reconsider rn = ((lenW
- n)
+ 1) as
odd
Element of
NAT ;
(lenW
- n)
< ((
len W)
- m) by
A4,
XREAL_1: 15;
then
A11: rn
< rm by
XREAL_1: 8;
((W
.reverse() )
. n)
= (W
. (((
len W)
- n)
+ 1)) by
A10,
Lm8;
then
A12: (W
. rm)
= (W
. rn) by
A6,
A8,
Lm8;
A13: rm
<= (
len W) by
A9,
FINSEQ_3: 25;
then ((
len W)
+ (1
+ (
- m)))
= (
len W) by
A2,
A11,
A12;
hence m
= 1;
rn
= 1 by
A2,
A11,
A13,
A12;
hence n
= (
len (W
.reverse() )) by
FINSEQ_5:def 3;
end;
W is
Trail-like by
A2;
then (W
.reverse() ) is
Trail-like by
Lm58;
hence (W
.reverse() ) is
Path-like by
A3;
end;
hence W is
Path-like implies (W
.reverse() ) is
Path-like;
assume (W
.reverse() ) is
Path-like;
then ((W
.reverse() )
.reverse() ) is
Path-like by
A1;
hence thesis;
end;
Lm64: for G be
_Graph, W be
Walk of G, m,n be
Element of
NAT st W is
Path-like holds (W
.cut (m,n)) is
Path-like
proof
let G be
_Graph, W be
Walk of G, m,n be
Element of
NAT ;
assume
A1: W is
Path-like;
now
per cases ;
suppose
A2: m is
odd & n is
odd & m
<= n & n
<= (
len W);
then
reconsider m9 = m as
odd
Element of
NAT ;
now
W is
Trail-like by
A1;
hence (W
.cut (m,n)) is
Trail-like by
Lm59;
let x,y be
odd
Element of
NAT ;
assume that
A3: x
< y and
A4: y
<= (
len (W
.cut (m,n))) and
A5: ((W
.cut (m,n))
. x)
= ((W
.cut (m,n))
. y);
reconsider xaa1 = (x
- 1) as
even
Element of
NAT by
ABIAN: 12,
INT_1: 5;
reconsider yaa1 = (y
- 1) as
even
Element of
NAT by
ABIAN: 12,
INT_1: 5;
(x
- 1)
< (y
- 1) by
A3,
XREAL_1: 14;
then
A6: (xaa1
+ m)
< (yaa1
+ m) by
XREAL_1: 8;
x
<= (
len (W
.cut (m,n))) by
A3,
A4,
XXREAL_0: 2;
then (x
- 1)
< ((
len (W
.cut (m,n)))
-
0 ) by
XREAL_1: 15;
then
A7: ((W
.cut (m,n))
. (xaa1
+ 1))
= (W
. (m
+ xaa1)) by
A2,
Lm15;
A8: (y
- 1)
< ((
len (W
.cut (m,n)))
-
0 ) by
A4,
XREAL_1: 15;
then
A9: ((W
.cut (m,n))
. (yaa1
+ 1))
= (W
. (m
+ yaa1)) by
A2,
Lm15;
(m
+ yaa1)
in (
dom W) by
A2,
A8,
Lm15;
then
A10: (m9
+ yaa1)
<= (
len W) by
FINSEQ_3: 25;
then
A11: (m9
+ yaa1)
= (
len W) by
A1,
A5,
A7,
A9,
A6;
A12:
now
assume
A13: xaa1
<>
0 ;
m
>= 1 by
A2,
ABIAN: 12;
then (1
+
0 )
< (m
+ xaa1) by
A13,
XREAL_1: 8;
hence contradiction by
A1,
A5,
A7,
A9,
A6,
A10;
end;
then ((m
+ 1)
- 1)
= 1 by
A1,
A5,
A7,
A9,
A6,
A10;
then
A14: ((
len (W
.cut (m,n)))
+ 1)
= (n
+ 1) by
A2,
Lm15;
thus x
= 1 by
A12;
(m9
+ xaa1)
= 1 by
A1,
A5,
A7,
A9,
A6,
A10;
hence y
= (
len (W
.cut (m,n))) by
A2,
A4,
A11,
A12,
A14,
XXREAL_0: 1;
end;
hence thesis;
end;
suppose not (m is
odd & n is
odd & m
<= n & n
<= (
len W));
hence thesis by
A1,
Def11;
end;
end;
hence thesis;
end;
Lm65: for G be
_Graph, W be
Walk of G, e,v be
object st W is
Path-like & e
Joins ((W
.last() ),v,G) & not e
in (W
.edges() ) & (W is
trivial or W is
open) & for n be
odd
Element of
NAT st 1
< n & n
<= (
len W) holds (W
. n)
<> v holds (W
.addEdge e) is
Path-like
proof
let G be
_Graph, W be
Walk of G, e,v be
object;
assume that
A1: W is
Path-like and
A2: e
Joins ((W
.last() ),v,G) and
A3: not e
in (W
.edges() ) and
A4: W is
trivial or W is
open and
A5: for n be
odd
Element of
NAT st 1
< n & n
<= (
len W) holds (W
. n)
<> v;
reconsider lenW = (
len W) as
odd
Element of
NAT ;
set W2 = (W
.addEdge e);
A6: e
in ((W
.last() )
.edgesInOut() ) by
A2,
GLIB_000: 62;
now
W is
Trail-like by
A1;
hence W2 is
Trail-like by
A3,
A6,
Lm60;
let m,n be
odd
Element of
NAT ;
assume that
A7: m
< n and
A8: n
<= (
len W2) and
A9: (W2
. m)
= (W2
. n);
now
per cases by
A4;
suppose
A10: W is
open;
now
per cases ;
suppose
A11: n
<= (
len W);
A12: 1
<= m by
ABIAN: 12;
m
<= (
len W) by
A7,
A11,
XXREAL_0: 2;
then m
in (
dom W) by
A12,
FINSEQ_3: 25;
then
A13: (W2
. m)
= (W
. m) by
A2,
Lm38;
1
<= n by
ABIAN: 12;
then n
in (
dom W) by
A11,
FINSEQ_3: 25;
then
A14: (W
. m)
= (W
. n) by
A2,
A9,
A13,
Lm38;
then m
= 1 by
A1,
A7,
A11;
then (W
.first() )
= (W
.last() ) by
A1,
A7,
A11,
A14;
hence m
= 1 & n
= (
len W2) by
A10;
end;
suppose n
> (
len W);
then (lenW
+ 1)
<= n by
NAT_1: 13;
then (lenW
+ 1)
< n by
XXREAL_0: 1;
then ((lenW
+ 1)
+ 1)
<= n by
NAT_1: 13;
then ((
len W)
+ (1
+ 1))
<= n;
then
A15: (
len W2)
<= n by
A2,
Lm37;
then n
= (
len W2) by
A8,
XXREAL_0: 1;
then (W2
. n)
= (W2
. ((
len W)
+ 2)) by
A2,
Lm37;
then
A16: (W2
. n)
= v by
A2,
Lm38;
m
< (
len W2) by
A7,
A8,
A15,
XXREAL_0: 1;
then m
< ((
len W)
+ (1
+ 1)) by
A2,
Lm37;
then m
< (((
len W)
+ 1)
+ 1);
then m
<= (lenW
+ 1) by
NAT_1: 13;
then m
< (lenW
+ 1) by
XXREAL_0: 1;
then
A17: m
<= (
len W) by
NAT_1: 13;
1
<= m by
ABIAN: 12;
then m
in (
dom W) by
A17,
FINSEQ_3: 25;
then
A18: (W
. m)
= v by
A2,
A9,
A16,
Lm38;
now
A19: 1
<= m by
ABIAN: 12;
assume m
<> 1;
then 1
< m by
A19,
XXREAL_0: 1;
hence contradiction by
A5,
A17,
A18;
end;
hence m
= 1;
thus n
= (
len W2) by
A8,
A15,
XXREAL_0: 1;
end;
end;
hence m
= 1 & n
= (
len W2);
end;
suppose W is
trivial;
then ex v be
Vertex of G st W
= (G
.walkOf v) by
Lm56;
then (
len W)
= 1 by
FINSEQ_1: 39;
then
A20: (
len W2)
= (1
+ 2) by
A2,
Lm37;
A21: (m
+ 1)
<= n by
A7,
NAT_1: 13;
A22: 1
<= m by
ABIAN: 12;
then (1
+ 1)
<= (m
+ 1) by
XREAL_1: 7;
then (2
* 1)
<= n by
A21,
XXREAL_0: 2;
then (2
* 1)
< n by
XXREAL_0: 1;
then
A23: (
len W2)
<= n by
A20,
NAT_1: 13;
then n
= (
len W2) by
A8,
XXREAL_0: 1;
then ((m
+ 1)
- 1)
<= (3
- 1) by
A7,
A20,
NAT_1: 13;
then m
< (2
* 1) by
XXREAL_0: 1;
then (m
+ 1)
<= 2 by
NAT_1: 13;
then ((m
+ 1)
- 1)
<= (2
- 1) by
XREAL_1: 13;
hence m
= 1 & n
= (
len W2) by
A8,
A22,
A23,
XXREAL_0: 1;
end;
end;
hence m
= 1 & n
= (
len W2);
end;
hence thesis;
end;
Lm66: for G be
_Graph, W be
Walk of G holds (for m,n be
odd
Element of
NAT st m
<= (
len W) & n
<= (
len W) & (W
. m)
= (W
. n) holds m
= n) implies W is
Path-like
proof
let G be
_Graph, W be
Walk of G;
assume
A1: for m,n be
odd
Element of
NAT st m
<= (
len W) & n
<= (
len W) & (W
. m)
= (W
. n) holds m
= n;
now
let m,n be
even
Element of
NAT ;
assume that
A2: 1
<= m and
A3: m
< n and
A4: n
<= (
len W);
m
<= (
len W) by
A3,
A4,
XXREAL_0: 2;
then
A5: m
in (
dom W) by
A2,
FINSEQ_3: 25;
1
<= n by
A2,
A3,
XXREAL_0: 2;
then
A6: n
in (
dom W) by
A4,
FINSEQ_3: 25;
now
assume (W
. m)
= (W
. n);
then
consider naa1 be
odd
Element of
NAT such that
A7: naa1
= (n
- 1) and
A8: (n
- 1)
in (
dom W) and
A9: (n
+ 1)
in (
dom W) and
A10: (W
. m)
Joins ((W
. naa1),(W
. (n
+ 1)),G) by
A6,
Lm2;
A11: naa1
<= (
len W) by
A7,
A8,
FINSEQ_3: 25;
consider maa1 be
odd
Element of
NAT such that
A12: maa1
= (m
- 1) and
A13: (m
- 1)
in (
dom W) and
A14: (m
+ 1)
in (
dom W) and
A15: (W
. m)
Joins ((W
. maa1),(W
. (m
+ 1)),G) by
A5,
Lm2;
A16: maa1
<= (
len W) by
A12,
A13,
FINSEQ_3: 25;
A17: (n
+ 1)
<= (
len W) by
A9,
FINSEQ_3: 25;
A18: (m
+ 1)
<= (
len W) by
A14,
FINSEQ_3: 25;
now
per cases by
A15,
A10,
GLIB_000: 15;
suppose (W
. naa1)
= (W
. maa1) & (W
. (n
+ 1))
= (W
. (m
+ 1));
then naa1
= maa1 by
A1,
A16,
A11;
hence contradiction by
A3,
A12,
A7;
end;
suppose
A19: (W
. naa1)
= (W
. (m
+ 1)) & (W
. (n
+ 1))
= (W
. maa1);
then
A20: (n
+ 1)
= maa1 by
A1,
A16,
A17;
naa1
= (m
+ 1) by
A1,
A18,
A11,
A19;
hence contradiction by
A12,
A7,
A20;
end;
end;
hence contradiction;
end;
hence (W
. m)
<> (W
. n);
end;
then
A21: W is
Trail-like by
Lm57;
now
let m,n be
odd
Element of
NAT ;
assume that
A22: m
< n and
A23: n
<= (
len W);
assume
A24: (W
. m)
= (W
. n);
m
<= (
len W) by
A22,
A23,
XXREAL_0: 2;
hence m
= 1 & n
= (
len W) by
A1,
A22,
A23,
A24;
end;
hence thesis by
A21;
end;
Lm67: for G be
_Graph, W be
Walk of G holds (for n be
odd
Element of
NAT st n
<= (
len W) holds (W
.rfind n)
= n) implies W is
Path-like
proof
let G be
_Graph, W be
Walk of G;
assume
A1: for n be
odd
Element of
NAT st n
<= (
len W) holds (W
.rfind n)
= n;
now
let m,n be
odd
Element of
NAT ;
assume that
A2: m
<= (
len W) and
A3: n
<= (
len W) and
A4: (W
. m)
= (W
. n);
(W
.rfind n)
= n by
A1,
A3;
then
A5: m
<= n by
A2,
A3,
A4,
Def22;
(W
.rfind m)
= m by
A1,
A2;
then n
<= m by
A2,
A3,
A4,
Def22;
hence m
= n by
A5,
XXREAL_0: 1;
end;
hence thesis by
Lm66;
end;
Lm68: for G be
_Graph, W be
Walk of G, e,v be
object st e
Joins ((W
.last() ),v,G) & W is
Path-like & not v
in (W
.vertices() ) & (W is
trivial or W is
open) holds (W
.addEdge e) is
Path-like
proof
let G be
_Graph, W be
Walk of G, e,v be
object;
assume that
A1: e
Joins ((W
.last() ),v,G) and
A2: W is
Path-like and
A3: not v
in (W
.vertices() ) and
A4: W is
trivial or W is
open;
A5: for n be
odd
Element of
NAT st 1
< n & n
<= (
len W) holds v
<> (W
. n) by
A3,
Lm45;
not e
in (W
.edges() ) by
A1,
A3,
Lm48;
hence thesis by
A1,
A2,
A4,
A5,
Lm65;
end;
Lm69: for G be
_Graph, W be
Walk of G holds (
len W)
<= 3 implies W is
Path-like
proof
let G be
_Graph, W be
Walk of G;
assume
A1: (
len W)
<= 3;
now
per cases ;
suppose (
len W)
= 1;
then W is
trivial by
Lm55;
then ex v be
Vertex of G st W
= (G
.walkOf v) by
Lm56;
hence thesis by
Lm4;
end;
suppose
A2: (
len W)
<> 1;
1
<= (
len W) by
ABIAN: 12;
then 1
< (
len W) by
A2,
XXREAL_0: 1;
then (1
+ 2)
<= (
len W) by
Th1,
JORDAN12: 2;
then
A3: (
len W)
= 3 by
A1,
XXREAL_0: 1;
A4:
now
let m,n be
odd
Element of
NAT ;
assume that
A5: m
< n and
A6: n
<= (
len W) and (W
. m)
= (W
. n);
A7: 1
<= m by
ABIAN: 12;
m
< ((2
* 1)
+ 1) by
A3,
A5,
A6,
XXREAL_0: 2;
then ((m
+ 2)
- 2)
<= (3
- 2) by
Th1;
hence m
= 1 by
A7,
XXREAL_0: 1;
((2
*
0 )
+ 1)
< n by
A5,
A7,
XXREAL_0: 2;
then (1
+ 2)
<= n by
Th1;
hence n
= (
len W) by
A3,
A6,
XXREAL_0: 1;
end;
W is
Trail-like by
A1,
Lm61;
hence thesis by
A4;
end;
end;
hence thesis;
end;
registration
let G be
_Graph;
cluster
Path-like ->
Trail-like for
Walk of G;
correctness ;
cluster
trivial ->
Path-like for
Walk of G;
correctness
proof
let W be
Walk of G;
assume
A1: W is
trivial;
A2:
now
let m,n be
odd
Element of
NAT ;
assume that
A3: m
< n and
A4: n
<= (
len W) and (W
. m)
= (W
. n);
A5: 1
<= m by
ABIAN: 12;
A6: 1
<= n by
ABIAN: 12;
n
<= 1 by
A1,
A4,
Lm55;
hence m
= 1 & n
= (
len W) by
A3,
A5,
A6,
XXREAL_0: 1;
end;
(
len W)
= 1 by
A1,
Lm55;
then ((2
* (
len (W
.edgeSeq() )))
+ 1)
= (
0
+ 1) by
Def15;
then (W
.edgeSeq() )
=
{} ;
then W is
Trail-like;
hence thesis by
A2;
end;
cluster
trivial ->
vertex-distinct for
Walk of G;
coherence
proof
let W be
Walk of G;
assume
A7: W is
trivial;
now
let m,n be
odd
Element of
NAT ;
assume that
A8: m
<= (
len W) and
A9: n
<= (
len W) and (W
. m)
= (W
. n);
A10: 1
<= m by
ABIAN: 12;
m
<= 1 by
A7,
A8,
Lm55;
then
A11: m
= 1 by
A10,
XXREAL_0: 1;
A12: 1
<= n by
ABIAN: 12;
n
<= 1 by
A7,
A9,
Lm55;
hence m
= n by
A12,
A11,
XXREAL_0: 1;
end;
hence thesis;
end;
cluster
vertex-distinct ->
Path-like for
Walk of G;
coherence by
Lm66;
cluster
Circuit-like ->
closed
Trail-like non
trivial for
Walk of G;
correctness ;
cluster
Cycle-like ->
closed
Path-like non
trivial for
Walk of G;
correctness ;
end
registration
let G be
_Graph;
cluster
closed
directed
trivial for
Walk of G;
existence
proof
set v = the
Vertex of G;
take (G
.walkOf v);
thus thesis by
Lm4;
end;
end
registration
let G be
_Graph;
cluster
vertex-distinct for
Walk of G;
existence
proof
set W = the
trivial
Walk of G;
take W;
thus thesis;
end;
end
definition
let G be
_Graph;
mode
Trail of G is
Trail-like
Walk of G;
mode
Path of G is
Path-like
Walk of G;
end
definition
let G be
_Graph;
mode
DWalk of G is
directed
Walk of G;
mode
DTrail of G is
directed
Trail of G;
mode
DPath of G is
directed
Path of G;
end
registration
let G be
_Graph, v be
Vertex of G;
cluster (G
.walkOf v) ->
closed
directed
trivial;
coherence by
Lm4;
end
registration
let G be
_Graph, x,e,y be
object;
cluster (G
.walkOf (x,e,y)) ->
Path-like;
coherence
proof
set W = (G
.walkOf (x,e,y));
now
per cases ;
suppose e
Joins (x,y,G);
hence thesis by
Lm62;
end;
suppose not e
Joins (x,y,G);
then W
= (G
.walkOf the
Element of (
the_Vertices_of G)) by
Def5;
hence thesis;
end;
end;
hence thesis;
end;
end
registration
let G be
_Graph, x,e be
object;
cluster (G
.walkOf (x,e,x)) ->
closed;
coherence
proof
set W = (G
.walkOf (x,e,x));
now
per cases ;
suppose
A1: e
Joins (x,x,G);
then
A2: (W
.last() )
= x by
Lm6;
(W
.first() )
= x by
A1,
Lm6;
hence thesis by
A2;
end;
suppose not e
Joins (x,x,G);
then W
= (G
.walkOf the
Element of (
the_Vertices_of G)) by
Def5;
hence thesis;
end;
end;
hence thesis;
end;
end
registration
let G be
_Graph, W be
closed
Walk of G;
cluster (W
.reverse() ) ->
closed;
coherence
proof
W is
closed iff ((W
.reverse() )
.last() )
= (W
.last() ) by
Lm7;
then W is
closed iff ((W
.reverse() )
.last() )
= ((W
.reverse() )
.first() ) by
Lm7;
hence thesis;
end;
end
registration
let G be
_Graph, W be
trivial
Walk of G;
cluster (W
.reverse() ) ->
trivial;
coherence
proof
(
len W)
= 1 by
Lm55;
then (
len (W
.reverse() ))
= 1 by
FINSEQ_5:def 3;
hence thesis by
Lm55;
end;
end
registration
let G be
_Graph, W be
Trail of G;
cluster (W
.reverse() ) ->
Trail-like;
coherence by
Lm58;
end
registration
let G be
_Graph, W be
Path of G;
cluster (W
.reverse() ) ->
Path-like;
coherence by
Lm63;
end
registration
let G be
_Graph, W1,W2 be
closed
Walk of G;
cluster (W1
.append W2) ->
closed;
coherence
proof
set W = (W1
.append W2);
now
per cases ;
suppose
A1: (W1
.last() )
= (W2
.first() );
then (W1
.last() )
= (W2
.last() ) by
Def24;
then (W1
.first() )
= (W2
.last() ) by
Def24
.= (W
.last() ) by
A1,
Lm11;
then (W
.first() )
= (W
.last() ) by
A1,
Lm11;
hence thesis;
end;
suppose (W1
.last() )
<> (W2
.first() );
hence thesis by
Def10;
end;
end;
hence thesis;
end;
end
registration
let G be
_Graph, W1,W2 be
DWalk of G;
cluster (W1
.append W2) ->
directed;
coherence
proof
set W = (W1
.append W2);
now
per cases ;
suppose
A1: (W1
.last() )
= (W2
.first() );
now
let n be
odd
Element of
NAT ;
assume
A2: n
< (
len W);
1
<= n by
ABIAN: 12;
then
A3: n
in (
dom W) by
A2,
FINSEQ_3: 25;
now
per cases by
A3,
Lm14;
suppose
A4: n
in (
dom W1);
then
A5: n
<= (
len W1) by
FINSEQ_3: 25;
A6: (W
. n)
= (W1
. n) by
A4,
Lm12;
now
per cases by
A5,
XXREAL_0: 1;
suppose
A7: n
< (
len W1);
then (n
+ 2)
in (
dom W1) by
Lm3;
then
A8: (W
. (n
+ 2))
= (W1
. (n
+ 2)) by
Lm12;
(n
+ 1)
in (
dom W1) by
A7,
Lm3;
then (W
. (n
+ 1))
= (W1
. (n
+ 1)) by
Lm12;
hence (W
. (n
+ 1))
DJoins ((W
. n),(W
. (n
+ 2)),G) by
A6,
A7,
A8,
Lm51;
end;
suppose
A9: n
= (
len W1);
(n
+ 1)
< ((
len W)
+ 1) by
A2,
XREAL_1: 8;
then (1
+ n)
< ((
len W2)
+ n) by
A1,
A9,
Lm9;
then
A10: 1
< (
len W2) by
XREAL_1: 6;
then
A11: (W2
. (((2
*
0 )
+ 1)
+ 1))
DJoins ((W2
. ((2
*
0 )
+ 1)),(W2
. (((2
*
0 )
+ 1)
+ 2)),G) by
Lm51;
A12: n
= ((
len W1)
+
0 ) by
A9;
A13:
0
< (
len W2);
(1
+ 1)
<= (
len W2) by
A10,
NAT_1: 13;
then (2
* 1)
< (
len W2) by
XXREAL_0: 1;
then
A14: (W
. (n
+ 2))
= (W2
. (2
+ 1)) by
A1,
A9,
Lm13;
(W
. (n
+ 1))
= (W2
. (1
+ 1)) by
A1,
A9,
A10,
Lm13;
hence (W
. (n
+ 1))
DJoins ((W
. n),(W
. (n
+ 2)),G) by
A1,
A13,
A12,
A14,
A11,
Lm13;
end;
end;
hence (W
. (n
+ 1))
DJoins ((W
. n),(W
. (n
+ 2)),G);
end;
suppose ex k be
Element of
NAT st k
< (
len W2) & n
= ((
len W1)
+ k);
then
consider k be
Element of
NAT such that
A15: k
< (
len W2) and
A16: n
= ((
len W1)
+ k);
reconsider k as
even
Element of
NAT by
A16;
A17: (W
. n)
= (W2
. (k
+ 1)) by
A1,
A15,
A16,
Lm13;
(n
+ 1)
< ((
len W)
+ 1) by
A2,
XREAL_1: 8;
then (1
+ (k
+ (
len W1)))
< ((
len W2)
+ (
len W1)) by
A1,
A16,
Lm9;
then
A18: (((k
+ 1)
+ (
len W1))
- (
len W1))
< (((
len W2)
+ (
len W1))
- (
len W1)) by
XREAL_1: 14;
then ((k
+ 1)
+ 1)
<= (
len W2) by
NAT_1: 13;
then
A19: ((k
+ 1)
+ 1)
< (
len W2) by
XXREAL_0: 1;
A20: ((n
+ 1)
+ 1)
= ((
len W1)
+ ((k
+ 1)
+ 1)) by
A16;
A21: (W2
. ((k
+ 1)
+ (1
+ 1)))
= (W2
. (((k
+ 1)
+ 1)
+ 1))
.= (W
. (n
+ (1
+ 1))) by
A1,
A19,
A20,
Lm13;
(W
. (n
+ 1))
= (W2
. ((k
+ 1)
+ 1)) by
A1,
A16,
A18,
Lm13;
hence (W
. (n
+ 1))
DJoins ((W
. n),(W
. (n
+ 2)),G) by
A17,
A18,
A21,
Lm51;
end;
end;
hence (W
. (n
+ 1))
DJoins ((W
. n),(W
. (n
+ 2)),G);
end;
hence thesis by
Lm51;
end;
suppose (W1
.last() )
<> (W2
.first() );
hence thesis by
Def10;
end;
end;
hence thesis;
end;
end
registration
let G be
_Graph, W1,W2 be
trivial
Walk of G;
cluster (W1
.append W2) ->
trivial;
coherence
proof
set W = (W1
.append W2);
now
per cases ;
suppose (W1
.last() )
= (W2
.first() );
then ((
len W)
+ 1)
= ((
len W1)
+ (
len W2)) by
Lm9
.= ((
len W1)
+ 1) by
Lm55
.= (1
+ 1) by
Lm55;
hence thesis by
Lm55;
end;
suppose (W1
.last() )
<> (W2
.first() );
hence thesis by
Def10;
end;
end;
hence thesis;
end;
end
registration
let G be
_Graph, W be
DWalk of G, m,n be
Element of
NAT ;
cluster (W
.cut (m,n)) ->
directed;
coherence by
Lm53;
end
registration
let G be
_Graph, W be
trivial
Walk of G, m,n be
Element of
NAT ;
cluster (W
.cut (m,n)) ->
trivial;
coherence
proof
set W2 = (W
.cut (m,n));
now
per cases ;
suppose
A1: m is
odd & n is
odd & m
<= n & n
<= (
len W);
then
A2: 1
<= n by
ABIAN: 12;
n
<= 1 by
A1,
Lm55;
then
A3: n
= 1 by
A2,
XXREAL_0: 1;
A4: 1
<= m by
A1,
ABIAN: 12;
((
len W2)
+ m)
= (n
+ 1) by
A1,
Lm15;
then ((
len W2)
+ 1)
= (1
+ 1) by
A1,
A4,
A3,
XXREAL_0: 1;
hence thesis by
Lm55;
end;
suppose not (m is
odd & n is
odd & m
<= n & n
<= (
len W));
hence thesis by
Def11;
end;
end;
hence thesis;
end;
end
registration
let G be
_Graph, W be
Trail of G, m,n be
Element of
NAT ;
cluster (W
.cut (m,n)) ->
Trail-like;
coherence by
Lm59;
end
registration
let G be
_Graph, W be
Path of G, m,n be
Element of
NAT ;
cluster (W
.cut (m,n)) ->
Path-like;
coherence by
Lm64;
end
registration
let G be
_Graph, W be
vertex-distinct
Walk of G, m,n be
Element of
NAT ;
cluster (W
.cut (m,n)) ->
vertex-distinct;
coherence
proof
set W2 = (W
.cut (m,n));
now
per cases ;
suppose
A1: m is
odd & n is
odd & m
<= n & n
<= (
len W);
then
reconsider m9 = m as
odd
Element of
NAT ;
now
let a,b be
odd
Element of
NAT ;
assume that
A2: a
<= (
len W2) and
A3: b
<= (
len W2) and
A4: (W2
. a)
= (W2
. b);
reconsider aaa1 = (a
- 1), baa1 = (b
- 1) as
even
Element of
NAT by
ABIAN: 12,
INT_1: 5;
A5: baa1
< ((
len W2)
-
0 ) by
A3,
XREAL_1: 15;
then
A6: (W2
. (baa1
+ 1))
= (W
. (m
+ baa1)) by
A1,
Lm15;
A7: aaa1
< ((
len W2)
-
0 ) by
A2,
XREAL_1: 15;
then (m
+ aaa1)
in (
dom W) by
A1,
Lm15;
then
A8: (m9
+ aaa1)
<= (
len W) by
FINSEQ_3: 25;
(m
+ baa1)
in (
dom W) by
A1,
A5,
Lm15;
then
A9: (m9
+ baa1)
<= (
len W) by
FINSEQ_3: 25;
(W2
. (aaa1
+ 1))
= (W
. (m
+ aaa1)) by
A1,
A7,
Lm15;
then (aaa1
+ m9)
= (baa1
+ m9) by
A4,
A6,
A8,
A9,
Def29;
hence a
= b;
end;
hence thesis;
end;
suppose not (m is
odd & n is
odd & m
<= n & n
<= (
len W));
hence thesis by
Def11;
end;
end;
hence thesis;
end;
end
registration
let G be
_Graph, W be
closed
Walk of G, m,n be
Element of
NAT ;
cluster (W
.remove (m,n)) ->
closed;
coherence
proof
thus ((W
.remove (m,n))
.first() )
= (W
.first() ) by
Lm33
.= (W
.last() ) by
Def24
.= ((W
.remove (m,n))
.last() ) by
Lm33;
end;
end
registration
let G be
_Graph, W be
DWalk of G, m,n be
Element of
NAT ;
cluster (W
.remove (m,n)) ->
directed;
coherence
proof
now
per cases ;
suppose m is
odd & n is
odd & m
<= n & n
<= (
len W) & (W
. m)
= (W
. n);
then (W
.remove (m,n))
= ((W
.cut (1,m))
.append (W
.cut (n,(
len W)))) by
Def12;
hence thesis;
end;
suppose not (m is
odd & n is
odd & m
<= n & n
<= (
len W) & (W
. m)
= (W
. n));
hence thesis by
Def12;
end;
end;
hence thesis;
end;
end
registration
let G be
_Graph, W be
trivial
Walk of G, m,n be
Element of
NAT ;
cluster (W
.remove (m,n)) ->
trivial;
coherence
proof
now
per cases ;
suppose m is
odd & n is
odd & m
<= n & n
<= (
len W) & (W
. m)
= (W
. n);
then (W
.remove (m,n))
= ((W
.cut (1,m))
.append (W
.cut (n,(
len W)))) by
Def12;
hence thesis;
end;
suppose not (m is
odd & n is
odd & m
<= n & n
<= (
len W) & (W
. m)
= (W
. n));
hence thesis by
Def12;
end;
end;
hence thesis;
end;
end
registration
let G be
_Graph, W be
Trail of G, m,n be
Element of
NAT ;
cluster (W
.remove (m,n)) ->
Trail-like;
coherence
proof
set W2 = (W
.remove (m,n));
A1: (
len W2)
<= (
len W) by
Lm26;
now
per cases ;
suppose
A2: m is
odd & n is
odd & m
<= n & n
<= (
len W) & (W
. m)
= (W
. n);
then
reconsider m9 = m, n9 = n as
odd
Element of
NAT ;
now
given a,b be
even
Element of
NAT such that
A3: 1
<= a and
A4: a
< b and
A5: b
<= (
len W2) and
A6: (W2
. a)
= (W2
. b);
1
<= b by
A3,
A4,
XXREAL_0: 2;
then
A7: b
in (
dom W2) by
A5,
FINSEQ_3: 25;
a
<= (
len W2) by
A4,
A5,
XXREAL_0: 2;
then
A8: a
in (
dom W2) by
A3,
FINSEQ_3: 25;
now
per cases by
A2,
A8,
Lm34;
suppose a
in (
Seg m);
then
A9: (W2
. a)
= (W
. a) by
A2,
Lm29;
now
per cases by
A2,
A7,
Lm34;
suppose
A10: b
in (
Seg m);
A11: b
<= (
len W) by
A1,
A5,
XXREAL_0: 2;
(W2
. b)
= (W
. b) by
A2,
A10,
Lm29;
hence contradiction by
A3,
A4,
A6,
A9,
A11,
Lm57;
end;
suppose
A12: m
<= b & b
<= (
len W2);
then
reconsider b2 = ((b
- m9)
+ n9) as
even
Element of
NAT by
A2,
Lm30;
A13: b2
<= (
len W) by
A2,
A12,
Lm30;
A14: (W2
. b)
= (W
. b2) by
A2,
A12,
Lm30;
now
per cases ;
suppose a
< b2;
hence contradiction by
A3,
A6,
A9,
A14,
A13,
Lm57;
end;
suppose
A15: b2
<= a;
A16: (n
- m)
>= (m
- m) by
A2,
XREAL_1: 13;
A17: (a
- b)
< (b
- b) by
A4,
XREAL_1: 14;
(((n
- m)
+ b)
- b)
<= (a
- b) by
A15,
XREAL_1: 13;
then
0
<= (a
- b) by
A16;
hence contradiction by
A17;
end;
end;
hence contradiction;
end;
end;
hence contradiction;
end;
suppose
A18: m
<= a & a
<= (
len W2);
then
reconsider a2 = ((a
- m9)
+ n9) as
even
Element of
NAT by
A2,
Lm30;
reconsider nm4 = (n9
- m9) as
even
Element of
NAT by
A2,
INT_1: 5;
A19: (W2
. a)
= (W
. a2) by
A2,
A18,
Lm30;
now
per cases by
A2,
A7,
Lm34;
suppose b
in (
Seg m);
then b
<= m by
FINSEQ_1: 1;
hence contradiction by
A4,
A18,
XXREAL_0: 2;
end;
suppose
A20: m
<= b & b
<= (
len W2);
then
reconsider b2 = ((b
- m9)
+ n9) as
even
Element of
NAT by
A2,
Lm30;
A21: b2
<= (
len W) by
A2,
A20,
Lm30;
A22: (W2
. b)
= (W
. b2) by
A2,
A20,
Lm30;
now
per cases ;
suppose
A23: a2
< b2;
1
<= m9 by
ABIAN: 12;
then 1
<= a by
A18,
XXREAL_0: 2;
then 1
<= (a
+ nm4) by
NAT_1: 12;
hence contradiction by
A6,
A19,
A22,
A21,
A23,
Lm57;
end;
suppose b2
<= a2;
then (b
+ nm4)
<= (a
+ nm4);
hence contradiction by
A4,
XREAL_1: 6;
end;
end;
hence contradiction;
end;
end;
hence contradiction;
end;
end;
hence contradiction;
end;
hence thesis by
Lm57;
end;
suppose not (m is
odd & n is
odd & m
<= n & n
<= (
len W) & (W
. m)
= (W
. n));
hence thesis by
Def12;
end;
end;
hence thesis;
end;
end
registration
let G be
_Graph, W be
Path of G, m,n be
Element of
NAT ;
cluster (W
.remove (m,n)) ->
Path-like;
coherence
proof
set W2 = (W
.remove (m,n));
A1: (
len W2)
<= (
len W) by
Lm26;
now
per cases ;
suppose
A2: m is
odd & n is
odd & m
<= n & n
<= (
len W) & (W
. m)
= (W
. n);
then
reconsider m9 = m, n9 = n as
odd
Element of
NAT ;
now
let x,y be
odd
Element of
NAT ;
assume that
A3: x
< y and
A4: y
<= (
len W2) and
A5: (W2
. x)
= (W2
. y);
A6: 1
<= x by
ABIAN: 12;
x
<= (
len W2) by
A3,
A4,
XXREAL_0: 2;
then
A7: x
in (
dom W2) by
A6,
FINSEQ_3: 25;
1
<= y by
ABIAN: 12;
then
A8: y
in (
dom W2) by
A4,
FINSEQ_3: 25;
A9: y
<= (
len W) by
A1,
A4,
XXREAL_0: 2;
now
per cases by
A2,
A7,
Lm34;
suppose x
in (
Seg m);
then
A10: (W2
. x)
= (W
. x) by
A2,
Lm29;
now
per cases by
A2,
A8,
Lm34;
suppose y
in (
Seg m);
then
A11: (W2
. y)
= (W
. y) by
A2,
Lm29;
then y
= (
len W) by
A3,
A5,
A9,
A10,
Def28;
hence x
= 1 & y
= (
len W2) by
A1,
A3,
A4,
A5,
A10,
A11,
Def28,
XXREAL_0: 1;
end;
suppose
A12: m
<= y & y
<= (
len W2);
then
A13: ((y
- m)
+ n)
<= (
len W) by
A2,
Lm30;
A14: (W2
. y)
= (W
. ((y
- m)
+ n)) by
A2,
A12,
Lm30;
reconsider y2 = ((y
- m9)
+ n9) as
odd
Element of
NAT by
A2,
A12,
Lm30;
((y
- m)
+ n)
>= ((y
- m)
+ m) by
A2,
XREAL_1: 7;
then
A15: x
< y2 by
A3,
XXREAL_0: 2;
y2
<= (
len W) by
A2,
A12,
Lm30;
then y2
= (
len W) by
A5,
A10,
A14,
A15,
Def28;
then ((
len W2)
+ n)
= (((y
- m)
+ n)
+ m) by
A2,
Lm24
.= (y
+ n);
hence x
= 1 & y
= (
len W2) by
A5,
A10,
A14,
A13,
A15,
Def28;
end;
end;
hence x
= 1 & y
= (
len W2);
end;
suppose
A16: m
<= x & x
<= (
len W2);
then
reconsider x2 = ((x
- m9)
+ n9) as
odd
Element of
NAT by
A2,
Lm30;
A17: (W2
. x)
= (W
. ((x
- m)
+ n)) by
A2,
A16,
Lm30;
now
per cases by
A2,
A8,
Lm34;
suppose y
in (
Seg m);
then y
<= m by
FINSEQ_1: 1;
hence x
= 1 & y
= (
len W2) by
A3,
A16,
XXREAL_0: 2;
end;
suppose
A18: m
<= y & y
<= (
len W2);
then
reconsider y2 = ((y
- m9)
+ n9) as
odd
Element of
NAT by
A2,
Lm30;
(x
+ (n
- m))
< (y
+ (n
- m)) by
A3,
XREAL_1: 8;
then
A19: x2
< y2;
reconsider xm4 = (x
- m) as
Element of
NAT by
A16,
INT_1: 5;
A20: 1
<= n9 by
ABIAN: 12;
A21: 1
<= m9 by
ABIAN: 12;
A22: ((y
- m)
+ n)
<= (
len W) by
A2,
A18,
Lm30;
A23: (W2
. y)
= (W
. ((y
- m)
+ n)) by
A2,
A18,
Lm30;
then y2
= (
len W) by
A5,
A17,
A22,
A19,
Def28;
then
A24: ((
len W2)
+ n)
= (((y
- m)
+ n)
+ m) by
A2,
Lm24
.= (y
+ n);
x2
= 1 by
A5,
A17,
A23,
A22,
A19,
Def28;
then (x2
- n9)
<= (1
- 1) by
A20,
XREAL_1: 13;
then
A25: xm4
=
0 ;
then m
<= 1 by
A2,
A5,
A17,
A23,
A22,
A19,
Def28;
hence x
= 1 & y
= (
len W2) by
A24,
A25,
A21,
XXREAL_0: 1;
end;
end;
hence x
= 1 & y
= (
len W2);
end;
end;
hence x
= 1 & y
= (
len W2);
end;
hence thesis;
end;
suppose not (m is
odd & n is
odd & m
<= n & n
<= (
len W) & (W
. m)
= (W
. n));
hence thesis by
Def12;
end;
end;
hence thesis;
end;
end
definition
let G be
_Graph, W be
Walk of G;
::
GLIB_001:def32
mode
Subwalk of W ->
Walk of G means
:
Def32: it
is_Walk_from ((W
.first() ),(W
.last() )) & ex es be
Subset of (W
.edgeSeq() ) st (it
.edgeSeq() )
= (
Seq es);
existence
proof
reconsider es = (W
.edgeSeq() ) as
Subset of (W
.edgeSeq() ) by
FINSEQ_6: 152;
take W;
thus W
is_Walk_from ((W
.first() ),(W
.last() ));
take es;
thus thesis by
FINSEQ_3: 116;
end;
end
Lm70: for G be
_Graph, W be
Walk of G holds W is
Subwalk of W
proof
let G be
_Graph, W be
Walk of G;
reconsider es = (W
.edgeSeq() ) as
Subset of (W
.edgeSeq() ) by
FINSEQ_6: 152;
A1: (W
.edgeSeq() )
= (
Seq es) by
FINSEQ_3: 116;
W
is_Walk_from ((W
.first() ),(W
.last() ));
hence thesis by
A1,
Def32;
end;
Lm71: for G be
_Graph, W1 be
Walk of G, W2 be
Subwalk of W1, W3 be
Subwalk of W2 holds W3 is
Subwalk of W1
proof
let G be
_Graph, W1 be
Walk of G, W2 be
Subwalk of W1, W3 be
Subwalk of W2;
set fs = (W1
.edgeSeq() ), fs1 = (W2
.edgeSeq() ), fs2 = (W3
.edgeSeq() );
consider fss1 be
Subset of fs1 such that
A1: fs2
= (
Seq fss1) by
Def32;
consider fss be
Subset of fs such that
A2: fs1
= (
Seq fss) by
Def32;
set fss2 = (fss
| (
rng ((
Sgm (
dom fss))
| (
dom fss1))));
reconsider fss2 as
Subset of fs by
FINSEQ_6: 153;
A3: fs2
= (
Seq fss2) by
A1,
A2,
FINSEQ_6: 154;
A4: W2
is_Walk_from ((W1
.first() ),(W1
.last() )) by
Def32;
then
A5: (W2
.last() )
= (W1
.last() );
(W2
.first() )
= (W1
.first() ) by
A4;
hence thesis by
A5,
A3,
Def32;
end;
Lm72: for G be
_Graph, W1,W2 be
Walk of G holds W1 is
Subwalk of W2 implies (
len W1)
<= (
len W2)
proof
let G be
_Graph, W1,W2 be
Walk of G;
assume W1 is
Subwalk of W2;
then ex es be
Subset of (W2
.edgeSeq() ) st (W1
.edgeSeq() )
= (
Seq es) by
Def32;
then (2
* (
len (W1
.edgeSeq() )))
<= (2
* (
len (W2
.edgeSeq() ))) by
Th2,
XREAL_1: 64;
then ((2
* (
len (W1
.edgeSeq() )))
+ 1)
<= ((2
* (
len (W2
.edgeSeq() )))
+ 1) by
XREAL_1: 7;
then (
len W1)
<= ((2
* (
len (W2
.edgeSeq() )))
+ 1) by
Def15;
hence thesis by
Def15;
end;
definition
let G be
_Graph, W be
Walk of G, m,n be
Element of
NAT ;
:: original:
.remove
redefine
func W
.remove (m,n) ->
Subwalk of W ;
coherence
proof
set W2 = (W
.remove (m,n)), es1 = (W2
.edgeSeq() );
now
per cases ;
suppose
A1: m is
odd & n is
odd & m
<= n & n
<= (
len W) & (W
. m)
= (W
. n);
then
reconsider m9 = m, n9 = n as
odd
Element of
NAT ;
reconsider lenWn4 = ((
len W)
- n9) as
even
Element of
NAT by
A1,
INT_1: 5;
A2: (
Seg (
len es1))
= (
dom es1) by
FINSEQ_1:def 3;
reconsider lenWaa1 = ((
len W)
- 1) as
even
Element of
NAT by
ABIAN: 12,
INT_1: 5;
reconsider n1 = (n9
+ 1) as
even
Element of
NAT ;
reconsider maa1 = (m9
- 1) as
even
Element of
NAT by
ABIAN: 12,
INT_1: 5;
set X = { x where x be
Nat : 1
<= x & x
<= (maa1
div 2) };
set Y = { x where x be
Nat : (n1
div 2)
<= x & x
<= (lenWaa1
div 2) };
set Z = (X
\/ Y), es = ((W
.edgeSeq() )
| Z);
2
divides maa1 by
PEPIN: 22;
then
A3: maa1
= (2
* (maa1
div 2)) by
NAT_D: 3;
2
divides n1 by
PEPIN: 22;
then
A4: n1
= (2
* (n1
div 2)) by
NAT_D: 3;
now
assume (n1
div 2)
< 1;
then (2
* (n1
div 2))
< (2
* 1) by
XREAL_1: 68;
then ((n
+ 1)
- 1)
< (2
- 1) by
A4,
XREAL_1: 14;
then n9
< 1;
hence contradiction by
ABIAN: 12;
end;
then
reconsider n1div2aa1 = ((n1
div 2)
- 1) as
Element of
NAT by
INT_1: 5;
A5: 2
divides lenWaa1 by
PEPIN: 22;
then
A6: lenWaa1
= (2
* (lenWaa1
div 2)) by
NAT_D: 3;
now
let x be
object;
assume
A7: x
in Z;
now
per cases by
A7,
XBOOLE_0:def 3;
suppose x
in X;
then
consider y be
Nat such that
A8: y
= x and
A9: 1
<= y and
A10: y
<= (maa1
div 2);
(2
* y)
<= maa1 by
A3,
A10,
XREAL_1: 64;
then (2
* y)
<= (maa1
+ 1) by
NAT_1: 12;
then (2
* y)
<= n by
A1,
XXREAL_0: 2;
then
A11: (2
* y)
<= (
len W) by
A1,
XXREAL_0: 2;
1
<= (y
+ y) by
A9,
NAT_1: 12;
then (2
* y)
in (
dom W) by
A11,
FINSEQ_3: 25;
hence x
in (
dom (W
.edgeSeq() )) by
A8,
Lm41;
end;
suppose x
in Y;
then
consider y be
Nat such that
A12: y
= x and
A13: (n1
div 2)
<= y and
A14: y
<= (lenWaa1
div 2);
(2
* y)
<= lenWaa1 by
A6,
A14,
XREAL_1: 64;
then
A15: (2
* y)
<= (lenWaa1
+ 1) by
NAT_1: 12;
A16: 1
<= n1 by
NAT_1: 12;
n1
<= (2
* y) by
A4,
A13,
XREAL_1: 64;
then 1
<= (2
* y) by
A16,
XXREAL_0: 2;
then (2
* y)
in (
dom W) by
A15,
FINSEQ_3: 25;
hence x
in (
dom (W
.edgeSeq() )) by
A12,
Lm41;
end;
end;
hence x
in (
dom (W
.edgeSeq() ));
end;
then
A17: Z
c= (
dom (W
.edgeSeq() )) by
TARSKI:def 3;
then
A18: Z
c= (
Seg (
len (W
.edgeSeq() ))) by
FINSEQ_1:def 3;
then
A19: X
c= (
Seg (
len (W
.edgeSeq() ))) by
XBOOLE_1: 11;
A20: Y
c= (
Seg (
len (W
.edgeSeq() ))) by
A18,
XBOOLE_1: 11;
reconsider X, Y as
finite
set by
A18,
FINSET_1: 1,
XBOOLE_1: 11;
A21: X
= { x where x be
Nat : (
0
+ 1)
<= x & x
<= (
0
+ (maa1
div 2)) };
A22: ((
dom (W
.edgeSeq() ))
/\ Z)
= Z by
A17,
XBOOLE_1: 28;
then
A23: (
dom es)
= Z by
RELAT_1: 61;
2
divides lenWn4 by
PEPIN: 22;
then
A24: lenWn4
= (2
* (lenWn4
div 2)) by
NAT_D: 3;
A25:
now
per cases ;
suppose
A26: (n1
div 2)
> (lenWaa1
div 2);
then lenWaa1
< (n
+ 1) by
A6,
A4,
XREAL_1: 68;
then (lenWaa1
+ 1)
<= (n
+ 1) by
NAT_1: 13;
then (
len W)
<= (n9
+ 1);
then (
len W)
< (n
+ 1) by
XXREAL_0: 1;
then (
len W)
<= n by
NAT_1: 13;
then
A27: (
len W)
= n by
A1,
XXREAL_0: 1;
now
assume Y
<>
{} ;
then
consider x be
object such that
A28: x
in Y by
XBOOLE_0:def 1;
ex x9 be
Nat st x9
= x & (n1
div 2)
<= x9 & x9
<= (lenWaa1
div 2) by
A28;
hence contradiction by
A26,
XXREAL_0: 2;
end;
hence (
card Y)
= (lenWn4
div 2) by
A27,
NAT_2: 2;
end;
suppose (n1
div 2)
<= (lenWaa1
div 2);
then
reconsider k = ((lenWaa1
div 2)
- (n1
div 2)) as
Element of
NAT by
INT_1: 5;
Y
= { x where x be
Nat : (n1
div 2)
<= x & x
<= ((n1
div 2)
+ k) };
then (
card Y)
= (k
+ 1) by
FINSEQ_6: 130;
hence (
card Y)
= (lenWn4
div 2) by
A24,
A6,
A4;
end;
end;
reconsider Z as
finite
set by
A17;
(W
.edgeSeq() ) is
Subset of (W
.edgeSeq() ) by
FINSEQ_6: 152;
then
reconsider es as
Subset of (W
.edgeSeq() ) by
FINSEQ_6: 153;
set es2 = (
Seq es);
A29: es2
= (es
* (
Sgm (
dom es))) by
FINSEQ_1:def 14;
set lenY = ((lenWaa1
div 2)
- n1div2aa1);
now
assume n1div2aa1
> (lenWaa1
div 2);
then (2
* n1div2aa1)
> (2
* (lenWaa1
div 2)) by
XREAL_1: 68;
then (((n
+ 1)
- 1)
- 1)
> ((
len W)
- 1) by
A5,
A4,
NAT_D: 3;
hence contradiction by
A1,
XREAL_1: 9;
end;
then
reconsider lenY as
Element of
NAT by
INT_1: 5;
A30: Y
= { x where x be
Nat : (n1div2aa1
+ 1)
<= x & x
<= (n1div2aa1
+ lenY) };
A31:
now
let a,b be
Nat;
assume that
A32: a
in X and
A33: b
in Y;
consider b9 be
Nat such that
A34: b9
= b and
A35: (n1
div 2)
<= b9 and b9
<= (lenWaa1
div 2) by
A33;
consider a9 be
Nat such that
A36: a9
= a and 1
<= a9 and
A37: a9
<= (maa1
div 2) by
A32;
(2
* a9)
<= maa1 by
A3,
A37,
XREAL_1: 64;
then (2
* a9)
< (maa1
+ 1) by
NAT_1: 13;
then (2
* a9)
< n by
A1,
XXREAL_0: 2;
then
A38: ((2
* a9)
+
0 )
< (n
+ 1) by
XREAL_1: 8;
A39: (n
+ 1)
<= (2
* b9) by
A4,
A35,
XREAL_1: 64;
then (2
* a9)
< (2
* b9) by
A38,
XXREAL_0: 2;
then a9
<= b9 by
XREAL_1: 68;
hence a
< b by
A36,
A34,
A38,
A39,
XXREAL_0: 1;
end;
A40:
now
per cases ;
suppose
A41: (maa1
div 2)
=
0 ;
now
assume X
<>
{} ;
then
consider x be
object such that
A42: x
in X by
XBOOLE_0:def 1;
ex x9 be
Nat st x9
= x & 1
<= x9 & x9
<= (maa1
div 2) by
A42;
hence contradiction by
A41;
end;
hence (
card X)
= (maa1
div 2) by
A41;
end;
suppose (maa1
div 2)
<>
0 ;
then
consider k be
Nat such that
A43: (maa1
div 2)
= (k
+ 1) by
NAT_1: 6;
reconsider k as
Element of
NAT by
ORDINAL1:def 12;
(maa1
div 2)
= (k
+ 1) by
A43;
hence (
card X)
= (maa1
div 2) by
FINSEQ_6: 130;
end;
end;
then
A44: (
dom (
Sgm X))
= (
Seg (maa1
div 2)) by
A18,
FINSEQ_3: 40,
XBOOLE_1: 11;
then
A45: (
len (
Sgm X))
= (maa1
div 2) by
FINSEQ_1:def 3;
(
len W2)
= ((2
* (
len (W2
.edgeSeq() )))
+ 1) by
Def15;
then
A46: (((
len W)
+ m)
- n)
= ((2
* (
len es1))
+ 1) by
A1,
Lm31;
now
assume not (X
/\ Y)
=
{} ;
then
consider x be
object such that
A47: x
in (X
/\ Y) by
XBOOLE_0:def 1;
x
in Y by
A47,
XBOOLE_0:def 4;
then
consider y9 be
Nat such that
A48: y9
= x and
A49: (n1
div 2)
<= y9 and y9
<= (lenWaa1
div 2);
x
in X by
A47,
XBOOLE_0:def 4;
then
consider x9 be
Nat such that
A50: x9
= x and 1
<= x9 and
A51: x9
<= (maa1
div 2);
(2
* x9)
<= maa1 by
A3,
A51,
XREAL_1: 64;
then (2
* y9)
< (maa1
+ 1) by
A50,
A48,
NAT_1: 13;
then (2
* y9)
< n by
A1,
XXREAL_0: 2;
then ((2
* y9)
+
0 )
< (n
+ 1) by
XREAL_1: 8;
hence contradiction by
A4,
A49,
XREAL_1: 64;
end;
then X
misses Y by
XBOOLE_0:def 7;
then
A52: (
card Z)
= ((maa1
div 2)
+ (lenWn4
div 2)) by
A40,
A25,
CARD_2: 40;
(
dom es)
c= (
Seg (
len (W
.edgeSeq() ))) by
A22,
A18,
RELAT_1: 61;
then (
rng (
Sgm (
dom es)))
= (
dom es) by
FINSEQ_1:def 13;
then
A53: (
dom es2)
= (
dom (
Sgm Z)) by
A23,
A29,
RELAT_1: 27
.= (
Seg (
card Z)) by
A18,
FINSEQ_3: 40;
A54: (
dom (
Sgm Y))
= (
Seg (lenWn4
div 2)) by
A18,
A25,
FINSEQ_3: 40,
XBOOLE_1: 11;
now
let x9 be
object;
assume
A55: x9
in (
dom es1);
then
reconsider x = x9 as
Element of
NAT ;
A56: 1
<= x by
A55,
FINSEQ_3: 25;
A57: x
<= (
len es1) by
A55,
FINSEQ_3: 25;
then
A58: (es1
. x)
= (W2
. (2
* x)) by
A56,
Def15;
now
per cases ;
suppose
A59: ((2
* x)
+ 1)
<= m;
A60: 1
<= (x
+ x) by
A56,
NAT_1: 12;
(((2
* x)
+ 1)
- 1)
< (m
-
0 ) by
A59,
XREAL_1: 15;
then (2
* x)
in (
Seg m) by
A60,
FINSEQ_1: 1;
then
A61: (es1
. x9)
= (W
. (2
* x)) by
A1,
A58,
Lm29;
A62: ((
Sgm Z)
. x)
= (((
Sgm X)
^ (
Sgm Y))
. x) by
A19,
A20,
A31,
FINSEQ_3: 42;
(((2
* x)
+ 1)
- 1)
<= maa1 by
A59,
XREAL_1: 13;
then
A63: x
<= (maa1
div 2) by
A3,
XREAL_1: 68;
then x
in X by
A56;
then
A64: x
in (
dom es) by
A23,
XBOOLE_0:def 3;
x
in (
dom (
Sgm X)) by
A44,
A56,
A63,
FINSEQ_1: 1;
then ((
Sgm Z)
. x)
= ((
Sgm X)
. x) by
A62,
FINSEQ_1:def 7
.= (
0
+ x) by
A21,
A56,
A63,
FINSEQ_6: 131;
then (es2
. x)
= (es
. x) by
A3,
A24,
A23,
A2,
A29,
A53,
A46,
A52,
A55,
FUNCT_1: 12;
then
A65: (es2
. x)
= ((W
.edgeSeq() )
. x) by
A64,
FUNCT_1: 47;
x
<= (
len (W
.edgeSeq() )) by
A23,
A18,
A64,
FINSEQ_1: 1;
hence (es1
. x9)
= (es2
. x9) by
A56,
A61,
A65,
Def15;
end;
suppose
A66: ((2
* x)
+ 1)
> m;
A67:
now
assume x
<= (maa1
div 2);
then (2
* x)
<= maa1 by
A3,
XREAL_1: 64;
then ((2
* x)
+ 1)
<= (maa1
+ 1) by
XREAL_1: 7;
hence contradiction by
A66;
end;
then
consider k be
Nat such that
A68: x
= ((maa1
div 2)
+ k) by
NAT_1: 10;
A69: ((
Sgm Z)
. x)
= (((
Sgm X)
^ (
Sgm Y))
. x) by
A19,
A20,
A31,
FINSEQ_3: 42;
A70: ex lenWaa19 be
even
Element of
NAT st lenWaa19
= lenWaa1 & (
len (W
.edgeSeq() ))
= (lenWaa19
div 2) by
Lm42;
(2
* x)
<= (2
* (
len es1)) by
A57,
XREAL_1: 64;
then (2
* x)
<= ((2
* (
len es1))
+ 1) by
NAT_1: 12;
then
A71: (2
* x)
<= (
len W2) by
Def15;
reconsider k as
Element of
NAT by
ORDINAL1:def 12;
A72: (2
* (n1div2aa1
+ k))
= (((2
* x)
- m)
+ n) by
A3,
A4,
A68;
A73: m
<= (2
* x) by
A66,
NAT_1: 13;
then
A74: (((2
* x)
- m)
+ n)
<= (
len W) by
A1,
A71,
Lm30;
A75:
now
reconsider z = (((2
* x)
- m9)
+ n9) as
Element of
NAT by
A1,
A73,
A71,
Lm30;
assume (lenWaa1
div 2)
< (k
+ n1div2aa1);
then lenWaa1
< (2
* ((x
- (maa1
div 2))
+ n1div2aa1)) by
A6,
A68,
XREAL_1: 68;
then (lenWaa1
+ 1)
< ((((2
* x)
- m)
+ n)
+ 1) by
A3,
A4,
XREAL_1: 8;
then (
len W)
<= z by
NAT_1: 13;
hence contradiction by
A74,
XXREAL_0: 1;
end;
k
<>
0 by
A67,
A68;
then (
0
+ 1)
< (k
+ 1) by
XREAL_1: 8;
then
A76: 1
<= k by
NAT_1: 13;
then (n1div2aa1
+ 1)
<= (n1div2aa1
+ k) by
XREAL_1: 7;
then (n1div2aa1
+ k)
in Y by
A75;
then (n1div2aa1
+ k)
in (
dom es) by
A23,
XBOOLE_0:def 3;
then
A77: (es
. (n1div2aa1
+ k))
= ((W
.edgeSeq() )
. (n1div2aa1
+ k)) by
FUNCT_1: 47;
A78:
now
set z = (((2
* x)
- m9)
+ n9);
reconsider z as
Element of
NAT by
A1,
A73,
A71,
Lm30;
assume (lenWn4
div 2)
< (x
- (maa1
div 2));
then (2
* (lenWn4
div 2))
< (2
* (x
- (maa1
div 2))) by
XREAL_1: 68;
then
A79: (lenWn4
+ n)
< ((((2
* x)
- m)
+ 1)
+ n) by
A3,
A24,
XREAL_1: 8;
(((2
* x)
- m9)
+ n9)
< (
len W) by
A74,
XXREAL_0: 1;
then (z
+ 1)
<= (
len W) by
NAT_1: 13;
hence contradiction by
A79;
end;
then k
in (
dom (
Sgm Y)) by
A54,
A68,
A76,
FINSEQ_1: 1;
then ((
Sgm Z)
. x)
= ((
Sgm Y)
. k) by
A45,
A69,
A68,
FINSEQ_1:def 7
.= (n1div2aa1
+ k) by
A24,
A6,
A4,
A30,
A68,
A76,
A78,
FINSEQ_6: 131;
then
A80: (es2
. x)
= (es
. (n1div2aa1
+ k)) by
A3,
A24,
A23,
A2,
A29,
A53,
A46,
A52,
A55,
FUNCT_1: 12;
1
<= (n1div2aa1
+ k) by
A76,
NAT_1: 12;
then (es2
. x)
= (W
. (2
* (n1div2aa1
+ k))) by
A80,
A75,
A77,
A70,
Def15;
hence (es1
. x9)
= (es2
. x9) by
A1,
A58,
A73,
A71,
A72,
Lm30;
end;
end;
hence (es1
. x9)
= (es2
. x9);
end;
then
A81: (W2
.edgeSeq() )
= (
Seq es) by
A3,
A24,
A2,
A53,
A46,
A52,
FUNCT_1: 2;
W
is_Walk_from ((W
.first() ),(W
.last() ));
then W2
is_Walk_from ((W
.first() ),(W
.last() )) by
Lm25;
hence thesis by
A81,
Def32;
end;
suppose not (m is
odd & n is
odd & m
<= n & n
<= (
len W) & (W
. m)
= (W
. n));
then (W
.remove (m,n))
= W by
Def12;
hence thesis by
Lm70;
end;
end;
hence thesis;
end;
end
registration
let G be
_Graph, W be
Walk of G;
cluster
Trail-like
Path-like for
Subwalk of W;
existence
proof
set n = ((
len W)
+ 1);
defpred
P1[
Nat,
set,
set] means ($2 is
Walk of G & ex Wn be
Walk of G st Wn
= $2 & $3
= (Wn
.remove ((Wn
.find ((2
* $1)
+ 1)),(Wn
.rfind ((2
* $1)
+ 1))))) or ( not $2 is
Walk of G & $3
= $2);
A1:
now
let n be
Nat, x be
set;
now
per cases ;
suppose x is
Walk of G;
then
reconsider W = x as
Walk of G;
set y = (W
.remove ((W
.find ((2
* n)
+ 1)),(W
.rfind ((2
* n)
+ 1))));
P1[n, x, y];
hence ex y be
set st
P1[n, x, y];
end;
suppose not x is
Walk of G;
hence ex y be
set st
P1[n, x, y];
end;
end;
hence ex y be
set st
P1[n, x, y];
end;
consider f be
Function such that
A2: (
dom f)
=
NAT & (f
.
0 )
= W & for n be
Nat holds
P1[n, (f
. n), (f
. (n
+ 1))] from
RECDEF_1:sch 1(
A1);
defpred
P3[
Nat] means ex Wn be
Subwalk of W st Wn
= (f
. $1) & (
len Wn)
<= (
len W) & for m be
odd
Element of
NAT st m
< ((2
* $1)
+ 1) & m
<= (
len Wn) holds (Wn
.rfind m)
= m;
now
let n be
Nat;
assume
P3[n];
then
consider Wn be
Subwalk of W such that
A3: Wn
= (f
. n) and
A4: (
len Wn)
<= (
len W) and
A5: for m be
odd
Element of
NAT st m
< ((2
* n)
+ 1) & m
<= (
len Wn) holds (Wn
.rfind m)
= m;
set a = (Wn
.find ((2
* n)
+ 1)), b = (Wn
.rfind ((2
* n)
+ 1));
set Wn1 = (Wn
.remove (a,b));
reconsider Wn1 as
Subwalk of W by
Lm71;
take Wn1;
P1[n, (f
. n), (f
. (n
+ 1))] by
A2;
hence (f
. (n
+ 1))
= Wn1 by
A3;
(
len Wn1)
<= (
len Wn) by
Lm26;
hence (
len Wn1)
<= (
len W) by
A4,
XXREAL_0: 2;
let m be
odd
Element of
NAT ;
assume that
A6: m
< ((2
* (n
+ 1))
+ 1) and
A7: m
<= (
len Wn1);
set W1 = (Wn
.cut (1,a)), W2 = (Wn
.cut (b,(
len Wn)));
A8: (
len Wn1)
<= (
len Wn) by
Lm26;
then
A9: m
<= (
len Wn) by
A7,
XXREAL_0: 2;
m
<= (2
* (n
+ 1)) by
A6,
NAT_1: 13;
then m
< (((2
* n)
+ 1)
+ 1) by
XXREAL_0: 1;
then
A10: m
<= ((2
* n)
+ 1) by
NAT_1: 13;
now
per cases ;
suppose
A11: ((2
* n)
+ 1)
<= (
len Wn);
then
A12: a
<= ((2
* n)
+ 1) by
Lm49;
A13: (Wn
. a)
= (Wn
. ((2
* n)
+ 1)) by
A11,
Def20;
A14: a
<= (
len Wn) by
A11,
Def20;
A15:
now
assume
A16: a
< ((2
* n)
+ 1);
then a
<= (
len Wn) by
A11,
XXREAL_0: 2;
then (Wn
.rfind a)
= a by
A5,
A16;
hence contradiction by
A11,
A14,
A13,
A16,
Def22;
end;
then
A17: a
= ((2
* n)
+ 1) by
A12,
XXREAL_0: 1;
A18: (Wn
. b)
= (Wn
. ((2
* n)
+ 1)) by
A11,
Def22;
set m9 = (Wn1
.rfind m);
A19: 1
<= m by
ABIAN: 12;
A20: (Wn1
. m9)
= (Wn1
. m) by
A7,
Def22;
A21: m9
>= m by
A7,
Lm50;
A22: b
<= (
len Wn) by
A11,
Def22;
1
<= a by
ABIAN: 12;
then
A23: (W1
.last() )
= (Wn
. ((2
* n)
+ 1)) by
A14,
A13,
Lm16,
JORDAN12: 2
.= (W2
.first() ) by
A22,
A18,
Lm16;
((2
* n)
+ 1)
<= b by
A11,
Lm50;
then
A24: a
<= b by
A12,
XXREAL_0: 2;
then
A25: Wn1
= (W1
.append W2) by
A13,
A22,
A18,
Def12;
A26: m9
<= (
len Wn1) by
A7,
Def22;
then
A27: m9
<= (
len Wn) by
A8,
XXREAL_0: 2;
now
per cases by
A10,
XXREAL_0: 1;
suppose
A28: m
< ((2
* n)
+ 1);
then m
< (
len (Wn
.cut (1,a))) by
A11,
A17,
Lm22;
then
A29: (Wn1
.cut (1,m))
= ((Wn
.cut (1,a))
.cut (1,m)) by
A25,
A19,
A23,
Lm21,
JORDAN12: 2
.= (Wn
.cut (1,m)) by
A10,
A17,
Lm20;
reconsider maa1 = (m
- 1) as
Element of
NAT by
ABIAN: 12,
INT_1: 5;
A30: (maa1
+ 1)
= m;
A31: maa1
< (m
-
0 ) by
XREAL_1: 15;
then
A32: maa1
< (
len (Wn
.cut (1,m))) by
A7,
A8,
Lm22,
XXREAL_0: 2;
maa1
< (
len (Wn1
.cut (1,m))) by
A7,
A31,
Lm22;
then (Wn1
. m)
= ((Wn
.cut (1,m))
. m) by
A7,
A19,
A29,
A30,
Lm15,
JORDAN12: 2;
then
A33: (Wn1
. m)
= (Wn
. m) by
A9,
A19,
A30,
A32,
Lm15,
JORDAN12: 2;
A34: (Wn
.rfind m)
= m by
A5,
A9,
A28;
now
per cases ;
suppose
A35: m9
< a;
reconsider m9aa1 = (m9
- 1) as
Element of
NAT by
ABIAN: 12,
INT_1: 5;
A36: 1
<= m9 by
ABIAN: 12;
A37: m9aa1
< (m9
-
0 ) by
XREAL_1: 15;
then
A38: m9aa1
< (
len (Wn1
.cut (1,m9))) by
A26,
Lm22;
A39: m9aa1
< (
len (Wn
.cut (1,m9))) by
A8,
A26,
A37,
Lm22,
XXREAL_0: 2;
m9
< (
len (Wn
.cut (1,a))) by
A14,
A35,
Lm22;
then (Wn1
.cut (1,m9))
= ((Wn
.cut (1,a))
.cut (1,m9)) by
A25,
A23,
A36,
Lm21,
JORDAN12: 2
.= (Wn
.cut (1,m9)) by
A35,
Lm20;
then (Wn1
. m9)
= ((Wn
.cut (1,m9))
. (m9aa1
+ 1)) by
A26,
A36,
A38,
Lm15,
JORDAN12: 2;
then (Wn
. m9)
= (Wn
. m) by
A20,
A27,
A33,
A36,
A39,
Lm15,
JORDAN12: 2;
then m9
<= m by
A9,
A27,
A34,
Def22;
hence (Wn1
.rfind m)
= m by
A21,
XXREAL_0: 1;
end;
suppose
A40: a
<= m9;
set x = ((m9
- a)
+ b);
A41: (Wn1
. m9)
= (Wn
. x) by
A13,
A22,
A18,
A24,
A26,
A40,
Lm30;
A42: x
<= (
len Wn) by
A13,
A22,
A18,
A24,
A26,
A40,
Lm30;
(m9
+ a)
<= (m9
+ b) by
A24,
XREAL_1: 7;
then
A43: ((m9
+ a)
- a)
<= ((m9
+ b)
- a) by
XREAL_1: 13;
reconsider x as
Element of
NAT by
A13,
A22,
A18,
A24,
A26,
A40,
Lm30;
x
<= m by
A9,
A20,
A34,
A33,
A41,
A42,
Def22;
then m9
<= m by
A43,
XXREAL_0: 2;
hence (Wn1
.rfind m)
= m by
A21,
XXREAL_0: 1;
end;
end;
hence (Wn1
.rfind m)
= m;
end;
suppose
A44: m
= ((2
* n)
+ 1);
then m
<= (
len (Wn
.cut (1,a))) by
A11,
A17,
Lm22;
then
A45: (Wn1
.cut (1,m))
= ((Wn
.cut (1,a))
.cut (1,m)) by
A25,
A19,
A23,
Lm21,
JORDAN12: 2
.= (Wn
.cut (1,m)) by
A10,
A17,
Lm20;
reconsider maa1 = (m
- 1) as
Element of
NAT by
ABIAN: 12,
INT_1: 5;
A46: (maa1
+ 1)
= m;
A47: maa1
< (m
-
0 ) by
XREAL_1: 15;
then
A48: maa1
< (
len (Wn
.cut (1,m))) by
A7,
A8,
Lm22,
XXREAL_0: 2;
maa1
< (
len (Wn1
.cut (1,m))) by
A7,
A47,
Lm22;
then (Wn1
. m)
= ((Wn
.cut (1,m))
. m) by
A7,
A19,
A45,
A46,
Lm15,
JORDAN12: 2;
then
A49: (Wn1
. m)
= (Wn
. m) by
A9,
A19,
A46,
A48,
Lm15,
JORDAN12: 2;
now
set x = ((m9
- a)
+ b);
assume
A50: m
< m9;
then
A51: a
< m9 by
A12,
A15,
A44,
XXREAL_0: 1;
then
A52: x is
Element of
NAT by
A13,
A22,
A18,
A24,
A26,
Lm30;
A53: x
<= (
len Wn) by
A13,
A22,
A18,
A24,
A26,
A51,
Lm30;
(Wn1
. m9)
= (Wn
. x) by
A13,
A22,
A18,
A24,
A26,
A51,
Lm30;
then ((m9
- a)
+ b)
<= b by
A11,
A20,
A44,
A49,
A52,
A53,
Def22;
then (((m9
- a)
+ b)
- b)
<= (b
- b) by
XREAL_1: 13;
then ((m9
- a)
+ a)
<= (
0
+ a) by
XREAL_1: 7;
hence contradiction by
A12,
A15,
A44,
A50,
XXREAL_0: 1;
end;
hence (Wn1
.rfind m)
= m by
A21,
XXREAL_0: 1;
end;
end;
hence (Wn1
.rfind m)
= m;
end;
suppose
A54: (
len Wn)
< ((2
* n)
+ 1);
then
A55: m
< ((2
* n)
+ 1) by
A9,
XXREAL_0: 2;
A56: b
= (
len Wn) by
A54,
Def22;
a
= (
len Wn) by
A54,
Def20;
then Wn1
= Wn by
A56,
Lm27;
hence (Wn1
.rfind m)
= m by
A5,
A7,
A55;
end;
end;
hence (Wn1
.rfind m)
= m;
end;
then
A57: for n be
Nat st
P3[n] holds
P3[(n
+ 1)];
reconsider W0 = (f
.
0 ) as
Subwalk of W by
A2,
Lm70;
for m be
odd
Element of
NAT st m
< ((2
*
0 )
+ 1) & m
<= (
len W0) holds (W0
.rfind m)
= m by
ABIAN: 12;
then
A58:
P3[
0 ] by
A2;
for n be
Nat holds
P3[n] from
NAT_1:sch 2(
A58,
A57);
then
consider P be
Subwalk of W such that P
= (f
. n) and
A59: (
len P)
<= (
len W) and
A60: for m be
odd
Element of
NAT st m
< ((2
* n)
+ 1) & m
<= (
len P) holds (P
.rfind m)
= m;
take P;
now
let m be
odd
Element of
NAT ;
assume
A61: m
<= (
len P);
((
len P)
+
0 )
< n by
A59,
XREAL_1: 8;
then ((
len P)
+
0 )
< (n
+ n) by
XREAL_1: 8;
then ((
len P)
+
0 )
< ((2
* n)
+ 1) by
XREAL_1: 8;
then m
< ((2
* n)
+ 1) by
A61,
XXREAL_0: 2;
hence (P
.rfind m)
= m by
A60,
A61;
end;
then P is
Path-like by
Lm67;
hence thesis;
end;
end
definition
let G be
_Graph, W be
Walk of G;
mode
Trail of W is
Trail-like
Subwalk of W;
mode
Path of W is
Path-like
Subwalk of W;
end
registration
let G be
_Graph, W be
DWalk of G;
cluster
directed for
Path of W;
existence
proof
defpred
P[
Nat] means for W1 be
DWalk of G st (W1
.length() )
= $1 holds ex W2 be
Path of W1 st W2 is
directed;
A1: (W
.length() )
= (W
.length() );
now
let k be
Nat;
assume
A2:
P[k];
let W1 be
DWalk of G;
set WA = (W1
.cut (1,((2
* k)
+ 1)));
set e = (W1
. (((2
* k)
+ 1)
+ 1)), v = (W1
. (((2
* k)
+ 1)
+ 2));
assume
A3: (W1
.length() )
= (k
+ 1);
then
A4: (
len W1)
= ((2
* (k
+ 1))
+ 1) by
Def15
.= (((2
* k)
+ 1)
+ 2);
then
A5: ((((2
* k)
+ 1)
+ 2)
- 2)
< ((
len W1)
-
0 ) by
XREAL_1: 15;
then
A6: e
DJoins ((W1
. ((2
* k)
+ 1)),v,G) by
Lm51;
(
len WA)
= ((2
* k)
+ 1) by
A5,
Lm22;
then
A7: ((2
* k)
+ 1)
= ((2
* (WA
.length() ))
+ 1) by
Def15;
then
consider WB be
Path of WA such that
A8: WB is
directed by
A2;
A9: (WA
.edgeSeq() )
c= (W1
.edgeSeq() ) by
Lm43;
A10: WB
is_Walk_from ((WA
.first() ),(WA
.last() )) by
Def32;
A11: 1
<= ((2
* k)
+ 1) by
NAT_1: 12;
then
A12: (WA
.last() )
= (W1
. ((2
* k)
+ 1)) by
A5,
Lm16,
JORDAN12: 2;
A13: (WA
.first() )
= (W1
. 1) by
A5,
A11,
Lm16,
JORDAN12: 2;
then
A14: (WB
.first() )
= (W1
. 1) by
A10;
A15: (WB
.last() )
= (W1
. ((2
* k)
+ 1)) by
A10,
A12;
then
A16: e
Joins ((WB
.last() ),v,G) by
A6,
GLIB_000: 16;
now
per cases ;
suppose
A17: WB is
closed;
set W2 = (W1
.remove (1,((2
* k)
+ 1)));
(W1
.first() )
= (W1
. ((2
* k)
+ 1)) by
A14,
A15,
A17;
then W2
= (W1
.cut (((2
* k)
+ 1),(((2
* k)
+ 1)
+ 2))) by
A4,
Lm32;
then ((
len W2)
+ ((2
* k)
+ 1))
= ((((2
* k)
+ 1)
+ 2)
+ 1) by
A4,
A5,
Lm15
.= (((2
* k)
+ 1)
+ (2
+ 1));
then
reconsider W2 as
Path of W1 by
Lm69;
take W2;
thus W2 is
directed;
end;
suppose
A18: WB is
open;
consider esb be
Subset of (WA
.edgeSeq() ) such that
A19: (WB
.edgeSeq() )
= (
Seq esb) by
Def32;
A20: (
Seq esb) is
one-to-one by
A19,
Def27;
A21: (
Seq esb)
= (esb
* (
Sgm (
dom esb))) by
FINSEQ_1:def 14;
A22:
now
let x be
object;
assume x
in (
dom esb);
then
[x, (esb
. x)]
in esb by
FUNCT_1: 1;
then x
in (
dom (WA
.edgeSeq() )) by
FUNCT_1: 1;
hence x
in (
Seg k) by
A7,
FINSEQ_1:def 3;
end;
then
A23: (
dom esb)
c= (
Seg k) by
TARSKI:def 3;
then (
rng (
Sgm (
dom esb)))
= (
dom esb) by
FINSEQ_1:def 13;
then
A24: (
Sgm (
dom esb)) is
one-to-one by
A21,
A20,
FUNCT_1: 26;
now
per cases ;
suppose
A25: v
in (WB
.vertices() );
reconsider WB9 = WB as
directed
Path of G by
A8;
A26: (
dom (
Sgm (
dom esb)))
= (
dom (WB
.edgeSeq() )) by
A19,
Th5
.= (
Seg (
len (WB
.edgeSeq() ))) by
FINSEQ_1:def 3;
consider n be
odd
Element of
NAT such that
A27: n
<= (
len WB) and
A28: (WB
. n)
= v by
A25,
Lm45;
set W2 = (WB9
.cut (1,n));
(
len W2)
= n by
A27,
Lm22;
then
consider naa1 be
even
Element of
NAT such that
A29: naa1
= (n
- 1) and
A30: (
len (W2
.edgeSeq() ))
= (naa1
div 2) by
Lm42;
((2
*
0 )
+ 1)
<= n by
ABIAN: 12;
then
A31: W2
is_Walk_from ((W1
.first() ),(W1
.last() )) by
A4,
A14,
A27,
A28,
Lm16;
2
divides naa1 by
PEPIN: 22;
then
A32: (2
* (naa1
div 2))
= naa1 by
NAT_D: 3;
now
assume (naa1
div 2)
> (
len (WB
.edgeSeq() ));
then naa1
> (2
* (
len (WB
.edgeSeq() ))) by
A32,
XREAL_1: 68;
then (naa1
+ 1)
> ((2
* (
len (WB
.edgeSeq() )))
+ 1) by
XREAL_1: 8;
hence contradiction by
A27,
A29,
Def15;
end;
then (
Seg (naa1
div 2))
c= (
dom (
Sgm (
dom esb))) by
A26,
FINSEQ_1: 5;
then
A33: (
dom ((
Sgm (
dom esb))
| (
Seg (naa1
div 2))))
= (
Seg (naa1
div 2)) by
RELAT_1: 62;
reconsider ses = ((
Sgm (
dom esb))
| (
Seg (naa1
div 2))) as
FinSequence;
A34: ses is
one-to-one by
A24,
FUNCT_1: 52;
set es = (esb
| (
rng ((
Sgm (
dom esb))
| (
Seg (naa1
div 2)))));
reconsider es as
Subset of (WA
.edgeSeq() ) by
FINSEQ_6: 153;
for x be
object st x
in es holds x
in (W1
.edgeSeq() ) by
A9,
TARSKI:def 3;
then
reconsider es as
Subset of (W1
.edgeSeq() ) by
TARSKI:def 3;
reconsider esbes1 = (esb
\ es) as
Function;
now
let z be
object;
A35: (
rng ((
Sgm (
dom esb))
| (
Seg (naa1
div 2))))
c= (
rng (
Sgm (
dom esb))) by
RELAT_1: 70;
assume z
in (
rng ((
Sgm (
dom esb))
| (
Seg (naa1
div 2))));
then z
in (
rng (
Sgm (
dom esb))) by
A35;
hence z
in (
dom esb) by
A23,
FINSEQ_1:def 13;
end;
then (
rng ((
Sgm (
dom esb))
| (
Seg (naa1
div 2))))
c= (
dom esb) by
TARSKI:def 3;
then
A36: (
dom es)
= (
rng ((
Sgm (
dom esb))
| (
Seg (naa1
div 2)))) by
RELAT_1: 62;
A37:
now
let a,b be
Nat;
assume that
A38: a
in (
dom es) and
A39: b
in (
dom esbes1);
consider xa be
object such that
A40: xa
in (
dom ses) and
A41: (ses
. xa)
= a by
A36,
A38,
FUNCT_1:def 3;
reconsider xa as
Element of
NAT by
A40;
A42: xa
in (
Seg (naa1
div 2)) by
A40,
RELAT_1: 57;
then
A43: 1
<= xa by
FINSEQ_1: 1;
A44:
[b, (esbes1
. b)]
in (esb
\ es) by
A39,
FUNCT_1: 1;
then
A45:
[b, (esbes1
. b)]
in esb by
XBOOLE_0:def 5;
then b
in (
dom esb) by
FUNCT_1: 1;
then b
in (
rng (
Sgm (
dom esb))) by
A23,
FINSEQ_1:def 13;
then
consider xb be
object such that
A46: xb
in (
dom (
Sgm (
dom esb))) and
A47: ((
Sgm (
dom esb))
. xb)
= b by
FUNCT_1:def 3;
reconsider xb as
Element of
NAT by
A46;
A48: 1
<= xb by
A26,
A46,
FINSEQ_1: 1;
A49: xa
<= (naa1
div 2) by
A42,
FINSEQ_1: 1;
A50:
now
assume xb
<= xa;
then xb
<= (naa1
div 2) by
A49,
XXREAL_0: 2;
then
A51: xb
in (
Seg (naa1
div 2)) by
A48,
FINSEQ_1: 1;
[xb, b]
in (
Sgm (
dom esb)) by
A46,
A47,
FUNCT_1: 1;
then
[xb, b]
in ses by
A51,
RELAT_1:def 11;
then b
in (
rng ses) by
XTUPLE_0:def 13;
then
[b, (esbes1
. b)]
in es by
A45,
RELAT_1:def 11;
hence contradiction by
A44,
XBOOLE_0:def 5;
end;
xb
<= (
len (WB
.edgeSeq() )) by
A26,
A46,
FINSEQ_1: 1;
then xb
in (
dom (
Seq esb)) by
A19,
A48,
FINSEQ_3: 25;
then xb
in (
dom (
Sgm (
dom esb))) by
Th5;
then
A52: xb
<= (
len (
Sgm (
dom esb))) by
FINSEQ_3: 25;
a
= ((
Sgm (
dom esb))
. xa) by
A40,
A41,
FUNCT_1: 47;
hence a
< b by
A23,
A47,
A43,
A52,
A50,
FINSEQ_1:def 13;
end;
(
len ses)
= (naa1
div 2) by
A33,
FINSEQ_1:def 3;
then (
card (
dom es))
= (naa1
div 2) by
A36,
A34,
FINSEQ_4: 62;
then (
card es)
= (naa1
div 2) by
CARD_1: 62;
then
A53: (
len (
Seq es))
= (
len (W2
.edgeSeq() )) by
A30,
Th4;
A54: es
c= esb by
RELAT_1: 59;
now
let z be
object;
hereby
assume
A55: z
in esb;
now
per cases ;
suppose z
in es;
hence z
in (es
\/ (esb
\ es)) by
XBOOLE_0:def 3;
end;
suppose not z
in es;
then z
in (esb
\ es) by
A55,
XBOOLE_0:def 5;
hence z
in (es
\/ (esb
\ es)) by
XBOOLE_0:def 3;
end;
end;
hence z
in (es
\/ (esb
\ es));
end;
assume
A56: z
in (es
\/ (esb
\ es));
now
per cases by
A56,
XBOOLE_0:def 3;
suppose z
in es;
hence z
in esb by
A54;
end;
suppose z
in (esb
\ es);
hence z
in esb by
XBOOLE_0:def 5;
end;
end;
hence z
in esb;
end;
then esb
= (es
\/ (esb
\ es)) by
TARSKI: 2;
then
A57: (
dom esb)
= ((
dom es)
\/ (
dom (esb
\ es))) by
XTUPLE_0: 23;
(esb
\ es)
c= esb by
XBOOLE_1: 36;
then (
dom (esb
\ es))
c= (
dom esb) by
RELAT_1: 11;
then
A58: (
dom (esb
\ es))
c= (
Seg k) by
A23,
XBOOLE_1: 1;
(
dom es)
c= (
dom esb) by
A54,
RELAT_1: 11;
then (
dom es)
c= (
Seg k) by
A23,
XBOOLE_1: 1;
then
A59: (
Sgm (
dom esb))
= ((
Sgm (
dom es))
^ (
Sgm (
dom (esb
\ es)))) by
A57,
A58,
A37,
FINSEQ_3: 42;
A60: (W2
.edgeSeq() )
c= (WB
.edgeSeq() ) by
Lm43;
then
A61: (
dom (W2
.edgeSeq() ))
c= (
dom (
Seq esb)) by
A19,
RELAT_1: 11;
A62: (
Seq es)
= (es
* (
Sgm (
dom es))) by
FINSEQ_1:def 14;
now
let x be
Nat;
assume that
A63: 1
<= x and
A64: x
<= (
len (W2
.edgeSeq() ));
A65: x
in (
dom (W2
.edgeSeq() )) by
A63,
A64,
FINSEQ_3: 25;
then x
in (
dom (
Sgm (
dom esb))) by
A21,
A61,
FUNCT_1: 11;
then
A66:
[x, ((
Sgm (
dom esb))
. x)]
in (
Sgm (
dom esb)) by
FUNCT_1: 1;
x
in (
Seg (naa1
div 2)) by
A30,
A63,
A64,
FINSEQ_1: 1;
then
[x, ((
Sgm (
dom esb))
. x)]
in ses by
A66,
RELAT_1:def 11;
then
A67: ((
Sgm (
dom esb))
. x)
in (
rng ses) by
XTUPLE_0:def 13;
((
Sgm (
dom esb))
. x)
in (
dom esb) by
A21,
A61,
A65,
FUNCT_1: 11;
then
[((
Sgm (
dom esb))
. x), (esb
. ((
Sgm (
dom esb))
. x))]
in esb by
FUNCT_1: 1;
then
A68:
[((
Sgm (
dom esb))
. x), (esb
. ((
Sgm (
dom esb))
. x))]
in es by
A67,
RELAT_1:def 11;
[x, ((W2
.edgeSeq() )
. x)]
in (W2
.edgeSeq() ) by
A65,
FUNCT_1: 1;
then
A69: ((W2
.edgeSeq() )
. x)
= ((
Seq esb)
. x) by
A19,
A60,
FUNCT_1: 1
.= (esb
. ((
Sgm (
dom esb))
. x)) by
A21,
A61,
A65,
FUNCT_1: 12;
A70: x
in (
dom (
Seq es)) by
A53,
A63,
A64,
FINSEQ_3: 25;
then x
in (
dom (
Sgm (
dom es))) by
Th5;
then ((
Sgm (
dom esb))
. x)
= ((
Sgm (
dom es))
. x) by
A59,
FINSEQ_1:def 7;
then (es
. ((
Sgm (
dom es))
. x))
= (esb
. ((
Sgm (
dom esb))
. x)) by
A68,
FUNCT_1: 1;
hence ((W2
.edgeSeq() )
. x)
= ((
Seq es)
. x) by
A62,
A69,
A70,
FUNCT_1: 12;
end;
then (W2
.edgeSeq() )
= (
Seq es) by
A53,
FINSEQ_1: 14;
then
reconsider W2 as
Path of W1 by
A31,
Def32;
take W2;
thus W2 is
directed;
end;
suppose
A71: not v
in (WB
.vertices() );
set es = (esb
+* ((k
+ 1)
.--> e));
set W2 = (WB
.addEdge e);
A72:
now
let m,n be
Nat;
assume that
A73: m
in (
dom esb) and
A74: n
in
{(k
+ 1)};
A75: n
= (k
+ 1) by
A74,
TARSKI:def 1;
m
<= k by
A23,
A73,
FINSEQ_1: 1;
hence m
< n by
A75,
NAT_1: 13;
end;
A76: (
dom ((k
+ 1)
.--> e))
=
{(k
+ 1)};
then
A77: (
dom es)
= ((
dom esb)
\/
{(k
+ 1)}) by
FUNCT_4:def 1;
now
let x be
object;
assume
A78: x
in (
dom es);
now
per cases by
A77,
A78,
XBOOLE_0:def 3;
suppose x
in (
dom esb);
then
A79: x
in (
Seg k) by
A22;
then
reconsider x9 = x as
Element of
NAT ;
x9
<= k by
A79,
FINSEQ_1: 1;
then
A80: x9
<= (k
+ 1) by
NAT_1: 12;
1
<= x9 by
A79,
FINSEQ_1: 1;
hence x
in (
Seg (k
+ 1)) by
A80,
FINSEQ_1: 1;
end;
suppose
A81: x
in
{(k
+ 1)};
A82: 1
<= (k
+ 1) by
NAT_1: 12;
x
= (k
+ 1) by
A81,
TARSKI:def 1;
hence x
in (
Seg (k
+ 1)) by
A82,
FINSEQ_1: 1;
end;
end;
hence x
in (
Seg (k
+ 1));
end;
then
A83: (
dom es)
c= (
Seg (k
+ 1)) by
TARSKI:def 3;
then
reconsider es as
FinSubsequence by
FINSEQ_1:def 12;
now
let z be
object;
assume
A84: z
in es;
then
consider x,y be
object such that
A85: z
=
[x, y] by
RELAT_1:def 1;
A86: x
in (
dom es) by
A84,
A85,
FUNCT_1: 1;
A87: (es
. x)
= y by
A84,
A85,
FUNCT_1: 1;
now
per cases ;
suppose
A88: x
in (
dom ((k
+ 1)
.--> e));
then
reconsider x9 = x as
Element of
NAT by
A76;
A89: x
= (k
+ 1) by
A88,
TARSKI:def 1;
then
A90: 1
<= x9 by
NAT_1: 12;
then
A91: x
in (
dom (W1
.edgeSeq() )) by
A3,
A89,
FINSEQ_3: 25;
y
= (((k
+ 1)
.--> e)
. x) by
A77,
A86,
A87,
A88,
FUNCT_4:def 1;
then
A92: y
= e by
A89,
FUNCOP_1: 72;
((W1
.edgeSeq() )
. x)
= (W1
. (2
* (k
+ 1))) by
A3,
A89,
A90,
Def15
.= (W1
. (((2
* k)
+ 1)
+ 1));
hence z
in (W1
.edgeSeq() ) by
A85,
A92,
A91,
FUNCT_1: 1;
end;
suppose
A93: not x
in (
dom ((k
+ 1)
.--> e));
then
A94: x
in (
dom esb) by
A77,
A86,
XBOOLE_0:def 3;
y
= (esb
. x) by
A77,
A86,
A87,
A93,
FUNCT_4:def 1;
then
[x, y]
in esb by
A94,
FUNCT_1: 1;
then
[x, y]
in (WA
.edgeSeq() );
hence z
in (W1
.edgeSeq() ) by
A9,
A85;
end;
end;
hence z
in (W1
.edgeSeq() );
end;
then
reconsider es as
Subset of (W1
.edgeSeq() ) by
TARSKI:def 3;
{(k
+ 1)}
c= (
Seg (k
+ 1)) by
A77,
A83,
XBOOLE_1: 11;
then
A95: (
Sgm (
dom es))
= ((
Sgm (
dom esb))
^ (
Sgm
{(k
+ 1)})) by
A23,
A77,
A72,
FINSEQ_3: 42
.= ((
Sgm (
dom esb))
^
<*(k
+ 1)*>) by
FINSEQ_3: 44;
now
assume ((
dom esb)
/\ (
dom ((k
+ 1)
.--> e)))
<>
{} ;
then
consider x be
object such that
A96: x
in ((
dom esb)
/\ (
dom ((k
+ 1)
.--> e))) by
XBOOLE_0:def 1;
x
in
{(k
+ 1)} by
A96;
then
A97: x
= (k
+ 1) by
TARSKI:def 1;
x
in (
dom esb) by
A96,
XBOOLE_0:def 4;
then (k
+ 1)
<= (k
+
0 ) by
A23,
A97,
FINSEQ_1: 1;
hence contradiction by
XREAL_1: 6;
end;
then
A98: (
dom esb)
misses (
dom ((k
+ 1)
.--> e)) by
XBOOLE_0:def 7;
A99: (W2
.edgeSeq() )
= ((
Seq esb)
^
<*e*>) by
A16,
A19,
Lm44;
then
A100: (
len (W2
.edgeSeq() ))
= ((
len (
Seq esb))
+ (
len
<*e*>)) by
FINSEQ_1: 22
.= ((
len (
Seq esb))
+ 1) by
FINSEQ_1: 39
.= ((
card esb)
+ 1) by
Th4;
A101: (
len (
Seq es))
= (
card es) by
Th4
.= ((
card esb)
+ (
card ((k
+ 1)
.--> e))) by
A98,
PRE_CIRC: 22
.= ((
card esb)
+ (
card
{
[(k
+ 1), e]})) by
FUNCT_4: 82
.= (
len (W2
.edgeSeq() )) by
A100,
CARD_1: 30;
now
A102: (
Seq es)
= (es
* (
Sgm (
dom es))) by
FINSEQ_1:def 14;
let n be
Nat;
assume that
A103: 1
<= n and
A104: n
<= (
len (W2
.edgeSeq() ));
n
in (
dom (
Seq es)) by
A101,
A103,
A104,
FINSEQ_3: 25;
then
A105: ((
Seq es)
. n)
= (es
. ((
Sgm (
dom es))
. n)) by
A102,
FUNCT_1: 12;
A106: (
Seq esb)
= (esb
* (
Sgm (
dom esb))) by
FINSEQ_1:def 14;
A107: n
in (
dom (W2
.edgeSeq() )) by
A103,
A104,
FINSEQ_3: 25;
now
per cases by
A99,
A107,
FINSEQ_1: 25;
suppose
A108: n
in (
dom (
Seq esb));
then n
in (
dom (
Sgm (
dom esb))) by
A106,
FUNCT_1: 11;
then
A109: ((
Sgm (
dom es))
. n)
= ((
Sgm (
dom esb))
. n) by
A95,
FINSEQ_1:def 7;
A110: ((
Sgm (
dom esb))
. n)
in (
dom esb) by
A106,
A108,
FUNCT_1: 11;
((W2
.edgeSeq() )
. n)
= ((
Seq esb)
. n) by
A99,
A108,
FINSEQ_1:def 7
.= (esb
. ((
Sgm (
dom esb))
. n)) by
A106,
A108,
FUNCT_1: 12;
hence ((W2
.edgeSeq() )
. n)
= ((
Seq es)
. n) by
A98,
A105,
A110,
A109,
FUNCT_4: 16;
end;
suppose ex m be
Nat st m
in (
dom
<*e*>) & n
= ((
len (
Seq esb))
+ m);
then
consider m be
Nat such that
A111: m
in (
dom
<*e*>) and
A112: n
= ((
len (
Seq esb))
+ m);
m
in
{1} by
A111,
FINSEQ_1: 2,
FINSEQ_1:def 8;
then
A113: m
= 1 by
TARSKI:def 1;
A114: (k
+ 1)
in (
dom ((k
+ 1)
.--> e)) by
TARSKI:def 1;
then
A115: (k
+ 1)
in ((
dom esb)
\/ (
dom ((k
+ 1)
.--> e))) by
XBOOLE_0:def 3;
(
len (
Sgm (
dom esb)))
= (
card (
dom esb)) by
A23,
FINSEQ_3: 39
.= (
card esb) by
CARD_1: 62
.= (
len (
Seq esb)) by
Th4;
then ((
Seq es)
. n)
= (es
. (k
+ 1)) by
A95,
A105,
A112,
A113,
FINSEQ_1: 42;
then
A116: ((
Seq es)
. n)
= (((k
+ 1)
.--> e)
. (k
+ 1)) by
A114,
A115,
FUNCT_4:def 1
.= e by
FUNCOP_1: 72;
((W2
.edgeSeq() )
. n)
= (
<*e*>
. 1) by
A99,
A111,
A112,
A113,
FINSEQ_1:def 7
.= e by
FINSEQ_1:def 8;
hence ((W2
.edgeSeq() )
. n)
= ((
Seq es)
. n) by
A116;
end;
end;
hence ((W2
.edgeSeq() )
. n)
= ((
Seq es)
. n);
end;
then
A117: (W2
.edgeSeq() )
= (
Seq es) by
A101,
FINSEQ_1: 14;
W2
is_Walk_from ((W1
.first() ),(W1
.last() )) by
A4,
A8,
A6,
A10,
A13,
A12,
Lm52;
then
reconsider W2 as
Path of W1 by
A16,
A18,
A71,
A117,
Def32,
Lm68;
take W2;
thus W2 is
directed by
A8,
A6,
A10,
A12,
Lm52;
end;
end;
hence ex W2 be
Path of W1 st W2 is
directed;
end;
end;
hence ex W2 be
Path of W1 st W2 is
directed;
end;
then
A118: for k be
Nat st
P[k] holds
P[(k
+ 1)];
now
let W1 be
DWalk of G;
set W2 = the
Path of W1;
assume (W1
.length() )
=
0 ;
then (
len W1)
= ((2
*
0 )
+ 1) by
Def15;
then
A119: (
len W2)
<= 1 by
Lm72;
take W2;
1
<= (
len W2) by
ABIAN: 12;
then (
len W2)
= 1 by
A119,
XXREAL_0: 1;
then W2 is
trivial by
Lm55;
then ex v be
Vertex of G st W2
= (G
.walkOf v) by
Lm56;
hence W2 is
directed;
end;
then
A120:
P[
0 ];
for k be
Nat holds
P[k] from
NAT_1:sch 2(
A120,
A118);
hence thesis by
A1;
end;
end
definition
let G be
_Graph, W be
DWalk of G;
mode
DWalk of W is
directed
Subwalk of W;
mode
DTrail of W is
directed
Trail of W;
mode
DPath of W is
directed
Path of W;
end
definition
let G be
_Graph;
::
GLIB_001:def33
func G
.allWalks() -> non
empty
Subset of (((
the_Vertices_of G)
\/ (
the_Edges_of G))
* ) equals the set of all W where W be
Walk of G;
coherence
proof
set IT = the set of all W where W be
Walk of G;
A1:
now
let x be
object;
assume x
in IT;
then ex W be
Walk of G st x
= W;
hence x
in (((
the_Vertices_of G)
\/ (
the_Edges_of G))
* ) by
FINSEQ_1:def 11;
end;
(G
.walkOf the
Element of (
the_Vertices_of G))
in IT;
hence thesis by
A1,
TARSKI:def 3;
end;
end
definition
let G be
_Graph;
::
GLIB_001:def34
func G
.allTrails() -> non
empty
Subset of (G
.allWalks() ) equals the set of all W where W be
Trail of G;
coherence
proof
set IT = the set of all W where W be
Trail of G;
A1:
now
let e be
object;
assume e
in IT;
then ex W be
Trail of G st W
= e;
hence e
in (G
.allWalks() );
end;
(G
.walkOf the
Element of (
the_Vertices_of G))
in IT;
hence thesis by
A1,
TARSKI:def 3;
end;
end
definition
let G be
_Graph;
::
GLIB_001:def35
func G
.allPaths() -> non
empty
Subset of (G
.allTrails() ) equals the set of all W where W be
Path of G;
coherence
proof
set IT = the set of all W where W be
Path of G;
A1:
now
let e be
object;
assume e
in IT;
then ex W be
Path of G st e
= W;
hence e
in (G
.allTrails() );
end;
(G
.walkOf the
Element of (
the_Vertices_of G))
in IT;
hence thesis by
A1,
TARSKI:def 3;
end;
end
definition
let G be
_Graph;
::
GLIB_001:def36
func G
.allDWalks() -> non
empty
Subset of (G
.allWalks() ) equals the set of all W where W be
DWalk of G;
coherence
proof
set IT = the set of all W where W be
directed
Walk of G;
A1:
now
let e be
object;
assume e
in IT;
then ex W be
directed
Walk of G st e
= W;
hence e
in (G
.allWalks() );
end;
(G
.walkOf the
Element of (
the_Vertices_of G))
in IT;
hence thesis by
A1,
TARSKI:def 3;
end;
end
definition
let G be
_Graph;
::
GLIB_001:def37
func G
.allDTrails() -> non
empty
Subset of (G
.allTrails() ) equals the set of all W where W be
DTrail of G;
coherence
proof
set IT = the set of all W where W be
DTrail of G;
A1:
now
let e be
object;
assume e
in IT;
then ex W be
DTrail of G st e
= W;
hence e
in (G
.allTrails() );
end;
(G
.walkOf the
Element of (
the_Vertices_of G))
in IT;
hence thesis by
A1,
TARSKI:def 3;
end;
end
definition
let G be
_Graph;
::
GLIB_001:def38
func G
.allDPaths() -> non
empty
Subset of (G
.allDTrails() ) equals the set of all W where W be
directed
Path of G;
coherence
proof
set IT = the set of all W where W be
DPath of G;
A1:
now
let e be
object;
assume e
in IT;
then ex W be
DPath of G st e
= W;
hence e
in (G
.allDTrails() );
end;
(G
.walkOf the
Element of (
the_Vertices_of G))
in IT;
hence thesis by
A1,
TARSKI:def 3;
end;
end
registration
let G be
_finite
_Graph;
cluster (G
.allTrails() ) ->
finite;
correctness
proof
set D = ((
the_Vertices_of G)
\/ (
the_Edges_of G));
set X = { x where x be
Element of (D
* ) : (
len x)
<= ((2
* (G
.size() ))
+ 1) };
A1:
now
let W be
Trail of G;
consider f be
Function such that
A2: (
dom f)
= (W
.edgeSeq() ) & for x be
object st x
in (W
.edgeSeq() ) holds (f
. x)
= (x
`2 ) from
FUNCT_1:sch 3;
now
A3: (W
.edgeSeq() ) is
one-to-one by
Def27;
let x1,x2 be
object;
assume that
A4: x1
in (
dom f) and
A5: x2
in (
dom f) and
A6: (f
. x1)
= (f
. x2);
consider a1,b1 be
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 be
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;
end;
then
A14: f is
one-to-one by
FUNCT_1:def 4;
now
let y be
object;
assume y
in (
rng f);
then
consider x be
object such that
A15: x
in (
dom f) and
A16: (f
. x)
= y by
FUNCT_1:def 3;
consider a,b be
object such that
A17: x
=
[a, b] by
A2,
A15,
RELAT_1:def 1;
y
= (x
`2 ) by
A2,
A15,
A16;
then y
= b by
A17;
then y
in (
rng (W
.edgeSeq() )) by
A2,
A15,
A17,
XTUPLE_0:def 13;
hence y
in (
the_Edges_of G);
end;
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;
end;
now
let e be
object;
assume e
in (G
.allTrails() );
then
consider W be
Trail of G such that
A18: W
= e;
A19: (
len W)
<= ((2
* (G
.size() ))
+ 1) by
A1;
e is
Element of (D
* ) by
A18,
FINSEQ_1:def 11;
hence e
in X by
A18,
A19;
end;
then (G
.allTrails() )
c= X by
TARSKI:def 3;
hence thesis by
FINSET_1: 1,
GRAPH_5: 3;
end;
end
definition
let G be
_Graph, X be non
empty
Subset of (G
.allWalks() );
:: original:
Element
redefine
mode
Element of X ->
Walk of G ;
coherence
proof
let x be
Element of X;
x
in the set of all W where W be
Walk of G;
then ex y be
Walk of G st y
= x;
hence thesis;
end;
end
definition
let G be
_Graph, X be non
empty
Subset of (G
.allTrails() );
:: original:
Element
redefine
mode
Element of X ->
Trail of G ;
coherence
proof
let x be
Element of X;
x
in the set of all W where W be
Trail of G;
then ex y be
Trail of G st y
= x;
hence thesis;
end;
end
definition
let G be
_Graph, X be non
empty
Subset of (G
.allPaths() );
:: original:
Element
redefine
mode
Element of X ->
Path of G ;
coherence
proof
let x be
Element of X;
x
in the set of all W where W be
Path of G;
then ex y be
Path of G st y
= x;
hence thesis;
end;
end
definition
let G be
_Graph, X be non
empty
Subset of (G
.allDWalks() );
:: original:
Element
redefine
mode
Element of X ->
DWalk of G ;
coherence
proof
let x be
Element of X;
x
in the set of all W where W be
DWalk of G;
then ex y be
DWalk of G st y
= x;
hence thesis;
end;
end
definition
let G be
_Graph, X be non
empty
Subset of (G
.allDTrails() );
:: original:
Element
redefine
mode
Element of X ->
DTrail of G ;
coherence
proof
let x be
Element of X;
x
in the set of all W where W be
DTrail of G;
then ex y be
DTrail of G st y
= x;
hence thesis;
end;
end
definition
let G be
_Graph, X be non
empty
Subset of (G
.allDPaths() );
:: original:
Element
redefine
mode
Element of X ->
DPath of G ;
coherence
proof
let x be
Element of X;
x
in the set of all W where W be
DPath of G;
then ex y be
DPath of G st y
= x;
hence thesis;
end;
end
begin
reserve G,G1,G2 for
_Graph;
reserve W,W1,W2 for
Walk of G;
reserve e,x,y,z for
set;
reserve v for
Vertex of G;
reserve n,m for
Element of
NAT ;
theorem ::
GLIB_001:7
for n be
odd
Element of
NAT st n
<= (
len W) holds (W
. n)
in (
the_Vertices_of G) by
Lm1;
theorem ::
GLIB_001:8
Th7: for n be
even
Element of
NAT st n
in (
dom W) holds (W
. n)
in (
the_Edges_of G)
proof
let n be
even
Element of
NAT ;
assume
A1: n
in (
dom W);
then 1
<= n by
FINSEQ_3: 25;
then
reconsider naa1 = (n
- 1) as
odd
Element of
NAT by
INT_1: 5;
n
<= (
len W) by
A1,
FINSEQ_3: 25;
then naa1
< ((
len W)
-
0 ) by
XREAL_1: 15;
then (W
. (naa1
+ 1))
Joins ((W
. naa1),(W
. (naa1
+ 2)),G) by
Def3;
hence thesis by
GLIB_000:def 13;
end;
theorem ::
GLIB_001:9
for n be
even
Element of
NAT st n
in (
dom W) holds ex naa1 be
odd
Element of
NAT st naa1
= (n
- 1) & (n
- 1)
in (
dom W) & (n
+ 1)
in (
dom W) & (W
. n)
Joins ((W
. naa1),(W
. (n
+ 1)),G) by
Lm2;
theorem ::
GLIB_001:10
Th9: for n be
odd
Element of
NAT st n
< (
len W) holds (W
. (n
+ 1))
in ((W
.vertexAt n)
.edgesInOut() )
proof
let n be
odd
Element of
NAT ;
assume
A1: n
< (
len W);
then
A2: (W
.vertexAt n)
= (W
. n) by
Def8;
(W
. (n
+ 1))
Joins ((W
. n),(W
. (n
+ 2)),G) by
A1,
Def3;
hence thesis by
A2,
GLIB_000: 62;
end;
theorem ::
GLIB_001:11
Th10: for n be
odd
Element of
NAT st 1
< n & n
<= (
len W) holds (W
. (n
- 1))
in ((W
.vertexAt n)
.edgesInOut() )
proof
let n be
odd
Element of
NAT ;
assume that
A1: 1
< n and
A2: n
<= (
len W);
reconsider naa1 = (n
- 1) as
even
Element of
NAT by
A1,
INT_1: 5;
(1
+ 1)
<= n by
A1,
NAT_1: 13;
then
A3: ((1
+ 1)
- 1)
<= (n
- 1) by
XREAL_1: 13;
(n
- 1)
<= ((
len W)
-
0 ) by
A2,
XREAL_1: 13;
then naa1
in (
dom W) by
A3,
FINSEQ_3: 25;
then
consider n5 be
odd
Element of
NAT such that
A4: n5
= (naa1
- 1) and
A5: (naa1
- 1)
in (
dom W) and (naa1
+ 1)
in (
dom W) and
A6: (W
. naa1)
Joins ((W
. n5),(W
. (naa1
+ 1)),G) by
Lm2;
n5
<= (
len W) by
A4,
A5,
FINSEQ_3: 25;
then (W
. n5)
= (W
.vertexAt n5) by
Def8;
then (W
. (n
- 1))
Joins ((W
.vertexAt n5),(W
.vertexAt n),G) by
A2,
A6,
Def8;
hence thesis by
GLIB_000: 14,
GLIB_000: 62;
end;
theorem ::
GLIB_001:12
for n be
odd
Element of
NAT st n
< (
len W) holds n
in (
dom W) & (n
+ 1)
in (
dom W) & (n
+ 2)
in (
dom W)
proof
let n be
odd
Element of
NAT ;
A1: 1
<= n by
ABIAN: 12;
A2: 1
<= (n
+ 1) by
NAT_1: 12;
A3: 1
<= (n
+ 2) by
NAT_1: 12;
assume
A4: n
< (
len W);
then
A5: (n
+ 1)
<= (
len W) by
NAT_1: 13;
(n
+ 2)
<= (
len W) by
A4,
Th1;
hence thesis by
A4,
A1,
A2,
A3,
A5,
FINSEQ_3: 25;
end;
theorem ::
GLIB_001:13
Th12: (
len (G
.walkOf v))
= 1 & ((G
.walkOf v)
. 1)
= v & ((G
.walkOf v)
.first() )
= v & ((G
.walkOf v)
.last() )
= v & (G
.walkOf v)
is_Walk_from (v,v)
proof
thus
A1: (
len (G
.walkOf v))
= 1 & ((G
.walkOf v)
. 1)
= v by
FINSEQ_1: 40;
thus
A2: ((G
.walkOf v)
.first() )
= v by
FINSEQ_1: 40;
thus ((G
.walkOf v)
.last() )
= v by
A1;
hence thesis by
A2;
end;
theorem ::
GLIB_001:14
Th13: for e,x,y be
object holds e
Joins (x,y,G) implies (
len (G
.walkOf (x,e,y)))
= 3
proof
let e,x,y be
object;
assume e
Joins (x,y,G);
then (G
.walkOf (x,e,y))
=
<*x, e, y*> by
Def5;
hence thesis by
FINSEQ_1: 45;
end;
theorem ::
GLIB_001:15
Th14: for e,x,y be
object holds e
Joins (x,y,G) implies ((G
.walkOf (x,e,y))
.first() )
= x & ((G
.walkOf (x,e,y))
.last() )
= y & (G
.walkOf (x,e,y))
is_Walk_from (x,y)
proof
let e,x,y be
object;
set W = (G
.walkOf (x,e,y));
assume e
Joins (x,y,G);
then
A1: W
=
<*x, e, y*> by
Def5;
hence
A2: (W
.first() )
= x by
FINSEQ_1: 45;
(
len W)
= 3 by
A1,
FINSEQ_1: 45;
hence (W
.last() )
= y by
A1,
FINSEQ_1: 45;
hence thesis by
A2;
end;
theorem ::
GLIB_001:16
for W1 be
Walk of G1, W2 be
Walk of G2 st W1
= W2 holds (W1
.first() )
= (W2
.first() ) & (W1
.last() )
= (W2
.last() );
theorem ::
GLIB_001:17
for x,y be
object holds W
is_Walk_from (x,y) iff (W
. 1)
= x & (W
. (
len W))
= y;
theorem ::
GLIB_001:18
for x,y be
object holds W
is_Walk_from (x,y) implies x is
Vertex of G & y is
Vertex of G;
theorem ::
GLIB_001:19
for x,y be
object holds for W1 be
Walk of G1, W2 be
Walk of G2 st W1
= W2 holds W1
is_Walk_from (x,y) iff W2
is_Walk_from (x,y);
theorem ::
GLIB_001:20
for W1 be
Walk of G1, W2 be
Walk of G2 st W1
= W2 holds for n be
Element of
NAT holds (W1
.vertexAt n)
= (W2
.vertexAt n)
proof
let W1 be
Walk of G1, W2 be
Walk of G2;
assume
A1: W1
= W2;
let n be
Element of
NAT ;
now
per cases ;
suppose
A2: n is
odd & n
<= (
len W1);
hence (W1
.vertexAt n)
= (W2
. n) by
A1,
Def8
.= (W2
.vertexAt n) by
A1,
A2,
Def8;
end;
suppose
A3: not (n is
odd & n
<= (
len W1));
hence (W1
.vertexAt n)
= (W1
.first() ) by
Def8
.= (W2
.first() ) by
A1
.= (W2
.vertexAt n) by
A1,
A3,
Def8;
end;
end;
hence thesis;
end;
theorem ::
GLIB_001:21
(
len W)
= (
len (W
.reverse() )) & (
dom W)
= (
dom (W
.reverse() )) & (
rng W)
= (
rng (W
.reverse() )) by
FINSEQ_5: 57,
FINSEQ_5:def 3;
theorem ::
GLIB_001:22
Th21: (W
.first() )
= ((W
.reverse() )
.last() ) & (W
.last() )
= ((W
.reverse() )
.first() )
proof
(
len W)
= (
len (W
.reverse() )) by
FINSEQ_5:def 3;
hence (W
.first() )
= ((W
.reverse() )
.last() ) by
FINSEQ_5: 62;
thus thesis by
FINSEQ_5: 62;
end;
theorem ::
GLIB_001:23
Th22: for x,y be
object holds W
is_Walk_from (x,y) iff (W
.reverse() )
is_Walk_from (y,x)
proof
let x,y be
object;
A1: (
len W)
= (
len (W
.reverse() )) by
FINSEQ_5:def 3;
thus W
is_Walk_from (x,y) implies (W
.reverse() )
is_Walk_from (y,x) by
A1,
FINSEQ_5: 62;
assume
A2: (W
.reverse() )
is_Walk_from (y,x);
then ((W
.reverse() )
. 1)
= y;
then
A3: (W
. (
len W))
= y by
FINSEQ_5: 62;
((W
.reverse() )
. (
len (W
.reverse() )))
= x by
A2;
then (W
. 1)
= x by
A1,
FINSEQ_5: 62;
hence thesis by
A3;
end;
theorem ::
GLIB_001:24
Th23: n
in (
dom W) implies (W
. n)
= ((W
.reverse() )
. (((
len W)
- n)
+ 1)) & (((
len W)
- n)
+ 1)
in (
dom (W
.reverse() ))
proof
set rn = (((
len W)
- n)
+ 1);
assume
A1: n
in (
dom W);
then n
<= (
len W) by
FINSEQ_3: 25;
then
reconsider rn as
Element of
NAT by
FINSEQ_5: 1;
n
in (
Seg (
len W)) by
A1,
FINSEQ_1:def 3;
then (((
len W)
- n)
+ 1)
in (
Seg (
len W)) by
FINSEQ_5: 2;
then
A2: rn
in (
Seg (
len (W
.reverse() ))) by
FINSEQ_5:def 3;
then rn
in (
dom (W
.reverse() )) by
FINSEQ_1:def 3;
then ((W
.reverse() )
. rn)
= (W
. (((
len W)
- rn)
+ 1)) by
FINSEQ_5:def 3;
hence thesis by
A2,
FINSEQ_1:def 3;
end;
theorem ::
GLIB_001:25
n
in (
dom (W
.reverse() )) implies ((W
.reverse() )
. n)
= (W
. (((
len W)
- n)
+ 1)) & (((
len W)
- n)
+ 1)
in (
dom W) by
Lm8;
::$Canceled
theorem ::
GLIB_001:27
for W1 be
Walk of G1, W2 be
Walk of G2 st W1
= W2 holds (W1
.reverse() )
= (W2
.reverse() );
theorem ::
GLIB_001:28
(W1
.last() )
= (W2
.first() ) implies ((
len (W1
.append W2))
+ 1)
= ((
len W1)
+ (
len W2)) by
Lm9;
theorem ::
GLIB_001:29
(W1
.last() )
= (W2
.first() ) implies (
len W1)
<= (
len (W1
.append W2)) & (
len W2)
<= (
len (W1
.append W2)) by
Lm10;
theorem ::
GLIB_001:30
(W1
.last() )
= (W2
.first() ) implies ((W1
.append W2)
.first() )
= (W1
.first() ) & ((W1
.append W2)
.last() )
= (W2
.last() ) & (W1
.append W2)
is_Walk_from ((W1
.first() ),(W2
.last() )) by
Lm11;
theorem ::
GLIB_001:31
Th29: for x,y,z be
object holds W1
is_Walk_from (x,y) & W2
is_Walk_from (y,z) implies (W1
.append W2)
is_Walk_from (x,z) by
Lm11;
theorem ::
GLIB_001:32
n
in (
dom W1) implies ((W1
.append W2)
. n)
= (W1
. n) & n
in (
dom (W1
.append W2)) by
Lm12;
theorem ::
GLIB_001:33
(W1
.last() )
= (W2
.first() ) implies for n be
Element of
NAT st n
< (
len W2) holds ((W1
.append W2)
. ((
len W1)
+ n))
= (W2
. (n
+ 1)) & ((
len W1)
+ n)
in (
dom (W1
.append W2)) by
Lm13;
theorem ::
GLIB_001:34
n
in (
dom (W1
.append W2)) implies n
in (
dom W1) or ex k be
Element of
NAT st k
< (
len W2) & n
= ((
len W1)
+ k) by
Lm14;
theorem ::
GLIB_001:35
Th33: for W1A,W1B be
Walk of G1, W2A,W2B be
Walk of G2 st W1A
= W2A & W1B
= W2B holds (W1A
.append W1B)
= (W2A
.append W2B)
proof
let W1A,W1B be
Walk of G1, W2A,W2B be
Walk of G2;
assume that
A1: W1A
= W2A and
A2: W1B
= W2B;
now
per cases ;
suppose
A3: (W1A
.last() )
= (W1B
.first() );
then
A4: (W2A
.last() )
= (W2B
.first() ) by
A1,
A2;
thus (W1A
.append W1B)
= (W1A
^' W1B) by
A3,
Def10
.= (W2A
.append W2B) by
A1,
A2,
A4,
Def10;
end;
suppose
A5: (W1A
.last() )
<> (W1B
.first() );
then
A6: (W2A
.last() )
<> (W2B
.first() ) by
A1,
A2;
thus (W1A
.append W1B)
= W2A by
A1,
A5,
Def10
.= (W2A
.append W2B) by
A6,
Def10;
end;
end;
hence thesis;
end;
theorem ::
GLIB_001:36
for m,n be
odd
Element of
NAT st m
<= n & n
<= (
len W) holds ((
len (W
.cut (m,n)))
+ m)
= (n
+ 1) & for i be
Element of
NAT st i
< (
len (W
.cut (m,n))) holds ((W
.cut (m,n))
. (i
+ 1))
= (W
. (m
+ i)) & (m
+ i)
in (
dom W) by
Lm15;
theorem ::
GLIB_001:37
for m,n be
odd
Element of
NAT st m
<= n & n
<= (
len W) holds ((W
.cut (m,n))
.first() )
= (W
. m) & ((W
.cut (m,n))
.last() )
= (W
. n) & (W
.cut (m,n))
is_Walk_from ((W
. m),(W
. n)) by
Lm16;
theorem ::
GLIB_001:38
for m,n,o be
odd
Element of
NAT st m
<= n & n
<= o & o
<= (
len W) holds ((W
.cut (m,n))
.append (W
.cut (n,o)))
= (W
.cut (m,o)) by
Lm17;
theorem ::
GLIB_001:39
(W
.cut (1,(
len W)))
= W by
Lm18;
theorem ::
GLIB_001:40
Th38: for n be
odd
Element of
NAT st n
< (
len W) holds (G
.walkOf ((W
. n),(W
. (n
+ 1)),(W
. (n
+ 2))))
= (W
.cut (n,(n
+ 2)))
proof
let n be
odd
Element of
NAT ;
set v1 = (W
. n), e = (W
. (n
+ 1)), v2 = (W
. (n
+ 2));
set W1 = (G
.walkOf (v1,e,v2)), W2 = (W
.cut (n,(n
+ 2)));
assume
A1: n
< (
len W);
then
A2: (n
+ 2)
<= (
len W) by
Th1;
A3: n
<= (n
+ 2) by
Th1;
then
A4: ((
len (W
.cut (n,(n
+ 2))))
+ n)
= (1
+ (2
+ n)) by
A2,
Lm15;
A5: e
Joins (v1,v2,G) by
A1,
Def3;
then
A6: (G
.walkOf (v1,e,v2))
=
<*v1, e, v2*> by
Def5;
A7: (
len W1)
= 3 by
A5,
Th13;
then
A8: (
dom W1)
= (
Seg 3) by
FINSEQ_1:def 3;
now
let x be
Nat;
assume
A9: x
in (
dom W1);
then 1
<= x by
FINSEQ_3: 25;
then
reconsider xaa1 = (x
- 1) as
Element of
NAT by
INT_1: 5;
x
<= 3 by
A7,
A9,
FINSEQ_3: 25;
then
A10: xaa1
< (3
-
0 ) by
XREAL_1: 15;
(xaa1
+ 1)
= x;
then
A11: (W2
. x)
= (W
. (n
+ xaa1)) by
A3,
A2,
A4,
A10,
Lm15;
now
per cases by
A8,
A9,
ENUMSET1:def 1,
FINSEQ_3: 1;
suppose x
= 1;
hence (W1
. x)
= (W2
. x) by
A6,
A11,
FINSEQ_1: 45;
end;
suppose x
= 2;
hence (W1
. x)
= (W2
. x) by
A6,
A11,
FINSEQ_1: 45;
end;
suppose x
= 3;
hence (W1
. x)
= (W2
. x) by
A6,
A11,
FINSEQ_1: 45;
end;
end;
hence (W1
. x)
= (W2
. x);
end;
hence thesis by
A4,
A7,
FINSEQ_2: 9;
end;
theorem ::
GLIB_001:41
Th39: for m,n be
odd
Element of
NAT st m
<= n & n
< (
len W) holds ((W
.cut (m,n))
.addEdge (W
. (n
+ 1)))
= (W
.cut (m,(n
+ 2)))
proof
let m,n be
odd
Element of
NAT ;
set W1 = (W
.cut (m,n));
set e = (W
. (n
+ 1));
assume that
A1: m
<= n and
A2: n
< (
len W);
A3: (n
+ 2)
<= (
len W) by
A2,
Th1;
A4: (W1
.last() )
= (W
. n) by
A1,
A2,
Lm16;
then e
Joins ((W1
.last() ),(W
. (n
+ 2)),G) by
A2,
Def3;
then e
Joins ((W1
.last() ),(W
.vertexAt (n
+ 2)),G) by
A3,
Def8;
then ((W1
.last() )
.adj e)
= (W
.vertexAt (n
+ 2)) by
GLIB_000: 66;
then ((W1
.last() )
.adj e)
= (W
. (n
+ 2)) by
A3,
Def8;
then
A5: (G
.walkOf ((W1
.last() ),e,((W1
.last() )
.adj e)))
= (W
.cut (n,(n
+ 2))) by
A2,
A4,
Th38;
n
<= (n
+ 2) by
Th1;
hence thesis by
A1,
A3,
A5,
Lm17;
end;
theorem ::
GLIB_001:42
for n be
odd
Element of
NAT st n
<= (
len W) holds (W
.cut (n,n))
=
<*(W
.vertexAt n)*> by
Lm19;
theorem ::
GLIB_001:43
m is
odd & m
<= n implies ((W
.cut (1,n))
.cut (1,m))
= (W
.cut (1,m)) by
Lm20;
theorem ::
GLIB_001:44
for m,n be
odd
Element of
NAT st m
<= n & n
<= (
len W1) & (W1
.last() )
= (W2
.first() ) holds ((W1
.append W2)
.cut (m,n))
= (W1
.cut (m,n)) by
Lm21;
theorem ::
GLIB_001:45
for m be
odd
Element of
NAT st m
<= (
len W) holds (
len (W
.cut (1,m)))
= m by
Lm22;
theorem ::
GLIB_001:46
for m be
odd
Element of
NAT , x be
Element of
NAT st x
in (
dom (W
.cut (1,m))) & m
<= (
len W) holds ((W
.cut (1,m))
. x)
= (W
. x) by
Lm23;
theorem ::
GLIB_001:47
for m,n be
odd
Element of
NAT , i be
Element of
NAT st m
<= n & n
<= (
len W) & i
in (
dom (W
.cut (m,n))) holds ((W
.cut (m,n))
. i)
= (W
. ((m
+ i)
- 1)) & ((m
+ i)
- 1)
in (
dom W)
proof
let m,n be
odd
Element of
NAT , i be
Element of
NAT ;
assume that
A1: m
<= n and
A2: n
<= (
len W) and
A3: i
in (
dom (W
.cut (m,n)));
1
<= i by
A3,
FINSEQ_3: 25;
then
reconsider iaa1 = (i
- 1) as
Element of
NAT by
INT_1: 5;
i
<= (
len (W
.cut (m,n))) by
A3,
FINSEQ_3: 25;
then
A4: iaa1
< ((
len (W
.cut (m,n)))
-
0 ) by
XREAL_1: 15;
(iaa1
+ 1)
= i;
then ((W
.cut (m,n))
. i)
= (W
. (m
+ iaa1)) by
A1,
A2,
A4,
Lm15;
hence thesis by
A1,
A2,
A4,
Lm15;
end;
theorem ::
GLIB_001:48
Th46: for W1 be
Walk of G1, W2 be
Walk of G2, m,n be
Element of
NAT st W1
= W2 holds (W1
.cut (m,n))
= (W2
.cut (m,n))
proof
let W1 be
Walk of G1, W2 be
Walk of G2, m,n be
Element of
NAT ;
assume
A1: W1
= W2;
now
per cases ;
suppose
A2: m is
odd & n is
odd & m
<= n & n
<= (
len W1);
hence (W1
.cut (m,n))
= ((m,n)
-cut W2) by
A1,
Def11
.= (W2
.cut (m,n)) by
A1,
A2,
Def11;
end;
suppose
A3: not (m is
odd & n is
odd & m
<= n & n
<= (
len W1));
hence (W1
.cut (m,n))
= W2 by
A1,
Def11
.= (W2
.cut (m,n)) by
A1,
A3,
Def11;
end;
end;
hence thesis;
end;
theorem ::
GLIB_001:49
for m,n be
odd
Element of
NAT st m
<= n & n
<= (
len W) & (W
. m)
= (W
. n) holds ((
len (W
.remove (m,n)))
+ n)
= ((
len W)
+ m) by
Lm24;
theorem ::
GLIB_001:50
W
is_Walk_from (x,y) implies (W
.remove (m,n))
is_Walk_from (x,y) by
Lm25;
theorem ::
GLIB_001:51
(
len (W
.remove (m,n)))
<= (
len W) by
Lm26;
theorem ::
GLIB_001:52
(W
.remove (m,m))
= W by
Lm27;
theorem ::
GLIB_001:53
for m,n be
odd
Element of
NAT st m
<= n & n
<= (
len W) & (W
. m)
= (W
. n) holds ((W
.cut (1,m))
.last() )
= ((W
.cut (n,(
len W)))
.first() ) by
Lm28;
theorem ::
GLIB_001:54
for m,n be
odd
Element of
NAT st m
<= n & n
<= (
len W) & (W
. m)
= (W
. n) holds for x be
Element of
NAT st x
in (
Seg m) holds ((W
.remove (m,n))
. x)
= (W
. x) by
Lm29;
theorem ::
GLIB_001:55
for m,n be
odd
Element of
NAT st m
<= n & n
<= (
len W) & (W
. m)
= (W
. n) holds for x be
Element of
NAT st m
<= x & x
<= (
len (W
.remove (m,n))) holds ((W
.remove (m,n))
. x)
= (W
. ((x
- m)
+ n)) & ((x
- m)
+ n) is
Element of
NAT & ((x
- m)
+ n)
<= (
len W) by
Lm30;
theorem ::
GLIB_001:56
for m,n be
odd
Element of
NAT st m
<= n & n
<= (
len W) & (W
. m)
= (W
. n) holds (
len (W
.remove (m,n)))
= (((
len W)
+ m)
- n) by
Lm31;
theorem ::
GLIB_001:57
Th55: for m be
Element of
NAT st (W
. m)
= (W
.last() ) holds (W
.remove (m,(
len W)))
= (W
.cut (1,m))
proof
let m be
Element of
NAT ;
assume
A1: (W
. m)
= (W
.last() );
now
per cases ;
suppose
A2: m is
odd & m
<= (
len W);
then
A3: ((
len (W
.remove (m,(
len W))))
+ (
len W))
= ((
len W)
+ m) by
A1,
Lm24;
then
A4: (
len (W
.remove (m,(
len W))))
= (
len (W
.cut (1,m))) by
A2,
Lm22;
now
let k be
Nat;
assume that
A5: 1
<= k and
A6: k
<= (
len (W
.remove (m,(
len W))));
A7: k
in (
dom (W
.cut (1,m))) by
A4,
A5,
A6,
FINSEQ_3: 25;
k
in (
Seg m) by
A3,
A5,
A6,
FINSEQ_1: 1;
hence ((W
.remove (m,(
len W)))
. k)
= (W
. k) by
A1,
A2,
Lm29
.= ((W
.cut (1,m))
. k) by
A2,
A7,
Lm23;
end;
hence thesis by
A4,
FINSEQ_1: 14;
end;
suppose
A8: not (m is
odd & m
<= (
len W));
then (W
.cut (1,m))
= W by
Def11;
hence thesis by
A8,
Def12;
end;
end;
hence thesis;
end;
theorem ::
GLIB_001:58
for m be
Element of
NAT st (W
.first() )
= (W
. m) holds (W
.remove (1,m))
= (W
.cut (m,(
len W))) by
Lm32;
theorem ::
GLIB_001:59
((W
.remove (m,n))
.first() )
= (W
.first() ) & ((W
.remove (m,n))
.last() )
= (W
.last() ) by
Lm33;
theorem ::
GLIB_001:60
for m,n be
odd
Element of
NAT , x be
Element of
NAT st m
<= n & n
<= (
len W) & (W
. m)
= (W
. n) & x
in (
dom (W
.remove (m,n))) holds x
in (
Seg m) or m
<= x & x
<= (
len (W
.remove (m,n))) by
Lm34;
theorem ::
GLIB_001:61
for W1 be
Walk of G1, W2 be
Walk of G2, m,n be
Element of
NAT st W1
= W2 holds (W1
.remove (m,n))
= (W2
.remove (m,n))
proof
let W1 be
Walk of G1, W2 be
Walk of G2, m,n be
Element of
NAT ;
assume
A1: W1
= W2;
now
per cases ;
suppose
A2: m is
odd & n is
odd & m
<= n & n
<= (
len W1) & (W1
. m)
= (W1
. n);
A3: (W1
.cut (n,(
len W1)))
= (W2
.cut (n,(
len W2))) by
A1,
Th46;
A4: (W1
.cut (1,m))
= (W2
.cut (1,m)) by
A1,
Th46;
(W1
.remove (m,n))
= ((W1
.cut (1,m))
.append (W1
.cut (n,(
len W1)))) by
A2,
Def12;
then (W1
.remove (m,n))
= ((W2
.cut (1,m))
.append (W2
.cut (n,(
len W2)))) by
A4,
A3,
Th33;
hence thesis by
A1,
A2,
Def12;
end;
suppose
A5: not (m is
odd & n is
odd & m
<= n & n
<= (
len W1) & (W1
. m)
= (W1
. n));
hence (W1
.remove (m,n))
= W2 by
A1,
Def12
.= (W2
.remove (m,n)) by
A1,
A5,
Def12;
end;
end;
hence thesis;
end;
theorem ::
GLIB_001:62
for e,x be
object holds e
Joins ((W
.last() ),x,G) implies (W
.addEdge e)
= (W
^
<*e, x*>) by
Lm35;
theorem ::
GLIB_001:63
for e,x be
object holds e
Joins ((W
.last() ),x,G) implies ((W
.addEdge e)
.first() )
= (W
.first() ) & ((W
.addEdge e)
.last() )
= x & (W
.addEdge e)
is_Walk_from ((W
.first() ),x) by
Lm36;
theorem ::
GLIB_001:64
for e,x be
object holds e
Joins ((W
.last() ),x,G) implies (
len (W
.addEdge e))
= ((
len W)
+ 2) by
Lm37;
theorem ::
GLIB_001:65
for e,x be
object holds e
Joins ((W
.last() ),x,G) implies ((W
.addEdge e)
. ((
len W)
+ 1))
= e & ((W
.addEdge e)
. ((
len W)
+ 2))
= x & for n be
Element of
NAT st n
in (
dom W) holds ((W
.addEdge e)
. n)
= (W
. n) by
Lm38;
theorem ::
GLIB_001:66
for e,x,y,z be
object holds W
is_Walk_from (x,y) & e
Joins (y,z,G) implies (W
.addEdge e)
is_Walk_from (x,z) by
Lm39;
theorem ::
GLIB_001:67
Th65: 1
<= (
len (W
.vertexSeq() ))
proof
now
assume (
len (W
.vertexSeq() ))
< 1;
then (
len (W
.vertexSeq() ))
< (
0
+ 1);
then (
len (W
.vertexSeq() ))
=
0 by
NAT_1: 13;
then ((
len W)
+ 1)
= (2
*
0 ) by
Def14;
hence contradiction;
end;
hence thesis;
end;
theorem ::
GLIB_001:68
Th66: for n be
odd
Element of
NAT st n
<= (
len W) holds ((2
* ((n
+ 1)
div 2))
- 1)
= n & 1
<= ((n
+ 1)
div 2) & ((n
+ 1)
div 2)
<= (
len (W
.vertexSeq() ))
proof
let n be
odd
Element of
NAT ;
assume
A1: n
<= (
len W);
set m = ((n
+ 1)
div 2);
2
divides (n
+ 1) by
PEPIN: 22;
then
A2: (2
* m)
= (n
+ 1) by
NAT_D: 3;
hence ((2
* m)
- 1)
= n;
A3:
now
assume m
< 1;
then m
< (
0
+ 1);
then m
=
0 by
NAT_1: 13;
hence contradiction by
A2;
end;
then
reconsider maa1 = (m
- 1) as
Element of
NAT by
INT_1: 5;
thus 1
<= m by
A3;
now
assume (
len (W
.vertexSeq() ))
< m;
then (
len (W
.vertexSeq() ))
< (maa1
+ 1);
then (
len (W
.vertexSeq() ))
<= maa1 by
NAT_1: 13;
then (2
* (
len (W
.vertexSeq() )))
<= (2
* maa1) by
NAT_1: 4;
then ((
len W)
+ 1)
<= ((2
* m)
- (2
* 1)) by
Def14;
then (((
len W)
+ 1)
+ 2)
<= (((n
+ 1)
- 2)
+ 2) by
A2,
XREAL_1: 7;
then (((
len W)
+ 1)
+ 2)
< ((n
+ 1)
+ 1) by
NAT_1: 13;
then (((
len W)
+ 3)
- 3)
< ((n
+ 2)
- 2) by
XREAL_1: 14;
hence contradiction by
A1;
end;
hence thesis;
end;
theorem ::
GLIB_001:69
((G
.walkOf v)
.vertexSeq() )
=
<*v*>
proof
set VS = ((G
.walkOf v)
.vertexSeq() );
((
len (G
.walkOf v))
+ 1)
= (2
* (
len VS)) by
Def14;
then
A1: (1
+ 1)
= (2
* (
len VS)) by
Th12;
then (VS
. 1)
= ((G
.walkOf v)
. ((2
* 1)
- 1)) by
Def14
.= v by
Th12;
hence thesis by
A1,
FINSEQ_1: 40;
end;
theorem ::
GLIB_001:70
Th68: for e,x,y be
object holds e
Joins (x,y,G) implies ((G
.walkOf (x,e,y))
.vertexSeq() )
=
<*x, y*>
proof
let e,x,y be
object;
set W = (G
.walkOf (x,e,y));
assume e
Joins (x,y,G);
then
A1: W
=
<*x, e, y*> by
Def5;
((
len W)
+ 1)
= (2
* (
len (W
.vertexSeq() ))) by
Def14;
then
A2: (3
+ 1)
= (2
* (
len (W
.vertexSeq() ))) by
A1,
FINSEQ_1: 45;
then ((W
.vertexSeq() )
. 2)
= (W
. ((2
* 2)
- 1)) by
Def14;
then
A3: ((W
.vertexSeq() )
. 2)
= y by
A1,
FINSEQ_1: 45;
((W
.vertexSeq() )
. 1)
= (W
. ((2
* 1)
- 1)) by
A2,
Def14;
then ((W
.vertexSeq() )
. 1)
= x by
A1,
FINSEQ_1: 45;
hence thesis by
A2,
A3,
FINSEQ_1: 44;
end;
theorem ::
GLIB_001:71
(W
.first() )
= ((W
.vertexSeq() )
. 1) & (W
.last() )
= ((W
.vertexSeq() )
. (
len (W
.vertexSeq() )))
proof
A1: ((
len W)
+ 1)
= (2
* (
len (W
.vertexSeq() ))) by
Def14;
A2: 1
<= (
len (W
.vertexSeq() )) by
Th65;
then ((W
.vertexSeq() )
. 1)
= (W
. ((2
* 1)
- 1)) by
Def14;
hence ((W
.vertexSeq() )
. 1)
= (W
.first() );
((W
.vertexSeq() )
. (
len (W
.vertexSeq() )))
= (W
. ((2
* (
len (W
.vertexSeq() )))
- 1)) by
A2,
Def14;
hence thesis by
A1;
end;
theorem ::
GLIB_001:72
for n be
odd
Element of
NAT st n
<= (
len W) holds (W
.vertexAt n)
= ((W
.vertexSeq() )
. ((n
+ 1)
div 2))
proof
let n be
odd
Element of
NAT ;
set m = ((n
+ 1)
div 2);
assume
A1: n
<= (
len W);
then
A2: ((2
* m)
- 1)
= n by
Th66;
A3: m
<= (
len (W
.vertexSeq() )) by
A1,
Th66;
A4: 1
<= m by
A1,
Th66;
(W
.vertexAt n)
= (W
. n) by
A1,
Def8;
hence thesis by
A2,
A4,
A3,
Def14;
end;
theorem ::
GLIB_001:73
Th71: n
in (
dom (W
.vertexSeq() )) iff ((2
* n)
- 1)
in (
dom W)
proof
hereby
assume
A1: n
in (
dom (W
.vertexSeq() ));
then
A2: 1
<= n by
FINSEQ_3: 25;
then 1
<= (n
+ n) by
NAT_1: 12;
then
A3: ((2
* n)
- 1) is
Element of
NAT by
INT_1: 5;
n
<= (
len (W
.vertexSeq() )) by
A1,
FINSEQ_3: 25;
then (2
* n)
<= (2
* (
len (W
.vertexSeq() ))) by
XREAL_1: 64;
then (2
* n)
<= ((
len W)
+ 1) by
Def14;
then
A4: ((2
* n)
- 1)
<= (((
len W)
+ 1)
- 1) by
XREAL_1: 13;
(2
* 1)
<= (2
* n) by
A2,
XREAL_1: 64;
then (2
- 1)
<= ((2
* n)
- 1) by
XREAL_1: 13;
hence ((2
* n)
- 1)
in (
dom W) by
A4,
A3,
FINSEQ_3: 25;
end;
assume
A5: ((2
* n)
- 1)
in (
dom W);
then
reconsider 2naa1 = ((2
* n)
- 1) as
Element of
NAT ;
1
<= 2naa1 by
A5,
FINSEQ_3: 25;
then (1
+ 1)
<= (((2
* n)
- 1)
+ 1) by
XREAL_1: 7;
then (2
* 1)
<= (2
* n);
then
A6: 1
<= n by
XREAL_1: 68;
2naa1
<= (
len W) by
A5,
FINSEQ_3: 25;
then (((2
* n)
- 1)
+ 1)
<= ((
len W)
+ 1) by
XREAL_1: 7;
then (2
* n)
<= (2
* (
len (W
.vertexSeq() ))) by
Def14;
then n
<= (
len (W
.vertexSeq() )) by
XREAL_1: 68;
hence thesis by
A6,
FINSEQ_3: 25;
end;
theorem ::
GLIB_001:74
((W
.cut (1,n))
.vertexSeq() )
c= (W
.vertexSeq() )
proof
now
per cases ;
suppose
A1: n is
odd & 1
<= n & n
<= (
len W);
set f = ((W
.cut (1,n))
.vertexSeq() );
now
let v be
object;
assume
A2: v
in f;
then
consider x,y be
object such that
A3: v
=
[x, y] by
RELAT_1:def 1;
A4: y
= (f
. x) by
A2,
A3,
FUNCT_1: 1;
A5: x
in (
dom f) by
A2,
A3,
FUNCT_1: 1;
then
reconsider x as
Element of
NAT ;
A6: x
<= (
len f) by
A5,
FINSEQ_3: 25;
A7: ((2
* x)
- 1)
in (
dom (W
.cut (1,n))) by
A5,
Th71;
then ((2
* x)
- 1)
<= (
len (W
.cut (1,n))) by
FINSEQ_3: 25;
then ((2
* x)
- 1)
<= n by
A1,
Lm22;
then
A8: ((2
* x)
- 1)
<= (
len W) by
A1,
XXREAL_0: 2;
1
<= ((2
* x)
- 1) by
A7,
FINSEQ_3: 25;
then ((2
* x)
- 1)
in (
dom W) by
A7,
A8,
FINSEQ_3: 25;
then
A9: x
in (
dom (W
.vertexSeq() )) by
Th71;
then
A10: x
<= (
len (W
.vertexSeq() )) by
FINSEQ_3: 25;
1
<= x by
A5,
FINSEQ_3: 25;
then y
= ((W
.cut (1,n))
. ((2
* x)
- 1)) by
A4,
A6,
Def14;
then
A11: y
= (W
. ((2
* x)
- 1)) by
A1,
A7,
Lm23;
1
<= x by
A9,
FINSEQ_3: 25;
then ((W
.vertexSeq() )
. x)
= y by
A11,
A10,
Def14;
hence v
in (W
.vertexSeq() ) by
A3,
A9,
FUNCT_1: 1;
end;
hence thesis by
TARSKI:def 3;
end;
suppose not (n is
odd & 1
<= n & n
<= (
len W));
hence thesis by
Def11;
end;
end;
hence thesis;
end;
theorem ::
GLIB_001:75
Th73: e
Joins ((W
.last() ),x,G) implies ((W
.addEdge e)
.vertexSeq() )
= ((W
.vertexSeq() )
^
<*x*>)
proof
set W2 = (W
.addEdge e), W3 = ((W
.vertexSeq() )
^
<*x*>);
assume
A1: e
Joins ((W
.last() ),x,G);
then (
len W2)
= ((
len W)
+ 2) by
Lm37;
then
A2: (((
len W)
+ 2)
+ 1)
= (2
* (
len (W2
.vertexSeq() ))) by
Def14;
(
len W3)
= ((
len (W
.vertexSeq() ))
+ (
len
<*x*>)) by
FINSEQ_1: 22;
then (
len W3)
= ((
len (W
.vertexSeq() ))
+ 1) by
FINSEQ_1: 39;
then (2
* (
len W3))
= ((2
* (
len (W
.vertexSeq() )))
+ (2
* 1));
then
A3: (2
* (
len W3))
= (((
len W)
+ 1)
+ 2) by
Def14
.= (2
* (
len (W2
.vertexSeq() ))) by
A2;
now
let k be
Nat;
assume that
A4: 1
<= k and
A5: k
<= (
len (W2
.vertexSeq() ));
A6: ((W2
.vertexSeq() )
. k)
= (W2
. ((2
* k)
- 1)) by
A4,
A5,
Def14;
A7: k
in (
dom W3) by
A3,
A4,
A5,
FINSEQ_3: 25;
now
per cases by
A7,
FINSEQ_1: 25;
suppose
A8: k
in (
dom (W
.vertexSeq() ));
then
A9: ((2
* k)
- 1)
in (
dom W) by
Th71;
A10: 1
<= k by
A8,
FINSEQ_3: 25;
A11: k
<= (
len (W
.vertexSeq() )) by
A8,
FINSEQ_3: 25;
(W3
. k)
= ((W
.vertexSeq() )
. k) by
A8,
FINSEQ_1:def 7;
then (W3
. k)
= (W
. ((2
* k)
- 1)) by
A10,
A11,
Def14;
hence ((W2
.vertexSeq() )
. k)
= (W3
. k) by
A1,
A6,
A9,
Lm38;
end;
suppose ex n be
Nat st n
in (
dom
<*x*>) & k
= ((
len (W
.vertexSeq() ))
+ n);
then
consider n be
Nat such that
A12: n
in (
dom
<*x*>) and
A13: k
= ((
len (W
.vertexSeq() ))
+ n);
n
in (
Seg 1) by
A12,
FINSEQ_1: 38;
then
A14: n
= 1 by
FINSEQ_1: 2,
TARSKI:def 1;
then
A15: (2
* k)
= ((2
* (
len (W
.vertexSeq() )))
+ (2
* 1)) by
A13
.= (((
len W)
+ 1)
+ 2) by
Def14
.= (((
len W)
+ 2)
+ 1);
(W3
. k)
= (
<*x*>
. 1) by
A12,
A13,
A14,
FINSEQ_1:def 7
.= x by
FINSEQ_1:def 8;
hence ((W2
.vertexSeq() )
. k)
= (W3
. k) by
A1,
A6,
A15,
Lm38;
end;
end;
hence ((W2
.vertexSeq() )
. k)
= (W3
. k);
end;
hence thesis by
A3,
FINSEQ_1: 14;
end;
theorem ::
GLIB_001:76
Th74: for W1 be
Walk of G1, W2 be
Walk of G2 st W1
= W2 holds (W1
.vertexSeq() )
= (W2
.vertexSeq() )
proof
let W1 be
Walk of G1, W2 be
Walk of G2;
set VS1 = (W1
.vertexSeq() ), VS2 = (W2
.vertexSeq() );
assume
A1: W1
= W2;
now
thus (
len VS1)
= (
len VS1);
A2: (2
* (
len VS1))
= ((
len W2)
+ 1) by
A1,
Def14
.= (2
* (
len VS2)) by
Def14;
hence (
len VS2)
= (
len VS1);
let x be
Nat;
assume
A3: x
in (
dom VS1);
then
A4: x
<= (
len VS2) by
A2,
FINSEQ_3: 25;
A5: 1
<= x by
A3,
FINSEQ_3: 25;
x
<= (
len VS1) by
A3,
FINSEQ_3: 25;
hence (VS1
. x)
= (W2
. ((2
* x)
- 1)) by
A1,
A5,
Def14
.= (VS2
. x) by
A5,
A4,
Def14;
end;
hence thesis by
FINSEQ_2: 9;
end;
theorem ::
GLIB_001:77
for n be
even
Element of
NAT st 1
<= n & n
<= (
len W) holds (n
div 2)
in (
dom (W
.edgeSeq() )) & (W
. n)
= ((W
.edgeSeq() )
. (n
div 2)) by
Lm40;
theorem ::
GLIB_001:78
n
in (
dom (W
.edgeSeq() )) iff (2
* n)
in (
dom W) by
Lm41;
theorem ::
GLIB_001:79
for n be
Element of
NAT st n
in (
dom (W
.edgeSeq() )) holds ((W
.edgeSeq() )
. n)
in (
the_Edges_of G)
proof
let n be
Element of
NAT ;
assume n
in (
dom (W
.edgeSeq() ));
then ((W
.edgeSeq() )
. n)
in (
rng (W
.edgeSeq() )) by
FUNCT_1:def 3;
hence thesis;
end;
theorem ::
GLIB_001:80
ex lenWaa1 be
even
Element of
NAT st lenWaa1
= ((
len W)
- 1) & (
len (W
.edgeSeq() ))
= (lenWaa1
div 2) by
Lm42;
theorem ::
GLIB_001:81
((W
.cut (1,n))
.edgeSeq() )
c= (W
.edgeSeq() ) by
Lm43;
theorem ::
GLIB_001:82
for e,x be
object holds e
Joins ((W
.last() ),x,G) implies ((W
.addEdge e)
.edgeSeq() )
= ((W
.edgeSeq() )
^
<*e*>) by
Lm44;
theorem ::
GLIB_001:83
Th81: for e,x,y be
object holds e
Joins (x,y,G) iff ((G
.walkOf (x,e,y))
.edgeSeq() )
=
<*e*>
proof
let e,x,y be
object;
set W = (G
.walkOf (x,e,y));
hereby
assume
A1: e
Joins (x,y,G);
then (
len W)
= 3 by
Th13;
then
A2: (2
+ 1)
= ((2
* (
len (W
.edgeSeq() )))
+ 1) by
Def15;
A3: W
=
<*x, e, y*> by
A1,
Def5;
A4:
now
let k be
Nat;
assume that
A5: 1
<= k and
A6: k
<= (
len (W
.edgeSeq() ));
A7: k
= 1 by
A2,
A5,
A6,
XXREAL_0: 1;
then ((W
.edgeSeq() )
. k)
= (W
. (2
* 1)) by
A6,
Def15
.= e by
A3,
FINSEQ_1: 45;
hence ((W
.edgeSeq() )
. k)
= (
<*e*>
. k) by
A7,
FINSEQ_1:def 8;
end;
(
len (W
.edgeSeq() ))
= (
len
<*e*>) by
A2,
FINSEQ_1: 39;
hence (W
.edgeSeq() )
=
<*e*> by
A4,
FINSEQ_1: 14;
end;
assume (W
.edgeSeq() )
=
<*e*>;
then (
len (W
.edgeSeq() ))
= 1 by
FINSEQ_1: 39;
then
A8: (
len W)
= ((2
* 1)
+ 1) by
Def15;
now
assume not e
Joins (x,y,G);
then W
= (G
.walkOf the
Element of (
the_Vertices_of G)) by
Def5;
hence contradiction by
A8,
Th12;
end;
hence thesis;
end;
theorem ::
GLIB_001:84
((W
.reverse() )
.edgeSeq() )
= (
Rev (W
.edgeSeq() ))
proof
set W1 = ((W
.reverse() )
.edgeSeq() ), W2 = (
Rev (W
.edgeSeq() ));
A1: (
len W)
= (
len (W
.reverse() )) by
FINSEQ_5:def 3;
(
len W)
= ((2
* (
len (W
.edgeSeq() )))
+ 1) by
Def15;
then
A2: ((2
* (
len (W
.edgeSeq() )))
+ 1)
= ((2
* (
len W1))
+ 1) by
A1,
Def15;
A3:
now
let n be
Nat;
assume that
A4: 1
<= n and
A5: n
<= (
len W1);
A6: (W1
. n)
= ((W
.reverse() )
. (2
* n)) by
A4,
A5,
Def15;
set rn = (((
len (W
.edgeSeq() ))
- n)
+ 1);
reconsider rn as
Element of
NAT by
A2,
A5,
FINSEQ_5: 1;
A7: n
in (
Seg (
len (W
.edgeSeq() ))) by
A2,
A4,
A5,
FINSEQ_1: 1;
then
A8: rn
in (
Seg (
len (W
.edgeSeq() ))) by
FINSEQ_5: 2;
then
A9: 1
<= rn by
FINSEQ_1: 1;
A10: n
in (
dom (W
.edgeSeq() )) by
A7,
FINSEQ_1:def 3;
then
A11: (2
* n)
in (
dom W) by
Lm41;
then
A12: 1
<= (2
* n) by
FINSEQ_3: 25;
A13: rn
<= (
len (W
.edgeSeq() )) by
A8,
FINSEQ_1: 1;
A14: (((
len W)
- (2
* n))
+ 1)
= ((((2
* (
len (W
.edgeSeq() )))
+ 1)
- (2
* n))
+ 1) by
Def15
.= (2
* rn);
(2
* n)
<= (
len (W
.reverse() )) by
A1,
A11,
FINSEQ_3: 25;
then
A15: (2
* n)
in (
dom (W
.reverse() )) by
A12,
FINSEQ_3: 25;
(W2
. n)
= ((W
.edgeSeq() )
. rn) by
A10,
FINSEQ_5: 58
.= (W
. (2
* rn)) by
A9,
A13,
Def15;
hence (W1
. n)
= (W2
. n) by
A15,
A6,
A14,
Lm8;
end;
(
len W1)
= (
len W2) by
A2,
FINSEQ_5:def 3;
hence thesis by
A3,
FINSEQ_1: 14;
end;
theorem ::
GLIB_001:85
(W1
.last() )
= (W2
.first() ) implies ((W1
.append W2)
.edgeSeq() )
= ((W1
.edgeSeq() )
^ (W2
.edgeSeq() ))
proof
set W3 = (W1
.append W2), W4 = ((W1
.edgeSeq() )
^ (W2
.edgeSeq() ));
A1: (
len W4)
= ((
len (W1
.edgeSeq() ))
+ (
len (W2
.edgeSeq() ))) by
FINSEQ_1: 22;
assume
A2: (W1
.last() )
= (W2
.first() );
then ((
len W3)
+ 1)
= ((
len W1)
+ (
len W2)) by
Lm9;
then ((
len W3)
+ 1)
= ((
len W1)
+ ((2
* (
len (W2
.edgeSeq() )))
+ 1)) by
Def15
.= (((
len W1)
+ (2
* (
len (W2
.edgeSeq() ))))
+ 1);
then
A3: ((2
* (
len (W3
.edgeSeq() )))
+ 1)
= ((2
* (
len (W2
.edgeSeq() )))
+ (
len W1)) by
Def15
.= ((2
* (
len (W2
.edgeSeq() )))
+ ((2
* (
len (W1
.edgeSeq() )))
+ 1)) by
Def15
.= (((2
* (
len (W2
.edgeSeq() )))
+ (2
* (
len (W1
.edgeSeq() ))))
+ 1);
A4: W3
= (W1
^' W2) by
A2,
Def10;
now
let n be
Nat;
assume that
A5: 1
<= n and
A6: n
<= (
len (W3
.edgeSeq() ));
reconsider n1 = n as
Element of
NAT by
ORDINAL1:def 12;
A7: ((W3
.edgeSeq() )
. n1)
= (W3
. (2
* n1)) by
A5,
A6,
Def15;
A8: n1
in (
dom W4) by
A1,
A3,
A5,
A6,
FINSEQ_3: 25;
now
per cases by
A8,
FINSEQ_1: 25;
suppose
A9: n
in (
dom (W1
.edgeSeq() ));
then
A10: n
<= (
len (W1
.edgeSeq() )) by
FINSEQ_3: 25;
A11: 1
<= n by
A9,
FINSEQ_3: 25;
A12: (2
* n)
in (
dom W1) by
A9,
Lm41;
then
A13: 1
<= (2
* n) by
FINSEQ_3: 25;
A14: (2
* n)
<= (
len W1) by
A12,
FINSEQ_3: 25;
(W4
. n)
= ((W1
.edgeSeq() )
. n) by
A9,
FINSEQ_1:def 7
.= (W1
. (2
* n)) by
A11,
A10,
Def15;
hence ((W3
.edgeSeq() )
. n)
= (W4
. n) by
A4,
A7,
A13,
A14,
FINSEQ_6: 140;
end;
suppose ex k be
Nat st k
in (
dom (W2
.edgeSeq() )) & n
= ((
len (W1
.edgeSeq() ))
+ k);
then
consider k be
Nat such that
A15: k
in (
dom (W2
.edgeSeq() )) and
A16: n
= ((
len (W1
.edgeSeq() ))
+ k);
((2
* n)
+ 1)
= ((2
* k)
+ ((2
* (
len (W1
.edgeSeq() )))
+ 1)) by
A16
.= ((2
* k)
+ (
len W1)) by
Def15;
then
A17: (2
* n)
= ((
len W1)
+ ((2
* k)
- 1));
A18: 1
<= k by
A15,
FINSEQ_3: 25;
then 1
<= (k
+ k) by
NAT_1: 12;
then
reconsider 2kaa1 = ((2
* k)
- 1) as
Element of
NAT by
INT_1: 5;
A19: k
<= (
len (W2
.edgeSeq() )) by
A15,
FINSEQ_3: 25;
then (2
* k)
<= (2
* (
len (W2
.edgeSeq() ))) by
XREAL_1: 64;
then (2
* k)
< ((2
* (
len (W2
.edgeSeq() )))
+ 1) by
NAT_1: 13;
then (2
* k)
< (
len W2) by
Def15;
then
A20: 2kaa1
< ((
len W2)
-
0 ) by
XREAL_1: 14;
(1
+ 1)
<= (k
+ k) by
A18,
XREAL_1: 7;
then ((1
+ 1)
- 1)
<= 2kaa1 by
XREAL_1: 13;
then
A21: (W3
. (2
* n))
= (W2
. (2kaa1
+ 1)) by
A4,
A17,
A20,
FINSEQ_6: 141
.= (W2
. (2
* k));
(W4
. n)
= ((W2
.edgeSeq() )
. k) by
A15,
A16,
FINSEQ_1:def 7
.= (W2
. (2
* k)) by
A18,
A19,
Def15;
hence ((W3
.edgeSeq() )
. n)
= (W4
. n) by
A5,
A6,
A21,
Def15;
end;
end;
hence ((W3
.edgeSeq() )
. n)
= (W4
. n);
end;
hence thesis by
A1,
A3,
FINSEQ_1: 14;
end;
theorem ::
GLIB_001:86
Th84: for W1 be
Walk of G1, W2 be
Walk of G2 st W1
= W2 holds (W1
.edgeSeq() )
= (W2
.edgeSeq() )
proof
let W1 be
Walk of G1, W2 be
Walk of G2;
set ES1 = (W1
.edgeSeq() ), ES2 = (W2
.edgeSeq() );
assume
A1: W1
= W2;
now
thus (
len ES1)
= (
len ES1);
A2: ((2
* (
len ES1))
+ 1)
= (
len W2) by
A1,
Def15
.= ((2
* (
len ES2))
+ 1) by
Def15;
hence (
len ES2)
= (
len ES1);
let x be
Nat;
assume
A3: x
in (
dom ES1);
then
A4: x
<= (
len ES2) by
A2,
FINSEQ_3: 25;
A5: 1
<= x by
A3,
FINSEQ_3: 25;
x
<= (
len ES1) by
A3,
FINSEQ_3: 25;
hence (ES1
. x)
= (W2
. (2
* x)) by
A1,
A5,
Def15
.= (ES2
. x) by
A5,
A4,
Def15;
end;
hence thesis by
FINSEQ_2: 9;
end;
theorem ::
GLIB_001:87
x
in (W
.vertices() ) iff ex n be
odd
Element of
NAT st n
<= (
len W) & (W
. n)
= x by
Lm45;
theorem ::
GLIB_001:88
Th86: (W
.first() )
in (W
.vertices() ) & (W
.last() )
in (W
.vertices() )
proof
1
<= (
len W) by
ABIAN: 12;
hence (W
.first() )
in (W
.vertices() ) by
Lm45,
JORDAN12: 2;
thus thesis by
Lm45;
end;
theorem ::
GLIB_001:89
Th87: for n be
odd
Element of
NAT st n
<= (
len W) holds (W
.vertexAt n)
in (W
.vertices() )
proof
let n be
odd
Element of
NAT ;
assume
A1: n
<= (
len W);
then (W
.vertexAt n)
= (W
. n) by
Def8;
hence thesis by
A1,
Lm45;
end;
theorem ::
GLIB_001:90
((G
.walkOf v)
.vertices() )
=
{v}
proof
now
let x be
object;
A1: 1
<= (
len (G
.walkOf v)) by
ABIAN: 12;
hereby
assume x
in ((G
.walkOf v)
.vertices() );
then
consider n be
odd
Element of
NAT such that
A2: n
<= (
len (G
.walkOf v)) and
A3: ((G
.walkOf v)
. n)
= x by
Lm45;
A4: 1
<= n by
ABIAN: 12;
n
<= 1 by
A2,
Th12;
then x
= ((G
.walkOf v)
. 1) by
A3,
A4,
XXREAL_0: 1;
then x
= v by
Th12;
hence x
in
{v} by
TARSKI:def 1;
end;
assume x
in
{v};
then
A5: x
= v by
TARSKI:def 1;
((G
.walkOf v)
. 1)
= v by
Th12;
hence x
in ((G
.walkOf v)
.vertices() ) by
A5,
A1,
Lm45,
JORDAN12: 2;
end;
hence thesis by
TARSKI: 2;
end;
theorem ::
GLIB_001:91
Th89: for e,x,y be
object holds e
Joins (x,y,G) implies ((G
.walkOf (x,e,y))
.vertices() )
=
{x, y}
proof
let e,x,y be
object;
set W = (G
.walkOf (x,e,y));
assume e
Joins (x,y,G);
then (W
.vertexSeq() )
=
<*x, y*> by
Th68;
hence thesis by
FINSEQ_2: 127;
end;
theorem ::
GLIB_001:92
(W
.vertices() )
= ((W
.reverse() )
.vertices() )
proof
now
reconsider lenW = (
len W) as
odd
Element of
NAT ;
let x be
object;
hereby
reconsider lenW = (
len W) as
odd
Element of
NAT ;
assume x
in (W
.vertices() );
then
consider n be
odd
Element of
NAT such that
A1: n
<= (
len W) and
A2: (W
. n)
= x by
Lm45;
A3: ((lenW
- n)
+ 1) is
odd
Element of
NAT by
A1,
FINSEQ_5: 1;
1
<= n by
ABIAN: 12;
then
A4: n
in (
dom W) by
A1,
FINSEQ_3: 25;
then n
in (
Seg (
len W)) by
FINSEQ_1:def 3;
then ((lenW
- n)
+ 1)
in (
Seg (
len W)) by
FINSEQ_5: 2;
then ((lenW
- n)
+ 1)
in (
dom W) by
FINSEQ_1:def 3;
then ((lenW
- n)
+ 1)
<= (
len W) by
FINSEQ_3: 25;
then
A5: ((lenW
- n)
+ 1)
<= (
len (W
.reverse() )) by
FINSEQ_5:def 3;
((W
.reverse() )
. (((
len W)
- n)
+ 1))
= x by
A2,
A4,
Th23;
hence x
in ((W
.reverse() )
.vertices() ) by
A3,
A5,
Lm45;
end;
assume x
in ((W
.reverse() )
.vertices() );
then
consider n be
odd
Element of
NAT such that
A6: n
<= (
len (W
.reverse() )) and
A7: ((W
.reverse() )
. n)
= x by
Lm45;
A8: 1
<= n by
ABIAN: 12;
then n
in (
dom (W
.reverse() )) by
A6,
FINSEQ_3: 25;
then
A9: (W
. (((
len W)
- n)
+ 1))
= x by
A7,
FINSEQ_5:def 3;
A10: n
<= (
len W) by
A6,
FINSEQ_5:def 3;
then n
in (
Seg (
len W)) by
A8,
FINSEQ_1: 1;
then ((lenW
- n)
+ 1)
in (
Seg (
len W)) by
FINSEQ_5: 2;
then
A11: ((lenW
- n)
+ 1)
<= (
len W) by
FINSEQ_1: 1;
((lenW
- n)
+ 1) is
odd
Element of
NAT by
A10,
FINSEQ_5: 1;
hence x
in (W
.vertices() ) by
A9,
A11,
Lm45;
end;
hence thesis by
TARSKI: 2;
end;
theorem ::
GLIB_001:93
Th91: (W1
.last() )
= (W2
.first() ) implies ((W1
.append W2)
.vertices() )
= ((W1
.vertices() )
\/ (W2
.vertices() ))
proof
set W = (W1
.append W2);
assume
A1: (W1
.last() )
= (W2
.first() );
then
A2: W
= (W1
^' W2) by
Def10;
now
let x be
object;
A3:
now
assume x
in (W1
.vertices() );
then
consider n be
odd
Element of
NAT such that
A4: n
<= (
len W1) and
A5: (W1
. n)
= x by
Lm45;
1
<= n by
ABIAN: 12;
then
A6: n
in (
dom W1) by
A4,
FINSEQ_3: 25;
then n
in (
dom W) by
Lm12;
then
A7: n
<= (
len W) by
FINSEQ_3: 25;
(W
. n)
= x by
A5,
A6,
Lm12;
hence x
in (W
.vertices() ) by
A7,
Lm45;
end;
hereby
assume
A8: x
in (W
.vertices() );
then
reconsider v = x as
Vertex of G;
consider n be
odd
Element of
NAT such that
A9: n
<= (
len W) and
A10: (W
. n)
= v by
A8,
Lm45;
A11: 1
<= n by
ABIAN: 12;
now
per cases ;
suppose
A12: n
<= (
len W1);
then n
in (
dom W1) by
A11,
FINSEQ_3: 25;
then (W1
. n)
= v by
A10,
Lm12;
then v
in (W1
.vertices() ) by
A12,
Lm45;
hence x
in ((W1
.vertices() )
\/ (W2
.vertices() )) by
XBOOLE_0:def 3;
end;
suppose
A13: n
> (
len W1);
then
consider k be
Nat such that
A14: ((
len W1)
+ k)
= n by
NAT_1: 10;
reconsider k as
even
Element of
NAT by
A14,
ORDINAL1:def 12;
k
<>
0 by
A13,
A14;
then
A15: (
0
+ 1)
<= k by
NAT_1: 13;
(((
len W1)
+ k)
+ 1)
<= ((
len W)
+ 1) by
A9,
A14,
XREAL_1: 7;
then ((k
+ 1)
+ (
len W1))
<= ((
len W2)
+ (
len W1)) by
A1,
Lm9;
then
A16: (((k
+ 1)
+ (
len W1))
- (
len W1))
<= (((
len W2)
+ (
len W1))
- (
len W1)) by
XREAL_1: 13;
then
A17: (W2
.vertexAt (k
+ 1))
in (W2
.vertices() ) by
Th87;
k
< (((
len W2)
- 1)
+ 1) by
A16,
NAT_1: 13;
then (W2
. (k
+ 1))
= v by
A2,
A10,
A14,
A15,
FINSEQ_6: 141;
then v
in (W2
.vertices() ) by
A16,
A17,
Def8;
hence x
in ((W1
.vertices() )
\/ (W2
.vertices() )) by
XBOOLE_0:def 3;
end;
end;
hence x
in ((W1
.vertices() )
\/ (W2
.vertices() ));
end;
assume
A18: x
in ((W1
.vertices() )
\/ (W2
.vertices() ));
now
per cases by
A18,
XBOOLE_0:def 3;
suppose x
in (W1
.vertices() );
hence x
in (W
.vertices() ) by
A3;
end;
suppose
A19: x
in (W2
.vertices() );
reconsider lenW1 = (
len W1) as
odd
Element of
NAT ;
consider n be
odd
Element of
NAT such that
A20: n
<= (
len W2) and
A21: (W2
. n)
= x by
A19,
Lm45;
reconsider naa1 = (n
- 1) as
even
Element of
NAT by
ABIAN: 12,
INT_1: 5;
A22: naa1
< ((
len W2)
-
0 ) by
A20,
XREAL_1: 15;
then ((
len W1)
+ naa1)
in (
dom W) by
A1,
Lm13;
then
A23: (lenW1
+ naa1)
<= (
len W) by
FINSEQ_3: 25;
(W
. ((
len W1)
+ naa1))
= (W2
. (naa1
+ 1)) by
A1,
A22,
Lm13;
hence x
in (W
.vertices() ) by
A21,
A23,
Lm45;
end;
end;
hence x
in (W
.vertices() );
end;
hence thesis by
TARSKI: 2;
end;
theorem ::
GLIB_001:94
for m,n be
odd
Element of
NAT st m
<= n & n
<= (
len W) holds ((W
.cut (m,n))
.vertices() )
c= (W
.vertices() )
proof
let m,n be
odd
Element of
NAT ;
set W2 = (W
.cut (m,n));
assume that
A1: m
<= n and
A2: n
<= (
len W);
now
let x be
object;
assume x
in (W2
.vertices() );
then
consider n be
odd
Element of
NAT such that
A3: n
<= (
len W2) and
A4: (W2
. n)
= x by
Lm45;
reconsider naa1 = (n
- 1) as
even
Element of
NAT by
ABIAN: 12,
INT_1: 5;
A5: naa1
< ((
len W2)
-
0 ) by
A3,
XREAL_1: 15;
then (m
+ naa1)
in (
dom W) by
A1,
A2,
Lm15;
then
A6: (m
+ naa1)
<= (
len W) by
FINSEQ_3: 25;
(W2
. (naa1
+ 1))
= (W
. (m
+ naa1)) by
A1,
A2,
A5,
Lm15;
hence x
in (W
.vertices() ) by
A4,
A6,
Lm45;
end;
hence thesis by
TARSKI:def 3;
end;
theorem ::
GLIB_001:95
Th93: for e,x be
object holds e
Joins ((W
.last() ),x,G) implies ((W
.addEdge e)
.vertices() )
= ((W
.vertices() )
\/
{x})
proof
let e,x be
object;
set W2 = (G
.walkOf ((W
.last() ),e,((W
.last() )
.adj e)));
set W3 = (W
.addEdge e), WV = (W
.vertices() );
assume
A1: e
Joins ((W
.last() ),x,G);
then
reconsider x9 = x as
Vertex of G by
GLIB_000: 13;
A2: ((W
.last() )
.adj e)
= x9 by
A1,
GLIB_000: 66;
then (W2
.first() )
= (W
.last() ) by
A1,
Th14;
then
A3: (W3
.vertices() )
= (WV
\/ (W2
.vertices() )) by
Th91;
A4:
now
let y be
object;
hereby
assume
A5: y
in (WV
\/
{(W
.last() ), x});
now
per cases by
A5,
XBOOLE_0:def 3;
suppose y
in WV;
hence y
in (WV
\/
{x}) by
XBOOLE_0:def 3;
end;
suppose
A6: y
in
{(W
.last() ), x};
now
per cases by
A6,
TARSKI:def 2;
suppose y
= (W
.last() );
then y
in WV by
Th86;
hence y
in (WV
\/
{x}) by
XBOOLE_0:def 3;
end;
suppose y
= x;
then y
in
{x} by
TARSKI:def 1;
hence y
in (WV
\/
{x}) by
XBOOLE_0:def 3;
end;
end;
hence y
in (WV
\/
{x});
end;
end;
hence y
in (WV
\/
{x});
end;
assume
A7: y
in (WV
\/
{x});
now
per cases by
A7,
XBOOLE_0:def 3;
suppose y
in WV;
hence y
in (WV
\/
{(W
.last() ), x}) by
XBOOLE_0:def 3;
end;
suppose y
in
{x};
then y
= x by
TARSKI:def 1;
then y
in
{(W
.last() ), x} by
TARSKI:def 2;
hence y
in (WV
\/
{(W
.last() ), x}) by
XBOOLE_0:def 3;
end;
end;
hence y
in (WV
\/
{(W
.last() ), x});
end;
(W2
.vertices() )
=
{(W
.last() ), x} by
A1,
A2,
Th89;
hence thesis by
A3,
A4,
TARSKI: 2;
end;
theorem ::
GLIB_001:96
for G be
_Graph, W be
Walk of G, e,x be
set holds e
Joins ((W
.last() ),x,G) & not x
in (W
.vertices() ) implies (
card ((W
.addEdge e)
.vertices() ))
= ((
card (W
.vertices() ))
+ 1)
proof
let G be
_Graph, W be
Walk of G, e,x be
set;
assume that
A1: e
Joins ((W
.last() ),x,G) and
A2: not x
in (W
.vertices() );
(
card ((W
.addEdge e)
.vertices() ))
= (
card ((W
.vertices() )
\/
{x})) by
A1,
Th93;
hence thesis by
A2,
CARD_2: 41;
end;
theorem ::
GLIB_001:97
x
in (W
.vertices() ) & y
in (W
.vertices() ) implies ex W9 be
Walk of G st W9
is_Walk_from (x,y)
proof
assume that
A1: x
in (W
.vertices() ) and
A2: y
in (W
.vertices() );
consider m be
odd
Element of
NAT such that
A3: m
<= (
len W) and
A4: (W
. m)
= x by
A1,
Lm45;
consider n be
odd
Element of
NAT such that
A5: n
<= (
len W) and
A6: (W
. n)
= y by
A2,
Lm45;
now
per cases ;
suppose m
<= n;
then (W
.cut (m,n))
is_Walk_from (x,y) by
A4,
A5,
A6,
Lm16;
hence thesis;
end;
suppose n
<= m;
then (W
.cut (n,m))
is_Walk_from (y,x) by
A3,
A4,
A6,
Lm16;
then ((W
.cut (n,m))
.reverse() )
is_Walk_from (x,y) by
Th22;
hence thesis;
end;
end;
hence thesis;
end;
theorem ::
GLIB_001:98
for W1 be
Walk of G1, W2 be
Walk of G2 st W1
= W2 holds (W1
.vertices() )
= (W2
.vertices() ) by
Th74;
theorem ::
GLIB_001:99
e
in (W
.edges() ) iff ex n be
even
Element of
NAT st 1
<= n & n
<= (
len W) & (W
. n)
= e by
Lm46;
theorem ::
GLIB_001:100
Th98: e
in (W
.edges() ) iff ex n be
odd
Element of
NAT st n
< (
len W) & (W
. (n
+ 1))
= e
proof
hereby
assume e
in (W
.edges() );
then
consider n1 be
even
Element of
NAT such that
A1: 1
<= n1 and
A2: n1
<= (
len W) and
A3: (W
. n1)
= e by
Lm46;
reconsider n = (n1
- 1) as
odd
Element of
NAT by
A1,
INT_1: 5;
take n;
(n1
- 1)
< ((
len W)
-
0 ) by
A2,
XREAL_1: 15;
hence n
< (
len W);
thus (W
. (n
+ 1))
= e by
A3;
end;
given n be
odd
Element of
NAT such that
A4: n
< (
len W) and
A5: (W
. (n
+ 1))
= e;
A6: 1
<= (n
+ 1) by
NAT_1: 12;
(n
+ 1)
<= (
len W) by
A4,
NAT_1: 13;
hence thesis by
A5,
A6,
Lm46;
end;
theorem ::
GLIB_001:101
Th99: (
rng W)
= ((W
.vertices() )
\/ (W
.edges() ))
proof
now
let y be
object;
assume
A1: y
in ((W
.vertices() )
\/ (W
.edges() ));
now
per cases by
A1,
XBOOLE_0:def 3;
suppose y
in (W
.vertices() );
then
consider x be
odd
Element of
NAT such that
A2: x
<= (
len W) and
A3: (W
. x)
= y by
Lm45;
1
<= x by
ABIAN: 12;
then x
in (
dom W) by
A2,
FINSEQ_3: 25;
hence y
in (
rng W) by
A3,
FUNCT_1:def 3;
end;
suppose y
in (W
.edges() );
then
consider x be
even
Element of
NAT such that
A4: 1
<= x and
A5: x
<= (
len W) and
A6: (W
. x)
= y by
Lm46;
x
in (
dom W) by
A4,
A5,
FINSEQ_3: 25;
hence y
in (
rng W) by
A6,
FUNCT_1:def 3;
end;
end;
hence y
in (
rng W);
end;
then
A7: ((W
.vertices() )
\/ (W
.edges() ))
c= (
rng W) by
TARSKI:def 3;
now
let y be
object;
assume y
in (
rng W);
then
consider x be
Nat such that
A8: x
in (
dom W) and
A9: (W
. x)
= y by
FINSEQ_2: 10;
A10: x
<= (
len W) by
A8,
FINSEQ_3: 25;
A11: 1
<= x by
A8,
FINSEQ_3: 25;
now
per cases ;
suppose x is
odd;
then y
in (W
.vertices() ) by
A8,
A9,
A10,
Lm45;
hence y
in ((W
.vertices() )
\/ (W
.edges() )) by
XBOOLE_0:def 3;
end;
suppose x is
even;
then y
in (W
.edges() ) by
A8,
A9,
A11,
A10,
Lm46;
hence y
in ((W
.vertices() )
\/ (W
.edges() )) by
XBOOLE_0:def 3;
end;
end;
hence y
in ((W
.vertices() )
\/ (W
.edges() ));
end;
then (
rng W)
c= ((W
.vertices() )
\/ (W
.edges() )) by
TARSKI:def 3;
hence thesis by
A7,
XBOOLE_0:def 10;
end;
theorem ::
GLIB_001:102
Th100: (W1
.last() )
= (W2
.first() ) implies ((W1
.append W2)
.edges() )
= ((W1
.edges() )
\/ (W2
.edges() ))
proof
set W = (W1
.append W2);
set WE = (W
.edges() ), W1E = (W1
.edges() ), W2E = (W2
.edges() );
set lenW1 = (
len W1), lenW2 = (
len W2);
reconsider lenW1, lenW2 as
odd
Element of
NAT ;
assume
A1: (W1
.last() )
= (W2
.first() );
then
A2: W
= (W1
^' W2) by
Def10;
now
let x be
object;
hereby
assume x
in WE;
then
consider n be
even
Element of
NAT such that
A3: 1
<= n and
A4: n
<= (
len W) and
A5: (W
. n)
= x by
Lm46;
now
per cases ;
suppose
A6: n
<= (
len W1);
then (W
. n)
= (W1
. n) by
A2,
A3,
FINSEQ_6: 140;
then x
in W1E by
A3,
A5,
A6,
Lm46;
hence x
in (W1E
\/ W2E) by
XBOOLE_0:def 3;
end;
suppose (
len W1)
< n;
then
reconsider k = (n
- lenW1) as
odd
Element of
NAT by
INT_1: 5;
A7: 1
<= (k
+ 1) by
NAT_1: 12;
((n
- lenW1)
+ (
len W1))
< ((
len W)
+ 1) by
A4,
NAT_1: 13;
then ((n
- lenW1)
+ lenW1)
< (lenW2
+ (
len W1)) by
A1,
Lm9;
then
A8: k
< ((lenW2
+ (
len W1))
- (
len W1)) by
XREAL_1: 14;
then
A9: (k
+ 1)
<= (
len W2) by
NAT_1: 13;
(W2
. (k
+ 1))
= (W
. ((
len W1)
+ k)) by
A2,
A8,
ABIAN: 12,
FINSEQ_6: 141
.= x by
A5;
then x
in W2E by
A7,
A9,
Lm46;
hence x
in (W1E
\/ W2E) by
XBOOLE_0:def 3;
end;
end;
hence x
in (W1E
\/ W2E);
end;
assume
A10: x
in (W1E
\/ W2E);
now
per cases by
A10,
XBOOLE_0:def 3;
suppose x
in W1E;
then
consider n be
even
Element of
NAT such that
A11: 1
<= n and
A12: n
<= (
len W1) and
A13: (W1
. n)
= x by
Lm46;
(
len W1)
<= (
len W) by
A1,
Lm10;
then
A14: n
<= (
len W) by
A12,
XXREAL_0: 2;
(W
. n)
= x by
A2,
A11,
A12,
A13,
FINSEQ_6: 140;
hence x
in WE by
A11,
A14,
Lm46;
end;
suppose x
in W2E;
then
consider n be
even
Element of
NAT such that
A15: 1
<= n and
A16: n
<= (
len W2) and
A17: (W2
. n)
= x by
Lm46;
reconsider naa1 = (n
- 1) as
odd
Element of
NAT by
A15,
INT_1: 5;
naa1
< (
len W2) by
A16,
XREAL_1: 147;
then
A18: (W
. (lenW1
+ naa1))
= (W2
. (naa1
+ 1)) by
A2,
ABIAN: 12,
FINSEQ_6: 141
.= x by
A17;
((naa1
+ 1)
+ lenW1)
<= ((
len W2)
+ (
len W1)) by
A16,
XREAL_1: 7;
then ((lenW1
+ naa1)
+ 1)
<= ((
len W)
+ 1) by
A1,
Lm9;
then
A19: (lenW1
+ naa1)
<= (
len W) by
XREAL_1: 6;
1
<= (lenW1
+ naa1) by
ABIAN: 12,
NAT_1: 12;
hence x
in WE by
A18,
A19,
Lm46;
end;
end;
hence x
in WE;
end;
hence thesis by
TARSKI: 2;
end;
theorem ::
GLIB_001:103
e
in (W
.edges() ) implies ex v1,v2 be
Vertex of G, n be
odd
Element of
NAT st (n
+ 2)
<= (
len W) & v1
= (W
. n) & e
= (W
. (n
+ 1)) & v2
= (W
. (n
+ 2)) & e
Joins (v1,v2,G) by
Lm47;
theorem ::
GLIB_001:104
Th102: e
in (W
.edges() ) iff ex n be
Element of
NAT st n
in (
dom (W
.edgeSeq() )) & ((W
.edgeSeq() )
. n)
= e
proof
hereby
assume e
in (W
.edges() );
then
consider n be
object such that
A1: n
in (
dom (W
.edgeSeq() )) and
A2: ((W
.edgeSeq() )
. n)
= e by
FUNCT_1:def 3;
reconsider n as
Element of
NAT by
A1;
take n;
thus n
in (
dom (W
.edgeSeq() )) & ((W
.edgeSeq() )
. n)
= e by
A1,
A2;
end;
given n be
Element of
NAT such that
A3: n
in (
dom (W
.edgeSeq() )) and
A4: ((W
.edgeSeq() )
. n)
= e;
thus thesis by
A3,
A4,
FUNCT_1:def 3;
end;
theorem ::
GLIB_001:105
e
in (W
.edges() ) & e
Joins (x,y,G) implies x
in (W
.vertices() ) & y
in (W
.vertices() ) by
Lm48;
theorem ::
GLIB_001:106
((W
.cut (m,n))
.edges() )
c= (W
.edges() )
proof
now
per cases ;
suppose
A1: m is
odd & n is
odd & m
<= n & n
<= (
len W);
then
reconsider m9 = m as
odd
Element of
NAT ;
now
let e be
object;
assume e
in ((W
.cut (m,n))
.edges() );
then
consider x be
even
Element of
NAT such that
A2: 1
<= x and
A3: x
<= (
len (W
.cut (m,n))) and
A4: ((W
.cut (m,n))
. x)
= e by
Lm46;
reconsider xaa1 = (x
- 1) as
odd
Element of
NAT by
A2,
INT_1: 5;
A5: xaa1
< ((
len (W
.cut (m,n)))
-
0 ) by
A3,
XREAL_1: 15;
then
A6: (m
+ xaa1)
in (
dom W) by
A1,
Lm15;
then
A7: (m9
+ xaa1)
<= (
len W) by
FINSEQ_3: 25;
(xaa1
+ 1)
= x;
then
A8: e
= (W
. (m
+ xaa1)) by
A1,
A4,
A5,
Lm15;
1
<= (m9
+ xaa1) by
A6,
FINSEQ_3: 25;
hence e
in (W
.edges() ) by
A8,
A7,
Lm46;
end;
hence thesis by
TARSKI:def 3;
end;
suppose not (m is
odd & n is
odd & m
<= n & n
<= (
len W));
hence thesis by
Def11;
end;
end;
hence thesis;
end;
theorem ::
GLIB_001:107
Th105: (W
.edges() )
= ((W
.reverse() )
.edges() )
proof
now
let e be
object;
hereby
assume e
in (W
.edges() );
then
consider n be
even
Element of
NAT such that
A1: 1
<= n and
A2: n
<= (
len W) and
A3: (W
. n)
= e by
Lm46;
A4: n
in (
dom W) by
A1,
A2,
FINSEQ_3: 25;
then
A5: (((
len W)
- n)
+ 1)
in (
dom (W
.reverse() )) by
Th23;
then
reconsider rn = (((
len W)
- n)
+ 1) as
even
Element of
NAT ;
A6: 1
<= rn by
A5,
FINSEQ_3: 25;
A7: rn
<= (
len (W
.reverse() )) by
A5,
FINSEQ_3: 25;
e
= ((W
.reverse() )
. (((
len W)
- n)
+ 1)) by
A3,
A4,
Th23;
hence e
in ((W
.reverse() )
.edges() ) by
A6,
A7,
Lm46;
end;
assume e
in ((W
.reverse() )
.edges() );
then
consider n be
even
Element of
NAT such that
A8: 1
<= n and
A9: n
<= (
len (W
.reverse() )) and
A10: ((W
.reverse() )
. n)
= e by
Lm46;
A11: n
in (
dom (W
.reverse() )) by
A8,
A9,
FINSEQ_3: 25;
then
A12: (((
len (W
.reverse() ))
- n)
+ 1)
in (
dom ((W
.reverse() )
.reverse() )) by
Th23;
then
reconsider rn = (((
len (W
.reverse() ))
- n)
+ 1) as
even
Element of
NAT ;
e
= (((W
.reverse() )
.reverse() )
. (((
len (W
.reverse() ))
- n)
+ 1)) by
A10,
A11,
Th23;
then
A13: e
= (W
. rn);
rn
in (
dom W) by
A12;
then
A14: rn
<= (
len W) by
FINSEQ_3: 25;
1
<= rn by
A12,
FINSEQ_3: 25;
hence e
in (W
.edges() ) by
A13,
A14,
Lm46;
end;
hence thesis by
TARSKI: 2;
end;
theorem ::
GLIB_001:108
Th106: for e,x,y be
object holds e
Joins (x,y,G) iff ((G
.walkOf (x,e,y))
.edges() )
=
{e}
proof
let e,x,y be
object;
set W = (G
.walkOf (x,e,y));
hereby
assume e
Joins (x,y,G);
then (W
.edgeSeq() )
=
<*e*> by
Th81;
hence (W
.edges() )
=
{e} by
FINSEQ_1: 39;
end;
assume (W
.edges() )
=
{e};
then e
in (W
.edges() ) by
TARSKI:def 1;
then
consider n be
even
Element of
NAT such that
A1: 1
<= n and
A2: n
<= (
len W) and (W
. n)
= e by
Lm46;
A3: ((2
*
0 )
+ 1)
< n by
A1,
XXREAL_0: 1;
now
assume not e
Joins (x,y,G);
then W
= (G
.walkOf the
Element of (
the_Vertices_of G)) by
Def5;
hence contradiction by
A2,
A3,
Th12;
end;
hence thesis;
end;
theorem ::
GLIB_001:109
(W
.edges() )
c= (G
.edgesBetween (W
.vertices() ))
proof
now
let e be
object;
assume e
in (W
.edges() );
then
consider v1,v2 be
Vertex of G, n be
odd
Element of
NAT such that
A1: (n
+ 2)
<= (
len W) and
A2: v1
= (W
. n) and e
= (W
. (n
+ 1)) and
A3: v2
= (W
. (n
+ 2)) and
A4: e
Joins (v1,v2,G) by
Lm47;
n
< (
len W) by
A1,
Th1;
then
A5: v1
in (W
.vertices() ) by
A2,
Lm45;
v2
in (W
.vertices() ) by
A1,
A3,
Lm45;
hence e
in (G
.edgesBetween (W
.vertices() )) by
A4,
A5,
GLIB_000: 32;
end;
hence thesis by
TARSKI:def 3;
end;
theorem ::
GLIB_001:110
for W1 be
Walk of G1, W2 be
Walk of G2 st W1
= W2 holds (W1
.edges() )
= (W2
.edges() ) by
Th84;
theorem ::
GLIB_001:111
for e,x be
object holds e
Joins ((W
.last() ),x,G) implies ((W
.addEdge e)
.edges() )
= ((W
.edges() )
\/
{e})
proof
let e,x be
object;
set WB = (G
.walkOf ((W
.last() ),e,((W
.last() )
.adj e)));
assume e
Joins ((W
.last() ),x,G);
then e
in ((W
.last() )
.edgesInOut() ) by
GLIB_000: 62;
then
A1: e
Joins ((W
.last() ),((W
.last() )
.adj e),G) by
GLIB_000: 67;
then
A2: (WB
.first() )
= (W
.last() ) by
Th14;
(WB
.edges() )
=
{e} by
A1,
Th106;
hence thesis by
A2,
Th100;
end;
theorem ::
GLIB_001:112
(
len W)
= ((2
* (W
.length() ))
+ 1) by
Def15;
theorem ::
GLIB_001:113
(
len W1)
= (
len W2) iff (W1
.length() )
= (W2
.length() )
proof
hereby
assume (
len W1)
= (
len W2);
then ((2
* (W1
.length() ))
+ 1)
= (
len W2) by
Def15
.= ((2
* (W2
.length() ))
+ 1) by
Def15;
hence (W1
.length() )
= (W2
.length() );
end;
assume (W1
.length() )
= (W2
.length() );
hence (
len W1)
= ((2
* (W2
.length() ))
+ 1) by
Def15
.= (
len W2) by
Def15;
end;
theorem ::
GLIB_001:114
for W1 be
Walk of G1, W2 be
Walk of G2 st W1
= W2 holds (W1
.length() )
= (W2
.length() ) by
Th84;
theorem ::
GLIB_001:115
Th113: for n be
odd
Element of
NAT st n
<= (
len W) holds (W
.find (W
. n))
<= n & (W
.rfind (W
. n))
>= n
proof
let n be
odd
Element of
NAT ;
assume
A1: n
<= (
len W);
then
A2: (W
. n)
in (W
.vertices() ) by
Lm45;
hence (W
.find (W
. n))
<= n by
A1,
Def19;
thus thesis by
A1,
A2,
Def21;
end;
theorem ::
GLIB_001:116
for W1 be
Walk of G1, W2 be
Walk of G2, v be
set st W1
= W2 holds (W1
.find v)
= (W2
.find v) & (W1
.rfind v)
= (W2
.rfind v)
proof
let W1 be
Walk of G1, W2 be
Walk of G2, v be
set;
assume
A1: W1
= W2;
now
per cases ;
suppose
A2: v
in (W1
.vertices() );
then
A3: (W2
. (W1
.find v))
= v by
A1,
Def19;
A4: v
in (W2
.vertices() ) by
A1,
A2,
Th74;
A5: for n be
odd
Nat st n
<= (
len W2) & (W2
. n)
= v holds (W1
.find v)
<= n by
A1,
A2,
Def19;
(W1
.find v)
<= (
len W2) by
A1,
A2,
Def19;
hence (W1
.find v)
= (W2
.find v) by
A4,
A3,
A5,
Def19;
A6: (W2
. (W1
.rfind v))
= v by
A1,
A2,
Def21;
A7: for n be
odd
Element of
NAT st n
<= (
len W2) & (W2
. n)
= v holds n
<= (W1
.rfind v) by
A1,
A2,
Def21;
(W1
.rfind v)
<= (
len W2) by
A1,
A2,
Def21;
hence (W1
.rfind v)
= (W2
.rfind v) by
A4,
A6,
A7,
Def21;
end;
suppose
A8: not v
in (W1
.vertices() );
then
A9: not v
in (W2
.vertices() ) by
A1,
Th74;
thus (W1
.find v)
= (
len W2) by
A1,
A8,
Def19
.= (W2
.find v) by
A9,
Def19;
thus (W1
.rfind v)
= (
len W2) by
A1,
A8,
Def21
.= (W2
.rfind v) by
A9,
Def21;
end;
end;
hence thesis;
end;
theorem ::
GLIB_001:117
for n be
odd
Element of
NAT st n
<= (
len W) holds (W
.find n)
<= n & (W
.rfind n)
>= n by
Lm49,
Lm50;
theorem ::
GLIB_001:118
W is
closed iff (W
. 1)
= (W
. (
len W));
theorem ::
GLIB_001:119
W is
closed iff ex x be
set st W
is_Walk_from (x,x)
proof
hereby
set x = (W
.first() );
assume W is
closed;
then (W
.first() )
= (W
.last() );
then W
is_Walk_from (x,x);
hence ex x be
set st W
is_Walk_from (x,x);
end;
given v be
set such that
A1: W
is_Walk_from (v,v);
A2: (W
.last() )
= v by
A1;
(W
.first() )
= v by
A1;
hence thesis by
A2;
end;
theorem ::
GLIB_001:120
W is
closed iff (W
.reverse() ) is
closed
proof
W is
closed iff ((W
.reverse() )
.last() )
= (W
.last() ) by
Th21;
then W is
closed iff ((W
.reverse() )
.last() )
= ((W
.reverse() )
.first() ) by
Th21;
hence thesis;
end;
theorem ::
GLIB_001:121
for W1 be
Walk of G1, W2 be
Walk of G2 st W1
= W2 & W1 is
closed holds W2 is
closed;
theorem ::
GLIB_001:122
W is
directed iff for n be
odd
Element of
NAT st n
< (
len W) holds (W
. (n
+ 1))
DJoins ((W
. n),(W
. (n
+ 2)),G) by
Lm51;
theorem ::
GLIB_001:123
W is
directed & W
is_Walk_from (x,y) & e
DJoins (y,z,G) implies (W
.addEdge e) is
directed & (W
.addEdge e)
is_Walk_from (x,z) by
Lm52;
theorem ::
GLIB_001:124
for W be
DWalk of G, m,n be
Element of
NAT holds (W
.cut (m,n)) is
directed;
theorem ::
GLIB_001:125
W is non
trivial iff 3
<= (
len W) by
Lm54;
theorem ::
GLIB_001:126
W is non
trivial iff (
len W)
<> 1 by
Lm55;
theorem ::
GLIB_001:127
(W
.first() )
<> (W
.last() ) implies W is non
trivial by
Lm55;
theorem ::
GLIB_001:128
W is
trivial iff ex v be
Vertex of G st W
= (G
.walkOf v) by
Lm56;
theorem ::
GLIB_001:129
W is
trivial iff (W
.reverse() ) is
trivial
proof
thus W is
trivial implies (W
.reverse() ) is
trivial;
assume (W
.reverse() ) is
trivial;
then (
len (W
.reverse() ))
= 1 by
Lm55;
then (
len W)
= 1 by
FINSEQ_5:def 3;
hence thesis by
Lm55;
end;
theorem ::
GLIB_001:130
W2 is
trivial implies (W1
.append W2)
= W1
proof
assume W2 is
trivial;
then
A1: (
len W2)
= 1 by
Lm55;
now
per cases ;
suppose (W1
.last() )
= (W2
.first() );
then
A2: (W1
.append W2)
= (W1
^' W2) by
Def10;
then
A3: ((
len (W1
.append W2))
+ 1)
= ((
len W1)
+ 1) by
A1,
CARD_1: 27,
FINSEQ_6: 139;
for k be
Nat st 1
<= k & k
<= (
len (W1
.append W2)) holds ((W1
.append W2)
. k)
= (W1
. k) by
A2,
A3,
FINSEQ_6: 140;
hence thesis by
A3,
FINSEQ_1: 14;
end;
suppose (W1
.last() )
<> (W2
.first() );
hence thesis by
Def10;
end;
end;
hence thesis;
end;
theorem ::
GLIB_001:131
for m,n be
odd
Element of
NAT st m
<= n & n
<= (
len W) holds (W
.cut (m,n)) is
trivial iff m
= n
proof
let m,n be
odd
Element of
NAT ;
assume that
A1: m
<= n and
A2: n
<= (
len W);
A3: ((
len (W
.cut (m,n)))
+ m)
= (n
+ 1) by
A1,
A2,
Lm15;
hereby
assume (W
.cut (m,n)) is
trivial;
then 1
= ((n
- m)
+ 1) by
A3,
Lm55;
hence m
= n;
end;
assume m
= n;
hence thesis by
A3,
Lm55;
end;
theorem ::
GLIB_001:132
Th130: for e,x be
object holds e
Joins ((W
.last() ),x,G) implies (W
.addEdge e) is non
trivial
proof
let e,x be
object;
assume e
Joins ((W
.last() ),x,G);
then
A1: (
len (W
.addEdge e))
= ((
len W)
+ 2) by
Lm37;
(1
+
0 )
< ((
len W)
+ 2) by
XREAL_1: 8;
hence thesis by
A1,
Lm55;
end;
theorem ::
GLIB_001:133
Th131: W is non
trivial implies ex lenW2 be
odd
Element of
NAT st lenW2
= ((
len W)
- 2) & ((W
.cut (1,lenW2))
.addEdge (W
. (lenW2
+ 1)))
= W
proof
set lenW2 = ((
len W)
- (2
* 1));
assume W is non
trivial;
then (
len W)
>= 3 by
Lm54;
then
reconsider lenW2 as
odd
Element of
NAT by
INT_1: 5,
XXREAL_0: 2;
set W1 = (W
.cut (1,lenW2)), e = (W
. (lenW2
+ 1));
take lenW2;
thus lenW2
= ((
len W)
- 2);
lenW2
< ((
len W)
-
0 ) by
XREAL_1: 15;
hence (W1
.addEdge e)
= (W
.cut (1,(lenW2
+ 2))) by
Th39,
ABIAN: 12,
JORDAN12: 2
.= W by
Lm18;
end;
theorem ::
GLIB_001:134
Th132: W2 is non
trivial & (W2
.edges() )
c= (W1
.edges() ) implies (W2
.vertices() )
c= (W1
.vertices() )
proof
assume that
A1: W2 is non
trivial and
A2: (W2
.edges() )
c= (W1
.edges() );
A3: 3
<= (
len W2) by
A1,
Lm54;
now
let v be
object;
assume v
in (W2
.vertices() );
then
consider n be
odd
Element of
NAT such that
A4: n
<= (
len W2) and
A5: (W2
. n)
= v by
Lm45;
now
per cases ;
suppose n
= (
len W2);
then (3
- 1)
< (n
-
0 ) by
A3,
XREAL_1: 15;
then
reconsider n5 = (n
- (2
* 1)) as
odd
Element of
NAT by
INT_1: 5;
A6: 1
<= (n5
+ 1) by
NAT_1: 12;
n5
< (n
-
0 ) by
XREAL_1: 15;
then
A7: n5
< (
len W2) by
A4,
XXREAL_0: 2;
then
A8: (W2
. (n5
+ 1))
Joins ((W2
. n5),(W2
. (n5
+ 2)),G) by
Def3;
(n5
+ 1)
<= (
len W2) by
A7,
NAT_1: 13;
then (W2
. (n5
+ 1))
in (W2
.edges() ) by
A6,
Lm46;
then
consider m be
even
Element of
NAT such that
A9: 1
<= m and
A10: m
<= (
len W1) and
A11: (W1
. m)
= (W2
. (n5
+ 1)) by
A2,
Lm46;
reconsider maa1 = (m
- 1) as
odd
Element of
NAT by
A9,
INT_1: 5;
A12: maa1
< ((
len W1)
-
0 ) by
A10,
XREAL_1: 15;
then
A13: (W1
. (maa1
+ 1))
Joins ((W1
. maa1),(W1
. (maa1
+ 2)),G) by
Def3;
A14: (W1
. maa1)
= (W1
.vertexAt maa1) by
A12,
Def8;
A15: (maa1
+ 2)
<= (
len W1) by
A12,
Th1;
then (W1
. (maa1
+ 2))
= (W1
.vertexAt (maa1
+ 2)) by
Def8;
then v
= (W1
.vertexAt maa1) or v
= (W1
.vertexAt (maa1
+ 2)) by
A5,
A8,
A11,
A13,
A14,
GLIB_000: 15;
hence v
in (W1
.vertices() ) by
A12,
A15,
Th87;
end;
suppose n
<> (
len W2);
then
A16: n
< (
len W2) by
A4,
XXREAL_0: 1;
then (W2
. (n
+ 1))
in (W2
.edges() ) by
Th98;
then
consider m be
even
Element of
NAT such that
A17: 1
<= m and
A18: m
<= (
len W1) and
A19: (W1
. m)
= (W2
. (n
+ 1)) by
A2,
Lm46;
A20: (W1
. m)
Joins (v,(W2
. (n
+ 2)),G) by
A5,
A16,
A19,
Def3;
reconsider maa1 = (m
- 1) as
odd
Element of
NAT by
A17,
INT_1: 5;
A21: maa1
< ((
len W1)
-
0 ) by
A18,
XREAL_1: 15;
then
A22: (W1
. (maa1
+ 1))
Joins ((W1
. maa1),(W1
. (maa1
+ 2)),G) by
Def3;
A23: (W1
. maa1)
= (W1
.vertexAt maa1) by
A21,
Def8;
A24: (maa1
+ 2)
<= (
len W1) by
A21,
Th1;
then (W1
. (maa1
+ 2))
= (W1
.vertexAt (maa1
+ 2)) by
Def8;
then v
= (W1
.vertexAt maa1) or v
= (W1
.vertexAt (maa1
+ 2)) by
A20,
A22,
A23,
GLIB_000: 15;
hence v
in (W1
.vertices() ) by
A21,
A24,
Th87;
end;
end;
hence v
in (W1
.vertices() );
end;
hence thesis by
TARSKI:def 3;
end;
theorem ::
GLIB_001:135
W is non
trivial implies for v be
Vertex of G st v
in (W
.vertices() ) holds not v is
isolated
proof
assume W is non
trivial;
then
A1: (
len W)
<> 1 by
Lm55;
let v be
Vertex of G;
assume v
in (W
.vertices() );
then
consider n be
odd
Element of
NAT such that
A2: n
<= (
len W) and
A3: (W
. n)
= v by
Lm45;
now
per cases ;
suppose
A4: n
= (
len W);
1
<= (
len W) by
ABIAN: 12;
then 1
< (
len W) by
A1,
XXREAL_0: 1;
then (1
+ 1)
<= (
len W) by
NAT_1: 13;
then
reconsider lenW2 = ((
len W)
- (2
* 1)) as
odd
Element of
NAT by
INT_1: 5;
lenW2
< ((
len W)
-
0 ) by
XREAL_1: 15;
then (W
. (lenW2
+ 1))
Joins ((W
. lenW2),(W
. (lenW2
+ 2)),G) by
Def3;
then (W
. (lenW2
+ 1))
Joins (v,(W
. lenW2),G) by
A3,
A4,
GLIB_000: 14;
hence ex e be
set st e
in (v
.edgesInOut() ) by
GLIB_000: 62;
end;
suppose n
<> (
len W);
then n
< (
len W) by
A2,
XXREAL_0: 1;
then (W
. (n
+ 1))
Joins (v,(W
. (n
+ 2)),G) by
A3,
Def3;
hence ex e be
set st e
in (v
.edgesInOut() ) by
GLIB_000: 62;
end;
end;
hence thesis by
GLIB_000:def 49;
end;
theorem ::
GLIB_001:136
W is
trivial iff (W
.edges() )
=
{}
proof
hereby
assume W is
trivial;
then (W
.length() )
=
0 ;
then (W
.edgeSeq() )
=
{} ;
hence (W
.edges() )
=
{} ;
end;
assume (W
.edges() )
=
{} ;
then (W
.edgeSeq() )
=
{} ;
then (W
.length() )
=
0 ;
hence thesis;
end;
theorem ::
GLIB_001:137
for W1 be
Walk of G1, W2 be
Walk of G2 st W1
= W2 & W1 is
trivial holds W2 is
trivial;
theorem ::
GLIB_001:138
W is
Trail-like iff for m,n be
even
Element of
NAT st 1
<= m & m
< n & n
<= (
len W) holds (W
. m)
<> (W
. n) by
Lm57;
theorem ::
GLIB_001:139
(
len W)
<= 3 implies W is
Trail-like by
Lm61;
theorem ::
GLIB_001:140
W is
Trail-like iff (W
.reverse() ) is
Trail-like by
Lm58;
theorem ::
GLIB_001:141
for W be
Trail of G, m,n be
Element of
NAT holds (W
.cut (m,n)) is
Trail-like;
theorem ::
GLIB_001:142
for W be
Trail of G, e be
set st e
in ((W
.last() )
.edgesInOut() ) & not e
in (W
.edges() ) holds (W
.addEdge e) is
Trail-like by
Lm60;
theorem ::
GLIB_001:143
for W be
Trail of G, v be
Vertex of G st v
in (W
.vertices() ) & v is
endvertex holds v
= (W
.first() ) or v
= (W
.last() )
proof
let W be
Trail of G, v be
Vertex of G;
assume that
A1: v
in (W
.vertices() ) and
A2: v is
endvertex;
consider e be
object such that
A3: (v
.edgesInOut() )
=
{e} and not e
Joins (v,v,G) by
A2,
GLIB_000:def 51;
consider n be
odd
Element of
NAT such that
A4: n
<= (
len W) and
A5: (W
. n)
= v by
A1,
Lm45;
A6: (W
.vertexAt n)
= v by
A4,
A5,
Def8;
now
reconsider naa1 = (n
- 1) as
even
Element of
NAT by
ABIAN: 12,
INT_1: 5;
assume that
A7: v
<> (W
.first() ) and
A8: v
<> (W
.last() );
A9: (n
- 1)
< (naa1
+ 2) by
NAT_1: 16;
1
<= n by
ABIAN: 12;
then
A10: 1
< n by
A5,
A7,
XXREAL_0: 1;
then (1
+ 1)
<= n by
NAT_1: 13;
then
A11: ((1
+ 1)
- 1)
<= (n
- 1) by
XREAL_1: 13;
A12: n
< (
len W) by
A4,
A5,
A8,
XXREAL_0: 1;
then
A13: (W
. (n
+ 1))
in (v
.edgesInOut() ) by
A6,
Th9;
(W
. (n
- 1))
in (v
.edgesInOut() ) by
A4,
A6,
A10,
Th10;
then
A14: (W
. (n
- 1))
= e by
A3,
TARSKI:def 1;
(n
+ 1)
<= (
len W) by
A12,
NAT_1: 13;
then (W
. naa1)
<> (W
. (n
+ 1)) by
A11,
A9,
Lm57;
hence contradiction by
A3,
A14,
A13,
TARSKI:def 1;
end;
hence thesis;
end;
theorem ::
GLIB_001:144
for G be
_finite
_Graph, W be
Trail of G holds (
len (W
.edgeSeq() ))
<= (G
.size() )
proof
let G be
_finite
_Graph, W be
Trail of G;
consider f be
Function such that
A1: (
dom f)
= (W
.edgeSeq() ) & for x be
object st x
in (W
.edgeSeq() ) holds (f
. x)
= (x
`2 ) from
FUNCT_1:sch 3;
now
A2: (W
.edgeSeq() ) is
one-to-one by
Def27;
let x1,x2 be
object;
assume that
A3: x1
in (
dom f) and
A4: x2
in (
dom f) and
A5: (f
. x1)
= (f
. x2);
consider a1,b1 be
object such that
A6: x1
=
[a1, b1] by
A1,
A3,
RELAT_1:def 1;
A7: a1
in (
dom (W
.edgeSeq() )) by
A1,
A3,
A6,
FUNCT_1: 1;
A8: (f
. x2)
= (x2
`2 ) by
A1,
A4;
A9: ((W
.edgeSeq() )
. a1)
= b1 by
A1,
A3,
A6,
FUNCT_1: 1;
consider a2,b2 be
object such that
A10: x2
=
[a2, b2] by
A1,
A4,
RELAT_1:def 1;
A11: a2
in (
dom (W
.edgeSeq() )) by
A1,
A4,
A10,
FUNCT_1: 1;
(f
. x1)
= (x1
`2 ) by
A1,
A3;
then
A12: b1
= (f
. x1) by
A6
.= b2 by
A5,
A8,
A10;
then ((W
.edgeSeq() )
. a2)
= b1 by
A1,
A4,
A10,
FUNCT_1: 1;
hence x1
= x2 by
A6,
A10,
A12,
A2,
A7,
A9,
A11,
FUNCT_1:def 4;
end;
then
A13: f is
one-to-one by
FUNCT_1:def 4;
now
let y be
object;
assume y
in (
rng f);
then
consider x be
object such that
A14: x
in (
dom f) and
A15: (f
. x)
= y by
FUNCT_1:def 3;
consider a,b be
object such that
A16: x
=
[a, b] by
A1,
A14,
RELAT_1:def 1;
y
= (x
`2 ) by
A1,
A14,
A15;
then y
= b by
A16;
then y
in (
rng (W
.edgeSeq() )) by
A1,
A14,
A16,
XTUPLE_0:def 13;
hence y
in (
the_Edges_of G);
end;
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
A1,
A13,
CARD_1: 10;
then (
card (W
.edgeSeq() ))
<= (
card (
the_Edges_of G)) by
NAT_1: 39;
hence thesis by
GLIB_000:def 25;
end;
theorem ::
GLIB_001:145
(
len W)
<= 3 implies W is
Path-like by
Lm69;
theorem ::
GLIB_001:146
(for m,n be
odd
Element of
NAT st m
<= (
len W) & n
<= (
len W) & (W
. m)
= (W
. n) holds m
= n) implies W is
Path-like by
Lm66;
theorem ::
GLIB_001:147
for W be
Path of G st W is
open holds for m,n be
odd
Element of
NAT st m
< n & n
<= (
len W) holds (W
. m)
<> (W
. n)
proof
let W be
Path of G;
assume
A1: W is
open;
let m,n be
odd
Element of
NAT ;
assume that
A2: m
< n and
A3: n
<= (
len W);
now
assume
A4: (W
. m)
= (W
. n);
then
A5: n
= (
len W) by
A2,
A3,
Def28;
m
= 1 by
A2,
A3,
A4,
Def28;
hence contradiction by
A1,
A4,
A5;
end;
hence thesis;
end;
theorem ::
GLIB_001:148
W is
Path-like iff (W
.reverse() ) is
Path-like by
Lm63;
theorem ::
GLIB_001:149
for W be
Path of G, m,n be
Element of
NAT holds (W
.cut (m,n)) is
Path-like;
theorem ::
GLIB_001:150
Th148: for W be
Path of G, e,v be
object st e
Joins ((W
.last() ),v,G) & not e
in (W
.edges() ) & (W is
trivial or W is
open) & for n be
odd
Element of
NAT st 1
< n & n
<= (
len W) holds (W
. n)
<> v holds (W
.addEdge e) is
Path-like
proof
let W be
Path of G, e,v be
object;
assume that
A1: e
Joins ((W
.last() ),v,G) and
A2: not e
in (W
.edges() ) and
A3: W is
trivial or W is
open and
A4: for n be
odd
Element of
NAT st 1
< n & n
<= (
len W) holds (W
. n)
<> v;
reconsider lenW = (
len W) as
odd
Element of
NAT ;
set W2 = (W
.addEdge e);
A5: e
in ((W
.last() )
.edgesInOut() ) by
A1,
GLIB_000: 62;
now
thus W2 is
Trail-like by
A2,
A5,
Lm60;
let m,n be
odd
Element of
NAT ;
assume that
A6: m
< n and
A7: n
<= (
len W2) and
A8: (W2
. m)
= (W2
. n);
now
per cases by
A3;
suppose
A9: W is
open;
now
per cases ;
suppose
A10: n
<= (
len W);
A11: 1
<= m by
ABIAN: 12;
m
<= (
len W) by
A6,
A10,
XXREAL_0: 2;
then m
in (
dom W) by
A11,
FINSEQ_3: 25;
then
A12: (W2
. m)
= (W
. m) by
A1,
Lm38;
1
<= n by
ABIAN: 12;
then n
in (
dom W) by
A10,
FINSEQ_3: 25;
then
A13: (W
. m)
= (W
. n) by
A1,
A8,
A12,
Lm38;
then m
= 1 by
A6,
A10,
Def28;
then (W
.first() )
= (W
.last() ) by
A6,
A10,
A13,
Def28;
hence m
= 1 & n
= (
len W2) by
A9;
end;
suppose n
> (
len W);
then (lenW
+ 1)
<= n by
NAT_1: 13;
then (lenW
+ 1)
< n by
XXREAL_0: 1;
then ((lenW
+ 1)
+ 1)
<= n by
NAT_1: 13;
then ((
len W)
+ (1
+ 1))
<= n;
then
A14: (
len W2)
<= n by
A1,
Lm37;
then
A15: n
= (
len W2) by
A7,
XXREAL_0: 1;
then (W2
. n)
= (W2
. ((
len W)
+ 2)) by
A1,
Lm37;
then
A16: (W2
. n)
= v by
A1,
Lm38;
m
< ((
len W)
+ (1
+ 1)) by
A1,
A6,
A15,
Lm37;
then m
< (((
len W)
+ 1)
+ 1);
then m
<= (lenW
+ 1) by
NAT_1: 13;
then m
< (lenW
+ 1) by
XXREAL_0: 1;
then
A17: m
<= (
len W) by
NAT_1: 13;
1
<= m by
ABIAN: 12;
then m
in (
dom W) by
A17,
FINSEQ_3: 25;
then
A18: (W
. m)
= v by
A1,
A8,
A16,
Lm38;
now
A19: 1
<= m by
ABIAN: 12;
assume m
<> 1;
then 1
< m by
A19,
XXREAL_0: 1;
hence contradiction by
A4,
A17,
A18;
end;
hence m
= 1;
thus n
= (
len W2) by
A7,
A14,
XXREAL_0: 1;
end;
end;
hence m
= 1 & n
= (
len W2);
end;
suppose W is
trivial;
then ex v be
Vertex of G st W
= (G
.walkOf v) by
Lm56;
then (
len W)
= 1 by
Th12;
then
A20: (
len W2)
= (1
+ 2) by
A1,
Lm37;
A21: (m
+ 1)
<= n by
A6,
NAT_1: 13;
A22: 1
<= m by
ABIAN: 12;
then (1
+ 1)
<= (m
+ 1) by
XREAL_1: 7;
then (2
* 1)
<= n by
A21,
XXREAL_0: 2;
then (2
* 1)
< n by
XXREAL_0: 1;
then
A23: (
len W2)
<= n by
A20,
NAT_1: 13;
then m
< 3 by
A6,
A7,
A20,
XXREAL_0: 1;
then ((m
+ 1)
- 1)
<= (3
- 1) by
A20,
NAT_1: 13;
then m
< (2
* 1) by
XXREAL_0: 1;
then (m
+ 1)
<= 2 by
NAT_1: 13;
then ((m
+ 1)
- 1)
<= (2
- 1) by
XREAL_1: 13;
hence m
= 1 & n
= (
len W2) by
A7,
A22,
A23,
XXREAL_0: 1;
end;
end;
hence m
= 1 & n
= (
len W2);
end;
hence thesis;
end;
theorem ::
GLIB_001:151
for W be
Path of G, e,v be
object st e
Joins ((W
.last() ),v,G) & not v
in (W
.vertices() ) & (W is
trivial or W is
open) holds (W
.addEdge e) is
Path-like by
Lm68;
theorem ::
GLIB_001:152
(for n be
odd
Element of
NAT st n
<= (
len W) holds (W
.find (W
. n))
= (W
.rfind (W
. n))) implies W is
Path-like
proof
assume
A1: for n be
odd
Element of
NAT st n
<= (
len W) holds (W
.find (W
. n))
= (W
.rfind (W
. n));
A2:
now
let x be
odd
Element of
NAT ;
assume
A3: x
<= (
len W);
then
A4: (W
.rfind (W
. x))
>= x by
Th113;
A5: (W
.find (W
. x))
= (W
.rfind (W
. x)) by
A1,
A3;
(W
.find (W
. x))
<= x by
A3,
Th113;
hence (W
.find (W
. x))
= x & (W
.rfind (W
. x))
= x by
A4,
A5,
XXREAL_0: 1;
end;
now
let m,n be
even
Element of
NAT ;
assume that
A6: 1
<= m and
A7: m
< n and
A8: n
<= (
len W);
1
<= n by
A6,
A7,
XXREAL_0: 2;
then n
in (
dom W) by
A8,
FINSEQ_3: 25;
then
consider naa1 be
odd
Element of
NAT such that
A9: naa1
= (n
- 1) and
A10: (n
- 1)
in (
dom W) and
A11: (n
+ 1)
in (
dom W) and
A12: (W
. n)
Joins ((W
. naa1),(W
. (n
+ 1)),G) by
Lm2;
m
<= (
len W) by
A7,
A8,
XXREAL_0: 2;
then m
in (
dom W) by
A6,
FINSEQ_3: 25;
then
consider maa1 be
odd
Element of
NAT such that
A13: maa1
= (m
- 1) and
A14: (m
- 1)
in (
dom W) and (m
+ 1)
in (
dom W) and
A15: (W
. m)
Joins ((W
. maa1),(W
. (m
+ 1)),G) by
Lm2;
now
set Wnaa1 = (W
. naa1), Wn1 = (W
. (n
+ 1));
set Wmaa1 = (W
. maa1), Wm1 = (W
. (m
+ 1));
assume
A16: (W
. m)
= (W
. n);
maa1
<= (
len W) by
A13,
A14,
FINSEQ_3: 25;
then
A17: (W
.find Wmaa1)
= maa1 by
A2;
A18: (n
+ 1)
<= (
len W) by
A11,
FINSEQ_3: 25;
A19: naa1
<= (
len W) by
A9,
A10,
FINSEQ_3: 25;
now
per cases by
A15,
A12,
A16,
GLIB_000: 15;
suppose Wmaa1
= Wnaa1 & Wm1
= Wn1;
then maa1
= naa1 by
A2,
A19,
A17;
hence contradiction by
A7,
A13,
A9;
end;
suppose Wmaa1
= Wn1 & Wm1
= Wnaa1;
then maa1
= (n
+ 1) by
A2,
A18,
A17;
then n
<= ((maa1
- 1)
+ 1) by
NAT_1: 12;
then n
<= ((m
- 1)
+ 1) by
A13,
NAT_1: 12;
hence contradiction by
A7;
end;
end;
hence contradiction;
end;
hence (W
. m)
<> (W
. n);
end;
then
A20: W is
Trail-like by
Lm57;
now
let m,n be
odd
Element of
NAT ;
assume that
A21: m
< n and
A22: n
<= (
len W) and
A23: (W
. m)
= (W
. n);
m
<= (
len W) by
A21,
A22,
XXREAL_0: 2;
then (W
.find (W
. m))
= m by
A2;
hence m
= 1 & n
= (
len W) by
A2,
A21,
A22,
A23;
end;
hence thesis by
A20;
end;
theorem ::
GLIB_001:153
(for n be
odd
Element of
NAT st n
<= (
len W) holds (W
.rfind n)
= n) implies W is
Path-like by
Lm67;
theorem ::
GLIB_001:154
for G be
_finite
_Graph, W be
Path of G holds (
len (W
.vertexSeq() ))
<= ((G
.order() )
+ 1)
proof
let G be
_finite
_Graph, W be
Path of G;
now
per cases ;
suppose (
len W)
= 1;
then (1
+ 1)
= (2
* (
len (W
.vertexSeq() ))) by
Def14;
hence thesis by
NAT_1: 12;
end;
suppose (
len W)
<> 1;
then W is non
trivial by
Lm55;
then
consider lenW2 be
odd
Element of
NAT such that
A1: lenW2
= ((
len W)
- 2) and
A2: ((W
.cut (1,lenW2))
.addEdge (W
. (lenW2
+ 1)))
= W by
Th131;
set W2 = (W
.cut (1,lenW2)), vs1 = (W2
.vertexSeq() );
consider f be
Function such that
A3: (
dom f)
= vs1 & for x be
object st x
in vs1 holds (f
. x)
= (x
`2 ) from
FUNCT_1:sch 3;
A4: lenW2
< ((
len W)
-
0 ) by
A1,
XREAL_1: 15;
then
A5: (
len W2)
= lenW2 by
Lm22;
now
let x1,x2 be
object;
assume that
A6: x1
in (
dom f) and
A7: x2
in (
dom f) and
A8: (f
. x1)
= (f
. x2);
consider a1,b1 be
object such that
A9: x1
=
[a1, b1] by
A3,
A6,
RELAT_1:def 1;
A10: b1
= (vs1
. a1) by
A3,
A6,
A9,
FUNCT_1: 1;
A11: (f
. x1)
= (x1
`2 ) by
A3,
A6
.= b1 by
A9;
consider a2,b2 be
object such that
A12: x2
=
[a2, b2] by
A3,
A7,
RELAT_1:def 1;
A13: a2
in (
dom vs1) by
A3,
A7,
A12,
FUNCT_1: 1;
A14: a1
in (
dom vs1) by
A3,
A6,
A9,
FUNCT_1: 1;
A15: b2
= (vs1
. a2) by
A3,
A7,
A12,
FUNCT_1: 1;
A16: (f
. x2)
= (x2
`2 ) by
A3,
A7
.= b2 by
A12;
reconsider a1, a2 as
Element of
NAT by
A14,
A13;
A17:
now
let n1,n2 be
Element of
NAT ;
assume that
A18: n1
< n2 and
A19: n1
in (
dom vs1) and
A20: n2
in (
dom vs1) and
A21: (vs1
. n1)
= (vs1
. n2);
A22: ((2
* n2)
- 1)
in (
dom W2) by
A20,
Th71;
A23: ((2
* n1)
- 1)
in (
dom W2) by
A19,
Th71;
then
reconsider a = ((2
* n1)
- 1), b = ((2
* n2)
- 1) as
odd
Element of
NAT by
A22;
A24: (W2
. b)
= (W
. b) by
A4,
A22,
Lm23;
A25: n2
<= (
len vs1) by
A20,
FINSEQ_3: 25;
1
<= n2 by
A20,
FINSEQ_3: 25;
then
A26: (vs1
. n2)
= (W2
. b) by
A25,
Def14;
A27: n1
<= (
len vs1) by
A19,
FINSEQ_3: 25;
1
<= n1 by
A19,
FINSEQ_3: 25;
then
A28: (vs1
. n1)
= (W2
. a) by
A27,
Def14;
b
<= lenW2 by
A5,
A22,
FINSEQ_3: 25;
then
A29: b
< (
len W) by
A4,
XXREAL_0: 2;
(2
* n1)
< (2
* n2) by
A18,
XREAL_1: 68;
then
A30: a
< b by
XREAL_1: 14;
(W2
. a)
= (W
. a) by
A4,
A23,
Lm23;
hence contradiction by
A21,
A28,
A26,
A24,
A30,
A29,
Def28;
end;
now
assume
A31: a1
<> a2;
now
per cases ;
suppose a1
<= a2;
then a1
< a2 by
A31,
XXREAL_0: 1;
hence contradiction by
A8,
A11,
A16,
A14,
A10,
A13,
A15,
A17;
end;
suppose a1
> a2;
hence contradiction by
A8,
A11,
A16,
A14,
A10,
A13,
A15,
A17;
end;
end;
hence contradiction;
end;
hence x1
= x2 by
A8,
A9,
A12,
A11,
A16;
end;
then
A32: f is
one-to-one by
FUNCT_1:def 4;
now
let y be
object;
assume y
in (
rng f);
then
consider x be
object such that
A33: x
in (
dom f) and
A34: (f
. x)
= y by
FUNCT_1:def 3;
consider a,b be
object such that
A35: x
=
[a, b] by
A3,
A33,
RELAT_1:def 1;
y
= (x
`2 ) by
A3,
A33,
A34;
then
A36: y
= b by
A35;
A37: b
= (vs1
. a) by
A3,
A33,
A35,
FUNCT_1: 1;
a
in (
dom vs1) by
A3,
A33,
A35,
FUNCT_1: 1;
then y
in (
rng vs1) by
A36,
A37,
FUNCT_1:def 3;
hence y
in (
the_Vertices_of G);
end;
then (
rng f)
c= (
the_Vertices_of G) by
TARSKI:def 3;
then (
Segm (
card vs1))
c= (
Segm (
card (
the_Vertices_of G))) by
A3,
A32,
CARD_1: 10;
then (
card vs1)
<= (
card (
the_Vertices_of G)) by
NAT_1: 39;
then (
len vs1)
<= (G
.order() ) by
GLIB_000:def 24;
then
A38: ((
len vs1)
+ 1)
<= ((G
.order() )
+ 1) by
XREAL_1: 7;
A39: lenW2
< ((
len W)
-
0 ) by
A1,
XREAL_1: 15;
then
A40: (W
. (lenW2
+ 1))
Joins ((W
. lenW2),(W
. (lenW2
+ 2)),G) by
Def3;
1
<= lenW2 by
ABIAN: 12;
then (W2
.last() )
= (W
. lenW2) by
A39,
Lm16,
JORDAN12: 2;
then (W
.vertexSeq() )
= (vs1
^
<*(W
. (lenW2
+ 2))*>) by
A2,
A40,
Th73;
then (
len (W
.vertexSeq() ))
= ((
len vs1)
+ (
len
<*(W
. (lenW2
+ 2))*>)) by
FINSEQ_1: 22;
hence thesis by
A38,
FINSEQ_1: 39;
end;
end;
hence thesis;
end;
theorem ::
GLIB_001:155
for G be
_Graph, W be
vertex-distinct
Walk of G, e,v be
object st e
Joins ((W
.last() ),v,G) & not v
in (W
.vertices() ) holds (W
.addEdge e) is
vertex-distinct
proof
let G be
_Graph, W be
vertex-distinct
Walk of G, e,v be
object;
assume that
A1: e
Joins ((W
.last() ),v,G) and
A2: not v
in (W
.vertices() );
set W2 = (W
.addEdge e);
A3: (
len W2)
= ((
len W)
+ 2) by
A1,
Lm37;
A4:
now
let n be
odd
Element of
NAT ;
assume that
A5: n
<= (
len W2) and
A6: n
> (
len W);
((
len W)
+ 1)
<= n by
A6,
NAT_1: 13;
then ((
len W)
+ 1)
< n by
XXREAL_0: 1;
then (((
len W)
+ 1)
+ 1)
<= n by
NAT_1: 13;
hence n
= (
len W2) by
A3,
A5,
XXREAL_0: 1;
hence (W2
. n)
= v by
A1,
A3,
Lm38;
end;
now
let m,n be
odd
Element of
NAT ;
assume that
A7: m
<= (
len W2) and
A8: n
<= (
len W2) and
A9: (W2
. m)
= (W2
. n);
A10: 1
<= n by
ABIAN: 12;
A11: 1
<= m by
ABIAN: 12;
now
per cases ;
suppose
A12: m
<= (
len W);
then m
in (
dom W) by
A11,
FINSEQ_3: 25;
then
A13: (W2
. m)
= (W
. m) by
A1,
Lm38;
now
per cases ;
suppose
A14: n
<= (
len W);
then n
in (
dom W) by
A10,
FINSEQ_3: 25;
then (W2
. n)
= (W
. n) by
A1,
Lm38;
hence m
= n by
A9,
A12,
A13,
A14,
Def29;
end;
suppose n
> (
len W);
then (W
. m)
= v by
A4,
A8,
A9,
A13;
hence m
= n by
A2,
A12,
Lm45;
end;
end;
hence m
= n;
end;
suppose
A15: m
> (
len W);
then
A16: (W2
. m)
= v by
A4,
A7;
A17: m
= (
len W2) by
A4,
A7,
A15;
now
per cases ;
suppose
A18: n
<= (
len W);
then n
in (
dom W) by
A10,
FINSEQ_3: 25;
then v
= (W
. n) by
A1,
A9,
A16,
Lm38;
hence m
= n by
A2,
A18,
Lm45;
end;
suppose n
> (
len W);
hence m
= n by
A4,
A8,
A17;
end;
end;
hence m
= n;
end;
end;
hence m
= n;
end;
hence thesis;
end;
theorem ::
GLIB_001:156
for e,x be
object holds e
Joins (x,x,G) implies (G
.walkOf (x,e,x)) is
Cycle-like
proof
let e,x be
object;
set W = (G
.walkOf (x,e,x));
assume e
Joins (x,x,G);
then (
len W)
= 3 by
Th13;
then W is non
trivial by
Lm54;
hence thesis;
end;
theorem ::
GLIB_001:157
e
Joins (x,y,G) & e
in (W1
.edges() ) & W1 is
Cycle-like implies ex W2 be
Walk of G st W2
is_Walk_from (x,y) & not e
in (W2
.edges() )
proof
assume that
A1: e
Joins (x,y,G) and
A2: e
in (W1
.edges() ) and
A3: W1 is
Cycle-like;
consider v1,v2 be
Vertex of G, n be
odd
Element of
NAT such that
A4: (n
+ 2)
<= (
len W1) and
A5: v1
= (W1
. n) and
A6: e
= (W1
. (n
+ 1)) and
A7: v2
= (W1
. (n
+ 2)) and
A8: e
Joins (v1,v2,G) by
A2,
Lm47;
set WA = (W1
.cut ((n
+ 2),(
len W1))), WB = (W1
.cut (((2
*
0 )
+ 1),n));
A9: (WA
.last() )
= (W1
.last() ) by
A4,
Lm16;
A10: ((n
+ 2)
- 2)
< ((
len W1)
-
0 ) by
A4,
XREAL_1: 15;
A11:
now
assume e
in (WB
.edges() );
then
consider m be
even
Element of
NAT such that
A12: 1
<= m and
A13: m
<= (
len WB) and
A14: (WB
. m)
= e by
Lm46;
m
in (
dom WB) by
A12,
A13,
FINSEQ_3: 25;
then
A15: (W1
. m)
= (W1
. (n
+ 1)) by
A6,
A10,
A14,
Lm23;
(
len WB)
= n by
A10,
Lm22;
then
A16: (m
+
0 )
< (n
+ 1) by
A13,
XREAL_1: 8;
(n
+ 1)
<= (
len W1) by
A10,
NAT_1: 13;
hence contradiction by
A3,
A12,
A15,
A16,
Lm57;
end;
1
<= n by
ABIAN: 12;
then WB
is_Walk_from ((W1
.first() ),v1) by
A5,
A10,
Lm16;
then
A17: WB
is_Walk_from ((W1
.last() ),v1) by
A3,
Def24;
A18: WA
is_Walk_from (v2,(W1
. (
len W1))) by
A4,
A7,
Lm16;
then (WA
.append WB)
is_Walk_from (v2,v1) by
A17,
Th29;
then
A19: ((WA
.append WB)
.reverse() )
is_Walk_from (v1,v2) by
Th22;
A20:
now
assume e
in (WA
.edges() );
then
consider m be
even
Element of
NAT such that
A21: 1
<= m and
A22: m
<= (
len WA) and
A23: (WA
. m)
= e by
Lm46;
reconsider maa1 = (m
- 1) as
odd
Element of
NAT by
A21,
INT_1: 5;
A24: maa1
< ((
len WA)
-
0 ) by
A22,
XREAL_1: 15;
then ((n
+ 2)
+ maa1)
in (
dom W1) by
A4,
Lm15;
then
A25: ((n
+ 2)
+ maa1)
<= (
len W1) by
FINSEQ_3: 25;
(maa1
+ 1)
= m;
then
A26: e
= (W1
. ((n
+ 2)
+ maa1)) by
A4,
A23,
A24,
Lm15;
(n
+ 1)
< ((n
+ 1)
+ 1) by
NAT_1: 13;
then
A27: ((n
+ 1)
+
0 )
< ((n
+ 2)
+ maa1) by
XREAL_1: 8;
1
<= (n
+ 1) by
NAT_1: 12;
hence contradiction by
A3,
A6,
A26,
A25,
A27,
Lm57;
end;
(WB
.first() )
= (W1
.last() ) by
A17;
then ((WA
.append WB)
.edges() )
= ((WA
.edges() )
\/ (WB
.edges() )) by
A9,
Th100;
then
A28: not e
in ((WA
.append WB)
.edges() ) by
A20,
A11,
XBOOLE_0:def 3;
then
A29: not e
in (((WA
.append WB)
.reverse() )
.edges() ) by
Th105;
now
per cases by
A1,
A8,
GLIB_000: 15;
suppose x
= v1 & y
= v2;
hence thesis by
A29,
A19;
end;
suppose x
= v2 & y
= v1;
hence thesis by
A18,
A17,
A28,
Th29;
end;
end;
hence thesis;
end;
theorem ::
GLIB_001:158
W is
Subwalk of W by
Lm70;
theorem ::
GLIB_001:159
for W1 be
Walk of G, W2 be
Subwalk of W1, W3 be
Subwalk of W2 holds W3 is
Subwalk of W1 by
Lm71;
theorem ::
GLIB_001:160
W1 is
Subwalk of W2 implies (W1
is_Walk_from (x,y) iff W2
is_Walk_from (x,y))
proof
assume
A1: W1 is
Subwalk of W2;
hereby
A2: W1
is_Walk_from ((W2
.first() ),(W2
.last() )) by
A1,
Def32;
assume
A3: W1
is_Walk_from (x,y);
then (W1
.last() )
= y;
then
A4: y
= (W2
.last() ) by
A2;
(W1
.first() )
= x by
A3;
then x
= (W2
.first() ) by
A2;
hence W2
is_Walk_from (x,y) by
A4;
end;
assume
A5: W2
is_Walk_from (x,y);
then
A6: (W2
.last() )
= y;
(W2
.first() )
= x by
A5;
hence thesis by
A1,
A6,
Def32;
end;
theorem ::
GLIB_001:161
Th159: W1 is
Subwalk of W2 implies (W1
.first() )
= (W2
.first() ) & (W1
.last() )
= (W2
.last() )
proof
assume W1 is
Subwalk of W2;
then W1
is_Walk_from ((W2
.first() ),(W2
.last() )) by
Def32;
hence thesis;
end;
theorem ::
GLIB_001:162
W1 is
Subwalk of W2 implies (
len W1)
<= (
len W2) by
Lm72;
theorem ::
GLIB_001:163
Th161: W1 is
Subwalk of W2 implies (W1
.edges() )
c= (W2
.edges() ) & (W1
.vertices() )
c= (W2
.vertices() )
proof
assume
A1: W1 is
Subwalk of W2;
then
consider es be
Subset of (W2
.edgeSeq() ) such that
A2: (W1
.edgeSeq() )
= (
Seq es) by
Def32;
now
let e be
object;
assume e
in (W1
.edges() );
then
consider n be
even
Element of
NAT such that
A3: 1
<= n and
A4: n
<= (
len W1) and
A5: (W1
. n)
= e by
Lm46;
A6: (W1
. n)
= ((
Seq es)
. (n
div 2)) by
A2,
A3,
A4,
Lm40;
(n
div 2)
in (
dom (
Seq es)) by
A2,
A3,
A4,
Lm40;
then ex m be
Element of
NAT st m
in (
dom (W2
.edgeSeq() )) & (n
div 2)
<= m & (W1
. n)
= ((W2
.edgeSeq() )
. m) by
A6,
Th3;
hence e
in (W2
.edges() ) by
A5,
Th102;
end;
hence
A7: (W1
.edges() )
c= (W2
.edges() ) by
TARSKI:def 3;
now
per cases ;
suppose
A8: W1 is
trivial;
now
let v be
object;
assume v
in (W1
.vertices() );
then
consider n be
odd
Element of
NAT such that
A9: n
<= (
len W1) and
A10: (W1
. n)
= v by
Lm45;
A11: 1
<= n by
ABIAN: 12;
n
<= 1 by
A8,
A9,
Lm55;
then v
= (W1
.first() ) by
A10,
A11,
XXREAL_0: 1;
then v
= (W2
.first() ) by
A1,
Th159;
hence v
in (W2
.vertices() ) by
Th86;
end;
hence thesis by
TARSKI:def 3;
end;
suppose W1 is non
trivial;
hence thesis by
A7,
Th132;
end;
end;
hence thesis;
end;
theorem ::
GLIB_001:164
Th162: W1 is
Subwalk of W2 implies for m be
odd
Element of
NAT st m
<= (
len W1) holds ex n be
odd
Element of
NAT st m
<= n & n
<= (
len W2) & (W1
. m)
= (W2
. n)
proof
assume
A1: W1 is
Subwalk of W2;
let m be
odd
Element of
NAT such that
A2: m
<= (
len W1);
A3: ex es be
Subset of (W2
.edgeSeq() ) st (W1
.edgeSeq() )
= (
Seq es) by
A1,
Def32;
now
per cases by
A2,
XXREAL_0: 1;
suppose
A4: m
< (
len W1);
then
A5: (W1
. (m
+ 1))
Joins ((W1
. m),(W1
. (m
+ 2)),G) by
Def3;
reconsider m1 = (m
+ 1) as
even
Element of
NAT ;
A6: 1
<= m1 by
NAT_1: 12;
A7: m1
<= (
len W1) by
A4,
NAT_1: 13;
then
A8: (W1
. m1)
= ((W1
.edgeSeq() )
. (m1
div 2)) by
A6,
Lm40;
(m1
div 2)
in (
dom (W1
.edgeSeq() )) by
A6,
A7,
Lm40;
then
consider x be
Element of
NAT such that
A9: x
in (
dom (W2
.edgeSeq() )) and
A10: (m1
div 2)
<= x and
A11: (W1
. m1)
= ((W2
.edgeSeq() )
. x) by
A3,
A8,
Th3;
set n = (2
* x);
A12: 1
<= x by
A9,
FINSEQ_3: 25;
2
divides m1 by
PEPIN: 22;
then (2
* (m1
div 2))
= m1 by
NAT_D: 3;
then m1
<= n by
A10,
XREAL_1: 64;
then
A13: (m1
- 1)
<= (n
- 1) by
XREAL_1: 13;
A14: x
<= (
len (W2
.edgeSeq() )) by
A9,
FINSEQ_3: 25;
A15: n
in (
dom W2) by
A9,
Lm41;
then 1
<= n by
FINSEQ_3: 25;
then
reconsider naa1 = (n
- 1) as
odd
Element of
NAT by
INT_1: 5;
n
<= (
len W2) by
A15,
FINSEQ_3: 25;
then
A16: naa1
< ((
len W2)
-
0 ) by
XREAL_1: 15;
then (W2
. (naa1
+ 1))
Joins ((W2
. naa1),(W2
. (naa1
+ 2)),G) by
Def3;
then
A17: (W1
. m1)
Joins ((W2
. naa1),(W2
. (naa1
+ 2)),G) by
A11,
A12,
A14,
Def15;
A18: (naa1
+ 2)
<= (
len W2) by
A16,
Th1;
now
per cases by
A5,
A17,
GLIB_000: 15;
suppose (W1
. m)
= (W2
. naa1);
hence thesis by
A16,
A13;
end;
suppose (W1
. m)
= (W2
. (naa1
+ 2));
hence thesis by
A13,
A18,
NAT_1: 12;
end;
end;
hence thesis;
end;
suppose
A19: m
= (
len W1);
(
len W1)
<= (
len W2) by
A1,
Lm72;
then
A20: m
<= (
len W2) by
A2,
XXREAL_0: 2;
(W1
. m)
= (W1
.last() ) by
A19
.= (W2
.last() ) by
A1,
Th159
.= (W2
. (
len W2));
hence thesis by
A20;
end;
end;
hence thesis;
end;
theorem ::
GLIB_001:165
W1 is
Subwalk of W2 implies for m be
even
Element of
NAT st 1
<= m & m
<= (
len W1) holds ex n be
even
Element of
NAT st m
<= n & n
<= (
len W2) & (W1
. m)
= (W2
. n)
proof
assume W1 is
Subwalk of W2;
then
A1: ex es be
Subset of (W2
.edgeSeq() ) st (W1
.edgeSeq() )
= (
Seq es) by
Def32;
let m be
even
Element of
NAT such that
A2: 1
<= m and
A3: m
<= (
len W1);
A4: (W1
. m)
= ((W1
.edgeSeq() )
. (m
div 2)) by
A2,
A3,
Lm40;
(m
div 2)
in (
dom (W1
.edgeSeq() )) by
A2,
A3,
Lm40;
then
consider ndiv2 be
Element of
NAT such that
A5: ndiv2
in (
dom (W2
.edgeSeq() )) and
A6: (m
div 2)
<= ndiv2 and
A7: (W1
. m)
= ((W2
.edgeSeq() )
. ndiv2) by
A1,
A4,
Th3;
A8: ndiv2
<= (
len (W2
.edgeSeq() )) by
A5,
FINSEQ_3: 25;
2
divides m by
PEPIN: 22;
then
A9: (2
* (m
div 2))
= m by
NAT_D: 3;
(2
* ndiv2)
in (
dom W2) by
A5,
Lm41;
then
A10: (2
* ndiv2)
<= (
len W2) by
FINSEQ_3: 25;
1
<= ndiv2 by
A5,
FINSEQ_3: 25;
then (W1
. m)
= (W2
. (2
* ndiv2)) by
A7,
A8,
Def15;
hence thesis by
A6,
A9,
A10,
XREAL_1: 64;
end;
theorem ::
GLIB_001:166
for W1 be
Trail of G st W1 is non
trivial holds ex W2 be
Path of W1 st W2 is non
trivial
proof
let W1 be
Trail of G;
assume W1 is non
trivial;
then
A1: 1
<> (
len W1) by
Lm55;
1
<= (
len W1) by
ABIAN: 12;
then
A2: 1
< (
len W1) by
A1,
XXREAL_0: 1;
now
per cases ;
suppose
A3: W1 is
open;
set P = the
Path of W1;
take P;
A4: (P
.first() )
= (W1
.first() ) by
Th159;
A5: (P
.last() )
= (W1
.last() ) by
Th159;
(W1
.first() )
<> (W1
.last() ) by
A3;
hence P is non
trivial by
A4,
A5,
Lm55;
end;
suppose
A6: W1 is
closed;
defpred
P[
Nat] means $1 is
odd & 1
< $1 & $1
<= (
len W1) & (W1
. $1)
= (W1
. (
len W1));
A7: ex k be
Nat st
P[k] by
A2;
consider k be
Nat such that
A8:
P[k] & for m be
Nat st
P[m] holds k
<= m from
NAT_1:sch 5(
A7);
reconsider k as
odd
Element of
NAT by
A8,
ORDINAL1:def 12;
(1
+ 1)
< (k
+ 1) by
A8,
XREAL_1: 8;
then 2
<= k by
NAT_1: 13;
then
reconsider k2 = (k
- (2
* 1)) as
odd
Element of
NAT by
INT_1: 5;
set W3 = (W1
.remove (k,(
len W1)));
set W4 = (W3
.cut (((2
*
0 )
+ 1),k2));
set W5 = the
Path of W4;
consider es5 be
Subset of (W4
.edgeSeq() ) such that
A9: (W5
.edgeSeq() )
= (
Seq es5) by
Def32;
A10: (W4
.edgeSeq() )
c= (W3
.edgeSeq() ) by
Lm43;
(W1
. k)
= (W1
.last() ) by
A8;
then
A11: W3
= (W1
.cut (1,k)) by
Th55;
then (W3
.edgeSeq() )
c= (W1
.edgeSeq() ) by
Lm43;
then (W4
.edgeSeq() )
c= (W1
.edgeSeq() ) by
A10,
XBOOLE_1: 1;
then
reconsider es5 as
Subset of (W1
.edgeSeq() ) by
XBOOLE_1: 1;
A12: W5
is_Walk_from ((W4
.first() ),(W4
.last() )) by
Def32;
A13: ((
len W3)
+ (
len W1))
= ((
len W1)
+ k) by
A8,
Lm24;
then
A14: k2
<= ((
len W3)
-
0 ) by
XREAL_1: 13;
A15: 1
<= k2 by
ABIAN: 12;
then (W4
.last() )
= (W3
. k2) by
A14,
Lm16;
then
A16: (W5
.last() )
= (W3
. k2) by
A12;
k2
in (
dom W3) by
A14,
A15,
FINSEQ_3: 25;
then
A17: (W5
.last() )
= (W1
. k2) by
A8,
A16,
A11,
Lm23;
(W4
.first() )
= (W3
. 1) by
A14,
A15,
Lm16;
then
A18: (W5
.first() )
= (W3
. 1) by
A12;
A19: (W1
. 1)
= (W1
. (
len W1)) by
A6;
A20:
now
1
<= (
len W3) by
ABIAN: 12;
then
A21: ((2
*
0 )
+ 1)
in (
dom W3) by
FINSEQ_3: 25;
assume that
A22: W5 is non
trivial and
A23: W5 is
closed;
(W5
.first() )
= (W1
. k2) by
A17,
A23;
then
A24: (W1
. k2)
= (W1
. (
len W1)) by
A19,
A8,
A18,
A11,
A21,
Lm23;
now
assume k2
= 1;
then (
len W4)
= 1 by
A14,
Lm22;
then
A25: (
len W5)
<= 1 by
Lm72;
1
<= (
len W5) by
ABIAN: 12;
then (
len W5)
= 1 by
A25,
XXREAL_0: 1;
hence contradiction by
A22,
Lm55;
end;
then
A26: 1
< k2 by
A15,
XXREAL_0: 1;
A27: k2
< (k
-
0 ) by
XREAL_1: 15;
then k2
<= (
len W1) by
A8,
XXREAL_0: 2;
hence contradiction by
A8,
A24,
A26,
A27;
end;
set e = (W1
. (k2
+ 1)), W2 = (W5
.addEdge e);
k2
< ((
len W1)
-
0 ) by
A8,
XREAL_1: 15;
then
A28: e
Joins ((W1
. k2),(W1
. (k2
+ 2)),G) by
Def3;
A29: k2
< ((
len W3)
-
0 ) by
A13,
XREAL_1: 15;
then
A30: (
len W4)
= k2 by
Lm22;
A31:
now
let m be
odd
Element of
NAT ;
assume that
A32: 1
< m and
A33: m
<= (
len W5);
consider n be
odd
Element of
NAT such that
A34: m
<= n and
A35: n
<= (
len W4) and
A36: (W5
. m)
= (W4
. n) by
A33,
Th162;
A37: 1
< n by
A32,
A34,
XXREAL_0: 2;
then n
in (
dom W4) by
A35,
FINSEQ_3: 25;
then
A38: (W5
. m)
= (W3
. n) by
A14,
A36,
Lm23;
A39: (n
+
0 )
< (k2
+ 2) by
A30,
A35,
XREAL_1: 8;
then
A40: n
<= (
len W1) by
A8,
XXREAL_0: 2;
n
in (
dom W3) by
A13,
A37,
A39,
FINSEQ_3: 25;
then (W5
. m)
= (W1
. n) by
A8,
A11,
A38,
Lm23;
hence (W5
. m)
<> (W1
. k) by
A8,
A37,
A39,
A40;
end;
(k2
+ 1)
<= k by
A13,
A29,
NAT_1: 13;
then
A41: (k2
+ 1)
<= (
len W1) by
A8,
XXREAL_0: 2;
now
assume
A42: e
in (W5
.edges() );
(W5
.edges() )
c= (W4
.edges() ) by
Th161;
then
consider n be
even
Element of
NAT such that
A43: 1
<= n and
A44: n
<= (
len W4) and
A45: (W4
. n)
= e by
A42,
Lm46;
A46: n
< (k2
+ 1) by
A30,
A44,
NAT_1: 13;
n
<= (k2
+ 2) by
A30,
A44,
NAT_1: 12;
then
A47: n
in (
dom W3) by
A13,
A43,
FINSEQ_3: 25;
n
in (
dom W4) by
A43,
A44,
FINSEQ_3: 25;
then e
= (W3
. n) by
A14,
A45,
Lm23;
then (W1
. (k2
+ 1))
= (W1
. n) by
A8,
A11,
A47,
Lm23;
hence contradiction by
A41,
A43,
A46,
Lm57;
end;
then
reconsider W2 as
Path of G by
A28,
A17,
A20,
A31,
Th148;
set g = (((k2
+ 1)
div 2)
.--> e), es = (es5
+* g);
A48: (
dom es)
= ((
dom es5)
\/ (
dom g)) by
FUNCT_4:def 1;
A50: (g
. ((k2
+ 1)
div 2))
= e by
FUNCOP_1: 72;
A51:
now
let z be
object;
assume
A52: z
in es;
then
consider x,y be
object such that
A53: z
=
[x, y] by
RELAT_1:def 1;
A54: x
in (
dom es) by
A52,
A53,
FUNCT_1: 1;
A55: y
= (es
. x) by
A52,
A53,
FUNCT_1: 1;
now
per cases ;
suppose
A56: x
in (
dom g);
then
A57: x
= ((k2
+ 1)
div 2) by
TARSKI:def 1;
A58: 1
<= (k2
+ 1) by
NAT_1: 12;
then (W1
. (k2
+ 1))
= ((W1
.edgeSeq() )
. x) by
A41,
A57,
Lm40;
then
A59: ((W1
.edgeSeq() )
. x)
= y by
A48,
A50,
A54,
A55,
A56,
A57,
FUNCT_4:def 1;
x
in (
dom (W1
.edgeSeq() )) by
A41,
A57,
A58,
Lm40;
hence z
in (W1
.edgeSeq() ) by
A53,
A59,
FUNCT_1: 1;
end;
suppose
A60: not x
in (
dom g);
then
A61: x
in (
dom es5) by
A48,
A54,
XBOOLE_0:def 3;
y
= (es5
. x) by
A48,
A54,
A55,
A60,
FUNCT_4:def 1;
then z
in es5 by
A53,
A61,
FUNCT_1: 1;
hence z
in (W1
.edgeSeq() );
end;
end;
hence z
in (W1
.edgeSeq() );
end;
then es
c= (W1
.edgeSeq() ) by
TARSKI:def 3;
then (
dom es)
c= (
dom (W1
.edgeSeq() )) by
RELAT_1: 11;
then
A62: (
dom es)
c= (
Seg (
len (W1
.edgeSeq() ))) by
FINSEQ_1:def 3;
then
reconsider es as
FinSubsequence by
FINSEQ_1:def 12;
reconsider es as
Subset of (W1
.edgeSeq() ) by
A51,
TARSKI:def 3;
A63: (
dom es5)
c= (
dom (W4
.edgeSeq() )) by
FINSEQ_6: 151;
now
thus (
dom es5)
c= (
Seg (
len (W1
.edgeSeq() ))) & (
dom g)
c= (
Seg (
len (W1
.edgeSeq() ))) by
A48,
A62,
XBOOLE_1: 11;
let x,y be
Nat such that
A64: x
in (
dom es5) and
A65: y
in (
dom g);
x
<= (
len (W4
.edgeSeq() )) by
A63,
A64,
FINSEQ_3: 25;
then (2
* x)
<= (2
* (
len (W4
.edgeSeq() ))) by
XREAL_1: 64;
then ((2
* x)
+ 1)
<= ((2
* (
len (W4
.edgeSeq() )))
+ 1) by
XREAL_1: 7;
then
A66: ((2
* x)
+ 1)
<= k2 by
A30,
Def15;
A67: 2
divides (k2
+ 1) by
PEPIN: 22;
y
= ((k2
+ 1)
div 2) by
A65,
TARSKI:def 1;
then (2
* y)
= (k2
+ 1) by
A67,
NAT_D: 3;
then ((2
* x)
+ 1)
< (2
* y) by
A66,
NAT_1: 13;
then
A68: (((2
* x)
+ 1)
- 1)
< ((2
* y)
-
0 ) by
XREAL_1: 14;
then x
<= y by
XREAL_1: 68;
hence x
< y by
A68,
XXREAL_0: 1;
end;
then
A69: (
Sgm (
dom es))
= ((
Sgm (
dom es5))
^ (
Sgm (
dom g))) by
A48,
FINSEQ_3: 42;
A70: k2
in (
dom W3) by
A15,
A29,
FINSEQ_3: 25;
then
A71: (W5
.last() )
= (W1
. k2) by
A8,
A16,
A11,
Lm23;
now
now
assume ((
dom es5)
/\ (
dom g))
<>
{} ;
then
consider x be
object such that
A72: x
in ((
dom es5)
/\ (
dom g)) by
XBOOLE_0:def 1;
x
in (
dom g) by
A72;
then
A73: x
= ((k2
+ 1)
div 2) by
TARSKI:def 1;
x
in (
dom es5) by
A72,
XBOOLE_0:def 4;
then ((k2
+ 1)
div 2)
<= (
len (W4
.edgeSeq() )) by
A63,
A73,
FINSEQ_3: 25;
then
A74: (2
* ((k2
+ 1)
div 2))
<= (2
* (
len (W4
.edgeSeq() ))) by
XREAL_1: 64;
2
divides (k2
+ 1) by
PEPIN: 22;
then (k2
+ 1)
<= (2
* (
len (W4
.edgeSeq() ))) by
A74,
NAT_D: 3;
then ((k2
+ 1)
+ 1)
<= ((2
* (
len (W4
.edgeSeq() )))
+ 1) by
XREAL_1: 7;
then ((1
+ 1)
+ k2)
<= (
0
+ k2) by
A30,
Def15;
hence contradiction by
XREAL_1: 6;
end;
then
A75: (
dom es5)
misses (
dom g) by
XBOOLE_0:def 7;
(
len W2)
= ((
len W5)
+ 2) by
A28,
A71,
Lm37;
then
A76: ((
len W5)
+ 2)
= ((2
* (
len (W2
.edgeSeq() )))
+ 1) by
Def15;
A77: (
len (
Sgm (
dom es5)))
= (
card (
dom es5)) by
A48,
A62,
FINSEQ_3: 39,
XBOOLE_1: 11
.= (
card es5) by
CARD_1: 62
.= (
len (W5
.edgeSeq() )) by
A9,
Th4;
A78:
now
assume ((k2
+ 1)
div 2)
=
0 ;
then
A79: (2
* ((k2
+ 1)
div 2))
= (2
*
0 );
2
divides (k2
+ 1) by
PEPIN: 22;
hence contradiction by
A79,
NAT_D: 3;
end;
A80: (
Sgm (
dom g))
=
<*((k2
+ 1)
div 2)*> by
A78,
FINSEQ_3: 44;
then
A81: (
len (
Sgm (
dom g)))
= 1 by
FINSEQ_1: 40;
A82: ((
Sgm (
dom g))
. 1)
= ((k2
+ 1)
div 2) by
A80,
FINSEQ_1: 40;
set h = (
Sgm (
dom es));
A83: (
Seq es)
= (es
* h) by
FINSEQ_1:def 14;
(
len (
Seq es))
= (
card es) by
Th4
.= (
card (
dom es)) by
CARD_1: 62;
then (
len (
Seq es))
= ((
card (
dom es5))
+ (
card (
dom g))) by
A48,
A75,
CARD_2: 40
.= ((
card (
dom es5))
+ 1) by
CARD_1: 30
.= ((
card es5)
+ 1) by
CARD_1: 62
.= ((
len (W5
.edgeSeq() ))
+ 1) by
A9,
Th4;
then
A84: ((2
* (
len (
Seq es)))
+ 1)
= (((2
* (
len (W5
.edgeSeq() )))
+ 1)
+ 2)
.= ((2
* (
len (W2
.edgeSeq() )))
+ 1) by
A76,
Def15;
hence (
len (W2
.edgeSeq() ))
= (
len (
Seq es));
let x be
Nat;
assume that
A85: 1
<= x and
A86: x
<= (
len (W2
.edgeSeq() ));
A87: (
dom es5)
c= (
Seg (
len (W1
.edgeSeq() ))) by
A48,
A62,
XBOOLE_1: 11;
A88: x
in (
dom (
Seq es)) by
A84,
A85,
A86,
FINSEQ_3: 25;
then
A89: (h
. x)
in (
dom es) by
A83,
FUNCT_1: 11;
A90: (
dom h)
= (
Seg ((
len (
Sgm (
dom es5)))
+ (
len (
Sgm (
dom g))))) by
A69,
FINSEQ_1:def 7;
A91: e
Joins ((W5
.last() ),(W1
. k),G) by
A8,
A28,
A16,
A11,
A70,
Lm23;
A92: ((
Seq es)
. x)
= (es
. (h
. x)) by
A83,
A88,
FUNCT_1: 12;
A93: x
in (
dom h) by
A83,
A88,
FUNCT_1: 11;
now
per cases ;
suppose
A94: x
<= (
len (
Sgm (
dom es5)));
then
A95: x
in (
dom (
Sgm (
dom es5))) by
A85,
FINSEQ_3: 25;
then
A96: (h
. x)
= ((
Sgm (
dom es5))
. x) by
A69,
FINSEQ_1:def 7;
(
rng (
Sgm (
dom es5)))
= (
dom es5) by
A87,
FINSEQ_1:def 13;
then (h
. x)
in (
dom es5) by
A95,
A96,
FUNCT_1:def 3;
then not (h
. x)
in (
dom g) by
A75,
XBOOLE_0: 3;
then
A97: ((
Seq es)
. x)
= (es5
. ((
Sgm (
dom es5))
. x)) by
A48,
A89,
A92,
A96,
FUNCT_4:def 1;
A98: x
in (
dom (W5
.edgeSeq() )) by
A85,
A77,
A94,
FINSEQ_3: 25;
then
A99: (2
* x)
in (
dom W5) by
Lm41;
((W5
.edgeSeq() )
. x)
= (W5
. (2
* x)) by
A85,
A77,
A94,
Def15;
then
A100: (W2
. (2
* x))
= ((W5
.edgeSeq() )
. x) by
A91,
A99,
Lm38
.= ((es5
* (
Sgm (
dom es5)))
. x) by
A9,
FINSEQ_1:def 14;
x
in (
dom (es5
* (
Sgm (
dom es5)))) by
A9,
A98,
FINSEQ_1:def 14;
hence ((
Seq es)
. x)
= (W2
. (2
* x)) by
A97,
A100,
FUNCT_1: 12;
end;
suppose (
len (
Sgm (
dom es5)))
< x;
then
A101: ((
len (
Sgm (
dom es5)))
+ 1)
<= x by
NAT_1: 13;
x
<= ((
len (
Sgm (
dom es5)))
+ 1) by
A93,
A90,
A81,
FINSEQ_1: 1;
then
A102: x
= ((
len (
Sgm (
dom es5)))
+ 1) by
A101,
XXREAL_0: 1;
1
in (
dom (
Sgm (
dom g))) by
A81,
FINSEQ_3: 25;
then
A103: (h
. x)
= ((k2
+ 1)
div 2) by
A69,
A82,
A102,
FINSEQ_1:def 7;
then (h
. x)
in (
dom g) by
TARSKI:def 1;
then
A104: ((
Seq es)
. x)
= (g
. ((k2
+ 1)
div 2)) by
A48,
A89,
A92,
A103,
FUNCT_4:def 1
.= e by
FUNCOP_1: 72
.= (W2
. ((
len W5)
+ 1)) by
A91,
Lm38;
(2
* x)
= (((2
* (
len (W5
.edgeSeq() )))
+ 1)
+ 1) by
A77,
A102
.= ((
len W5)
+ 1) by
Def15;
hence ((
Seq es)
. x)
= (W2
. (2
* x)) by
A104;
end;
end;
hence ((W2
.edgeSeq() )
. x)
= ((
Seq es)
. x) by
A85,
A86,
Def15;
end;
then
A105: (W2
.edgeSeq() )
= (
Seq es) by
FINSEQ_1: 14;
1
<= (
len W3) by
ABIAN: 12;
then ((2
*
0 )
+ 1)
in (
dom W3) by
FINSEQ_3: 25;
then (W5
.first() )
= (W1
.first() ) by
A8,
A18,
A11,
Lm23;
then W5
is_Walk_from ((W1
.first() ),(W1
. k2)) by
A71;
then W2
is_Walk_from ((W1
.first() ),(W1
.last() )) by
A8,
A28,
Lm39;
then
reconsider W2 as
Path of W1 by
A105,
Def32;
take W2;
thus W2 is non
trivial by
A28,
A17,
Th130;
end;
end;
hence thesis;
end;
theorem ::
GLIB_001:167
Th165: for G1 be
_Graph, G2 be
Subgraph of G1, W be
Walk of G2 holds W is
Walk of G1
proof
let G1 be
_Graph, G2 be
Subgraph of G1, W be
Walk of G2;
set VG1 = (
the_Vertices_of G1), VG2 = (
the_Vertices_of G2);
set EG1 = (
the_Edges_of G1), EG2 = (
the_Edges_of G2);
A1: EG2
c= (VG1
\/ EG1) by
XBOOLE_1: 10;
A2:
now
thus (
len W) is
odd;
(W
. 1)
in VG2 by
Def3;
hence (W
. 1)
in VG1;
let n be
odd
Element of
NAT ;
assume n
< (
len W);
then (W
. (n
+ 1))
Joins ((W
. n),(W
. (n
+ 2)),G2) by
Def3;
hence (W
. (n
+ 1))
Joins ((W
. n),(W
. (n
+ 2)),G1) by
GLIB_000: 72;
end;
VG2
c= (VG1
\/ EG1) by
XBOOLE_1: 10;
then (VG2
\/ EG2)
c= (VG1
\/ EG1) by
A1,
XBOOLE_1: 8;
then for y be
object st y
in (
rng W) holds y
in (VG1
\/ EG1) by
TARSKI:def 3;
then (
rng W)
c= (VG1
\/ EG1) by
TARSKI:def 3;
then W is
FinSequence of (VG1
\/ EG1) by
FINSEQ_1:def 4;
hence thesis by
A2,
Def3;
end;
theorem ::
GLIB_001:168
Th166: for G1 be
_Graph, G2 be
Subgraph of G1, W be
Walk of G1 st W is
trivial & (W
.first() )
in (
the_Vertices_of G2) holds W is
Walk of G2
proof
let G1 be
_Graph, G2 be
Subgraph of G1, W be
Walk of G1;
assume that
A1: W is
trivial and
A2: (W
.first() )
in (
the_Vertices_of G2);
consider v be
Vertex of G1 such that
A3: W
= (G1
.walkOf v) by
A1,
Lm56;
reconsider v9 = v as
Vertex of G2 by
A2,
A3,
Th12;
W
= (G2
.walkOf v9) by
A3;
hence thesis;
end;
theorem ::
GLIB_001:169
Th167: for G1 be
_Graph, G2 be
Subgraph of G1, W be
Walk of G1 st W is non
trivial & (W
.edges() )
c= (
the_Edges_of G2) holds W is
Walk of G2
proof
let G1 be
_Graph, G2 be
Subgraph of G1, W be
Walk of G1;
assume that
A1: W is non
trivial and
A2: (W
.edges() )
c= (
the_Edges_of G2);
set VG2 = (
the_Vertices_of G2), EG2 = (
the_Edges_of G2);
set WV = (W
.vertices() ), WE = (W
.edges() );
A3:
now
let n be
odd
Element of
NAT such that
A4: n
<= (
len W);
now
per cases ;
suppose
A5: n
= (
len W);
A6: 1
<= n by
ABIAN: 12;
n
<> 1 by
A1,
A5,
Lm54;
then 1
< n by
A6,
XXREAL_0: 1;
then (1
+ 1)
<= n by
NAT_1: 13;
then
reconsider n5 = (n
- (2
* 1)) as
odd
Element of
NAT by
INT_1: 5;
(n5
+ 1)
= (n
- (2
- 1));
then
A7: (n5
+ 1)
<= ((
len W)
-
0 ) by
A5,
XREAL_1: 13;
n5
< ((
len W)
-
0 ) by
A5,
XREAL_1: 15;
then
A8: (W
. (n5
+ 1))
Joins ((W
. n5),(W
. (n5
+ 2)),G1) by
Def3;
1
<= (n5
+ 1) by
NAT_1: 12;
then (W
. (n5
+ 1))
in (W
.edges() ) by
A7,
Lm46;
then (W
. (n5
+ 1))
Joins ((W
. n5),(W
. (n5
+ 2)),G2) by
A2,
A8,
GLIB_000: 73;
hence (W
. n)
in (
the_Vertices_of G2) by
GLIB_000: 13;
end;
suppose n
<> (
len W);
then
A9: n
< (
len W) by
A4,
XXREAL_0: 1;
then
A10: (W
. (n
+ 1))
Joins ((W
. n),(W
. (n
+ 2)),G1) by
Def3;
A11: 1
<= (n
+ 1) by
NAT_1: 12;
(n
+ 1)
<= (
len W) by
A9,
NAT_1: 13;
then (W
. (n
+ 1))
in (W
.edges() ) by
A11,
Lm46;
then (W
. (n
+ 1))
Joins ((W
. n),(W
. (n
+ 2)),G2) by
A2,
A10,
GLIB_000: 73;
hence (W
. n)
in (
the_Vertices_of G2) by
GLIB_000: 13;
end;
end;
hence (W
. n)
in VG2;
end;
now
let y be
object;
assume y
in (
rng W);
then
A12: y
in (WV
\/ WE) by
Th99;
now
per cases by
A12,
XBOOLE_0:def 3;
suppose y
in WV;
then ex n be
odd
Element of
NAT st n
<= (
len W) & (W
. n)
= y by
Lm45;
then y
in VG2 by
A3;
hence y
in (VG2
\/ EG2) by
XBOOLE_0:def 3;
end;
suppose y
in WE;
hence y
in (VG2
\/ EG2) by
A2,
XBOOLE_0:def 3;
end;
end;
hence y
in (VG2
\/ EG2);
end;
then (
rng W)
c= (VG2
\/ EG2) by
TARSKI:def 3;
then
A13: W is
FinSequence of (VG2
\/ EG2) by
FINSEQ_1:def 4;
now
reconsider aa1 = 1 as
odd
Element of
NAT by
JORDAN12: 2;
thus (
len W) is
odd;
aa1
<= (
len W) by
ABIAN: 12;
hence (W
. 1)
in VG2 by
A3;
let n be
odd
Element of
NAT ;
A14: 1
<= (n
+ 1) by
NAT_1: 12;
assume
A15: n
< (
len W);
then
A16: (W
. (n
+ 1))
Joins ((W
. n),(W
. (n
+ 2)),G1) by
Def3;
(n
+ 1)
<= (
len W) by
A15,
NAT_1: 13;
then (W
. (n
+ 1))
in (W
.edges() ) by
A14,
Lm46;
hence (W
. (n
+ 1))
Joins ((W
. n),(W
. (n
+ 2)),G2) by
A2,
A16,
GLIB_000: 73;
end;
hence thesis by
A13,
Def3;
end;
theorem ::
GLIB_001:170
Th168: for G1 be
_Graph, G2 be
Subgraph of G1, W be
Walk of G1 st (W
.vertices() )
c= (
the_Vertices_of G2) & (W
.edges() )
c= (
the_Edges_of G2) holds W is
Walk of G2
proof
let G1 be
_Graph, G2 be
Subgraph of G1, W be
Walk of G1;
assume that
A1: (W
.vertices() )
c= (
the_Vertices_of G2) and
A2: (W
.edges() )
c= (
the_Edges_of G2);
now
per cases ;
suppose W is non
trivial;
hence thesis by
A2,
Th167;
end;
suppose
A3: W is
trivial;
(W
.first() )
in (W
.vertices() ) by
Th86;
hence thesis by
A1,
A3,
Th166;
end;
end;
hence thesis;
end;
theorem ::
GLIB_001:171
for G1 be non
_trivial
_Graph, W be
Walk of G1, v be
Vertex of G1, G2 be
removeVertex of G1, v st not v
in (W
.vertices() ) holds W is
Walk of G2
proof
let G1 be non
_trivial
_Graph, W be
Walk of G1, v be
Vertex of G1, G2 be
removeVertex of G1, v;
assume
A1: not v
in (W
.vertices() );
set EG2 = ((
the_Edges_of G1)
\ (v
.edgesInOut() ));
set W2 = W, VG2 = ((
the_Vertices_of G1)
\
{v});
(v
.edgesInOut() )
= (G1
.edgesInOut
{v}) by
GLIB_000:def 40;
then
A2: EG2
= (G1
.edgesBetween ((
the_Vertices_of G1)
\
{v})) by
GLIB_000: 35;
now
let y be
object;
assume y
in (
rng W2);
then
consider x be
object such that
A3: x
in (
dom W2) and
A4: y
= (W2
. x) by
FUNCT_1:def 3;
reconsider x as
Element of
NAT by
A3;
A5: x
<= (
len W2) by
A3,
FINSEQ_3: 25;
now
per cases ;
suppose
A6: x is
odd;
A7:
now
assume y
in
{v};
then not y
in (W
.vertices() ) by
A1,
TARSKI:def 1;
hence contradiction by
A4,
A5,
A6,
Lm45;
end;
y
in (
the_Vertices_of G1) by
A4,
A5,
A6,
Lm1;
then y
in VG2 by
A7,
XBOOLE_0:def 5;
hence y
in (VG2
\/ EG2) by
XBOOLE_0:def 3;
end;
suppose x is
even;
then
reconsider x as
even
Element of
NAT ;
consider xaa1 be
odd
Element of
NAT such that
A8: xaa1
= (x
- 1) and
A9: (x
- 1)
in (
dom W2) and
A10: (x
+ 1)
in (
dom W2) and
A11: (W2
. x)
Joins ((W2
. xaa1),(W2
. (x
+ 1)),G1) by
A3,
Lm2;
A12: (x
+ 1)
<= (
len W2) by
A10,
FINSEQ_3: 25;
A13: xaa1
<= (
len W2) by
A8,
A9,
FINSEQ_3: 25;
A14:
now
assume y
in (v
.edgesInOut() );
then
A15: y
in ((v
.edgesIn() )
\/ (v
.edgesOut() )) by
GLIB_000: 60;
now
per cases by
A15,
XBOOLE_0:def 3;
suppose y
in (v
.edgesIn() );
then ((
the_Target_of G1)
. y)
= v by
GLIB_000: 56;
hence v
= (W2
. xaa1) or v
= (W2
. (x
+ 1)) by
A4,
A11,
GLIB_000:def 13;
end;
suppose y
in (v
.edgesOut() );
then ((
the_Source_of G1)
. y)
= v by
GLIB_000: 58;
hence v
= (W2
. xaa1) or v
= (W2
. (x
+ 1)) by
A4,
A11,
GLIB_000:def 13;
end;
end;
then v
= (W2
.vertexAt xaa1) or v
= (W2
.vertexAt (x
+ 1)) by
A13,
A12,
Def8;
hence contradiction by
A1,
A13,
A12,
Th87;
end;
y
in (
the_Edges_of G1) by
A4,
A11,
GLIB_000:def 13;
then y
in EG2 by
A14,
XBOOLE_0:def 5;
hence y
in (VG2
\/ EG2) by
XBOOLE_0:def 3;
end;
end;
then y
in ((
the_Vertices_of G2)
\/ EG2) by
GLIB_000: 47;
hence y
in ((
the_Vertices_of G2)
\/ (
the_Edges_of G2)) by
A2,
GLIB_000: 47;
end;
then (
rng W2)
c= ((
the_Vertices_of G2)
\/ (
the_Edges_of G2)) by
TARSKI:def 3;
then
reconsider W2 as
FinSequence of ((
the_Vertices_of G2)
\/ (
the_Edges_of G2)) by
FINSEQ_1:def 4;
now
reconsider lenW2 = (
len W2) as
odd
Element of
NAT ;
thus (
len W2) is
odd;
(W
.first() )
in (W
.vertices() ) by
Th86;
then
A16: not (W2
. 1)
in
{v} by
A1,
TARSKI:def 1;
(W
.first() )
in (
the_Vertices_of G1);
then (W2
. 1)
in VG2 by
A16,
XBOOLE_0:def 5;
hence (W2
. 1)
in (
the_Vertices_of G2) by
GLIB_000: 47;
let n be
odd
Element of
NAT ;
assume
A17: n
< (
len W2);
then
A18: (W
. (n
+ 1))
Joins ((W
. n),(W
. (n
+ 2)),G1) by
Def3;
then
A19: (W
. (n
+ 1))
in (
the_Edges_of G1) by
GLIB_000:def 13;
(n
+ 1)
<= (
len W2) by
A17,
NAT_1: 13;
then (n
+ 1)
< lenW2 by
XXREAL_0: 1;
then ((n
+ 1)
+ 1)
<= (
len W2) by
NAT_1: 13;
then
A20: (W
. (n
+ 2))
<> v by
A1,
Lm45;
(W
. n)
<> v by
A1,
A17,
Lm45;
then not (W
. (n
+ 1))
in (v
.edgesInOut() ) by
A18,
A20,
GLIB_000: 65;
then (W
. (n
+ 1))
in EG2 by
A19,
XBOOLE_0:def 5;
then (W
. (n
+ 1))
in (
the_Edges_of G2) by
A2,
GLIB_000: 47;
hence (W
. (n
+ 1))
Joins ((W
. n),(W
. (n
+ 2)),G2) by
A18,
GLIB_000: 73;
end;
hence thesis by
Def3;
end;
theorem ::
GLIB_001:172
for G1 be
_Graph, W be
Walk of G1, e be
set, G2 be
removeEdge of G1, e st not e
in (W
.edges() ) holds W is
Walk of G2
proof
let G1 be
_Graph, W be
Walk of G1, e be
set, G2 be
removeEdge of G1, e;
A1: (
the_Edges_of G2)
= ((
the_Edges_of G1)
\
{e}) by
GLIB_000: 53;
assume
A2: not e
in (W
.edges() );
now
let x be
object;
assume
A3: x
in (W
.edges() );
then not x
in
{e} by
A2,
TARSKI:def 1;
hence x
in (
the_Edges_of G2) by
A1,
A3,
XBOOLE_0:def 5;
end;
then
A4: (W
.edges() )
c= (
the_Edges_of G2) by
TARSKI:def 3;
(
the_Vertices_of G2)
= (
the_Vertices_of G1) by
GLIB_000: 53;
then (W
.vertices() )
c= (
the_Vertices_of G2);
hence thesis by
A4,
Th168;
end;
theorem ::
GLIB_001:173
Th171: for G1 be
_Graph, G2 be
Subgraph of G1, x,y,e be
set st e
Joins (x,y,G2) holds (G1
.walkOf (x,e,y))
= (G2
.walkOf (x,e,y))
proof
let G1 be
_Graph, G2 be
Subgraph of G1, x,y,e be
set;
assume
A1: e
Joins (x,y,G2);
then
A2: e
Joins (x,y,G1) by
GLIB_000: 72;
(G2
.walkOf (x,e,y))
=
<*x, e, y*> by
A1,
Def5;
hence thesis by
A2,
Def5;
end;
theorem ::
GLIB_001:174
for G1 be
_Graph, G2 be
Subgraph of G1, W1 be
Walk of G1, W2 be
Walk of G2, e be
set st W1
= W2 & e
in ((W2
.last() )
.edgesInOut() ) holds (W1
.addEdge e)
= (W2
.addEdge e)
proof
let G1 be
_Graph, G2 be
Subgraph of G1, W1 be
Walk of G1, W2 be
Walk of G2, e be
set;
assume that
A1: W1
= W2 and
A2: e
in ((W2
.last() )
.edgesInOut() );
set W2B = (G2
.walkOf ((W2
.last() ),e,((W2
.last() )
.adj e)));
set W1B = (G1
.walkOf ((W1
.last() ),e,((W1
.last() )
.adj e)));
A3: e
Joins ((W2
.last() ),((W2
.last() )
.adj e),G2) by
A2,
GLIB_000: 67;
((W1
.last() )
.adj e)
= ((W2
.last() )
.adj e) by
A1,
A2,
GLIB_000: 80;
then W1B
= W2B by
A1,
A3,
Th171;
hence thesis by
A1,
Th33;
end;
theorem ::
GLIB_001:175
Th173: for G1 be
_Graph, G2 be
Subgraph of G1, W be
Walk of G2 holds (W is
closed implies W is
closed
Walk of G1) & (W is
directed implies W is
directed
Walk of G1) & (W is
trivial implies W is
trivial
Walk of G1) & (W is
Trail-like implies W is
Trail-like
Walk of G1) & (W is
Path-like implies W is
Path-like
Walk of G1) & (W is
vertex-distinct implies W is
vertex-distinct
Walk of G1)
proof
let G1 be
_Graph, G2 be
Subgraph of G1, W be
Walk of G2;
reconsider W9 = W as
Walk of G1 by
Th165;
hereby
assume W is
closed;
then (W
.first() )
= (W
.last() );
then (W9
.first() )
= (W9
.last() );
hence W is
closed
Walk of G1 by
Def24;
end;
hereby
assume
A1: W is
directed;
now
let n be
odd
Element of
NAT ;
A2: 1
<= (n
+ 1) by
NAT_1: 12;
assume
A3: n
< (
len W9);
then (n
+ 1)
<= (
len W9) by
NAT_1: 13;
then (n
+ 1)
in (
dom W9) by
A2,
FINSEQ_3: 25;
then
A4: (W9
. (n
+ 1))
in (
the_Edges_of G2) by
Th7;
((
the_Source_of G2)
. (W9
. (n
+ 1)))
= (W9
. n) by
A1,
A3;
hence ((
the_Source_of G1)
. (W9
. (n
+ 1)))
= (W9
. n) by
A4,
GLIB_000:def 32;
end;
hence W is
directed
Walk of G1 by
Def25;
end;
hereby
assume W is
trivial;
then (
len W9)
= 1 by
Lm55;
hence W is
trivial
Walk of G1 by
Lm54;
end;
A5:
now
assume W is
Trail-like;
then for m,n be
even
Element of
NAT st 1
<= m & m
< n & n
<= (
len W) holds (W9
. m)
<> (W9
. n) by
Lm57;
hence W is
Trail-like
Walk of G1 by
Lm57;
end;
hence W is
Trail-like implies W is
Trail-like
Walk of G1;
W is
Path-like implies W is
Path-like
Walk of G1 by
A5,
Def28;
hence W is
Path-like implies W is
Path-like
Walk of G1;
hereby
assume W is
vertex-distinct;
then for m,n be
odd
Element of
NAT st m
<= (
len W9) & n
<= (
len W9) & (W9
. m)
= (W9
. n) holds m
= n;
hence W is
vertex-distinct
Walk of G1 by
Def29;
end;
end;
theorem ::
GLIB_001:176
Th174: for G1 be
_Graph, G2 be
Subgraph of G1, W1 be
Walk of G1, W2 be
Walk of G2 st W1
= W2 holds (W1 is
closed iff W2 is
closed) & (W1 is
directed iff W2 is
directed) & (W1 is
trivial iff W2 is
trivial) & (W1 is
Trail-like iff W2 is
Trail-like) & (W1 is
Path-like iff W2 is
Path-like) & (W1 is
vertex-distinct iff W2 is
vertex-distinct)
proof
let G1 be
_Graph, G2 be
Subgraph of G1, W1 be
Walk of G1, W2 be
Walk of G2;
assume
A1: W1
= W2;
then
A2: (W1
.last() )
= (W2
.last() );
(W1
.first() )
= (W2
.first() ) by
A1;
hence W1 is
closed iff W2 is
closed by
A2;
now
hereby
assume
A3: W1 is
directed;
now
let n be
odd
Element of
NAT ;
A4: 1
<= (n
+ 1) by
NAT_1: 12;
assume
A5: n
< (
len W2);
then (n
+ 1)
<= (
len W2) by
NAT_1: 13;
then (n
+ 1)
in (
dom W2) by
A4,
FINSEQ_3: 25;
then (W2
. (n
+ 1))
in (
the_Edges_of G2) by
Th7;
then ((
the_Source_of G2)
. (W2
. (n
+ 1)))
= ((
the_Source_of G1)
. (W2
. (n
+ 1))) by
GLIB_000:def 32;
hence ((
the_Source_of G2)
. (W2
. (n
+ 1)))
= (W2
. n) by
A1,
A3,
A5;
end;
hence W2 is
directed;
end;
assume W2 is
directed;
hence W1 is
directed
Walk of G1 by
A1,
Th173;
end;
hence W1 is
directed iff W2 is
directed;
W1 is
trivial iff (
len W2)
= 1 by
A1,
Lm55;
hence W1 is
trivial iff W2 is
trivial by
Lm55;
W1 is
Trail-like iff for m,n be
even
Element of
NAT st 1
<= m & m
< n & n
<= (
len W2) holds (W2
. m)
<> (W2
. n) by
A1,
Lm57;
hence
A6: W1 is
Trail-like iff W2 is
Trail-like by
Lm57;
W1 is
Path-like iff (W1 is
Trail-like & for m,n be
odd
Element of
NAT st m
< n & n
<= (
len W2) holds (W2
. m)
= (W2
. n) implies m
= 1 & n
= (
len W2)) by
A1;
hence W1 is
Path-like iff W2 is
Path-like by
A6;
W1 is
vertex-distinct iff for m,n be
odd
Element of
NAT st m
<= (
len W2) & n
<= (
len W2) & (W2
. m)
= (W2
. n) holds m
= n by
A1;
hence thesis;
end;
theorem ::
GLIB_001:177
G1
== G2 & x is
VertexSeq of G1 implies x is
VertexSeq of G2
proof
assume that
A1: G1
== G2 and
A2: x is
VertexSeq of G1;
reconsider x2 = x as
FinSequence of (
the_Vertices_of G2) by
A1,
A2,
GLIB_000:def 34;
now
let n be
Element of
NAT ;
assume that
A3: 1
<= n and
A4: n
< (
len x2);
consider e be
set such that
A5: e
Joins ((x2
. n),(x2
. (n
+ 1)),G1) by
A2,
A3,
A4,
Def1;
e
Joins ((x2
. n),(x2
. (n
+ 1)),G2) by
A1,
A5,
GLIB_000: 88;
hence ex e be
set st e
Joins ((x2
. n),(x2
. (n
+ 1)),G2);
end;
hence thesis by
Def1;
end;
theorem ::
GLIB_001:178
G1
== G2 & x is
EdgeSeq of G1 implies x is
EdgeSeq of G2
proof
assume that
A1: G1
== G2 and
A2: x is
EdgeSeq of G1;
reconsider es = x as
EdgeSeq of G1 by
A2;
reconsider es2 = es as
FinSequence of (
the_Edges_of G2) by
A1,
GLIB_000:def 34;
consider vs be
FinSequence of (
the_Vertices_of G1) such that
A3: (
len vs)
= ((
len es)
+ 1) and
A4: for n be
Element of
NAT st 1
<= n & n
<= (
len es) holds (es
. n)
Joins ((vs
. n),(vs
. (n
+ 1)),G1) by
Def2;
now
reconsider vs as
FinSequence of (
the_Vertices_of G2) by
A1,
GLIB_000:def 34;
take vs;
thus (
len vs)
= ((
len es)
+ 1) by
A3;
let n be
Element of
NAT ;
assume that
A5: 1
<= n and
A6: n
<= (
len es2);
(es2
. n)
Joins ((vs
. n),(vs
. (n
+ 1)),G1) by
A4,
A5,
A6;
hence (es2
. n)
Joins ((vs
. n),(vs
. (n
+ 1)),G2) by
A1,
GLIB_000: 88;
end;
hence thesis by
Def2;
end;
theorem ::
GLIB_001:179
G1
== G2 & x is
Walk of G1 implies x is
Walk of G2
proof
assume that
A1: G1
== G2 and
A2: x is
Walk of G1;
A3: (
the_Vertices_of G1)
= (
the_Vertices_of G2) by
A1,
GLIB_000:def 34;
then
reconsider W = x as
FinSequence of ((
the_Vertices_of G2)
\/ (
the_Edges_of G2)) by
A1,
A2,
GLIB_000:def 34;
A4:
now
let n be
odd
Element of
NAT ;
assume n
< (
len W);
then (W
. (n
+ 1))
Joins ((W
. n),(W
. (n
+ 2)),G1) by
A2,
Def3;
hence (W
. (n
+ 1))
Joins ((W
. n),(W
. (n
+ 2)),G2) by
A1,
GLIB_000: 88;
end;
(W
. 1)
in (
the_Vertices_of G2) by
A2,
A3,
Def3;
hence thesis by
A2,
A4,
Def3;
end;
theorem ::
GLIB_001:180
G1
== G2 implies (G1
.walkOf (x,e,y))
= (G2
.walkOf (x,e,y))
proof
assume
A1: G1
== G2;
now
per cases ;
suppose
A2: e
Joins (x,y,G1);
then
A3: e
Joins (x,y,G2) by
A1,
GLIB_000: 88;
thus (G1
.walkOf (x,e,y))
=
<*x, e, y*> by
A2,
Def5
.= (G2
.walkOf (x,e,y)) by
A3,
Def5;
end;
suppose
A4: not e
Joins (x,y,G1);
then
A5: not e
Joins (x,y,G2) by
A1,
GLIB_000: 88;
A6: (
the_Vertices_of G1)
= (
the_Vertices_of G2) by
A1,
GLIB_000:def 34;
thus (G1
.walkOf (x,e,y))
= (G1
.walkOf the
Element of (
the_Vertices_of G1)) by
A4,
Def5
.= (G2
.walkOf the
Element of (
the_Vertices_of G2)) by
A6
.= (G2
.walkOf (x,e,y)) by
A5,
Def5;
end;
end;
hence thesis;
end;
theorem ::
GLIB_001:181
for W1 be
Walk of G1, W2 be
Walk of G2 st G1
== G2 & W1
= W2 holds (W1 is
closed iff W2 is
closed) & (W1 is
directed iff W2 is
directed) & (W1 is
trivial iff W2 is
trivial) & (W1 is
Trail-like iff W2 is
Trail-like) & (W1 is
Path-like iff W2 is
Path-like) & (W1 is
vertex-distinct iff W2 is
vertex-distinct)
proof
let W1 be
Walk of G1, W2 be
Walk of G2;
assume that
A1: G1
== G2 and
A2: W1
= W2;
G1 is
Subgraph of G2 by
A1,
GLIB_000: 87;
hence thesis by
A2,
Th174;
end;