chord.miz
begin
theorem ::
CHORD:1
Th1: for n be non
zero
Nat holds (n
- 1) is
Nat & 1
<= n
proof
let n be non
zero
Nat;
A1: (
0
+ 1)
<= n by
NAT_1: 13;
then ((
0
+ 1)
- 1)
<= (n
- 1) by
XREAL_1: 9;
then (n
- 1)
in
NAT by
INT_1: 3;
hence (n
- 1) is
Nat;
thus thesis by
A1;
end;
theorem ::
CHORD:2
Th2: for n be
odd
Nat holds (n
- 1) is
Nat & 1
<= n by
Th1;
Lm1: for a,b,c be
Integer st (a
+ 2)
< b holds (((c
- b)
+ 1)
+ 2)
< ((c
- a)
+ 1)
proof
let a,b,c be
Integer such that
A1: (a
+ 2)
< b;
assume (((c
- b)
+ 1)
+ 2)
>= ((c
- a)
+ 1);
then (((c
- b)
+ 3)
- 3)
>= (((c
- a)
+ 1)
- 3) by
XREAL_1: 9;
then (c
- b)
>= (c
- (a
+ 2));
hence contradiction by
A1,
XREAL_1: 10;
end;
theorem ::
CHORD:3
Th3: for n,m be
odd
Integer st n
< m holds n
<= (m
- 2)
proof
let n,m be
odd
Integer;
assume n
< m;
then (n
+ 1)
<= m by
INT_1: 7;
then ((n
+ 1)
+ (
- 1))
<= (m
+ (
- 1)) by
XREAL_1: 7;
then n
< (m
- 1) by
XXREAL_0: 1;
then (n
+ 1)
<= (m
- 1) by
INT_1: 7;
then ((n
+ 1)
+ (
- 1))
<= ((m
- 1)
+ (
- 1)) by
XREAL_1: 7;
hence thesis;
end;
theorem ::
CHORD:4
Th4: for n,m be
odd
Integer st m
< n holds (m
+ 2)
<= n
proof
let n,m be
odd
Integer;
assume m
< n;
then (m
+ 1)
<= n by
INT_1: 7;
then (m
+ 1)
< n by
XXREAL_0: 1;
then ((m
+ 1)
+ 1)
<= n by
INT_1: 7;
hence thesis;
end;
theorem ::
CHORD:5
Th5: for n be
odd
Nat st 1
<> n holds ex m be
odd
Nat st (m
+ 2)
= n
proof
let n be
odd
Nat;
A1: 1
<= n by
ABIAN: 12;
assume 1
<> n;
then ((2
*
0 )
+ 1)
< n by
A1,
XXREAL_0: 1;
then (1
+ 2)
<= n by
Th4;
then ((1
+ 2)
- 2)
<= (n
- 2) by
XREAL_1: 9;
then (n
- (2
* 1))
in
NAT by
INT_1: 3;
then
reconsider m = (n
- 2) as
odd
Nat;
take m;
thus thesis;
end;
theorem ::
CHORD:6
Th6: for n be
odd
Nat st n
<= 2 holds n
= 1
proof
let n be
odd
Nat such that
A1: n
<= 2;
n
<> (2
* 1);
then n
< (1
+ 1) by
A1,
XXREAL_0: 1;
then
A2: n
<= 1 by
NAT_1: 13;
n
>= 1 by
ABIAN: 12;
hence thesis by
A2,
XXREAL_0: 1;
end;
theorem ::
CHORD:7
Th7: for n be
odd
Nat st n
<= 4 holds n
= 1 or n
= 3
proof
let n be
odd
Nat such that
A1: n
<= 4;
n
<> (2
* 2);
then n
< (3
+ 1) by
A1,
XXREAL_0: 1;
then
A2: n
<= 3 by
NAT_1: 13;
per cases by
A2,
XXREAL_0: 1;
suppose n
= 3;
hence thesis;
end;
suppose n
< (2
+ 1);
then n
<= 2 by
NAT_1: 13;
hence thesis by
Th6;
end;
end;
theorem ::
CHORD:8
Th8: for n be
odd
Nat st n
<= 6 holds n
= 1 or n
= 3 or n
= 5
proof
let n be
odd
Nat such that
A1: n
<= 6;
n
<> (2
* 3);
then n
< (5
+ 1) by
A1,
XXREAL_0: 1;
then
A2: n
<= 5 by
NAT_1: 13;
per cases by
A2,
XXREAL_0: 1;
suppose n
= 5;
hence thesis;
end;
suppose n
< (4
+ 1);
then n
<= 4 by
NAT_1: 13;
hence thesis by
Th7;
end;
end;
theorem ::
CHORD:9
for n be
odd
Nat st n
<= 8 holds n
= 1 or n
= 3 or n
= 5 or n
= 7
proof
let n be
odd
Nat such that
A1: n
<= 8;
n
<> (2
* 4);
then n
< (7
+ 1) by
A1,
XXREAL_0: 1;
then
A2: n
<= 7 by
NAT_1: 13;
per cases by
A2,
XXREAL_0: 1;
suppose n
= 7;
hence thesis;
end;
suppose n
< (6
+ 1);
then n
<= 6 by
NAT_1: 13;
hence thesis by
Th8;
end;
end;
theorem ::
CHORD:10
Th10: for n be
even
Nat st n
<= 1 holds n
=
0
proof
let n be
even
Nat such that
A1: n
<= 1;
n
<> ((2
*
0 )
+ 1);
then n
< (
0
+ 1) by
A1,
XXREAL_0: 1;
hence thesis by
NAT_1: 13;
end;
theorem ::
CHORD:11
Th11: for n be
even
Nat st n
<= 3 holds n
=
0 or n
= 2
proof
let n be
even
Nat such that
A1: n
<= 3;
n
<> ((2
* 1)
+ 1);
then n
< (2
+ 1) by
A1,
XXREAL_0: 1;
then
A2: n
<= 2 by
NAT_1: 13;
per cases by
A2,
XXREAL_0: 1;
suppose n
= 2;
hence thesis;
end;
suppose n
< (1
+ 1);
then n
<= 1 by
NAT_1: 13;
hence thesis by
Th10;
end;
end;
theorem ::
CHORD:12
Th12: for n be
even
Nat st n
<= 5 holds n
=
0 or n
= 2 or n
= 4
proof
let n be
even
Nat such that
A1: n
<= 5;
n
<> ((2
* 2)
+ 1);
then n
< (4
+ 1) by
A1,
XXREAL_0: 1;
then
A2: n
<= 4 by
NAT_1: 13;
per cases by
A2,
XXREAL_0: 1;
suppose n
= 4;
hence thesis;
end;
suppose n
< (3
+ 1);
then n
<= 3 by
NAT_1: 13;
hence thesis by
Th11;
end;
end;
theorem ::
CHORD:13
Th13: for n be
even
Nat st n
<= 7 holds n
=
0 or n
= 2 or n
= 4 or n
= 6
proof
let n be
even
Nat such that
A1: n
<= 7;
n
<> ((2
* 3)
+ 1);
then n
< (6
+ 1) by
A1,
XXREAL_0: 1;
then
A2: n
<= 6 by
NAT_1: 13;
per cases by
A2,
XXREAL_0: 1;
suppose n
= 6;
hence thesis;
end;
suppose n
< (5
+ 1);
then n
<= 5 by
NAT_1: 13;
hence thesis by
Th12;
end;
end;
Lm2: for i,j be
odd
Nat st i
<= j holds ex k be
Nat st (i
+ (2
* k))
= j
proof
let i,j be
odd
Nat;
assume i
<= j;
then
consider jjj be
Nat such that
A1: j
= (i
+ jjj) by
NAT_1: 10;
jjj is
even by
A1;
then
consider jj be
Nat such that
A2: (2
* jj)
= jjj by
ABIAN:def 2;
take jj;
thus thesis by
A1,
A2;
end;
theorem ::
CHORD:14
for p be
FinSequence, n be non
zero
Nat st p is
one-to-one & n
<= (
len p) holds ((p
. n)
.. p)
= n
proof
let S be
FinSequence;
let n be non
zero
Nat such that
A1: S is
one-to-one and
A2: n
<= (
len S);
set m = ((S
. n)
.. S);
(
0
+ 1)
<= n by
NAT_1: 14;
then
A3: n
in (
dom S) by
A2,
FINSEQ_3: 25;
then
A4: (S
. n)
in (
rng S) by
FUNCT_1: 3;
then
A5: (S
. m)
= (S
. n) by
FINSEQ_4: 19;
m
in (
dom S) by
A4,
FINSEQ_4: 20;
hence thesis by
A1,
A3,
A5,
FUNCT_1:def 4;
end;
theorem ::
CHORD:15
Th15: for p be non
empty
FinSequence, T be non
empty
Subset of (
rng p) holds ex x be
set st x
in T & for y be
set st y
in T holds (x
.. p)
<= (y
.. p)
proof
let S be non
empty
FinSequence;
let T be non
empty
Subset of (
rng S);
deffunc
F(
set) = ($1
.. S);
consider m be
Element of T such that
A1: for y be
Element of T holds
F(m)
<=
F(y) from
PRE_CIRC:sch 5;
take m;
thus m
in T;
let y be
set;
assume y
in T;
hence thesis by
A1;
end;
definition
let p be
FinSequence, n be
Nat;
::
CHORD:def1
func p
.followSet (n) ->
finite
set equals (
rng ((n,(
len p))
-cut p));
correctness ;
end
theorem ::
CHORD:16
Th16: for p be
FinSequence, x be
set, n be
Nat st x
in (
rng p) & n
in (
dom p) & p is
one-to-one holds x
in (p
.followSet n) iff (x
.. p)
>= n
proof
let p be
FinSequence, x be
set, n be
Nat such that
A1: x
in (
rng p) and
A2: n
in (
dom p) and
A3: p is
one-to-one;
A4: n
<= (
len p) by
A2,
FINSEQ_3: 25;
hereby
A5: (p
. (x
.. p))
= x by
A1,
FINSEQ_4: 19;
assume x
in (p
.followSet n);
then
consider a be
Nat such that
A6: a
in (
dom ((n,(
len p))
-cut p)) and
A7: (((n,(
len p))
-cut p)
. a)
= x by
FINSEQ_2: 10;
A8: (x
.. p)
in (
dom p) by
A1,
FINSEQ_4: 20;
ex k be
Nat st k
in (
dom p) & (p
. k)
= (((n,(
len p))
-cut p)
. a) & (k
+ 1)
= (n
+ a) & n
<= k & k
<= (
len p) by
A6,
GRAPH_3: 2;
hence (x
.. p)
>= n by
A3,
A7,
A8,
A5,
FUNCT_1:def 4;
end;
assume (x
.. p)
>= n;
then
consider k be
Nat such that
A9: (x
.. p)
= (n
+ k) by
NAT_1: 10;
A10: 1
<= n by
A2,
FINSEQ_3: 25;
then
A11: ((
len ((n,(
len p))
-cut p))
+ n)
= ((
len p)
+ 1) by
A4,
FINSEQ_6:def 4;
(x
.. p)
in (
dom p) by
A1,
FINSEQ_4: 20;
then (k
+ n)
<= (
len p) by
A9,
FINSEQ_3: 25;
then ((k
+ n)
+ (
- n))
<= ((
len p)
+ (
- n)) by
XREAL_1: 7;
then
A12: (k
+ 1)
<= (((
len p)
- n)
+ 1) by
XREAL_1: 7;
then k
< (
len ((n,(
len p))
-cut p)) by
A11,
NAT_1: 13;
then
A13: (((n,(
len p))
-cut p)
. (k
+ 1))
= (p
. (x
.. p)) by
A9,
A10,
A4,
FINSEQ_6:def 4;
A14: (p
. (x
.. p))
= x by
A1,
FINSEQ_4: 19;
(
0
+ 1)
<= (k
+ 1) by
XREAL_1: 7;
then (k
+ 1)
in (
dom ((n,(
len p))
-cut p)) by
A11,
A12,
FINSEQ_3: 25;
hence thesis by
A14,
A13,
FUNCT_1: 3;
end;
theorem ::
CHORD:17
Th17: for p,q be
FinSequence, x be
set st p
= (
<*x*>
^ q) holds for n be non
zero
Nat holds (p
.followSet (n
+ 1))
= (q
.followSet n)
proof
let p,q be
FinSequence, x be
set such that
A1: p
= (
<*x*>
^ q);
let n be non
zero
Nat;
(
len
<*x*>)
= 1 by
FINSEQ_1: 40;
then
A2: (
len p)
= (1
+ (
len q)) by
A1,
FINSEQ_1: 22;
per cases ;
suppose
A3: n
> (
len q);
then (n
+ 1)
> (
len p) by
A2,
XREAL_1: 8;
then (((n
+ 1),(
len p))
-cut p)
=
{} by
FINSEQ_6:def 4;
hence thesis by
A3,
FINSEQ_6:def 4;
end;
suppose
A4: n
<= (
len q);
then
A5: (n
+ 1)
<= (
len p) by
A2,
XREAL_1: 7;
A6: (
0
+ 1)
<= n by
NAT_1: 13;
then
A7: 1
<= (n
+ 1) by
XREAL_1: 7;
then
A8: ((
len (((n
+ 1),(
len p))
-cut p))
+ (n
+ 1))
= ((
len p)
+ 1) by
A5,
FINSEQ_6:def 4;
A9: ((
len ((n,(
len q))
-cut q))
+ n)
= ((
len q)
+ 1) by
A4,
A6,
FINSEQ_6:def 4;
then (
dom (((n
+ 1),(
len p))
-cut p))
= (
Seg (
len ((n,(
len q))
-cut q))) by
A2,
A8,
FINSEQ_1:def 3;
then
A10: (
dom (((n
+ 1),(
len p))
-cut p))
= (
dom ((n,(
len q))
-cut q)) by
FINSEQ_1:def 3;
A11:
now
let i be
Nat;
assume i
in (
dom q);
then (p
. ((
len
<*x*>)
+ i))
= (q
. i) by
A1,
FINSEQ_1:def 7;
hence (p
. (i
+ 1))
= (q
. i) by
FINSEQ_1: 40;
end;
A12:
now
let k be
Nat such that
A13: k
in (
dom ((n,(
len q))
-cut q));
A14: k
<= ((
len p)
- n) by
A8,
A10,
A13,
FINSEQ_3: 25;
then
A15: ((
- 1)
+ k)
< (
0
+ ((
len p)
- n)) by
XREAL_1: 8;
1
<= k by
A13,
FINSEQ_3: 25;
then (1
+ (
- 1))
<= (k
+ (
- 1)) by
XREAL_1: 7;
then (k
- 1)
in
NAT by
INT_1: 3;
then
reconsider k1 = (k
- 1) as
Nat;
(n
+ k)
<= (n
+ ((
len p)
- n)) by
A14,
XREAL_1: 7;
then
A16: (((k1
+ n)
+ 1)
+ (
- 1))
<= (((
len q)
+ 1)
+ (
- 1)) by
A2,
XREAL_1: 7;
(1
+
0 )
<= (n
+ k1) by
NAT_1: 13;
then
A17: (n
+ k1)
in (
dom q) by
A16,
FINSEQ_3: 25;
thus ((((n
+ 1),(
len p))
-cut p)
. k)
= ((((n
+ 1),(
len p))
-cut p)
. (k1
+ 1))
.= (p
. ((n
+ 1)
+ k1)) by
A7,
A5,
A8,
A15,
FINSEQ_6:def 4
.= (p
. ((n
+ k1)
+ 1))
.= (q
. (n
+ k1)) by
A11,
A17
.= (((n,(
len q))
-cut q)
. (k1
+ 1)) by
A2,
A4,
A6,
A9,
A15,
FINSEQ_6:def 4
.= (((n,(
len q))
-cut q)
. k);
end;
now
let y be
object;
hereby
assume y
in (
rng (((n
+ 1),(
len p))
-cut p));
then
consider k be
Nat such that
A18: k
in (
dom (((n
+ 1),(
len p))
-cut p)) and
A19: ((((n
+ 1),(
len p))
-cut p)
. k)
= y by
FINSEQ_2: 10;
((((n
+ 1),(
len p))
-cut p)
. k)
= (((n,(
len q))
-cut q)
. k) by
A10,
A12,
A18;
hence y
in (
rng ((n,(
len q))
-cut q)) by
A10,
A18,
A19,
FUNCT_1: 3;
end;
assume y
in (
rng ((n,(
len q))
-cut q));
then
consider k be
Nat such that
A20: k
in (
dom ((n,(
len q))
-cut q)) and
A21: (((n,(
len q))
-cut q)
. k)
= y by
FINSEQ_2: 10;
((((n
+ 1),(
len p))
-cut p)
. k)
= (((n,(
len q))
-cut q)
. k) by
A12,
A20;
hence y
in (
rng (((n
+ 1),(
len p))
-cut p)) by
A10,
A20,
A21,
FUNCT_1: 3;
end;
hence thesis by
TARSKI: 2;
end;
end;
theorem ::
CHORD:18
Th18: for X be
set, f be
FinSequence of X, g be
Subset of f st (
len (
Seq g))
= (
len f) holds (
Seq g)
= f
proof
let X be
set, f be
FinSequence of X, g be
Subset of f such that
A1: (
len (
Seq g))
= (
len f);
A2: (
len (
Seq g))
= (
card g) by
GLIB_001: 5;
now
assume g
<> f;
then g
c< f;
hence contradiction by
A1,
A2,
CARD_2: 48;
end;
hence thesis by
FINSEQ_3: 116;
end;
begin
theorem ::
CHORD:19
Th19: for G be
_Graph, S be
Subset of (
the_Vertices_of G) holds for H be
inducedSubgraph of G, S holds for u,v be
object st u
in S & v
in S holds for e be
object st e
Joins (u,v,G) holds e
Joins (u,v,H)
proof
let G be
_Graph, S be
Subset of (
the_Vertices_of G);
let H be
inducedSubgraph of G, S;
let u,v be
object such that
A1: u
in S and
A2: v
in S;
reconsider S as non
empty
Subset of (
the_Vertices_of G) by
A1;
let e be
object such that
A3: e
Joins (u,v,G);
e
in (G
.edgesBetween S) by
A1,
A2,
A3,
GLIB_000: 32;
then
A4: e
in (
the_Edges_of H) by
GLIB_000:def 37;
(
the_Target_of H)
= ((
the_Target_of G)
| (
the_Edges_of H)) by
GLIB_000: 45;
then
A5: ((
the_Target_of H)
. e)
= ((
the_Target_of G)
. e) by
A4,
FUNCT_1: 49;
A6: ((
the_Source_of G)
. e)
= u & ((
the_Target_of G)
. e)
= v or ((
the_Source_of G)
. e)
= v & ((
the_Target_of G)
. e)
= u by
A3;
(
the_Source_of H)
= ((
the_Source_of G)
| (
the_Edges_of H)) by
GLIB_000: 45;
then ((
the_Source_of H)
. e)
= ((
the_Source_of G)
. e) by
A4,
FUNCT_1: 49;
hence thesis by
A4,
A6,
A5;
end;
theorem ::
CHORD:20
for G be
_Graph, W be
Walk of G holds W is
Trail-like iff (
len W)
= ((2
* (
card (W
.edges() )))
+ 1)
proof
let G be
_Graph, W be
Walk of G;
set WE = (W
.edges() ), WES = (W
.edgeSeq() );
W is
Trail-like iff ((2
* (
card WE))
+ 1)
= ((2
* (
len WES))
+ 1) by
FINSEQ_4: 62;
hence thesis by
GLIB_001:def 15;
end;
theorem ::
CHORD:21
Th21: for G be
_Graph, S be
Subset of (
the_Vertices_of G) holds for H be
removeVertices of G, S holds for W be
Walk of G st (for n be
odd
Nat st n
<= (
len W) holds not (W
. n)
in S) holds W is
Walk of H
proof
let G be
_Graph, S be
Subset of (
the_Vertices_of G);
let H be
removeVertices of G, S;
let W be
Walk of G such that
A1: for n be
odd
Nat st n
<= (
len W) holds not (W
. n)
in S;
A2:
now
assume ((
the_Vertices_of G)
\ S)
=
{} ;
then
A3: (
the_Vertices_of G)
c= S by
XBOOLE_1: 37;
(W
.last() )
in (
the_Vertices_of G);
hence contradiction by
A1,
A3;
end;
then
A4: (
the_Edges_of H)
= (G
.edgesBetween ((
the_Vertices_of G)
\ S)) by
GLIB_000:def 37;
A5: (W
.edges() )
c= (G
.edgesBetween (W
.vertices() )) by
GLIB_001: 109;
A6: (
the_Vertices_of H)
= ((
the_Vertices_of G)
\ S) by
A2,
GLIB_000:def 37;
now
let x be
object such that
A7: x
in (W
.vertices() );
ex n be
odd
Element of
NAT st n
<= (
len W) & (W
. n)
= x by
A7,
GLIB_001: 87;
then not x
in S by
A1;
hence x
in (
the_Vertices_of H) by
A6,
A7,
XBOOLE_0:def 5;
end;
then
A8: (W
.vertices() )
c= (
the_Vertices_of H);
then (G
.edgesBetween (W
.vertices() ))
c= (G
.edgesBetween (
the_Vertices_of H)) by
GLIB_000: 36;
then (W
.edges() )
c= (G
.edgesBetween (
the_Vertices_of H)) by
A5;
hence thesis by
A6,
A4,
A8,
GLIB_001: 170;
end;
theorem ::
CHORD:22
Th22: for G be
_Graph, a,b be
set st a
<> b holds for W be
Walk of G st (W
.vertices() )
=
{a, b} holds ex e be
set st e
Joins (a,b,G)
proof
let G be
_Graph, a,b be
set such that
A1: a
<> b;
let W be
Walk of G such that
A2: (W
.vertices() )
=
{a, b};
A3: (W
.first() )
in (W
.vertices() ) by
GLIB_001: 88;
A4:
now
let x be
set such that
A5: (W
.first() )
= x;
A6: x
= a or x
= b by
A2,
A3,
A5,
TARSKI:def 2;
A7: x
in
{x} by
TARSKI:def 1;
let y be
set such that
A8: y
in (
{a, b}
\
{x});
A9: y
= a or y
= b by
A8,
TARSKI:def 2;
set k = (W
.find y);
A10: (W
. k)
= y by
A2,
A8,
GLIB_001:def 19;
then k
<> 1 by
A5,
A8,
A7,
XBOOLE_0:def 5;
then
consider m be
odd
Nat such that
A11: (m
+ 2)
= k by
Th5;
A12: m
< k by
A11,
NAT_1: 16;
k
<= (
len W) by
A2,
A8,
GLIB_001:def 19;
then
A13: m
< (
len W) by
A11,
NAT_1: 16,
XXREAL_0: 2;
A14: m
in
NAT by
ORDINAL1:def 12;
then (W
. m)
in
{a, b} by
A2,
A13,
GLIB_001: 87;
then
A15: (W
. m)
= a or (W
. m)
= b by
TARSKI:def 2;
(W
. (m
+ 1))
Joins ((W
. m),(W
. k),G) by
A11,
A13,
A14,
GLIB_001:def 3;
hence ex e be
set st e
Joins (x,y,G) by
A2,
A8,
A7,
A6,
A10,
A12,
A13,
A15,
A9,
GLIB_001:def 19,
XBOOLE_0:def 5;
end;
per cases by
A2,
A3,
TARSKI:def 2;
suppose
A16: (W
.first() )
= a;
b
in
{b} by
TARSKI:def 1;
then b
in (
{a, b}
\
{a}) by
A1,
ZFMISC_1: 17;
hence thesis by
A4,
A16;
end;
suppose
A17: (W
.first() )
= b;
a
in
{a} by
TARSKI:def 1;
then a
in (
{a, b}
\
{b}) by
A1,
ZFMISC_1: 17;
then ex e be
set st e
Joins (b,a,G) by
A4,
A17;
hence thesis by
GLIB_000: 14;
end;
end;
theorem ::
CHORD:23
Th23: for G be
_Graph, S be non
empty
Subset of (
the_Vertices_of G) holds for H be
inducedSubgraph of G, S holds for W be
Walk of G st (W
.vertices() )
c= S holds W is
Walk of H
proof
let G be
_Graph, S be non
empty
Subset of (
the_Vertices_of G);
let H be
inducedSubgraph of G, S;
A1: (
the_Vertices_of H)
= S by
GLIB_000:def 37;
A2: (
the_Edges_of H)
= (G
.edgesBetween S) by
GLIB_000:def 37;
let W be
Walk of G;
assume (W
.vertices() )
c= S;
then
A3: (W
.vertices() )
c= (
the_Vertices_of H) by
GLIB_000:def 37;
A4: (W
.edges() )
c= (G
.edgesBetween (W
.vertices() )) by
GLIB_001: 109;
(G
.edgesBetween (W
.vertices() ))
c= (G
.edgesBetween (
the_Vertices_of H)) by
A3,
GLIB_000: 36;
then (W
.edges() )
c= (
the_Edges_of H) by
A1,
A2,
A4;
hence thesis by
A3,
GLIB_001: 170;
end;
theorem ::
CHORD:24
Th24: for G1,G2 be
_Graph st G1
== G2 holds for W1 be
Walk of G1, W2 be
Walk of G2 st W1
= W2 holds W1 is
Cycle-like implies W2 is
Cycle-like by
GLIB_001: 181;
theorem ::
CHORD:25
Th25: for G be
_Graph, P be
Path of G, m,n be
odd
Nat st m
<= (
len P) & n
<= (
len P) & (P
. m)
= (P
. n) holds m
= n or m
= 1 & n
= (
len P) or m
= (
len P) & n
= 1
proof
let G be
_Graph, P be
Path of G, m,n be
odd
Nat such that
A1: m
<= (
len P) and
A2: n
<= (
len P) and
A3: (P
. m)
= (P
. n);
A4: m
in
NAT by
ORDINAL1:def 12;
A5: n
in
NAT by
ORDINAL1:def 12;
m
= n or m
< n or n
< m by
XXREAL_0: 1;
hence thesis by
A1,
A2,
A3,
A4,
A5,
GLIB_001:def 28;
end;
theorem ::
CHORD:26
for G be
_Graph, P be
Path of G st P is
open holds for a,e,b be
set st not a
in (P
.vertices() ) & b
= (P
.first() ) & e
Joins (a,b,G) holds ((G
.walkOf (a,e,b))
.append P) is
Path-like
proof
let G be
_Graph, P be
Path of G such that
A1: P is
open;
let a,e,b be
set such that
A2: not a
in (P
.vertices() ) and
A3: b
= (P
.first() ) and
A4: e
Joins (a,b,G);
set T = (G
.walkOf (a,e,b));
A5: (T
.last() )
= (P
.first() ) by
A3,
A4,
GLIB_001: 15;
set J = (T
.append P);
3
in (
Seg 3) by
FINSEQ_1: 3;
then 3
in (
Seg (
len T)) by
A4,
GLIB_001: 14;
then 3
in (
dom T) by
FINSEQ_1:def 3;
then (J
. 3)
= (T
. 3) by
GLIB_001: 32;
then
A6: (J
. 3)
= (T
.last() ) by
A4,
GLIB_001: 14;
then
A7: (J
. 3)
= b by
A4,
GLIB_001: 15;
A8:
now
let m,n be
odd
Nat such that
A9: m
< n and
A10: n
<= (
len J);
assume
A11: (J
. m)
= (J
. n);
A12: 1
<= m by
ABIAN: 12;
then ((2
*
0 )
+ 1)
< n by
A9,
XXREAL_0: 2;
then
A13: (1
+ 2)
<= n by
Th4;
now
assume m
= 1;
then (J
. m)
= (J
.first() );
then (J
. m)
= (T
.first() ) by
A5,
GLIB_001: 30;
then
A14: not (J
. m)
in (P
.vertices() ) by
A2,
A4,
GLIB_001: 15;
per cases by
A13,
XXREAL_0: 1;
suppose n
= 3;
hence contradiction by
A3,
A7,
A11,
A14,
GLIB_001: 88;
end;
suppose
A15: n
> 3;
then not n
in (
Seg 3) by
FINSEQ_1: 1;
then not n
in (
Seg (
len T)) by
A4,
GLIB_001: 14;
then
A16: not n
in (
dom T) by
FINSEQ_1:def 3;
1
<= n by
A15,
XXREAL_0: 2;
then n
in (
dom J) by
A10,
FINSEQ_3: 25;
then
consider j be
Element of
NAT such that
A17: j
< (
len P) and
A18: n
= ((
len T)
+ j) by
A16,
GLIB_001: 34;
reconsider jj = j as
even
Nat by
A18;
reconsider j1 = (jj
+ 1) as
odd
Nat;
(j
+ 1)
<= (
len P) by
A17,
NAT_1: 13;
then (P
. j1)
in (P
.vertices() ) by
GLIB_001: 87;
hence contradiction by
A5,
A11,
A14,
A17,
A18,
GLIB_001: 33;
end;
end;
then ((2
*
0 )
+ 1)
< m by
A12,
XXREAL_0: 1;
then
A19: (1
+ 2)
<= m by
Th4;
then 3
<= n by
A9,
XXREAL_0: 2;
then 1
<= n by
XXREAL_0: 2;
then n
in (
Seg (
len J)) by
A10,
FINSEQ_1: 1;
then
A20: n
in (
dom J) by
FINSEQ_1:def 3;
3
< n by
A9,
A19,
XXREAL_0: 2;
then not n
in (
Seg 3) by
FINSEQ_1: 1;
then not n
in (
Seg (
len T)) by
A4,
GLIB_001: 14;
then not n
in (
dom T) by
FINSEQ_1:def 3;
then
consider j be
Element of
NAT such that
A21: j
< (
len P) and
A22: n
= ((
len T)
+ j) by
A20,
GLIB_001: 34;
reconsider jj = j as
even
Nat by
A22;
reconsider j1 = (jj
+ 1) as
odd
Nat;
A23: j1
<= (
len P) by
A21,
NAT_1: 13;
m
< (
len J) by
A9,
A10,
XXREAL_0: 2;
then
A24: m
in (
dom J) by
A12,
FINSEQ_3: 25;
A25: (J
. n)
= (P
. (j
+ 1)) by
A5,
A21,
A22,
GLIB_001: 33;
now
assume m
= 3;
then
A26: (J
. m)
= (P
. 1) by
A3,
A4,
A6,
GLIB_001: 15;
0
<> j by
A4,
A9,
A19,
A22,
GLIB_001: 14;
then ((2
*
0 )
+ 1)
< j1 by
XREAL_1: 8;
hence contradiction by
A1,
A11,
A25,
A23,
A26,
GLIB_001: 147;
end;
then 3
< m by
A19,
XXREAL_0: 1;
then not m
in (
Seg 3) by
FINSEQ_1: 1;
then not m
in (
Seg (
len T)) by
A4,
GLIB_001: 14;
then not m
in (
dom T) by
FINSEQ_1:def 3;
then
consider k be
Element of
NAT such that
A27: k
< (
len P) and
A28: m
= ((
len T)
+ k) by
A24,
GLIB_001: 34;
reconsider kk = k as
even
Nat by
A28;
reconsider k1 = (kk
+ 1) as
odd
Nat;
k
< j by
A9,
A22,
A28,
XREAL_1: 7;
then
A29: k1
< j1 by
XREAL_1: 8;
(J
. m)
= (P
. (k
+ 1)) by
A5,
A27,
A28,
GLIB_001: 33;
hence contradiction by
A1,
A11,
A25,
A23,
A29,
GLIB_001: 147;
end;
now
let m,n be
odd
Element of
NAT such that
A30: m
<= (
len J) and
A31: n
<= (
len J);
assume
A32: (J
. m)
= (J
. n);
then
A33: not n
< m by
A8,
A30;
m
>= n by
A8,
A31,
A32;
hence n
= m by
A33,
XXREAL_0: 1;
end;
hence thesis by
GLIB_001: 146;
end;
theorem ::
CHORD:27
Th27: for G be
_Graph, P,H be
Path of G st (P
.edges() )
misses (H
.edges() ) & P is
open & H is non
trivial & H is
open & ((P
.vertices() )
/\ (H
.vertices() ))
=
{(P
.first() ), (P
.last() )} & (H
.first() )
= (P
.last() ) & (H
.last() )
= (P
.first() ) holds (P
.append H) is
Cycle-like
proof
let G be
_Graph, P,H be
Path of G such that
A1: (P
.edges() )
misses (H
.edges() ) and
A2: P is
open and
A3: H is non
trivial and
A4: H is
open and
A5: ((P
.vertices() )
/\ (H
.vertices() ))
=
{(P
.first() ), (P
.last() )} and
A6: (H
.first() )
= (P
.last() ) and
A7: (H
.last() )
= (P
.first() );
set J = (P
.append H);
A8: (J
.first() )
= (P
.first() ) by
A6,
GLIB_001: 30;
A9:
now
let m be
odd
Nat;
A10: 1
<= m by
ABIAN: 12;
assume m
<= (
len P);
then m
in (
dom P) by
A10,
FINSEQ_3: 25;
hence (J
. m)
= (P
. m) by
GLIB_001: 32;
end;
A11: for m be
odd
Nat st m
> (
len P) & m
<= (
len J) holds m
in (
dom J) & not m
in (
dom P)
proof
let m be
odd
Nat such that
A12: m
> (
len P) and
A13: m
<= (
len J);
1
<= m by
ABIAN: 12;
hence thesis by
A12,
A13,
FINSEQ_3: 25;
end;
A14: (((
len J)
+ 1)
+ (
- 1))
= (((
len P)
+ (
len H))
+ (
- 1)) by
A6,
GLIB_001: 28;
A15:
now
let m,n be
odd
Element of
NAT such that
A16: m
< n and
A17: n
<= (
len J);
A18: m
<= (
len J) by
A16,
A17,
XXREAL_0: 2;
A19: 1
<= m by
ABIAN: 12;
per cases ;
suppose
A20: m
<= (
len P) & n
<= (
len P);
then
A21: (P
. m)
= (J
. m) by
A9;
(P
. m)
<> (P
. n) by
A2,
A16,
A20,
GLIB_001: 147;
hence (J
. m)
= (J
. n) implies m
= 1 & n
= (
len J) by
A9,
A20,
A21;
end;
suppose
A22: m
<= (
len P) & n
> (
len P);
then
A23: (J
. m)
= (P
. m) by
A9;
A24: not n
in (
dom P) by
A11,
A17,
A22;
n
in (
dom J) by
A11,
A17,
A22;
then
consider j be
Element of
NAT such that
A25: j
< (
len H) and
A26: n
= ((
len P)
+ j) by
A24,
GLIB_001: 34;
reconsider jj = j as
even
Nat by
A26;
reconsider j1 = (jj
+ 1) as
odd
Nat;
A27: j1
<= (
len H) by
A25,
NAT_1: 13;
A28: (J
. n)
= (H
. (j
+ 1)) by
A6,
A25,
A26,
GLIB_001: 33;
now
assume
A29: (J
. m)
= (J
. n);
A30:
now
j
<>
0 by
A22,
A26;
then (
0
+ 1)
< j1 by
XREAL_1: 8;
then
A31: (H
. ((2
*
0 )
+ 1))
<> (H
. j1) by
A4,
A27,
GLIB_001: 147;
assume (J
. m)
= (P
.last() );
hence contradiction by
A6,
A25,
A26,
A29,
A31,
GLIB_001: 33;
end;
A32: (J
. m)
in (P
.vertices() ) by
A22,
A23,
GLIB_001: 87;
(J
. m)
in (H
.vertices() ) by
A28,
A27,
A29,
GLIB_001: 87;
then
A33: (J
. m)
in ((P
.vertices() )
/\ (H
.vertices() )) by
A32,
XBOOLE_0:def 4;
then
A34: (J
. n)
= (H
.last() ) by
A5,
A7,
A29,
A30,
TARSKI:def 2;
A35:
now
assume n
< (
len J);
then j1
<> (
len H) by
A14,
A26;
then
A36: j1
< (
len H) by
A27,
XXREAL_0: 1;
(H
. j1)
= (H
. (
len H)) by
A6,
A25,
A26,
A34,
GLIB_001: 33;
hence contradiction by
A4,
A36,
GLIB_001: 147;
end;
A37: (J
. m)
= (P
.first() ) by
A5,
A33,
A30,
TARSKI:def 2;
now
assume 1
< m;
then (P
. m)
<> (P
. ((2
*
0 )
+ 1)) by
A2,
A22,
GLIB_001: 147;
hence contradiction by
A9,
A22,
A37;
end;
hence m
= 1 & n
= (
len J) by
A17,
A19,
A35,
XXREAL_0: 1;
end;
hence (J
. m)
= (J
. n) implies m
= 1 & n
= (
len J);
end;
suppose m
> (
len P) & n
<= (
len P);
hence (J
. m)
= (J
. n) implies m
= 1 & n
= (
len J) by
A16,
XXREAL_0: 2;
end;
suppose
A38: m
> (
len P) & n
> (
len P);
then
A39: not n
in (
dom P) by
A11,
A17;
n
in (
dom J) by
A11,
A17,
A38;
then
consider j be
Element of
NAT such that
A40: j
< (
len H) and
A41: n
= ((
len P)
+ j) by
A39,
GLIB_001: 34;
reconsider jj = j as
even
Nat by
A41;
reconsider j1 = (jj
+ 1) as
odd
Element of
NAT ;
A42: j1
<= (
len H) by
A40,
NAT_1: 13;
A43: not m
in (
dom P) by
A11,
A18,
A38;
m
in (
dom J) by
A11,
A18,
A38;
then
consider k be
Element of
NAT such that
A44: k
< (
len H) and
A45: m
= ((
len P)
+ k) by
A43,
GLIB_001: 34;
reconsider kk = k as
even
Nat by
A45;
reconsider k1 = (kk
+ 1) as
odd
Nat;
k
< j by
A16,
A45,
A41,
XREAL_1: 7;
then
A46: k1
< j1 by
XREAL_1: 8;
A47: (J
. ((
len P)
+ j))
= (H
. (j
+ 1)) by
A6,
A40,
GLIB_001: 33;
(J
. ((
len P)
+ k))
= (H
. (k
+ 1)) by
A6,
A44,
GLIB_001: 33;
hence (J
. m)
= (J
. n) implies m
= 1 & n
= (
len J) by
A4,
A45,
A41,
A47,
A46,
A42,
GLIB_001: 147;
end;
end;
A48: (H
.edgeSeq() ) is
one-to-one by
GLIB_001:def 27;
now
assume (
len J)
= 1;
then
A49: (1
+ 1)
= ((
len P)
+ (
len H)) by
A6,
GLIB_001: 28;
now
assume
A50: (
len P)
<> 1;
1
<= (
len P) by
Th2;
then 1
< (
len P) by
A50,
XXREAL_0: 1;
then ((
len P)
+ (
len H))
<= (
len P) by
A49,
NAT_1: 13;
then (((
len P)
+ (
len H))
+ (
- (
len P)))
<= ((
len P)
+ (
- (
len P))) by
XREAL_1: 7;
then (
len H)
<=
0 ;
hence contradiction;
end;
hence contradiction by
A3,
A49,
GLIB_001: 126;
end;
then
A51: J is non
trivial by
GLIB_001: 126;
(J
.last() )
= (P
.first() ) by
A6,
A7,
GLIB_001: 30;
then
A52: J is
closed by
A8;
(P
.edgeSeq() ) is
one-to-one by
GLIB_001:def 27;
then ((P
.edgeSeq() )
^ (H
.edgeSeq() )) is
one-to-one by
A1,
A48,
FINSEQ_3: 91;
then (J
.edgeSeq() ) is
one-to-one by
A6,
GLIB_001: 85;
then J is
Trail-like;
then J is
Path-like by
A15;
hence thesis by
A52,
A51;
end;
theorem ::
CHORD:28
Th28: for G be
_Graph, W1,W2 be
Walk of G st (W1
.last() )
= (W2
.first() ) holds ((W1
.append W2)
.length() )
= ((W1
.length() )
+ (W2
.length() ))
proof
let G be
_Graph, P,H be
Walk of G;
assume (H
.first() )
= (P
.last() );
hence ((P
.append H)
.length() )
= (
len ((P
.edgeSeq() )
^ (H
.edgeSeq() ))) by
GLIB_001: 85
.= ((P
.length() )
+ (H
.length() )) by
FINSEQ_1: 22;
end;
theorem ::
CHORD:29
Th29: for G be
_Graph, A,B be non
empty
Subset of (
the_Vertices_of G) st B
c= A holds for H1 be
inducedSubgraph of G, A holds for H2 be
inducedSubgraph of H1, B holds H2 is
inducedSubgraph of G, B
proof
let G be
_Graph;
let A,B be non
empty
Subset of (
the_Vertices_of G) such that
A1: B
c= A;
let H1 be
inducedSubgraph of G, A;
let H2 be
inducedSubgraph of H1, B;
A2: (
the_Vertices_of H1)
= A by
GLIB_000:def 37;
then
A3: (
the_Vertices_of H2)
= B by
A1,
GLIB_000:def 37;
A4:
now
let e be
set such that
A5: e
in (G
.edgesBetween B);
A6: ((
the_Target_of G)
. e)
in B by
A5,
GLIB_000: 31;
A7: ((
the_Source_of G)
. e)
in B by
A5,
GLIB_000: 31;
then e
in (G
.edgesBetween A) by
A1,
A5,
A6,
GLIB_000: 31;
then
A8: e
in (
the_Edges_of H1) by
GLIB_000:def 37;
then
A9: ((
the_Target_of H1)
. e)
= ((
the_Target_of G)
. e) by
GLIB_000:def 32;
((
the_Source_of H1)
. e)
= ((
the_Source_of G)
. e) by
A8,
GLIB_000:def 32;
then e
in (H1
.edgesBetween B) by
A7,
A6,
A8,
A9,
GLIB_000: 31;
hence e
in (
the_Edges_of H2) by
A1,
A2,
GLIB_000:def 37;
end;
(H1
.edgesBetween B)
c= (G
.edgesBetween B) by
GLIB_000: 76;
then (
the_Edges_of H2)
c= (G
.edgesBetween B) by
A1,
A2,
GLIB_000:def 37;
then for x be
object holds x
in (
the_Edges_of H2) iff x
in (G
.edgesBetween B) by
A4;
then
A10: (
the_Edges_of H2)
= (G
.edgesBetween B) by
TARSKI: 2;
A11:
now
let e be
set such that
A12: e
in (
the_Edges_of H2);
A13: ((
the_Target_of H2)
. e)
= ((
the_Target_of H1)
. e) by
A12,
GLIB_000:def 32;
((
the_Source_of H2)
. e)
= ((
the_Source_of H1)
. e) by
A12,
GLIB_000:def 32;
hence ((
the_Source_of H2)
. e)
= ((
the_Source_of G)
. e) & ((
the_Target_of H2)
. e)
= ((
the_Target_of G)
. e) by
A12,
A13,
GLIB_000:def 32;
end;
(
the_Edges_of H2)
c= (
the_Edges_of H1);
then (
the_Edges_of H2)
c= (
the_Edges_of G) by
XBOOLE_1: 1;
then H2 is
Subgraph of G by
A3,
A11,
GLIB_000:def 32;
hence thesis by
A3,
A10,
GLIB_000:def 37;
end;
theorem ::
CHORD:30
Th30: for G be
_Graph, A,B be non
empty
Subset of (
the_Vertices_of G) st B
c= A holds for H1 be
inducedSubgraph of G, A holds for H2 be
inducedSubgraph of G, B holds H2 is
inducedSubgraph of H1, B
proof
let G be
_Graph;
let A,B be non
empty
Subset of (
the_Vertices_of G) such that
A1: B
c= A;
let H1 be
inducedSubgraph of G, A;
let H2 be
inducedSubgraph of G, B;
A2: (
the_Edges_of H2)
= (G
.edgesBetween B) by
GLIB_000:def 37;
(
the_Edges_of H1)
= (G
.edgesBetween A) by
GLIB_000:def 37;
then
A3: (
the_Edges_of H2)
c= (
the_Edges_of H1) by
A1,
A2,
GLIB_000: 36;
A4:
now
let e be
set such that
A5: e
in (
the_Edges_of H2);
A6: ((
the_Target_of G)
. e)
= ((
the_Target_of H1)
. e) by
A3,
A5,
GLIB_000:def 32;
A7: ((
the_Target_of G)
. e)
in B by
A2,
A5,
GLIB_000: 31;
A8: ((
the_Source_of G)
. e)
in B by
A2,
A5,
GLIB_000: 31;
((
the_Source_of G)
. e)
= ((
the_Source_of H1)
. e) by
A3,
A5,
GLIB_000:def 32;
hence e
in (H1
.edgesBetween B) by
A3,
A5,
A6,
A8,
A7,
GLIB_000: 31;
end;
(H1
.edgesBetween B)
c= (
the_Edges_of H2) by
A2,
GLIB_000: 76;
then for x be
object holds x
in (
the_Edges_of H2) iff x
in (H1
.edgesBetween B) by
A4;
then
A9: (
the_Edges_of H2)
= (H1
.edgesBetween B) by
TARSKI: 2;
A10: (
the_Vertices_of H1)
= A by
GLIB_000:def 37;
A11: (
the_Vertices_of H2)
= B by
GLIB_000:def 37;
now
let e be
set such that
A12: e
in (
the_Edges_of H2);
thus ((
the_Source_of H2)
. e)
= ((
the_Source_of G)
. e) by
A12,
GLIB_000:def 32
.= ((
the_Source_of H1)
. e) by
A3,
A12,
GLIB_000:def 32;
thus ((
the_Target_of H2)
. e)
= ((
the_Target_of G)
. e) by
A12,
GLIB_000:def 32
.= ((
the_Target_of H1)
. e) by
A3,
A12,
GLIB_000:def 32;
end;
then H2 is
Subgraph of H1 by
A1,
A10,
A11,
A3,
GLIB_000:def 32;
hence thesis by
A1,
A10,
A11,
A9,
GLIB_000:def 37;
end;
theorem ::
CHORD:31
Th31: for G be
_Graph, S,T be non
empty
Subset of (
the_Vertices_of G) st T
c= S holds for G2 be
inducedSubgraph of G, S holds (G2
.edgesBetween T)
= (G
.edgesBetween T)
proof
let G be
_Graph;
let S,T be non
empty
Subset of (
the_Vertices_of G) such that
A1: T
c= S;
let G2 be
inducedSubgraph of G, S;
A2: (
the_Edges_of G2)
= (G
.edgesBetween S) by
GLIB_000:def 37;
now
let e be
object;
hereby
assume
A3: e
in (G
.edgesBetween T);
then
A4: ((
the_Source_of G)
. e)
in T by
GLIB_000: 31;
A5: ((
the_Target_of G)
. e)
in T by
A3,
GLIB_000: 31;
A6: (G
.edgesBetween T)
c= (G
.edgesBetween S) by
A1,
GLIB_000: 36;
then
A7: ((
the_Target_of G2)
. e)
= ((
the_Target_of G)
. e) by
A2,
A3,
GLIB_000:def 32;
((
the_Source_of G2)
. e)
= ((
the_Source_of G)
. e) by
A2,
A3,
A6,
GLIB_000:def 32;
hence e
in (G2
.edgesBetween T) by
A2,
A3,
A6,
A4,
A5,
A7,
GLIB_000: 31;
end;
assume
A8: e
in (G2
.edgesBetween T);
then ((
the_Source_of G2)
. e)
in T by
GLIB_000: 31;
then
A9: ((
the_Source_of G)
. e)
in T by
A8,
GLIB_000:def 32;
((
the_Target_of G2)
. e)
in T by
A8,
GLIB_000: 31;
then
A10: ((
the_Target_of G)
. e)
in T by
A8,
GLIB_000:def 32;
e
in (
the_Edges_of G2) by
A8;
hence e
in (G
.edgesBetween T) by
A9,
A10,
GLIB_000: 31;
end;
hence thesis by
TARSKI: 2;
end;
scheme ::
CHORD:sch1
FinGraphOrderCompInd { P[
set] } :
for G be
_finite
_Graph holds P[G]
provided
A1: for k be non
zero
Nat st (for Gk be
_finite
_Graph st (Gk
.order() )
< k holds P[Gk]) holds for Gk1 be
_finite
_Graph st (Gk1
.order() )
= k holds P[Gk1];
let G be
_finite
_Graph;
defpred
pP[ non
zero
Nat] means for Gk be
_finite
_Graph st (Gk
.order() )
< $1 holds P[Gk];
A2: for n be non
zero
Nat holds
pP[n] implies
pP[(n
+ 1)]
proof
let n be non
zero
Nat such that
A3:
pP[n];
now
let Gk be
_finite
_Graph;
assume (Gk
.order() )
< (n
+ 1);
then (Gk
.order() )
<= n by
NAT_1: 13;
then (Gk
.order() )
< n or (Gk
.order() )
= n by
XXREAL_0: 1;
hence P[Gk] by
A1,
A3;
end;
hence thesis;
end;
A4:
pP[1] by
NAT_1: 14;
for k be non
zero
Nat holds
pP[k] from
NAT_1:sch 10(
A4,
A2);
then for Gk be
_finite
_Graph st (Gk
.order() )
< (G
.order() ) holds P[Gk];
hence thesis by
A1;
end;
theorem ::
CHORD:32
Th32: for G be
_Graph, W be
Walk of G st W is
open & W is
Path-like holds W is
vertex-distinct
proof
let G be
_Graph, W be
Walk of G;
assume that
A1: W is
open and
A2: W is
Path-like;
now
let m,n be
odd
Element of
NAT such that
A3: m
<= (
len W) and
A4: n
<= (
len W) and
A5: (W
. m)
= (W
. n);
assume
A6: m
<> n;
per cases by
A6,
XXREAL_0: 1;
suppose
A7: m
< n;
then
A8: (W
. n)
= (W
.last() ) by
A2,
A4,
A5;
(W
. m)
= (W
.first() ) by
A2,
A4,
A5,
A7;
hence contradiction by
A1,
A5,
A8;
end;
suppose
A9: m
> n;
then
A10: (W
. n)
= (W
.first() ) by
A2,
A3,
A5;
(W
. m)
= (W
.last() ) by
A2,
A3,
A5,
A9;
hence contradiction by
A1,
A5,
A10;
end;
end;
hence thesis;
end;
theorem ::
CHORD:33
Th33: for G be
_Graph, P be
Path of G st P is
open & (
len P)
> 3 holds for e be
object st e
Joins ((P
.last() ),(P
.first() ),G) holds (P
.addEdge e) is
Cycle-like
proof
let G be
_Graph, W be
Path of G such that
A1: W is
open and
A2: (
len W)
> 3;
let e be
object such that
A3: e
Joins ((W
.last() ),(W
.first() ),G);
A4:
now
assume e
in (W
.edges() );
then
consider v1,v2 be
Vertex of G, n be
odd
Element of
NAT such that
A5: (n
+ 2)
<= (
len W) and
A6: v1
= (W
. n) and e
= (W
. (n
+ 1)) and
A7: v2
= (W
. (n
+ 2)) and
A8: e
Joins (v1,v2,G) by
GLIB_001: 103;
A9: n
< (
len W) by
A5,
XREAL_1: 39;
per cases by
A3,
A8;
suppose
A10: v1
= (W
.first() ) & v2
= (W
.last() );
now
assume
A11: 1
<> n;
1
<= n by
Th2;
then ((2
*
0 )
+ 1)
< n by
A11,
XXREAL_0: 1;
hence contradiction by
A1,
A6,
A9,
A10,
GLIB_001: 147;
end;
hence contradiction by
A1,
A2,
A7,
A10,
GLIB_001: 147;
end;
suppose v1
= (W
.last() ) & v2
= (W
.first() );
hence contradiction by
A1,
A6,
A9,
GLIB_001: 147;
end;
end;
set P = (W
.addEdge e);
A12: (P
.last() )
= (W
.first() ) by
A3,
GLIB_001: 63;
A13: (
len P)
= ((
len W)
+ (2
* 1)) by
A3,
GLIB_001: 64;
A14:
now
let m,n be
odd
Element of
NAT such that
A15: m
< n and
A16: n
<= (
len P);
m
< ((
len W)
+ (2
* 1)) by
A13,
A15,
A16,
XXREAL_0: 2;
then
A17: m
<= (((
len W)
+ 2)
- 2) by
Th3;
assume
A18: (P
. m)
= (P
. n);
1
<= m by
Th2;
then
A19: m
in (
dom W) by
A17,
FINSEQ_3: 25;
then
A20: (W
. m)
= (P
. m) by
A3,
GLIB_001: 65;
A21:
now
assume n
< (
len P);
then n
< ((
len W)
+ (2
* 1)) by
A3,
GLIB_001: 64;
then
A22: n
<= (((
len W)
+ 2)
- 2) by
Th3;
1
<= n by
Th2;
then
A23: n
in (
dom W) by
A22,
FINSEQ_3: 25;
(W
. n)
<> (W
. m) by
A1,
A15,
A22,
GLIB_001: 147;
hence contradiction by
A3,
A18,
A20,
A23,
GLIB_001: 65;
end;
then
A24: (P
. n)
= (W
. 1) by
A12,
A16,
XXREAL_0: 1;
now
assume
A25: m
<> 1;
1
<= m by
Th2;
then ((2
*
0 )
+ 1)
< m by
A25,
XXREAL_0: 1;
then (W
. 1)
<> (W
. m) by
A1,
A17,
GLIB_001: 147;
hence contradiction by
A3,
A18,
A19,
A24,
GLIB_001: 65;
end;
hence m
= 1 & n
= (
len P) by
A16,
A21,
XXREAL_0: 1;
end;
e
in ((W
.last() )
.edgesInOut() ) by
A3,
GLIB_000: 62;
then P is
Trail-like by
A4,
GLIB_001: 142;
then
A26: P is
Path-like by
A14;
(P
.first() )
= (W
.first() ) by
A3,
GLIB_001: 63;
then
A27: P is
closed by
A12;
P is non
trivial by
A3,
GLIB_001: 132;
hence thesis by
A27,
A26;
end;
begin
definition
let G be
_Graph, W be
Walk of G;
::
CHORD:def2
attr W is
minlength means for W2 be
Walk of G st W2
is_Walk_from ((W
.first() ),(W
.last() )) holds (
len W2)
>= (
len W);
end
theorem ::
CHORD:34
Th34: for G be
_Graph, W be
Walk of G, S be
Subwalk of W st (S
.first() )
= (W
.first() ) & (S
.edgeSeq() )
= (W
.edgeSeq() ) holds S
= W
proof
let G be
_Graph, W be
Walk of G, S be
Subwalk of W such that
A1: (S
.first() )
= (W
.first() ) and
A2: (S
.edgeSeq() )
= (W
.edgeSeq() );
defpred
P[
Nat] means $1
in (
dom S) implies (S
. $1)
= (W
. $1);
(
len S)
= ((2
* (
len (W
.edgeSeq() )))
+ 1) by
A2,
GLIB_001:def 15;
then
A3: (
len S)
= (
len W) by
GLIB_001:def 15;
A4:
now
let k be
Nat such that
A5: for n be
Nat st n
< k holds
P[n];
A6: k
in
NAT by
ORDINAL1:def 12;
per cases ;
suppose
A7: k
in (
dom S);
then
A8: 1
<= k by
FINSEQ_3: 25;
A9: k
<= (
len S) by
A7,
FINSEQ_3: 25;
per cases ;
suppose
A10: k is
even;
then (S
. k)
= ((S
.edgeSeq() )
. (k
div 2)) by
A6,
A8,
A9,
GLIB_001: 77;
hence
P[k] by
A2,
A3,
A8,
A9,
A10,
GLIB_001: 77;
end;
suppose k is
odd;
then
reconsider kk = k as
odd
Nat;
per cases by
A8,
XXREAL_0: 1;
suppose k
= 1;
hence
P[k] by
A1;
end;
suppose k
> ((2
*
0 )
+ 1);
then
A11: (1
+ 2)
<= kk by
Th4;
then
A12: (3
+ (
- 2))
<= (k
+ (
- 2)) by
XREAL_1: 7;
(3
+ (
- 1))
<= (k
+ (
- 1)) by
A11,
XREAL_1: 7;
then
0
<= (k
- 1);
then
reconsider k1 = (k
- 1) as
Element of
NAT by
INT_1: 3;
k1
< k by
XREAL_1: 44;
then
A13: k1
<= (
len S) by
A9,
XXREAL_0: 2;
(3
+ (
- 1))
<= (k
+ (
- 1)) by
A11,
XREAL_1: 7;
then 1
<= k1 by
XXREAL_0: 2;
then k1
in (
dom S) by
A13,
FINSEQ_3: 25;
then
A14: (S
. k1)
= (W
. k1) by
A5,
XREAL_1: 44;
(3
+ (
- 2))
<= (k
+ (
- 2)) by
A11,
XREAL_1: 7;
then
reconsider k2 = (kk
- (2
* 1)) as
odd
Element of
NAT by
INT_1: 3;
A15: k2
< k by
XREAL_1: 44;
then k2
< (
len S) by
A9,
XXREAL_0: 2;
then
A16: (S
. (k2
+ 1))
Joins ((S
. k2),(S
. (k2
+ 2)),G) by
GLIB_001:def 3;
k2
<= (
len S) by
A9,
A15,
XXREAL_0: 2;
then k2
in (
dom S) by
A12,
FINSEQ_3: 25;
then
A17: (S
. k2)
= (W
. k2) by
A5,
XREAL_1: 44;
k2
< (
len W) by
A3,
A9,
A15,
XXREAL_0: 2;
then (W
. (k2
+ 1))
Joins ((W
. k2),(W
. (k2
+ 2)),G) by
GLIB_001:def 3;
then (S
. k2)
= (S
. k2) & (S
. k)
= (W
. k) or (S
. k2)
= (W
. k) & (S
. k)
= (S
. k2) by
A14,
A17,
A16;
hence
P[k];
end;
end;
end;
suppose not k
in (
dom S);
hence
P[k];
end;
end;
A18: for n be
Nat holds
P[n] from
NAT_1:sch 4(
A4);
for k be
Nat st 1
<= k
<= (
len S) holds (S
. k)
= (W
. k) by
A18,
FINSEQ_3: 25;
hence thesis by
A3,
FINSEQ_1: 14;
end;
theorem ::
CHORD:35
Th35: for G be
_Graph, W be
Walk of G, S be
Subwalk of W st (
len S)
= (
len W) holds S
= W
proof
let G be
_Graph, W be
Walk of G, S be
Subwalk of W such that
A1: (
len S)
= (
len W);
A2: (
len S)
= ((2
* (
len (S
.edgeSeq() )))
+ 1) by
GLIB_001:def 15;
A3: (S
.first() )
= (W
.first() ) by
GLIB_001: 161;
A4: (
len W)
= ((2
* (
len (W
.edgeSeq() )))
+ 1) by
GLIB_001:def 15;
ex es be
Subset of (W
.edgeSeq() ) st (S
.edgeSeq() )
= (
Seq es) by
GLIB_001:def 32;
hence thesis by
A1,
A2,
A4,
A3,
Th18,
Th34;
end;
theorem ::
CHORD:36
for G be
_Graph, W be
Walk of G st W is
minlength holds W is
Path-like
proof
let G be
_Graph, W be
Walk of G such that
A1: W is
minlength and
A2: not W is
Path-like;
set s = the
Path-like
Subwalk of W;
s
is_Walk_from ((W
.first() ),(W
.last() )) by
GLIB_001:def 32;
then
A3: (
len W)
<= (
len s) by
A1;
(
len s)
<= (
len W) by
GLIB_001: 162;
hence contradiction by
A2,
A3,
Th35,
XXREAL_0: 1;
end;
::$Canceled
theorem ::
CHORD:38
Th37: for G be
_Graph, W be
Walk of G holds (for P be
Path of G st P
is_Walk_from ((W
.first() ),(W
.last() )) holds (
len P)
>= (
len W)) implies W is
minlength
proof
let G be
_Graph, W be
Walk of G;
assume
A1: for P2 be
Path of G st P2
is_Walk_from ((W
.first() ),(W
.last() )) holds (
len P2)
>= (
len W);
now
let V be
Walk of G such that
A2: V
is_Walk_from ((W
.first() ),(W
.last() ));
set P3 = the
Path-like
Subwalk of V;
(V
.last() )
= (W
.last() ) by
A2;
then
A3: (P3
.last() )
= (W
.last() ) by
GLIB_001: 161;
(V
.first() )
= (W
.first() ) by
A2;
then (P3
.first() )
= (W
.first() ) by
GLIB_001: 161;
then P3
is_Walk_from ((W
.first() ),(W
.last() )) by
A3;
then
A4: (
len W)
<= (
len P3) by
A1;
(
len P3)
<= (
len V) by
GLIB_001: 162;
hence (
len V)
>= (
len W) by
A4,
XXREAL_0: 2;
end;
hence thesis;
end;
theorem ::
CHORD:39
Th38: for G be
_Graph, W be
Walk of G holds ex P be
Path of G st P
is_Walk_from ((W
.first() ),(W
.last() )) & P is
minlength
proof
let G be
_Graph, W be
Walk of G;
set X = { (
len P) where P be
Path of G : P
is_Walk_from ((W
.first() ),(W
.last() )) };
set T = the
Path-like
Subwalk of W;
A1: (T
.last() )
= (W
.last() ) by
GLIB_001: 161;
(T
.first() )
= (W
.first() ) by
GLIB_001: 161;
then T
is_Walk_from ((W
.first() ),(W
.last() )) by
A1;
then
A2: (
len T)
in X;
X
c=
NAT
proof
let x be
object;
assume x
in X;
then ex P be
Path of G st x
= (
len P) & P
is_Walk_from ((W
.first() ),(W
.last() ));
hence thesis;
end;
then
reconsider X as non
empty
Subset of
NAT by
A2;
(
min X)
in X by
XXREAL_2:def 7;
then
consider P be
Path of G such that
A3: (
len P)
= (
min X) and
A4: P
is_Walk_from ((W
.first() ),(W
.last() ));
A5: (P
.first() )
= (W
.first() ) by
A4;
take P;
thus P
is_Walk_from ((W
.first() ),(W
.last() )) by
A4;
let W2 be
Walk of G such that
A6: W2
is_Walk_from ((P
.first() ),(P
.last() ));
A7: (P
.last() )
= (W2
.last() ) by
A6;
set T = the
Path-like
Subwalk of W2;
A8: (T
.first() )
= (W2
.first() ) by
GLIB_001: 161;
A9: (T
.last() )
= (W2
.last() ) by
GLIB_001: 161;
A10: (P
.last() )
= (W
.last() ) by
A4;
(P
.first() )
= (W2
.first() ) by
A6;
then T
is_Walk_from ((W
.first() ),(W
.last() )) by
A7,
A5,
A10,
A8,
A9;
then (
len T)
in X;
then
A11: (
len P)
<= (
len T) by
A3,
XXREAL_2:def 7;
(
len T)
<= (
len W2) by
GLIB_001: 162;
hence thesis by
A11,
XXREAL_0: 2;
end;
theorem ::
CHORD:40
Th39: for G be
_Graph, W be
Walk of G st W is
minlength holds for m,n be
odd
Nat st (m
+ 2)
< n & n
<= (
len W) holds not ex e be
object st e
Joins ((W
. m),(W
. n),G)
proof
let G be
_Graph;
let P be
Walk of G such that
A1: P is
minlength;
let m,n be
odd
Nat such that
A2: (m
+ 2)
< n and
A3: n
<= (
len P);
A4: (((
len P)
- n)
+ (m
+ 2))
< (((
len P)
- n)
+ n) by
A2,
XREAL_1: 8;
(m
+
0 )
<= (m
+ 2) by
XREAL_1: 7;
then m
<= n by
A2,
XXREAL_0: 2;
then
A5: m
<= (
len P) by
A3,
XXREAL_0: 2;
set P3 = (P
.cut (n,(
len P)));
A6: n
in
NAT by
ORDINAL1:def 12;
then
A7: (P3
.last() )
= (P
.last() ) by
A3,
GLIB_001: 37;
set P1 = (P
.cut (1,m));
let e be
object such that
A8: e
Joins ((P
. m),(P
. n),G);
set P2 = (P1
.addEdge e);
set P4 = (P2
.append P3);
A9: ((2
*
0 )
+ 1)
<= m by
ABIAN: 12;
A10: m
in
NAT by
ORDINAL1:def 12;
then
A11: ((
len P1)
+ 1)
= (m
+ 1) by
A9,
A5,
GLIB_001: 36;
A12: (P1
.last() )
= (P
. m) by
A10,
A9,
A5,
GLIB_001: 37;
then
A13: (P2
.last() )
= (P
. n) by
A8,
GLIB_001: 63;
(P1
.first() )
= (P
.first() ) by
A10,
A9,
A5,
GLIB_001: 37;
then
A14: (P2
.first() )
= (P
.first() ) by
A8,
A12,
GLIB_001: 63;
(P3
.first() )
= (P
. n) by
A3,
A6,
GLIB_001: 37;
then
A15: P4
is_Walk_from ((P
.first() ),(P
.last() )) by
A14,
A13,
A7,
GLIB_001: 30;
(P3
.first() )
= (P
. n) by
A3,
A6,
GLIB_001: 37;
then
A16: ((
len P4)
+ 1)
= ((
len P2)
+ (
len P3)) by
A13,
GLIB_001: 28;
(P1
.last() )
= (P
. m) by
A10,
A9,
A5,
GLIB_001: 37;
then
A17: (
len P2)
= (m
+ 2) by
A8,
A11,
GLIB_001: 64;
((
len P3)
+ n)
= ((
len P)
+ 1) by
A3,
A6,
GLIB_001: 36;
hence contradiction by
A1,
A17,
A15,
A16,
A4;
end;
theorem ::
CHORD:41
Th40: for G be
_Graph, S be non
empty
Subset of (
the_Vertices_of G) holds for H be
inducedSubgraph of G, S holds for W be
Walk of H st W is
minlength holds for m,n be
odd
Nat st (m
+ 2)
< n & n
<= (
len W) holds not ex e be
object st e
Joins ((W
. m),(W
. n),G)
proof
let G be
_Graph, S be non
empty
Subset of (
the_Vertices_of G);
let GA be
inducedSubgraph of G, S;
let P be
Walk of GA;
A1: S
= (
the_Vertices_of GA) by
GLIB_000:def 37;
assume
A2: P is
minlength;
now
let m,n be
odd
Nat such that
A3: (m
+ 2)
< n and
A4: n
<= (
len P);
(m
+
0 )
<= (m
+ 2) by
XREAL_1: 7;
then
A5: m
<= n by
A3,
XXREAL_0: 2;
n
in
NAT by
ORDINAL1:def 12;
then
A6: (P
. n)
in (
the_Vertices_of GA) by
A4,
GLIB_001: 7;
m
in
NAT by
ORDINAL1:def 12;
then
A7: (P
. m)
in (
the_Vertices_of GA) by
A4,
A5,
GLIB_001: 7,
XXREAL_0: 2;
let e be
object;
assume e
Joins ((P
. m),(P
. n),G);
hence contradiction by
A2,
A1,
A3,
A4,
A7,
A6,
Th19,
Th39;
end;
hence thesis;
end;
theorem ::
CHORD:42
Th41: for G be
_Graph holds for W be
Walk of G st W is
minlength holds for m,n be
odd
Nat st m
<= n & n
<= (
len W) holds (W
.cut (m,n)) is
minlength
proof
let G be
_Graph, W be
Walk of G such that
A1: W is
minlength;
let m,n be
odd
Nat such that
A2: m
<= n and
A3: n
<= (
len W);
set S = (W
.cut (m,n));
assume not S is
minlength;
then
consider M be
Walk of G such that
A4: M
is_Walk_from ((S
.first() ),(S
.last() )) and
A5: (
len M)
< (
len S);
set R = (W
.cut (1,m));
A6: ((2
*
0 )
+ 1)
<= m by
ABIAN: 12;
set T = (W
.cut (n,(
len W)));
A7: n
in
NAT by
ORDINAL1:def 12;
then
A8: (T
.first() )
= (W
. n) by
A3,
GLIB_001: 37;
set A = (R
.append M);
A9: m
in
NAT by
ORDINAL1:def 12;
A10: m
<= (
len W) by
A2,
A3,
XXREAL_0: 2;
then
A11: (R
.last() )
= (W
. m) by
A6,
A9,
GLIB_001: 37;
(S
.first() )
= (W
. m) by
A2,
A3,
A9,
A7,
GLIB_001: 37;
then
A12: (M
.first() )
= (W
. m) by
A4;
then ((
len A)
+ 1)
= ((
len R)
+ (
len M)) by
A11,
GLIB_001: 28;
then
A13: ((
len A)
+ 1)
< ((
len R)
+ (
len S)) by
A5,
XREAL_1: 8;
set B = (A
.append T);
(S
.last() )
= (W
. n) by
A2,
A3,
A9,
A7,
GLIB_001: 37;
then (M
.last() )
= (W
. n) by
A4;
then
A14: (A
.last() )
= (W
. n) by
A11,
A12,
GLIB_001: 30;
then
A15: ((
len B)
+ 1)
= ((
len A)
+ (
len T)) by
A8,
GLIB_001: 28;
A16: ((
len R)
+ 1)
= (m
+ 1) by
A6,
A10,
A9,
GLIB_001: 36;
((
len S)
+ m)
= (n
+ 1) by
A2,
A3,
A9,
A7,
GLIB_001: 36;
then (((
len A)
+ 1)
- 1)
< ((n
+ 1)
- 1) by
A16,
A13,
XREAL_1: 14;
then
A17: ((
len B)
+ 1)
< ((
len T)
+ n) by
A15,
XREAL_1: 8;
((
len T)
+ n)
= ((
len W)
+ 1) by
A3,
A7,
GLIB_001: 36;
then
A18: (((
len B)
+ 1)
- 1)
< (((
len W)
+ 1)
- 1) by
A17,
XREAL_1: 14;
(T
.last() )
= (W
. (
len W)) by
A3,
A7,
GLIB_001: 37;
then
A19: (B
.last() )
= (W
.last() ) by
A8,
A14,
GLIB_001: 30;
(R
.first() )
= (W
. 1) by
A6,
A10,
A9,
GLIB_001: 37;
then (A
.first() )
= (W
. 1) by
A11,
A12,
GLIB_001: 30;
then (B
.first() )
= (W
.first() ) by
A8,
A14,
GLIB_001: 30;
then B
is_Walk_from ((W
.first() ),(W
.last() )) by
A19;
hence contradiction by
A1,
A18;
end;
theorem ::
CHORD:43
for G be
_Graph st G is
connected holds for A,B be non
empty
Subset of (
the_Vertices_of G) st A
misses B holds ex P be
Path of G st P is
minlength & P is non
trivial & (P
.first() )
in A & (P
.last() )
in B & for n be
odd
Nat st 1
< n & n
< (
len P) holds not (P
. n)
in A & not (P
. n)
in B
proof
let G be
_Graph such that
A1: G is
connected;
let A,B be non
empty
Subset of (
the_Vertices_of G) such that
A2: A
misses B;
set X = { (
len P) where P be
Path of G : (P
.first() )
in A & (P
.last() )
in B };
A3: X
c=
NAT
proof
let x be
object;
assume x
in X;
then ex P be
Path of G st x
= (
len P) & (P
.first() )
in A & (P
.last() )
in B;
hence thesis;
end;
consider b be
object such that
A4: b
in B by
XBOOLE_0:def 1;
reconsider b as
Vertex of G by
A4;
consider a be
object such that
A5: a
in A by
XBOOLE_0:def 1;
reconsider a as
Vertex of G by
A5;
consider W be
Walk of G such that
A6: W
is_Walk_from (a,b) by
A1;
consider W2 be
Path of G such that
A7: W2
is_Walk_from ((W
.first() ),(W
.last() )) and W2 is
minlength by
Th38;
(W
.last() )
= b by
A6;
then
A8: (W2
.last() )
in B by
A4,
A7;
(W
.first() )
= a by
A6;
then (W2
.first() )
in A by
A5,
A7;
then (
len W2)
in X by
A8;
then
reconsider X as non
empty
Subset of
NAT by
A3;
(
min X)
in X by
XXREAL_2:def 7;
then
consider M be
Path of G such that
A9: (
len M)
= (
min X) and
A10: (M
.first() )
in A and
A11: (M
.last() )
in B;
now
let P2 be
Path of G such that
A12: P2
is_Walk_from ((M
.first() ),(M
.last() ));
A13: (P2
.last() )
in B by
A11,
A12;
(P2
.first() )
in A by
A10,
A12;
then (
len P2)
in X by
A13;
hence (
len P2)
>= (
len M) by
A9,
XXREAL_2:def 7;
end;
then
A14: M is
minlength by
Th37;
A15:
now
let n be
odd
Nat such that
A16: 1
< n and
A17: n
< (
len M);
reconsider nn = n as
Element of
NAT by
ORDINAL1:def 12;
assume
A18: (M
. n)
in A or (M
. n)
in B;
per cases by
A18;
suppose
A19: (M
. n)
in A;
reconsider T = (M
.cut (nn,(
len M))) as
Path of G;
A20: (T
.last() )
in B by
A11,
A17,
GLIB_001: 37;
((
len T)
+ nn)
= ((
len M)
+ 1) by
A17,
GLIB_001: 36;
then
A21: ((
len T)
+
0 )
< ((((
len M)
+ 1)
+ (
- n))
+ (n
+ (
- 1))) by
A16,
XREAL_1: 8;
(T
.first() )
in A by
A17,
A19,
GLIB_001: 37;
then (
len T)
in X by
A20;
hence contradiction by
A9,
A21,
XXREAL_2:def 7;
end;
suppose
A22: (M
. n)
in B;
reconsider T = (M
.cut (1,nn)) as
Path of G;
A23: ((2
*
0 )
+ 1)
<= n by
A16;
then
A24: (T
.last() )
= (M
. nn) by
A17,
GLIB_001: 37;
((2
*
0 )
+ 1)
<= n by
A16;
then
A25: ((
len T)
+ 1)
= (nn
+ 1) by
A17,
GLIB_001: 36;
(T
.first() )
= (M
. 1) by
A17,
A23,
GLIB_001: 37;
then (
len T)
in X by
A10,
A22,
A24;
hence contradiction by
A9,
A17,
A25,
XXREAL_2:def 7;
end;
end;
(M
.first() )
<> (M
.last() ) by
A2,
A10,
A11,
XBOOLE_0:def 4;
then M is non
trivial by
GLIB_001: 127;
hence thesis by
A10,
A11,
A14,
A15;
end;
begin
definition
let G be
_Graph, a,b be
Vertex of G;
::
CHORD:def3
pred a,b
are_adjacent means
:
Def3: ex e be
object st e
Joins (a,b,G);
symmetry by
GLIB_000: 14;
end
theorem ::
CHORD:44
Th43: for G1,G2 be
_Graph st G1
== G2 holds for u1,v1 be
Vertex of G1 st (u1,v1)
are_adjacent holds for u2,v2 be
Vertex of G2 st u1
= u2 & v1
= v2 holds (u2,v2)
are_adjacent
proof
let G1,G2 be
_Graph such that
A1: G1
== G2;
let u1,v1 be
Vertex of G1;
assume (u1,v1)
are_adjacent ;
then
consider e be
object such that
A2: e
Joins (u1,v1,G1);
let u2,v2 be
Vertex of G2 such that
A3: u1
= u2 and
A4: v1
= v2;
e
Joins (u2,v2,G2) by
A1,
A3,
A4,
A2;
hence thesis;
end;
theorem ::
CHORD:45
Th44: for G be
_Graph, S be non
empty
Subset of (
the_Vertices_of G) holds for H be
inducedSubgraph of G, S holds for u,v be
Vertex of G, t,w be
Vertex of H st u
= t & v
= w holds (u,v)
are_adjacent iff (t,w)
are_adjacent
proof
let G be
_Graph, S be non
empty
Subset of (
the_Vertices_of G);
let H be
inducedSubgraph of G, S;
let u,v be
Vertex of G, t,w be
Vertex of H such that
A1: u
= t and
A2: v
= w;
S
= (
the_Vertices_of H) by
GLIB_000:def 37;
hence (u,v)
are_adjacent implies (t,w)
are_adjacent by
A1,
A2,
Th19;
assume (t,w)
are_adjacent ;
then
consider e be
object such that
A3: e
Joins (t,w,H);
e
Joins (u,v,G) by
A1,
A2,
A3,
GLIB_000: 72;
hence thesis;
end;
theorem ::
CHORD:46
Th45: for G be
_Graph, W be
Walk of G st (W
.first() )
<> (W
.last() ) & not ((W
.first() ),(W
.last() ))
are_adjacent holds (W
.length() )
>= 2
proof
let G be
_Graph, W be
Walk of G such that
A1: (W
.first() )
<> (W
.last() ) and
A2: not ((W
.first() ),(W
.last() ))
are_adjacent ;
set l = (W
.length() );
assume l
< 2;
then l
< (1
+ 1);
then
A3: l
<= 1 by
NAT_1: 13;
per cases by
A3,
NAT_1: 25;
suppose l
=
0 ;
then W is
trivial;
hence contradiction by
A1,
GLIB_001: 127;
end;
suppose l
= 1;
then
A4: (
len W)
= ((2
* 1)
+ 1) by
GLIB_001: 112
.= 3;
1
= ((2
*
0 )
+ 1);
then (W
. (1
+ 1))
Joins ((W
. 1),(W
. (1
+ 2)),G) by
A4,
GLIB_001:def 3;
hence contradiction by
A2,
A4;
end;
end;
theorem ::
CHORD:47
Th46: for G be
_Graph, v1,v2,v3 be
Vertex of G st v1
<> v2 & v1
<> v3 & v2
<> v3 & (v1,v2)
are_adjacent & (v2,v3)
are_adjacent holds ex P be
Path of G, e1,e2 be
object st P is
open & (
len P)
= 5 & (P
.length() )
= 2 & e1
Joins (v1,v2,G) & e2
Joins (v2,v3,G) & (P
.edges() )
=
{e1, e2} & (P
.vertices() )
=
{v1, v2, v3} & (P
. 1)
= v1 & (P
. 3)
= v2 & (P
. 5)
= v3
proof
let G be
_Graph;
let v1,v2,v3 be
Vertex of G such that
A1: v1
<> v2 and
A2: v1
<> v3 and
A3: v2
<> v3 and
A4: (v1,v2)
are_adjacent and
A5: (v2,v3)
are_adjacent ;
consider e1 be
object such that
A6: e1
Joins (v1,v2,G) by
A4;
set P1 = (G
.walkOf (v1,e1,v2));
A7: (P1
.vertices() )
=
{v1, v2} by
A6,
GLIB_001: 91;
then
A8: not v3
in (P1
.vertices() ) by
A2,
A3,
TARSKI:def 2;
consider e2 be
object such that
A9: e2
Joins (v2,v3,G) by
A5;
set P = (P1
.addEdge e2);
A10: (P1
.last() )
= v2 by
A6,
GLIB_001: 15;
then
A11: (P
.last() )
= v3 by
A9,
GLIB_001: 63;
A12: (P1
.first() )
= v1 by
A6,
GLIB_001: 15;
then
A13: (P
.first() )
= v1 by
A9,
A10,
GLIB_001: 63;
P1 is
open by
A1,
A12,
A10;
then
reconsider P as
Path of G by
A9,
A10,
A8,
GLIB_001: 151;
take P, e1, e2;
thus P is
open by
A2,
A13,
A11;
A14: (
len P1)
= 3 by
A6,
GLIB_001: 14;
then
A15: (
len P)
= (3
+ 2) by
A9,
A10,
GLIB_001: 64;
hence (
len P)
= 5;
5
= ((2
* (P
.length() ))
+ 1) by
A15,
GLIB_001: 112;
hence (P
.length() )
= 2;
thus e1
Joins (v1,v2,G) by
A6;
thus e2
Joins (v2,v3,G) by
A9;
(P1
.edges() )
=
{e1} by
A6,
GLIB_001: 108;
then (P
.edges() )
= (
{e1}
\/
{e2}) by
A9,
A10,
GLIB_001: 111;
hence (P
.edges() )
=
{e1, e2} by
ENUMSET1: 1;
(P
.vertices() )
= (
{v1, v2}
\/
{v3}) by
A9,
A10,
A7,
GLIB_001: 95;
hence (P
.vertices() )
=
{v1, v2, v3} by
ENUMSET1: 3;
thus (P
. 1)
= v1 by
A13;
3
in (
dom P1) by
A14,
FINSEQ_3: 25;
hence (P
. 3)
= (P1
. 3) by
A9,
A10,
GLIB_001: 65
.= v2 by
A6,
A10,
GLIB_001: 14;
thus thesis by
A11,
A15;
end;
theorem ::
CHORD:48
Th47: for G be
_Graph, v1,v2,v3,v4 be
Vertex of G st v1
<> v2 & v1
<> v3 & v2
<> v3 & v2
<> v4 & v3
<> v4 & (v1,v2)
are_adjacent & (v2,v3)
are_adjacent & (v3,v4)
are_adjacent holds ex P be
Path of G st (
len P)
= 7 & (P
.length() )
= 3 & (P
.vertices() )
=
{v1, v2, v3, v4} & (P
. 1)
= v1 & (P
. 3)
= v2 & (P
. 5)
= v3 & (P
. 7)
= v4
proof
let G be
_Graph, v1,v2,v3,v4 be
Vertex of G such that
A1: v1
<> v2 and
A2: v1
<> v3 and
A3: v2
<> v3 and
A4: v2
<> v4 and
A5: v3
<> v4 and
A6: (v1,v2)
are_adjacent and
A7: (v2,v3)
are_adjacent and
A8: (v3,v4)
are_adjacent ;
consider R be
Path of G, e1,e2 be
object such that
A9: R is
open and
A10: (
len R)
= 5 and (R
.length() )
= 2 and
A11: e1
Joins (v1,v2,G) and
A12: e2
Joins (v2,v3,G) and
A13: (R
.edges() )
=
{e1, e2} and
A14: (R
.vertices() )
=
{v1, v2, v3} and
A15: (R
. 1)
= v1 and
A16: (R
. 3)
= v2 and
A17: (R
. 5)
= v3 by
A1,
A2,
A3,
A6,
A7,
Th46;
consider e3 be
object such that
A18: e3
Joins (v3,v4,G) by
A8;
A19: for n be
odd
Element of
NAT st 1
< n & n
<= (
len R) holds (R
. n)
<> v4
proof
let n be
odd
Element of
NAT such that
A20: 1
< n and
A21: n
<= (
len R);
per cases by
A10,
A20,
A21,
Th8,
XXREAL_0: 2;
suppose n
= 3;
hence thesis by
A4,
A16;
end;
suppose n
= 5;
hence thesis by
A5,
A17;
end;
end;
A22: e2
<> e3 by
A4,
A18,
A12;
set P = (R
.addEdge e3);
e1
<> e3 by
A2,
A3,
A18,
A11;
then not e3
in (R
.edges() ) by
A13,
A22,
TARSKI:def 2;
then
reconsider P as
Path of G by
A18,
A9,
A10,
A17,
A19,
GLIB_001: 150;
take P;
A23: (
len P)
= (5
+ 2) by
A18,
A10,
A17,
GLIB_001: 64;
hence (
len P)
= 7;
7
= ((2
* (P
.length() ))
+ 1) by
A23,
GLIB_001: 112;
hence (P
.length() )
= 3;
(P
.vertices() )
= (
{v1, v2, v3}
\/
{v4}) by
A18,
A10,
A14,
A17,
GLIB_001: 95;
hence (P
.vertices() )
=
{v1, v2, v3, v4} by
ENUMSET1: 6;
1
in (
dom R) by
A10,
FINSEQ_3: 25;
hence (P
. 1)
= v1 by
A18,
A10,
A15,
A17,
GLIB_001: 65;
3
in (
dom R) by
A10,
FINSEQ_3: 25;
hence (P
. 3)
= v2 by
A18,
A10,
A16,
A17,
GLIB_001: 65;
5
in (
dom R) by
A10,
FINSEQ_3: 25;
hence (P
. 5)
= v3 by
A18,
A10,
A17,
GLIB_001: 65;
(P
.last() )
= v4 by
A18,
A10,
A17,
GLIB_001: 63;
hence thesis by
A23;
end;
definition
let G be
_Graph, S be
set;
::
CHORD:def4
func G
.AdjacentSet (S) ->
Subset of (
the_Vertices_of G) equals { u where u be
Vertex of G : not u
in S & ex v be
Vertex of G st (v
in S & (u,v)
are_adjacent ) };
coherence
proof
set X = { u where u be
Vertex of G : not u
in S & ex v be
Vertex of G st (v
in S & (u,v)
are_adjacent ) };
now
let x be
object;
assume x
in X;
then ex u be
Vertex of G st u
= x & ( not u
in S) & ex v be
Vertex of G st v
in S & (u,v)
are_adjacent ;
hence x
in (
the_Vertices_of G);
end;
hence thesis by
TARSKI:def 3;
end;
end
theorem ::
CHORD:49
for G be
_Graph, S,x be
set st x
in (G
.AdjacentSet S) holds not x
in S
proof
let G be
_Graph, S,x be
set;
assume x
in (G
.AdjacentSet S);
then ex t be
Vertex of G st t
= x & ( not t
in S) & ex v be
Vertex of G st v
in S & (t,v)
are_adjacent ;
hence thesis;
end;
theorem ::
CHORD:50
Th49: for G be
_Graph, S be
set holds for u be
Vertex of G holds u
in (G
.AdjacentSet S) iff not u
in S & ex v be
Vertex of G st v
in S & (u,v)
are_adjacent
proof
let G be
_Graph, S be
set;
let u be
Vertex of G;
hereby
assume u
in (G
.AdjacentSet S);
then ex t be
Vertex of G st u
= t & ( not t
in S) & ex v be
Vertex of G st v
in S & (t,v)
are_adjacent ;
hence not u
in S & ex v be
Vertex of G st v
in S & (u,v)
are_adjacent ;
end;
assume that
A1: not u
in S and
A2: ex v be
Vertex of G st v
in S & (u,v)
are_adjacent ;
thus thesis by
A1,
A2;
end;
theorem ::
CHORD:51
Th50: for G1,G2 be
_Graph st G1
== G2 holds for S be
set holds (G1
.AdjacentSet S)
= (G2
.AdjacentSet S)
proof
let G1,G2 be
_Graph such that
A1: G1
== G2;
let S be
set;
A2:
now
let x be
object such that
A3: x
in (G2
.AdjacentSet S);
reconsider t2 = x as
Vertex of G2 by
A3;
A4: not t2
in S by
A3,
Th49;
consider v2 be
Vertex of G2 such that
A5: v2
in S and
A6: (t2,v2)
are_adjacent by
A3,
Th49;
reconsider t1 = t2, v1 = v2 as
Vertex of G1 by
A1;
(t1,v1)
are_adjacent by
A1,
A6,
Th43;
hence x
in (G1
.AdjacentSet S) by
A4,
A5;
end;
now
let x be
object such that
A7: x
in (G1
.AdjacentSet S);
reconsider t1 = x as
Vertex of G1 by
A7;
A8: not t1
in S by
A7,
Th49;
consider v1 be
Vertex of G1 such that
A9: v1
in S and
A10: (t1,v1)
are_adjacent by
A7,
Th49;
reconsider t2 = t1, v2 = v1 as
Vertex of G2 by
A1;
(t2,v2)
are_adjacent by
A1,
A10,
Th43;
hence x
in (G2
.AdjacentSet S) by
A8,
A9;
end;
hence thesis by
A2,
TARSKI: 2;
end;
theorem ::
CHORD:52
Th51: for G be
_Graph, u,v be
Vertex of G holds u
in (G
.AdjacentSet
{v}) iff u
<> v & (v,u)
are_adjacent
proof
let G be
_Graph, u,v be
Vertex of G;
A1: v
in
{v} by
TARSKI:def 1;
hereby
assume
A2: u
in (G
.AdjacentSet
{v});
then
consider x be
Vertex of G such that
A3: x
in
{v} and
A4: (u,x)
are_adjacent by
Th49;
x
= v by
A3,
TARSKI:def 1;
hence u
<> v & (v,u)
are_adjacent by
A2,
A3,
A4,
Th49;
end;
assume that
A5: u
<> v and
A6: (v,u)
are_adjacent ;
not u
in
{v} by
A5,
TARSKI:def 1;
hence thesis by
A6,
A1;
end;
theorem ::
CHORD:53
for G be
_Graph, x,y be
set holds x
in (G
.AdjacentSet
{y}) iff y
in (G
.AdjacentSet
{x})
proof
let G be
_Graph, x,y be
set;
hereby
assume
A1: x
in (G
.AdjacentSet
{y});
then
reconsider xg = x as
Vertex of G;
now
consider vy be
Vertex of G such that
A2: vy
in
{y} and (vy,xg)
are_adjacent by
A1,
Th49;
assume
A3: not y
in (
the_Vertices_of G);
vy
= y by
A2,
TARSKI:def 1;
hence contradiction by
A3;
end;
then
reconsider yg = y as
Vertex of G;
A4: (xg,yg)
are_adjacent by
A1,
Th51;
xg
<> yg by
A1,
Th51;
hence y
in (G
.AdjacentSet
{x}) by
A4,
Th51;
end;
assume
A5: y
in (G
.AdjacentSet
{x});
then
reconsider yg = y as
Vertex of G;
now
consider vx be
Vertex of G such that
A6: vx
in
{x} and (vx,yg)
are_adjacent by
A5,
Th49;
assume
A7: not x
in (
the_Vertices_of G);
vx
= x by
A6,
TARSKI:def 1;
hence contradiction by
A7;
end;
then
reconsider xg = x as
Vertex of G;
A8: (xg,yg)
are_adjacent by
A5,
Th51;
xg
<> yg by
A5,
Th51;
hence thesis by
A8,
Th51;
end;
theorem ::
CHORD:54
for G be
_Graph, C be
Path of G st C is
Cycle-like & (C
.length() )
> 3 holds for x be
Vertex of G st x
in (C
.vertices() ) holds ex m,n be
odd
Nat st (m
+ 2)
< n & n
<= (
len C) & not (m
= 1 & n
= (
len C)) & not (m
= 1 & n
= ((
len C)
- 2)) & not (m
= 3 & n
= (
len C)) & (C
. m)
<> (C
. n) & (C
. m)
in (G
.AdjacentSet
{x}) & (C
. n)
in (G
.AdjacentSet
{x})
proof
let G be
_Graph, C be
Path of G such that
A1: C is
Cycle-like and
A2: (C
.length() )
> 3;
(C
.length() )
>= (3
+ 1) by
A2,
NAT_1: 13;
then (2
* (C
.length() ))
>= (2
* 4) by
XREAL_1: 64;
then ((2
* (C
.length() ))
+ 1)
>= (8
+ 1) by
XREAL_1: 7;
then
A3: (
len C)
>= 9 by
GLIB_001: 112;
let x be
Vertex of G;
assume x
in (C
.vertices() );
then
consider n be
odd
Element of
NAT such that
A4: n
<= (
len C) and
A5: (C
. n)
= x by
GLIB_001: 87;
A6: (
0
+ 1)
<= n by
ABIAN: 12;
per cases ;
suppose
A7: n
= 1 or n
= (
len C);
reconsider i = ((2
* 1)
+ 1) as
odd
Nat;
reconsider k = ((2
*
0 )
+ 1) as
odd
Nat;
A8: ((
len C)
+
0 )
> (9
+ (
- 6)) by
A3,
XREAL_1: 8;
then
reconsider Ci = (C
. i) as
Vertex of G by
GLIB_001: 7;
A9:
now
per cases by
A7;
suppose n
= 1;
hence x
= (C
. k) by
A5;
end;
suppose n
= (
len C);
then x
= (C
.last() ) by
A5;
then x
= (C
.first() ) by
A1,
GLIB_001:def 24;
hence x
= (C
. k);
end;
end;
then
A10: x
<> Ci by
A8,
GLIB_001:def 28;
((
len C)
+ (
- 2))
>= (9
+ (
- 2)) by
A3,
XREAL_1: 7;
then ((
len C)
- (2
* 1))
>=
0 by
XXREAL_0: 2;
then ((
len C)
- 2) is
odd
Element of
NAT by
INT_1: 3;
then
reconsider j = ((
len C)
- 2) as
odd
Nat;
take i, j;
A11: ((
len C)
+ (
- 2))
>= (9
+ (
- 2)) by
A3,
XREAL_1: 7;
hence (i
+ 2)
< j by
XXREAL_0: 2;
A12: ((
len C)
+
0 )
> ((
len C)
+ (
- 2)) by
XREAL_1: 8;
hence j
<= (
len C);
thus not (i
= 1 & j
= (
len C)) & not (i
= 1 & j
= ((
len C)
- 2)) & not (i
= 3 & j
= (
len C));
hereby
assume
A13: (C
. i)
= (C
. j);
((i
+ 2)
+ (
- 2))
< (j
+
0 ) by
A11,
XXREAL_0: 2;
hence contradiction by
A12,
A13,
GLIB_001:def 28;
end;
((
len C)
+
0 )
> (9
+ (
- 8)) by
A3,
XREAL_1: 8;
then (C
. (k
+ 1))
Joins ((C
. k),(C
. i),G) by
GLIB_001:def 3;
then (x,Ci)
are_adjacent by
A9;
hence (C
. i)
in (G
.AdjacentSet
{x}) by
A10,
Th51;
A14: j
in
NAT by
ORDINAL1:def 12;
then
reconsider Cj = (C
. j) as
Vertex of G by
A12,
GLIB_001: 7;
A15:
now
per cases by
A7;
suppose n
= 1;
then x
= (C
.first() ) by
A5;
then x
= (C
.last() ) by
A1,
GLIB_001:def 24;
hence x
= (C
. (j
+ 2));
end;
suppose n
= (
len C);
hence x
= (C
. (j
+ 2)) by
A5;
end;
end;
A16:
now
assume x
= Cj;
then
A17: j
= 1 by
A14,
A12,
A15,
GLIB_001:def 28;
(j
+ 2)
= (
len C);
hence contradiction by
A3,
A17;
end;
(C
. (j
+ 1))
Joins (Cj,x,G) by
A14,
A12,
A15,
GLIB_001:def 3;
then (x,Cj)
are_adjacent by
Def3;
hence thesis by
A16,
Th51;
end;
suppose
A18: not (n
= 1 or n
= (
len C));
then ((2
*
0 )
+ 1)
< n by
A6,
XXREAL_0: 1;
then (1
+ 2)
<= n by
Th4;
then (3
+ (
- 2))
<= (n
+ (
- 2)) by
XREAL_1: 7;
then
0
<= (n
- (2
* 1));
then (n
- 2) is
odd
Element of
NAT by
INT_1: 3;
then
reconsider i = (n
- 2) as
odd
Nat;
A19: (i
+
0 )
< (i
+ 2) by
XREAL_1: 8;
then
reconsider Ci = (C
. i) as
Vertex of G by
A4,
GLIB_001: 7,
XXREAL_0: 2;
reconsider j = (n
+ 2) as
odd
Nat;
A20: n
< (
len C) by
A4,
A18,
XXREAL_0: 1;
then
A21: (n
+ 2)
<= (((
len C)
- 2)
+ 2) by
Th4;
then
reconsider Cj = (C
. j) as
Vertex of G by
GLIB_001: 7;
A22:
now
A23: (n
+ 2)
> (n
+
0 ) by
XREAL_1: 8;
assume Cj
= x;
hence contradiction by
A5,
A18,
A21,
A23,
GLIB_001:def 28;
end;
take i, j;
(n
+
0 )
< (n
+ 2) by
XREAL_1: 8;
hence (i
+ 2)
< j & j
<= (
len C) by
A20,
Th4;
A24:
now
assume that
A25: i
= 1 and
A26: j
= (
len C);
j
= (i
+ 4);
hence contradiction by
A3,
A25,
A26;
end;
hence not (i
= 1 & j
= (
len C));
hereby
assume that
A27: i
= 1 and
A28: j
= ((
len C)
- 2);
((
len C)
+ (
- 2))
>= (9
+ (
- 3)) by
A3,
XREAL_1: 7;
hence contradiction by
A27,
A28;
end;
hereby
assume that
A29: i
= 3 and
A30: j
= (
len C);
j
= (i
+ 4);
hence contradiction by
A3,
A29,
A30;
end;
A31: i
in
NAT by
ORDINAL1:def 12;
A32:
now
A33: (n
+
0 )
> (n
+ (
- 2)) by
XREAL_1: 8;
assume Ci
= x;
hence contradiction by
A4,
A5,
A18,
A31,
A33,
GLIB_001:def 28;
end;
A34: (n
+ 2)
<= (((
len C)
- 2)
+ 2) by
A20,
Th4;
hereby
A35: ((i
+ 2)
+ (
- 2))
< (j
+
0 ) by
XREAL_1: 8;
assume (C
. i)
= (C
. j);
hence contradiction by
A31,
A34,
A24,
A35,
GLIB_001:def 28;
end;
i
< (
len C) by
A4,
A19,
XXREAL_0: 2;
then (C
. (i
+ 1))
Joins ((C
. i),(C
. (i
+ 2)),G) by
A31,
GLIB_001:def 3;
then (x,Ci)
are_adjacent by
A5,
Def3;
hence (C
. i)
in (G
.AdjacentSet
{x}) by
A32,
Th51;
(C
. (n
+ 1))
Joins ((C
. n),(C
. j),G) by
A20,
GLIB_001:def 3;
then (x,Cj)
are_adjacent by
A5;
hence thesis by
A22,
Th51;
end;
end;
theorem ::
CHORD:55
Th54: for G be
_Graph, C be
Path of G st C is
Cycle-like & (C
.length() )
> 3 holds for x be
Vertex of G st x
in (C
.vertices() ) holds ex m,n be
odd
Nat st (m
+ 2)
< n & n
<= (
len C) & (C
. m)
<> (C
. n) & (C
. m)
in (G
.AdjacentSet
{x}) & (C
. n)
in (G
.AdjacentSet
{x}) & for e be
object st e
in (C
.edges() ) holds not e
Joins ((C
. m),(C
. n),G)
proof
let G be
_Graph, C be
Path of G such that
A1: C is
Cycle-like and
A2: (C
.length() )
> 3;
(C
.length() )
>= (3
+ 1) by
A2,
NAT_1: 13;
then (2
* (C
.length() ))
>= (2
* 4) by
XREAL_1: 64;
then ((2
* (C
.length() ))
+ 1)
>= (8
+ 1) by
XREAL_1: 7;
then
A3: (
len C)
>= 9 by
GLIB_001: 112;
let x be
Vertex of G;
assume x
in (C
.vertices() );
then
consider n be
odd
Element of
NAT such that
A4: n
<= (
len C) and
A5: (C
. n)
= x by
GLIB_001: 87;
A6: (
0
+ 1)
<= n by
ABIAN: 12;
per cases ;
suppose
A7: n
= 1 or n
= (
len C);
reconsider k = ((2
*
0 )
+ 1) as
odd
Nat;
A8:
now
per cases by
A7;
suppose n
= 1;
hence x
= (C
. k) by
A5;
end;
suppose n
= (
len C);
then x
= (C
.last() ) by
A5;
then x
= (C
.first() ) by
A1,
GLIB_001:def 24;
hence x
= (C
. k);
end;
end;
((
len C)
+ (
- 2))
>= (9
+ (
- 2)) by
A3,
XREAL_1: 7;
then ((
len C)
- (2
* 1))
>=
0 by
XXREAL_0: 2;
then ((
len C)
- 2) is
odd
Element of
NAT by
INT_1: 3;
then
reconsider j = ((
len C)
- 2) as
odd
Nat;
reconsider i = ((2
* 1)
+ 1) as
odd
Nat;
take i, j;
A9: ((
len C)
+ (
- 2))
>= (9
+ (
- 2)) by
A3,
XREAL_1: 7;
hence (i
+ 2)
< j by
XXREAL_0: 2;
A10: ((
len C)
+
0 )
> ((
len C)
+ (
- 2)) by
XREAL_1: 8;
hence j
<= (
len C);
i
< j by
A9,
XXREAL_0: 2;
then
A11: i
< (
len C) by
A10,
XXREAL_0: 2;
hereby
assume
A12: (C
. i)
= (C
. j);
((i
+ 2)
+ (
- 2))
< (j
+
0 ) by
A9,
XXREAL_0: 2;
hence contradiction by
A10,
A12,
GLIB_001:def 28;
end;
A13: ((
len C)
+
0 )
> (9
+ (
- 6)) by
A3,
XREAL_1: 8;
then
reconsider Ci = (C
. i) as
Vertex of G by
GLIB_001: 7;
((
len C)
+
0 )
> (9
+ (
- 8)) by
A3,
XREAL_1: 8;
then (C
. (k
+ 1))
Joins ((C
. k),(C
. i),G) by
GLIB_001:def 3;
then
A14: (x,Ci)
are_adjacent by
A8;
x
<> Ci by
A13,
A8,
GLIB_001:def 28;
hence (C
. i)
in (G
.AdjacentSet
{x}) by
A14,
Th51;
A15: j
<> 1 by
A9;
A16: j
in
NAT by
ORDINAL1:def 12;
then
reconsider Cj = (C
. j) as
Vertex of G by
A10,
GLIB_001: 7;
A17:
now
per cases by
A7;
suppose n
= 1;
then x
= (C
.first() ) by
A5;
then x
= (C
.last() ) by
A1,
GLIB_001:def 24;
hence x
= (C
. (j
+ 2));
end;
suppose n
= (
len C);
hence x
= (C
. (j
+ 2)) by
A5;
end;
end;
A18:
now
assume x
= Cj;
then
A19: j
= 1 by
A16,
A10,
A17,
GLIB_001:def 28;
(j
+ 2)
= (
len C);
hence contradiction by
A3,
A19;
end;
(C
. (j
+ 1))
Joins ((C
. j),(C
. (j
+ 2)),G) by
A16,
A10,
GLIB_001:def 3;
then (x,Cj)
are_adjacent by
A17,
Def3;
hence (C
. j)
in (G
.AdjacentSet
{x}) by
A18,
Th51;
let e be
object such that
A20: e
in (C
.edges() ) and
A21: e
Joins ((C
. i),(C
. j),G);
consider k be
even
Element of
NAT such that
A22: 1
<= k and
A23: k
<= (
len C) and
A24: (C
. k)
= e by
A20,
GLIB_001: 99;
A25: ((
the_Source_of G)
. e)
= (C
. i) & ((
the_Target_of G)
. e)
= (C
. j) or ((
the_Source_of G)
. e)
= (C
. j) & ((
the_Target_of G)
. e)
= (C
. i) by
A21;
k
in (
dom C) by
A22,
A23,
FINSEQ_3: 25;
then
consider ku1 be
odd
Element of
NAT such that
A26: ku1
= (k
- 1) and
A27: (k
- 1)
in (
dom C) and
A28: (k
+ 1)
in (
dom C) and
A29: (C
. k)
Joins ((C
. ku1),(C
. (k
+ 1)),G) by
GLIB_001: 9;
A30: ku1
<= (
len C) by
A26,
A27,
FINSEQ_3: 25;
A31: (k
+ 1)
<= (
len C) by
A28,
FINSEQ_3: 25;
per cases by
A24,
A29,
A25;
suppose
A32: (C
. i)
= (C
. ku1) & (C
. j)
= (C
. (k
+ 1));
then (i
+ 2)
= ((k
- 1)
+ (1
+ 1)) by
A26,
A30,
A11,
Th25
.= j by
A10,
A31,
A15,
A32,
Th25;
hence contradiction by
A9;
end;
suppose
A33: (C
. i)
= (C
. (k
+ 1)) & (C
. j)
= (C
. ku1);
then i
= (k
+ 1) by
A31,
A11,
Th25;
hence contradiction by
A10,
A26,
A30,
A15,
A33,
Th25;
end;
end;
suppose
A34: not (n
= 1 or n
= (
len C));
then ((2
*
0 )
+ 1)
< n by
A6,
XXREAL_0: 1;
then (1
+ 2)
<= n by
Th4;
then (3
+ (
- 2))
<= (n
+ (
- 2)) by
XREAL_1: 7;
then (n
- (2
* 1)) is
odd
Element of
NAT by
INT_1: 3;
then
reconsider i = (n
- (2
* 1)) as
odd
Nat;
A35: (i
+
0 )
< (i
+ 2) by
XREAL_1: 8;
then
reconsider Ci = (C
. i) as
Vertex of G by
A4,
GLIB_001: 7,
XXREAL_0: 2;
reconsider j = (n
+ 2) as
odd
Nat;
take i, j;
(n
+
0 )
< (n
+ 2) by
XREAL_1: 8;
hence (i
+ 2)
< j;
A36: n
< (
len C) by
A4,
A34,
XXREAL_0: 1;
hence
A37: j
<= (
len C) by
Th4;
then
reconsider Cj = (C
. j) as
Vertex of G by
GLIB_001: 7;
A38: i
in
NAT by
ORDINAL1:def 12;
A39:
now
A40: (n
+
0 )
> (n
+ (
- 2)) by
XREAL_1: 8;
assume Ci
= x;
hence contradiction by
A4,
A5,
A34,
A38,
A40,
GLIB_001:def 28;
end;
A41:
now
assume that
A42: i
= 1 and
A43: j
= (
len C);
j
= (i
+ 4);
hence contradiction by
A3,
A42,
A43;
end;
hereby
A44: ((i
+ 2)
+ (
- 2))
< (j
+
0 ) by
XREAL_1: 8;
assume (C
. i)
= (C
. j);
hence contradiction by
A38,
A37,
A41,
A44,
GLIB_001:def 28;
end;
A45: i
< (
len C) by
A4,
A35,
XXREAL_0: 2;
then (C
. (i
+ 1))
Joins ((C
. i),(C
. (i
+ 2)),G) by
A38,
GLIB_001:def 3;
then (x,Ci)
are_adjacent by
A5,
Def3;
hence (C
. i)
in (G
.AdjacentSet
{x}) by
A39,
Th51;
(1
+ 2)
<= j by
A6,
XREAL_1: 7;
then
A46: j
<> 1;
A47: (n
+ 2)
<= (((
len C)
- 2)
+ 2) by
A36,
Th4;
A48:
now
A49: (n
+ 2)
> (n
+
0 ) by
XREAL_1: 8;
assume Cj
= x;
hence contradiction by
A5,
A34,
A47,
A49,
GLIB_001:def 28;
end;
(C
. (n
+ 1))
Joins ((C
. n),(C
. j),G) by
A36,
GLIB_001:def 3;
then (x,Cj)
are_adjacent by
A5;
hence (C
. j)
in (G
.AdjacentSet
{x}) by
A48,
Th51;
let e be
object such that
A50: e
in (C
.edges() ) and
A51: e
Joins ((C
. i),(C
. j),G);
consider k be
even
Element of
NAT such that
A52: 1
<= k and
A53: k
<= (
len C) and
A54: (C
. k)
= e by
A50,
GLIB_001: 99;
A55: ((
the_Source_of G)
. e)
= (C
. i) & ((
the_Target_of G)
. e)
= (C
. j) or ((
the_Source_of G)
. e)
= (C
. j) & ((
the_Target_of G)
. e)
= (C
. i) by
A51;
(1
+ 1)
<= (k
+ 1) by
A52,
XREAL_1: 7;
then
A56: (k
+ 1)
<> 1;
A57: (k
- 1)
< (
len C) by
A53,
XREAL_1: 146,
XXREAL_0: 2;
k
in (
dom C) by
A52,
A53,
FINSEQ_3: 25;
then
consider ku1 be
odd
Element of
NAT such that
A58: ku1
= (k
- 1) and (k
- 1)
in (
dom C) and
A59: (k
+ 1)
in (
dom C) and
A60: (C
. k)
Joins ((C
. ku1),(C
. (k
+ 1)),G) by
GLIB_001: 9;
A61: (k
+ 1)
<= (
len C) by
A59,
FINSEQ_3: 25;
per cases by
A54,
A60,
A55;
suppose
A62: (C
. i)
= (C
. ku1) & (C
. j)
= (C
. (k
+ 1));
then (i
+ 2)
= ((k
- 1)
+ (1
+ 1)) by
A45,
A58,
A57,
Th25
.= j by
A37,
A61,
A46,
A56,
A62,
Th25;
hence contradiction;
end;
suppose
A63: (C
. i)
= (C
. (k
+ 1)) & (C
. j)
= (C
. ku1);
per cases by
A37,
A45,
A58,
A57,
A61,
A63,
Th25;
suppose i
= (k
+ 1) & j
= (k
- 1);
hence contradiction;
end;
suppose
A64: i
= (k
+ 1) & (k
- 1)
= 1 & j
= (
len C);
j
= (i
+ 4);
hence contradiction by
A3,
A64;
end;
suppose
A65: i
= 1 & (k
+ 1)
= (
len C) & j
= (k
- 1);
then (k
+ 1)
= 7;
hence contradiction by
A3,
A65;
end;
suppose i
= 1 & (k
+ 1)
= (
len C) & (k
- 1)
= 1 & j
= (
len C);
hence contradiction;
end;
end;
end;
end;
theorem ::
CHORD:56
for G be
loopless
_Graph, u be
Vertex of G holds (G
.AdjacentSet
{u})
=
{} iff u is
isolated
proof
let G be
loopless
_Graph, u be
Vertex of G;
hereby
assume
A1: (G
.AdjacentSet
{u})
=
{} ;
now
assume (u
.edgesInOut() )
<>
{} ;
then
consider e be
object such that
A2: e
in (u
.edgesInOut() ) by
XBOOLE_0:def 1;
consider v be
Vertex of G such that
A3: e
Joins (u,v,G) by
A2,
GLIB_000: 64;
A4: u
<> v by
A3,
GLIB_000:def 18;
(v,u)
are_adjacent by
A3,
Def3;
hence contradiction by
A1,
A4,
Th51;
end;
hence u is
isolated;
end;
assume u is
isolated;
then
A5: (u
.edgesInOut() )
=
{} ;
now
let v be
object such that
A6: v
in (G
.AdjacentSet
{u});
reconsider v as
Vertex of G by
A6;
(v,u)
are_adjacent by
A6,
Th51;
then ex e be
object st e
Joins (v,u,G);
hence contradiction by
A5,
GLIB_000: 14,
GLIB_000: 62;
end;
hence thesis by
XBOOLE_0:def 1;
end;
theorem ::
CHORD:57
Th56: for G be
_Graph, G0 be
Subgraph of G, S be non
empty
Subset of (
the_Vertices_of G), x be
Vertex of G, G1 be
inducedSubgraph of G, S, G2 be
inducedSubgraph of G, (S
\/
{x}) st G1 is
connected & x
in (G
.AdjacentSet (
the_Vertices_of G1)) holds G2 is
connected
proof
let G be
_Graph, G0 be
Subgraph of G, S be non
empty
Subset of (
the_Vertices_of G), x be
Vertex of G, G1 be
inducedSubgraph of G, S, G2 be
inducedSubgraph of G, (S
\/
{x}) such that
A1: G1 is
connected and
A2: x
in (G
.AdjacentSet (
the_Vertices_of G1));
A3: (
the_Vertices_of G1)
= S by
GLIB_000:def 37;
then
consider xs be
Vertex of G such that
A4: xs
in S and
A5: (x,xs)
are_adjacent by
A2,
Th49;
consider e be
object such that
A6: e
Joins (x,xs,G) by
A5;
reconsider Sx = (S
\/
{x}) as
Subset of (
the_Vertices_of G);
let u,v be
Vertex of G2;
A7: (
the_Vertices_of G2)
= Sx by
GLIB_000:def 37;
then
A8: u
in S or u
in
{x} by
XBOOLE_0:def 3;
x
in
{x} by
TARSKI:def 1;
then
A9: x
in Sx by
XBOOLE_0:def 3;
A10: xs
in Sx by
A4,
XBOOLE_0:def 3;
e
Joins (xs,x,G) by
A6;
then
A11: e
Joins (xs,x,G2) by
A9,
A10,
Th19;
then
A12: e
Joins (x,xs,G2);
A13: v
in S or v
in
{x} by
A7,
XBOOLE_0:def 3;
A14: G1 is
inducedSubgraph of G2, S by
Th30,
XBOOLE_1: 7;
per cases by
A8,
A13,
TARSKI:def 1;
suppose
A15: u
in S & v
in S;
(
the_Vertices_of G1)
= S by
GLIB_000:def 37;
then
consider W be
Walk of G1 such that
A16: W
is_Walk_from (u,v) by
A1,
A15;
reconsider W as
Walk of G2 by
A14,
GLIB_001: 167;
take W;
thus thesis by
A16;
end;
suppose
A17: u
in S & v
= x;
then
consider W be
Walk of G1 such that
A18: W
is_Walk_from (u,xs) by
A1,
A3,
A4;
reconsider W as
Walk of G2 by
A14,
GLIB_001: 167;
take (W
.append (G2
.walkOf (xs,e,x)));
A19: (G2
.walkOf (xs,e,x))
is_Walk_from (xs,x) by
A11,
GLIB_001: 15;
W
is_Walk_from (u,xs) by
A18;
hence thesis by
A17,
A19,
GLIB_001: 31;
end;
suppose
A20: u
= x & v
in S;
then
consider W be
Walk of G1 such that
A21: W
is_Walk_from (xs,v) by
A1,
A3,
A4;
reconsider W as
Walk of G2 by
A14,
GLIB_001: 167;
take ((G2
.walkOf (x,e,xs))
.append W);
A22: (G2
.walkOf (x,e,xs))
is_Walk_from (x,xs) by
A12,
GLIB_001: 15;
W
is_Walk_from (xs,v) by
A21;
hence thesis by
A20,
A22,
GLIB_001: 31;
end;
suppose u
= x & v
= x;
then (G2
.walkOf u)
is_Walk_from (u,v) by
GLIB_001: 13;
hence thesis;
end;
end;
theorem ::
CHORD:58
Th57: for G be
_Graph holds for S be non
empty
Subset of (
the_Vertices_of G) holds for H be
inducedSubgraph of G, S holds for u be
Vertex of G st u
in S & (G
.AdjacentSet
{u})
c= S holds for v be
Vertex of H st u
= v holds (G
.AdjacentSet
{u})
= (H
.AdjacentSet
{v})
proof
let G be
_Graph;
let S be non
empty
Subset of (
the_Vertices_of G);
let G2 be
inducedSubgraph of G, S;
let u be
Vertex of G such that
A1: u
in S and
A2: (G
.AdjacentSet
{u})
c= S;
let v be
Vertex of G2 such that
A3: u
= v;
now
let x be
object;
hereby
assume
A4: x
in (G
.AdjacentSet
{u});
then
reconsider y = x as
Vertex of G;
reconsider w = x as
Vertex of G2 by
A2,
A4,
GLIB_000:def 37;
(y,u)
are_adjacent by
A4,
Th51;
then
consider e be
object such that
A5: e
Joins (y,u,G);
e
Joins (y,u,G2) by
A1,
A2,
A4,
A5,
Th19;
then
A6: (w,v)
are_adjacent by
A3;
w
<> v by
A3,
A4,
Th51;
hence x
in (G2
.AdjacentSet
{v}) by
A6,
Th51;
end;
assume
A7: x
in (G2
.AdjacentSet
{v});
then
reconsider y = x as
Vertex of G2;
x
in (
the_Vertices_of G2) by
A7;
then
reconsider w = x as
Vertex of G;
(y,v)
are_adjacent by
A7,
Th51;
then
consider e be
object such that
A8: e
Joins (y,v,G2);
e
Joins (y,v,G) by
A8,
GLIB_000: 72;
then
A9: (w,u)
are_adjacent by
A3;
w
<> u by
A3,
A7,
Th51;
hence x
in (G
.AdjacentSet
{u}) by
A9,
Th51;
end;
hence thesis by
TARSKI: 2;
end;
definition
let G be
_Graph, S be
set;
::
CHORD:def5
mode
AdjGraph of G,S ->
Subgraph of G means
:
Def5: it is
inducedSubgraph of G, (G
.AdjacentSet S) if S is
Subset of (
the_Vertices_of G);
existence
proof
set T = the
inducedSubgraph of G, (G
.AdjacentSet S);
T is
Subgraph of G;
hence thesis;
end;
consistency ;
end
theorem ::
CHORD:59
Th58: for G1,G2 be
_Graph st G1
== G2 holds for u1 be
Vertex of G1, u2 be
Vertex of G2 st u1
= u2 holds for H1 be
AdjGraph of G1,
{u1}, H2 be
AdjGraph of G2,
{u2} holds H1
== H2
proof
let G1,G2 be
_Graph such that
A1: G1
== G2;
let u1 be
Vertex of G1, u2 be
Vertex of G2 such that
A2: u1
= u2;
set G2Adj = (G2
.AdjacentSet
{u2});
set G1Adj = (G1
.AdjacentSet
{u1});
A3: G1Adj
= G2Adj by
A1,
A2,
Th50;
let H1 be
AdjGraph of G1,
{u1};
let H2 be
AdjGraph of G2,
{u2};
A4: H1 is
inducedSubgraph of G1, G1Adj by
Def5;
A5: H2 is
inducedSubgraph of G2, G2Adj by
Def5;
per cases ;
suppose
A6: not G1Adj is non
empty
Subset of (
the_Vertices_of G1);
then H1
== G1 by
A4,
GLIB_000:def 37;
then
A7: H1
== G2 by
A1;
H2
== G2 by
A5,
A3,
A6,
GLIB_000:def 37;
hence thesis by
A7;
end;
suppose
A8: G1Adj is non
empty
Subset of (
the_Vertices_of G1);
then (
the_Vertices_of H1)
= G1Adj by
A4,
GLIB_000:def 37;
then
A9: (
the_Vertices_of H1)
= (
the_Vertices_of H2) by
A5,
A3,
GLIB_000:def 37;
G1 is
Subgraph of G2 by
A1,
GLIB_000: 87;
then
A10: (G1
.edgesBetween G1Adj)
c= (G2
.edgesBetween G1Adj) by
GLIB_000: 76;
A11: (
the_Edges_of H1)
= (G1
.edgesBetween G1Adj) by
A4,
A8,
GLIB_000:def 37;
G2 is
Subgraph of G1 by
A1,
GLIB_000: 87;
then
A12: (G2
.edgesBetween G1Adj)
c= (G1
.edgesBetween G1Adj) by
GLIB_000: 76;
G2 is
Subgraph of G1 by
A1,
GLIB_000: 87;
then
A13: H2 is
Subgraph of G1 by
GLIB_000: 43;
(
the_Edges_of H2)
= (G2
.edgesBetween G2Adj) by
A5,
A3,
A8,
GLIB_000:def 37;
then (
the_Edges_of H1)
= (
the_Edges_of H2) by
A3,
A11,
A10,
A12;
hence thesis by
A9,
A13,
GLIB_000: 86;
end;
end;
theorem ::
CHORD:60
Th59: for G be
_Graph holds for S be non
empty
Subset of (
the_Vertices_of G) holds for H be
inducedSubgraph of G, S holds for u be
Vertex of G st u
in S & (G
.AdjacentSet
{u})
c= S & (G
.AdjacentSet
{u})
<>
{} holds for v be
Vertex of H st u
= v holds for Ga be
AdjGraph of G,
{u}, Ha be
AdjGraph of H,
{v} holds Ga
== Ha
proof
let G be
_Graph;
let S be non
empty
Subset of (
the_Vertices_of G);
let H be
inducedSubgraph of G, S;
let u be
Vertex of G such that
A1: u
in S and
A2: (G
.AdjacentSet
{u})
c= S and
A3: (G
.AdjacentSet
{u})
<>
{} ;
let v be
Vertex of H;
assume u
= v;
then
A4: (G
.AdjacentSet
{u})
= (H
.AdjacentSet
{v}) by
A1,
A2,
Th57;
let Ga be
AdjGraph of G,
{u}, Ha be
AdjGraph of H,
{v};
A5: Ha is
inducedSubgraph of H, (H
.AdjacentSet
{v}) by
Def5;
A6: Ga is
inducedSubgraph of G, (G
.AdjacentSet
{u}) by
Def5;
then
A7: (
the_Edges_of Ga)
= (G
.edgesBetween (G
.AdjacentSet
{u})) by
A3,
GLIB_000:def 37;
(
the_Vertices_of Ga)
= (G
.AdjacentSet
{u}) by
A3,
A6,
GLIB_000:def 37;
hence (
the_Vertices_of Ga)
= (
the_Vertices_of Ha) by
A4,
A5,
GLIB_000:def 37;
(
the_Edges_of Ha)
= (H
.edgesBetween (H
.AdjacentSet
{v})) by
A3,
A4,
A5,
GLIB_000:def 37;
hence
A8: (
the_Edges_of Ga)
= (
the_Edges_of Ha) by
A2,
A3,
A4,
A7,
Th31;
A9: (
the_Target_of Ga)
= ((
the_Target_of G)
| (
the_Edges_of Ga)) by
GLIB_000: 45;
Ha is
inducedSubgraph of H, (G
.AdjacentSet
{u}) by
A4,
Def5;
then
A10: Ha is
inducedSubgraph of G, (G
.AdjacentSet
{u}) by
A2,
A3,
Th29;
(
the_Source_of Ga)
= ((
the_Source_of G)
| (
the_Edges_of Ga)) by
GLIB_000: 45;
hence (
the_Source_of Ha)
= (
the_Source_of Ga) & (
the_Target_of Ha)
= (
the_Target_of Ga) by
A8,
A9,
A10,
GLIB_000: 45;
end;
definition
let G be
_Graph;
::
CHORD:def6
attr G is
complete means
:
Def6: for u,v be
Vertex of G st u
<> v holds (u,v)
are_adjacent ;
end
theorem ::
CHORD:61
Th60: for G be
_Graph st G is
_trivial holds G is
complete
proof
let G be
_Graph;
assume G is
_trivial;
then
consider x be
Vertex of G such that
A1: (
the_Vertices_of G)
=
{x} by
GLIB_000: 22;
let u,v be
Vertex of G such that
A2: u
<> v and not (u,v)
are_adjacent ;
u
= x by
A1,
TARSKI:def 1;
hence contradiction by
A1,
A2,
TARSKI:def 1;
end;
registration
cluster
_trivial ->
complete for
_Graph;
coherence by
Th60;
end
registration
cluster
_trivial
simple
complete for
_Graph;
existence
proof
set G = the
_trivial
simple
_Graph;
take G;
thus thesis;
end;
cluster non
_trivial
_finite
simple
complete for
_Graph;
existence
proof
set V =
{
0 , 1}, E =
{
0 }, S = (
0
.-->
0 ), T = (
0
.--> 1);
A1: (
dom T)
= E;
A2:
now
let x be
object;
assume x
in E;
then x
=
0 by
TARSKI:def 1;
then (T
. x)
= 1 by
FUNCOP_1: 72;
hence (T
. x)
in V by
TARSKI:def 2;
end;
A3:
now
let x be
object;
assume x
in E;
then x
=
0 by
TARSKI:def 1;
then (S
. x)
=
0 by
FUNCOP_1: 72;
hence (S
. x)
in V by
TARSKI:def 2;
end;
reconsider T as
Function of E, V by
A1,
A2,
FUNCT_2: 3;
(
dom S)
= E;
then
reconsider S as
Function of E, V by
A3,
FUNCT_2: 3;
set G = (
createGraph (V,E,S,T));
take G;
(
the_Source_of G)
= S by
GLIB_000: 6;
then
A4: ((
the_Source_of G)
.
0 )
=
0 by
FUNCOP_1: 72;
A5: (
the_Edges_of G)
= E by
GLIB_000: 6;
now
let e1,e2,v1,v2 be
object such that
A6: e1
Joins (v1,v2,G) and
A7: e2
Joins (v1,v2,G);
e1
in
{
0 } by
A5,
A6;
then
A8: e1
=
0 by
TARSKI:def 1;
assume
A9: e1
<> e2;
e2
in
{
0 } by
A5,
A7;
hence contradiction by
A9,
A8,
TARSKI:def 1;
end;
then
A10: G is
non-multi;
A11: (
the_Vertices_of G)
= V by
GLIB_000: 6;
now
assume (
card (
the_Vertices_of G))
= 1;
then ex x be
object st (
the_Vertices_of G)
=
{x} by
CARD_2: 42;
hence contradiction by
A11,
ZFMISC_1: 5;
end;
hence G is non
_trivial & G is
_finite;
(
the_Target_of G)
= T by
GLIB_000: 6;
then
A12: ((
the_Target_of G)
.
0 )
= 1 by
FUNCOP_1: 72;
0
in (
the_Edges_of G) by
A5,
TARSKI:def 1;
then
A13:
0
Joins (
0 ,1,G) by
A4,
A12;
now
let v be
object;
let e be
object such that
A14: e
Joins (v,v,G);
reconsider v as
Vertex of G by
A14,
GLIB_000: 13;
e
in (
the_Edges_of G) by
A14;
then e
Joins (
0 ,1,G) by
A5,
A13,
TARSKI:def 1;
then
0
= v & 1
= v or
0
= v & 1
= v by
A14;
hence contradiction;
end;
then G is
loopless by
GLIB_000: 18;
hence G is
simple by
A10;
now
let u,v be
Vertex of G such that
A15: u
<> v;
per cases by
A11,
TARSKI:def 2;
suppose
A16: u
=
0 ;
A17:
0
in (
the_Edges_of G) by
A5,
TARSKI:def 1;
v
= 1 by
A11,
A15,
A16,
TARSKI:def 2;
then
0
Joins (u,v,G) by
A4,
A12,
A16,
A17;
hence (u,v)
are_adjacent ;
end;
suppose
A18: u
= 1;
A19:
0
in (
the_Edges_of G) by
A5,
TARSKI:def 1;
v
=
0 by
A11,
A15,
A18,
TARSKI:def 2;
then
0
Joins (v,u,G) by
A4,
A12,
A18,
A19;
hence (u,v)
are_adjacent by
Def3;
end;
end;
hence thesis;
end;
end
theorem ::
CHORD:62
Th61: for G1,G2 be
_Graph st G1
== G2 holds G1 is
complete implies G2 is
complete
proof
let G1,G2 be
_Graph such that
A1: G1
== G2;
assume
A2: G1 is
complete;
now
let u,v be
Vertex of G2 such that
A3: u
<> v;
reconsider v2 = v as
Vertex of G1 by
A1;
reconsider u2 = u as
Vertex of G1 by
A1;
(u2,v2)
are_adjacent by
A2,
A3;
hence (u,v)
are_adjacent by
A1,
Th43;
end;
hence thesis;
end;
theorem ::
CHORD:63
Th62: for G be
complete
_Graph, S be
Subset of (
the_Vertices_of G) holds for H be
inducedSubgraph of G, S holds H is
complete
proof
let G be
complete
_Graph;
let S be
Subset of (
the_Vertices_of G);
let H be
inducedSubgraph of G, S;
per cases ;
suppose S
=
{} ;
then H
== G by
GLIB_000:def 37;
hence thesis by
Th61;
end;
suppose S
<>
{} ;
then
A1: (
the_Vertices_of H)
= S by
GLIB_000:def 37;
now
let u,v be
Vertex of H such that
A2: u
<> v;
reconsider v2 = v as
Vertex of G by
A1,
TARSKI:def 3;
reconsider u2 = u as
Vertex of G by
A1,
TARSKI:def 3;
(u2,v2)
are_adjacent by
A2,
Def6;
then
consider e be
object such that
A3: e
Joins (u2,v2,G);
e
Joins (u,v,H) by
A1,
A3,
Th19;
hence (u,v)
are_adjacent ;
end;
hence thesis;
end;
end;
begin
definition
let G be
_Graph, v be
Vertex of G;
::
CHORD:def7
attr v is
simplicial means (G
.AdjacentSet
{v})
<>
{} implies for G2 be
AdjGraph of G,
{v} holds G2 is
complete;
end
theorem ::
CHORD:64
Th63: for G be
complete
_Graph, v be
Vertex of G holds v is
simplicial
proof
let G be
complete
_Graph, v be
Vertex of G;
now
let G2 be
AdjGraph of G,
{v};
G2 is
inducedSubgraph of G, (G
.AdjacentSet
{v}) by
Def5;
hence G2 is
complete by
Th62;
end;
hence thesis;
end;
theorem ::
CHORD:65
for G be
_trivial
_Graph, v be
Vertex of G holds v is
simplicial;
theorem ::
CHORD:66
Th65: for G1,G2 be
_Graph st G1
== G2 holds for u1 be
Vertex of G1, u2 be
Vertex of G2 st u1
= u2 & u1 is
simplicial holds u2 is
simplicial
proof
let G1,G2 be
_Graph such that
A1: G1
== G2;
let u1 be
Vertex of G1, u2 be
Vertex of G2 such that
A2: u1
= u2;
assume
A3: u1 is
simplicial;
now
per cases ;
suppose (G1
.AdjacentSet
{u1})
=
{} ;
then (G2
.AdjacentSet
{u2})
=
{} by
A1,
A2,
Th50;
hence thesis;
end;
suppose
A4: (G1
.AdjacentSet
{u1})
<>
{} ;
set H1 = the
AdjGraph of G1,
{u1};
H1 is
complete by
A3,
A4;
then for H2 be
AdjGraph of G2,
{u2} holds H2 is
complete by
A1,
A2,
Th58,
Th61;
hence thesis;
end;
end;
hence thesis;
end;
theorem ::
CHORD:67
Th66: for G be
_Graph holds for S be non
empty
Subset of (
the_Vertices_of G) holds for H be
inducedSubgraph of G, S holds for u be
Vertex of G st u
in S & (G
.AdjacentSet
{u})
c= S holds for v be
Vertex of H st u
= v holds u is
simplicial iff v is
simplicial
proof
let G be
_Graph;
let S be non
empty
Subset of (
the_Vertices_of G);
let G2 be
inducedSubgraph of G, S;
let u be
Vertex of G such that
A1: u
in S and
A2: (G
.AdjacentSet
{u})
c= S;
let v be
Vertex of G2 such that
A3: u
= v;
A4: (G
.AdjacentSet
{u})
=
{} iff (G2
.AdjacentSet
{v})
=
{} by
A1,
A2,
A3,
Th57;
per cases ;
suppose (G
.AdjacentSet
{u})
=
{} ;
hence thesis by
A4;
end;
suppose
A5: (G
.AdjacentSet
{u})
<>
{} ;
hereby
set Ga = the
AdjGraph of G,
{u};
assume u is
simplicial;
then
A6: Ga is
complete by
A5;
thus v is
simplicial by
A1,
A2,
A3,
A5,
A6,
Th59,
Th61;
end;
set Ha = the
AdjGraph of G2,
{v};
assume
A7: v is
simplicial;
(G2
.AdjacentSet
{v})
<>
{} by
A1,
A2,
A3,
A5,
Th57;
then
A8: Ha is
complete by
A7;
thus u is
simplicial
proof
assume (G
.AdjacentSet
{u})
<>
{} ;
let Ga be
AdjGraph of G,
{u};
Ga
== Ha by
A1,
A2,
A3,
A5,
Th59;
hence thesis by
A8,
Th61;
end;
end;
end;
theorem ::
CHORD:68
Th67: for G be
_Graph, v be
Vertex of G st v is
simplicial holds for a,b be
object st a
<> b & a
in (G
.AdjacentSet
{v}) & b
in (G
.AdjacentSet
{v}) holds ex e be
object st e
Joins (a,b,G)
proof
let G be
_Graph, x be
Vertex of G such that
A1: x is
simplicial;
set H = the
AdjGraph of G,
{x};
let a,b be
object such that
A2: a
<> b and
A3: a
in (G
.AdjacentSet
{x}) and
A4: b
in (G
.AdjacentSet
{x});
A5: H is
inducedSubgraph of G, (G
.AdjacentSet
{x}) by
Def5;
then
reconsider u = a as
Vertex of H by
A3,
GLIB_000:def 37;
reconsider v = b as
Vertex of H by
A4,
A5,
GLIB_000:def 37;
H is
complete by
A1,
A3;
then (u,v)
are_adjacent by
A2;
then
consider e be
object such that
A6: e
Joins (u,v,H);
e
Joins (a,b,G) by
A6,
GLIB_000: 72;
hence thesis;
end;
theorem ::
CHORD:69
Th68: for G be
_Graph, v be
Vertex of G st not v is
simplicial holds ex a,b be
Vertex of G st a
<> b & v
<> a & v
<> b & (v,a)
are_adjacent & (v,b)
are_adjacent & not (a,b)
are_adjacent
proof
let G be
_Graph, v be
Vertex of G such that
A1: not v is
simplicial;
assume
A2: not ex a,b be
Vertex of G st a
<> b & v
<> a & v
<> b & (v,a)
are_adjacent & (v,b)
are_adjacent & not (a,b)
are_adjacent ;
per cases ;
suppose (G
.AdjacentSet
{v})
=
{} ;
hence contradiction by
A1;
end;
suppose
A3: (G
.AdjacentSet
{v})
<>
{} ;
now
let H be
AdjGraph of G,
{v};
A4: H is
inducedSubgraph of G, (G
.AdjacentSet
{v}) by
Def5;
now
let a,b be
Vertex of H such that
A5: a
<> b;
A6: (
the_Vertices_of H)
= (G
.AdjacentSet
{v}) by
A3,
A4,
GLIB_000:def 37;
then
A7: b
in (G
.AdjacentSet
{v});
a
in (G
.AdjacentSet
{v}) by
A6;
then
reconsider vv = v, aa = a, bb = b as
Vertex of G by
A7;
A8: (aa,vv)
are_adjacent by
A6,
Th51;
A9: (bb,vv)
are_adjacent by
A6,
Th51;
aa
<> vv by
A6,
Th51;
then (aa,bb)
are_adjacent by
A2,
A5,
A8,
A9;
hence (a,b)
are_adjacent by
A3,
A4,
Th44;
end;
hence H is
complete;
end;
hence contradiction by
A1;
end;
end;
begin
definition
let G be
_Graph, a,b be
Vertex of G;
assume that
A1: a
<> b and
A2: not (a,b)
are_adjacent ;
::
CHORD:def8
mode
VertexSeparator of a,b ->
Subset of (
the_Vertices_of G) means
:
Def8: not a
in it & not b
in it & for G2 be
removeVertices of G, it holds not (ex W be
Walk of G2 st W
is_Walk_from (a,b));
existence
proof
set S = ((
the_Vertices_of G)
\
{a, b});
a
in
{a, b} by
TARSKI:def 2;
then
A3: not a
in S by
XBOOLE_0:def 5;
A4: not ex e be
set st e
Joins (a,b,G) by
A2;
A5: for G2 be
removeVertices of G, S holds not ex W be
Walk of G2 st W
is_Walk_from (a,b)
proof
let G2 be
removeVertices of G, S;
let W be
Walk of G2 such that
A6: W
is_Walk_from (a,b);
A7:
now
let x be
set such that
A8: x
in
{a, b};
now
per cases by
A8,
TARSKI:def 2;
suppose x
= a;
then x
= (W
.first() ) by
A6;
hence x
in (W
.vertices() ) by
GLIB_001: 88;
end;
suppose x
= b;
then x
= (W
.last() ) by
A6;
hence x
in (W
.vertices() ) by
GLIB_001: 88;
end;
end;
hence x
in (W
.vertices() );
end;
reconsider W2 = W as
Walk of G by
GLIB_001: 167;
A9:
now
let x be
object;
hereby
assume x
in (W2
.vertices() );
then ex n be
odd
Element of
NAT st n
<= (
len W) & (W
. n)
= x by
GLIB_001: 87;
hence x
in (W
.vertices() ) by
GLIB_001: 87;
end;
assume x
in (W
.vertices() );
then ex n be
odd
Element of
NAT st n
<= (
len W2) & (W2
. n)
= x by
GLIB_001: 87;
hence x
in (W2
.vertices() ) by
GLIB_001: 87;
end;
((
the_Vertices_of G)
\ S) is non
empty by
A3,
XBOOLE_0:def 5;
then (
the_Vertices_of G2)
= ((
the_Vertices_of G)
\ S) by
GLIB_000:def 37;
then (
the_Vertices_of G2)
= ((
the_Vertices_of G)
/\
{a, b}) by
XBOOLE_1: 48;
then (
the_Vertices_of G2)
=
{a, b} by
XBOOLE_1: 28;
then for x be
object holds x
in (W
.vertices() ) iff x
in
{a, b} by
A7;
then (W
.vertices() )
=
{a, b} by
TARSKI: 2;
then (W2
.vertices() )
=
{a, b} by
A9,
TARSKI: 2;
hence contradiction by
A1,
A4,
Th22;
end;
b
in
{a, b} by
TARSKI:def 2;
then not b
in S by
XBOOLE_0:def 5;
hence thesis by
A3,
A5;
end;
end
theorem ::
CHORD:70
Th69: for G be
_Graph, a,b be
Vertex of G st a
<> b & not (a,b)
are_adjacent holds for S be
VertexSeparator of a, b holds S is
VertexSeparator of b, a
proof
let G be
_Graph;
let a,b be
Vertex of G such that
A1: a
<> b and
A2: not (a,b)
are_adjacent ;
let S be
VertexSeparator of a, b;
A3: not b
in S by
A1,
A2,
Def8;
A4: for G2 be
removeVertices of G, S holds not ex W be
Walk of G2 st W
is_Walk_from (b,a)
proof
let G2 be
removeVertices of G, S;
let W be
Walk of G2;
assume W
is_Walk_from (b,a);
then (W
.reverse() )
is_Walk_from (a,b) by
GLIB_001: 23;
hence contradiction by
A1,
A2,
Def8;
end;
not a
in S by
A1,
A2,
Def8;
hence thesis by
A1,
A2,
A3,
A4,
Def8;
end;
theorem ::
CHORD:71
Th70: for G be
_Graph, a,b be
Vertex of G st a
<> b & not (a,b)
are_adjacent holds for S be
Subset of (
the_Vertices_of G) holds S is
VertexSeparator of a, b iff ( not a
in S & not b
in S & for W be
Walk of G st W
is_Walk_from (a,b) holds ex x be
Vertex of G st x
in S & x
in (W
.vertices() ))
proof
let G be
_Graph;
let a,b be
Vertex of G such that
A1: a
<> b and
A2: not (a,b)
are_adjacent ;
let S be
Subset of (
the_Vertices_of G);
hereby
assume
A3: S is
VertexSeparator of a, b;
hence not a
in S & not b
in S by
A1,
A2,
Def8;
then
A4: ((
the_Vertices_of G)
\ S) is non
empty by
XBOOLE_0:def 5;
let W be
Walk of G such that
A5: W
is_Walk_from (a,b);
now
assume
A6: not ex x be
Vertex of G st x
in S & x
in (W
.vertices() );
let G2 be
removeVertices of G, S;
A7: (
the_Vertices_of G2)
= ((
the_Vertices_of G)
\ S) by
A4,
GLIB_000:def 37;
then
A8: (
the_Edges_of G2)
= (G
.edgesBetween (
the_Vertices_of G2)) by
GLIB_000:def 37;
A9: (W
.edges() )
c= (G
.edgesBetween (W
.vertices() )) by
GLIB_001: 109;
now
let x be
object such that
A10: x
in (W
.vertices() );
not x
in S by
A6,
A10;
hence x
in (
the_Vertices_of G2) by
A7,
A10,
XBOOLE_0:def 5;
end;
then
A11: (W
.vertices() )
c= (
the_Vertices_of G2);
then (G
.edgesBetween (W
.vertices() ))
c= (G
.edgesBetween (
the_Vertices_of G2)) by
GLIB_000: 36;
then (W
.edges() )
c= (
the_Edges_of G2) by
A8,
A9;
then
reconsider W2 = W as
Walk of G2 by
A11,
GLIB_001: 170;
(W
.last() )
= b by
A5;
then
A12: (W2
.last() )
= b;
(W
.first() )
= a by
A5;
then (W2
.first() )
= a;
then W2
is_Walk_from (a,b) by
A12;
hence contradiction by
A1,
A2,
A3,
Def8;
end;
hence ex x be
Vertex of G st x
in S & x
in (W
.vertices() );
end;
assume that
A13: not a
in S and
A14: not b
in S and
A15: for W be
Walk of G st W
is_Walk_from (a,b) holds ex x be
Vertex of G st x
in S & x
in (W
.vertices() );
now
let G2 be
removeVertices of G, S;
given W be
Walk of G2 such that
A16: W
is_Walk_from (a,b);
reconsider W2 = W as
Walk of G by
GLIB_001: 167;
(W
.last() )
= b by
A16;
then
A17: (W2
.last() )
= b;
now
let x be
object;
hereby
assume x
in (W2
.vertices() );
then ex n be
odd
Element of
NAT st n
<= (
len W) & (W
. n)
= x by
GLIB_001: 87;
hence x
in (W
.vertices() ) by
GLIB_001: 87;
end;
assume x
in (W
.vertices() );
then ex n be
odd
Element of
NAT st n
<= (
len W2) & (W2
. n)
= x by
GLIB_001: 87;
hence x
in (W2
.vertices() ) by
GLIB_001: 87;
end;
then
A18: (W2
.vertices() )
= (W
.vertices() ) by
TARSKI: 2;
((
the_Vertices_of G)
\ S) is non
empty by
A13,
XBOOLE_0:def 5;
then (
the_Vertices_of G2)
= ((
the_Vertices_of G)
\ S) by
GLIB_000:def 37;
then
A19: for x be
Vertex of G holds not (x
in S & x
in (W2
.vertices() )) by
A18,
XBOOLE_0:def 5;
(W
.first() )
= a by
A16;
then (W2
.first() )
= a;
then W2
is_Walk_from (a,b) by
A17;
hence contradiction by
A15,
A19;
end;
hence thesis by
A1,
A2,
A13,
A14,
Def8;
end;
theorem ::
CHORD:72
Th71: for G be
_Graph, a,b be
Vertex of G st a
<> b & not (a,b)
are_adjacent holds for S be
VertexSeparator of a, b holds for W be
Walk of G st W
is_Walk_from (a,b) holds ex k be
odd
Nat st 1
< k & k
< (
len W) & (W
. k)
in S
proof
let G be
_Graph;
let a,b be
Vertex of G such that
A1: a
<> b and
A2: not (a,b)
are_adjacent ;
let S be
VertexSeparator of a, b;
let W be
Walk of G such that
A3: W
is_Walk_from (a,b);
consider x be
Vertex of G such that
A4: x
in S and
A5: x
in (W
.vertices() ) by
A1,
A2,
A3,
Th70;
consider n be
odd
Element of
NAT such that
A6: n
<= (
len W) and
A7: (W
. n)
= x by
A5,
GLIB_001: 87;
not a
in S by
A1,
A2,
Th70;
then
A8: 1
<> n by
A3,
A4,
A7;
not b
in S by
A1,
A2,
Th70;
then n
<> (
len W) by
A3,
A4,
A7;
then
A9: n
< (
len W) by
A6,
XXREAL_0: 1;
1
<= n by
ABIAN: 12;
then 1
< n by
A8,
XXREAL_0: 1;
hence thesis by
A4,
A7,
A9;
end;
theorem ::
CHORD:73
Th72: for G be
_Graph, a,b be
Vertex of G st a
<> b & not (a,b)
are_adjacent holds for S be
VertexSeparator of a, b st S
=
{} holds not ex W be
Walk of G st W
is_Walk_from (a,b)
proof
let G be
_Graph;
let a,b be
Vertex of G such that
A1: a
<> b and
A2: not (a,b)
are_adjacent ;
let S be
VertexSeparator of a, b;
assume
A3: S
=
{} ;
A4: (
the_Edges_of G)
c= (G
.edgesBetween (
the_Vertices_of G)) by
GLIB_000: 34;
A5: (
the_Vertices_of G)
c= (
the_Vertices_of G);
set G2 = the
removeVertices of G, S;
given W be
Walk of G such that
A6: W
is_Walk_from (a,b);
(
the_Vertices_of G2)
= (
the_Vertices_of G) by
A3,
GLIB_000:def 37;
then
A7: (W
.vertices() )
c= (
the_Vertices_of G2);
G2 is
inducedSubgraph of G, (
the_Vertices_of G), (
the_Edges_of G) by
A3,
GLIB_000: 34;
then (
the_Edges_of G2)
= (
the_Edges_of G) by
A5,
A4,
GLIB_000:def 37;
then (W
.edges() )
c= (
the_Edges_of G2);
then
reconsider W2 = W as
Walk of G2 by
A7,
GLIB_001: 170;
(W
.last() )
= b by
A6;
then
A8: (W2
.last() )
= b;
(W
.first() )
= a by
A6;
then (W2
.first() )
= a;
then W2
is_Walk_from (a,b) by
A8;
hence contradiction by
A1,
A2,
Def8;
end;
theorem ::
CHORD:74
for G be
_Graph, a,b be
Vertex of G st a
<> b & not (a,b)
are_adjacent & not ex W be
Walk of G st W
is_Walk_from (a,b) holds
{} is
VertexSeparator of a, b
proof
let G be
_Graph;
let a,b be
Vertex of G such that
A1: a
<> b and
A2: not (a,b)
are_adjacent ;
assume
A3: not ex W be
Walk of G st W
is_Walk_from (a,b);
A4:
now
let G2 be
removeVertices of G,
{} ;
given W be
Walk of G2 such that
A5: W
is_Walk_from (a,b) or W
is_Walk_from (b,a);
per cases by
A5;
suppose
A6: W
is_Walk_from (a,b);
reconsider W2 = W as
Walk of G by
GLIB_001: 167;
(W
.last() )
= b by
A6;
then
A7: (W2
.last() )
= b;
(W
.first() )
= a by
A6;
then (W2
.first() )
= a;
then W2
is_Walk_from (a,b) by
A7;
hence contradiction by
A3;
end;
suppose
A8: W
is_Walk_from (b,a);
set P = (W
.reverse() );
reconsider W2 = P as
Walk of G by
GLIB_001: 167;
A9: P
is_Walk_from (a,b) by
A8,
GLIB_001: 23;
then (P
.last() )
= b;
then
A10: (W2
.last() )
= b;
(P
.first() )
= a by
A9;
then (W2
.first() )
= a;
then W2
is_Walk_from (a,b) by
A10;
hence contradiction by
A3;
end;
end;
{} is
Subset of (
the_Vertices_of G) by
XBOOLE_1: 2;
hence thesis by
A1,
A2,
A4,
Def8;
end;
theorem ::
CHORD:75
Th74: for G be
_Graph, a,b be
Vertex of G st a
<> b & not (a,b)
are_adjacent holds for S be
VertexSeparator of a, b, G2 be
removeVertices of G, S holds for a2 be
Vertex of G2 holds ((G2
.reachableFrom a2)
/\ S)
=
{}
proof
let G be
_Graph;
let a,b be
Vertex of G such that
A1: a
<> b and
A2: not (a,b)
are_adjacent ;
let S be
VertexSeparator of a, b, G2 be
removeVertices of G, S;
let a2 be
Vertex of G2;
set A = (G2
.reachableFrom a2);
not a
in S by
A1,
A2,
Def8;
then a
in ((
the_Vertices_of G)
\ S) by
XBOOLE_0:def 5;
then
A3: (
the_Vertices_of G2)
= ((
the_Vertices_of G)
\ S) by
GLIB_000:def 37;
now
let x be
object such that
A4: x
in (A
/\ S);
A5: x
in S by
A4,
XBOOLE_0:def 4;
x
in A by
A4,
XBOOLE_0:def 4;
hence contradiction by
A3,
A5,
XBOOLE_0:def 5;
end;
hence thesis by
XBOOLE_0:def 1;
end;
theorem ::
CHORD:76
Th75: for G be
_Graph, a,b be
Vertex of G st a
<> b & not (a,b)
are_adjacent holds for S be
VertexSeparator of a, b, G2 be
removeVertices of G, S holds for a2,b2 be
Vertex of G2 st a2
= a & b2
= b holds ((G2
.reachableFrom a2)
/\ (G2
.reachableFrom b2))
=
{}
proof
let G be
_Graph;
let a,b be
Vertex of G such that
A1: a
<> b and
A2: not (a,b)
are_adjacent ;
let S be
VertexSeparator of a, b, G2 be
removeVertices of G, S;
let a2,b2 be
Vertex of G2 such that
A3: a2
= a and
A4: b2
= b;
set A = (G2
.reachableFrom a2), B = (G2
.reachableFrom b2);
now
let x be
object such that
A5: x
in (A
/\ B);
x
in A by
A5,
XBOOLE_0:def 4;
then
consider W1 be
Walk of G2 such that
A6: W1
is_Walk_from (a2,x) by
GLIB_002:def 5;
x
in B by
A5,
XBOOLE_0:def 4;
then
consider rW2 be
Walk of G2 such that
A7: rW2
is_Walk_from (b2,x) by
GLIB_002:def 5;
set W2 = (rW2
.reverse() );
set W = (W1
.append W2);
W2
is_Walk_from (x,b2) by
A7,
GLIB_001: 23;
then W
is_Walk_from (a2,b2) by
A6,
GLIB_001: 31;
hence contradiction by
A1,
A2,
A3,
A4,
Def8;
end;
hence thesis by
XBOOLE_0:def 1;
end;
theorem ::
CHORD:77
Th76: for G be
_Graph, a,b be
Vertex of G st a
<> b & not (a,b)
are_adjacent holds for S be
VertexSeparator of a, b holds for G2 be
removeVertices of G, S holds a is
Vertex of G2 & b is
Vertex of G2
proof
let G be
_Graph;
let a,b be
Vertex of G such that
A1: a
<> b and
A2: not (a,b)
are_adjacent ;
let S be
VertexSeparator of a, b, G2 be
removeVertices of G, S;
not b
in S by
A1,
A2,
Def8;
then
A3: b
in ((
the_Vertices_of G)
\ S) by
XBOOLE_0:def 5;
not a
in S by
A1,
A2,
Def8;
then a
in ((
the_Vertices_of G)
\ S) by
XBOOLE_0:def 5;
hence thesis by
A3,
GLIB_000:def 37;
end;
definition
let G be
_Graph, a,b be
Vertex of G;
let S be
VertexSeparator of a, b;
::
CHORD:def9
attr S is
minimal means for T be
Subset of S st T
<> S holds not T is
VertexSeparator of a, b;
end
theorem ::
CHORD:78
for G be
_Graph, a,b be
Vertex of G holds for S be
VertexSeparator of a, b st S
=
{} holds S is
minimal;
theorem ::
CHORD:79
Th78: for G be
_finite
_Graph holds for a,b be
Vertex of G holds ex S be
VertexSeparator of a, b st S is
minimal
proof
let G be
_finite
_Graph, a,b be
Vertex of G;
set X = the set of all S where S be
VertexSeparator of a, b;
set s = the
VertexSeparator of a, b;
A1: s
in X;
now
let x be
object;
assume x
in X;
then ex y be
VertexSeparator of a, b st x
= y;
hence x
in (
bool (
the_Vertices_of G));
end;
then X
c= (
bool (
the_Vertices_of G));
then
reconsider X as non
empty
finite
set by
A1;
defpred
P[
object,
object] means ex p be
VertexSeparator of a, b st $1
= p & $2
= (
card p);
A2:
now
let x be
object;
assume x
in X;
then
consider Y be
VertexSeparator of a, b such that
A3: Y
= x;
(
card Y)
in
REAL by
NUMBERS: 19;
hence ex y be
object st y
in
REAL &
P[x, y] by
A3;
end;
consider F be
Function of X,
REAL such that
A4: for x be
object st x
in X holds
P[x, (F
. x)] from
FUNCT_2:sch 1(
A2);
deffunc
FF(
Element of X) = (F
/. $1);
consider Min be
Element of X such that
A5: for N be
Element of X holds
FF(Min)
<=
FF(N) from
PRE_CIRC:sch 5;
consider M be
VertexSeparator of a, b such that M
= Min and
A6: (
card M)
= (F
. Min) by
A4;
A7: (
dom F)
= X by
FUNCT_2:def 1;
now
assume not M is
minimal;
then
consider T be
Subset of M such that
A8: T
<> M and
A9: T is
VertexSeparator of a, b;
T
in X by
A9;
then
reconsider T2 = T as
Element of X;
consider Tp be
VertexSeparator of a, b such that
A10: Tp
= T2 and
A11: (
card Tp)
= (F
. T2) by
A4;
Tp
in (
dom F) by
A7;
then (F
/. Tp)
= (F
. Tp) by
PARTFUN1:def 6;
then
A12: (
card M)
<= (
card T) by
A5,
A6,
A10,
A11;
(
card T)
<= (
card M) by
NAT_1: 43;
hence contradiction by
A8,
A12,
CARD_2: 102,
XXREAL_0: 1;
end;
hence thesis;
end;
theorem ::
CHORD:80
Th79: for G be
_Graph, a,b be
Vertex of G st a
<> b & not (a,b)
are_adjacent holds for S be
VertexSeparator of a, b st S is
minimal holds for T be
VertexSeparator of b, a st S
= T holds T is
minimal by
Th69;
theorem ::
CHORD:81
for G be
_Graph, a,b be
Vertex of G st a
<> b & not (a,b)
are_adjacent holds for S be
VertexSeparator of a, b st S is
minimal holds for x be
Vertex of G st x
in S holds ex W be
Walk of G st W
is_Walk_from (a,b) & x
in (W
.vertices() )
proof
let G be
_Graph;
let a,b be
Vertex of G such that
A1: a
<> b and
A2: not (a,b)
are_adjacent ;
let S be
VertexSeparator of a, b such that
A3: S is
minimal;
let x be
Vertex of G such that
A4: x
in S;
set T = (S
\
{x});
A5: T
c= S by
XBOOLE_1: 36;
then
A6: not b
in T by
A1,
A2,
Def8;
assume
A7: not ex W be
Walk of G st W
is_Walk_from (a,b) & x
in (W
.vertices() );
A8:
now
let W be
Walk of G such that
A9: W
is_Walk_from (a,b);
consider y be
Vertex of G such that
A10: y
in S and
A11: y
in (W
.vertices() ) by
A1,
A2,
A9,
Th70;
take y;
y
<> x by
A7,
A9,
A11;
then not y
in
{x} by
TARSKI:def 1;
hence y
in T by
A10,
XBOOLE_0:def 5;
thus y
in (W
.vertices() ) by
A11;
end;
x
in
{x} by
TARSKI:def 1;
then
A12: T
<> S by
A4,
XBOOLE_0:def 5;
not a
in T by
A1,
A2,
A5,
Def8;
then T is
VertexSeparator of a, b by
A1,
A2,
A6,
A8,
Th70;
hence contradiction by
A3,
A12,
A5;
end;
theorem ::
CHORD:82
Th81: for G be
_Graph holds for a,b be
Vertex of G st a
<> b & not (a,b)
are_adjacent holds for S be
VertexSeparator of a, b st S is
minimal holds for H be
removeVertices of G, S holds for aa be
Vertex of H st aa
= a holds for x be
Vertex of G st x
in S holds ex y be
Vertex of G st y
in (H
.reachableFrom aa) & (x,y)
are_adjacent
proof
let G be
_Graph;
let a,b be
Vertex of G such that
A1: a
<> b and
A2: not (a,b)
are_adjacent ;
let S be
VertexSeparator of a, b such that
A3: S is
minimal;
let H be
removeVertices of G, S;
let aa be
Vertex of H such that
A4: aa
= a;
set A = (H
.reachableFrom aa);
let x be
Vertex of G such that
A5: x
in S;
set T = (S
\
{x});
A6: T
c= S by
XBOOLE_1: 36;
then
A7: not b
in T by
A1,
A2,
Def8;
assume
A8: not ex y be
Vertex of G st y
in (H
.reachableFrom aa) & (x,y)
are_adjacent ;
A9: for W be
Walk of G st W
is_Walk_from (a,b) & x
in (W
.vertices() ) holds ex y be
Vertex of G st y
in T & y
in (W
.vertices() )
proof
let W be
Walk of G such that
A10: W
is_Walk_from (a,b) and
A11: x
in (W
.vertices() );
A12:
now
assume (W
.find x)
= 1;
then (W
. (W
.find x))
= (W
.first() );
then (W
. (W
.find x))
= a by
A10;
then not (W
. (W
.find x))
in S by
A1,
A2,
Def8;
hence contradiction by
A5,
A11,
GLIB_001:def 19;
end;
consider k be
odd
Element of
NAT such that
A13: k
<= (
len W) and
A14: (W
. k)
= x by
A11,
GLIB_001: 87;
(W
.find (W
. k))
<= k by
A13,
GLIB_001: 115;
then
A15: (W
.find x)
<= (
len W) by
A13,
A14,
XXREAL_0: 2;
then
A16: ((W
.find x)
+ (
- 2))
<= ((
len W)
+
0 ) by
XREAL_1: 7;
(
0
+ 1)
<= (W
.find x) by
ABIAN: 12;
then ((2
*
0 )
+ 1)
< (W
.find x) by
A12,
XXREAL_0: 1;
then ((2
* 1)
+ 1)
<= (W
.find x) by
Th4;
then
A17: (3
+ (
- 2))
<= ((W
.find x)
+ (
- 2)) by
XREAL_1: 7;
then
A18: ((W
.find x)
- 2) is
Element of
NAT by
INT_1: 3;
then
reconsider j = ((W
.find x)
- (2
* 1)) as
odd
Nat;
set P = (W
.cut (1,j));
A19: ((2
*
0 )
+ 1)
<= j by
A17;
then
A20: (((
len P)
+ 1)
+ (
- 1))
= ((j
+ 1)
+ (
- 1)) by
A18,
A16,
GLIB_001: 36;
assume
A21: not ex y be
Vertex of G st y
in T & y
in (W
.vertices() );
A22: for n be
odd
Nat st n
<= j holds not (P
. n)
in S & (P
. n)
= (W
. n)
proof
let n be
odd
Nat such that
A23: n
<= j;
1
<= n by
ABIAN: 12;
then (1
+ (
- 1))
<= (n
+ (
- 1)) by
XREAL_1: 7;
then
A24: (n
- 1) is
Element of
NAT by
INT_1: 3;
then
reconsider nu1 = (n
- 1) as
Nat;
n
< (j
+ 1) by
A23,
NAT_1: 13;
then (n
+ (
- 1))
< ((j
+ 1)
+ (
- 1)) by
XREAL_1: 8;
then
A25: (P
. (nu1
+ 1))
= (W
. (1
+ nu1)) by
A16,
A19,
A20,
A24,
GLIB_001: 36;
now
A26: (P
.vertices() )
c= (W
.vertices() ) by
A18,
A16,
A19,
GLIB_001: 94;
A27: n
in
NAT by
ORDINAL1:def 12;
then (P
. n)
in (P
.vertices() ) by
A20,
A23,
GLIB_001: 87;
then
A28: not (P
. n)
in T by
A21,
A26;
n
< (j
+ 1) by
A23,
NAT_1: 13;
then
A29: (n
+
0 )
< ((j
+ 1)
+ 1) by
XREAL_1: 8;
A30: (S
\/
{x})
= (
{x}
\/ T) by
XBOOLE_1: 39;
{x}
c= S by
A5,
ZFMISC_1: 31;
then
A31: S
= (
{x}
\/ T) by
A30,
XBOOLE_1: 12;
A32: n
<= (
len W) by
A16,
A23,
XXREAL_0: 2;
assume (P
. n)
in S;
then (P
. n)
in
{x} by
A28,
A31,
XBOOLE_0:def 3;
then n
< (W
.find (W
. n)) by
A25,
A29,
TARSKI:def 1;
hence contradiction by
A27,
A32,
GLIB_001: 115;
end;
hence thesis by
A25;
end;
then for n be
odd
Nat st n
<= j holds not (P
. n)
in S;
then
reconsider HP = P as
Walk of H by
A20,
Th21;
(W
.first() )
= a by
A10;
then (P
. ((2
*
0 )
+ 1))
= a by
A17,
A22;
then aa
in (HP
.vertices() ) by
A4,
A17,
A20,
GLIB_001: 87;
then
A33: (HP
.vertices() )
c= A by
GLIB_002: 13;
(W
.find x)
< ((
len W)
+ 1) by
A15,
NAT_1: 13;
then
A34: ((W
.find x)
+ (
- 2))
< (((
len W)
+ 1)
+ (
- 2)) by
XREAL_1: 8;
(P
. j) is
Vertex of G by
A20,
GLIB_001: 7;
then
reconsider Wj = (W
. j) as
Vertex of G by
A22;
((
len W)
+ (
- 1))
< ((
len W)
+
0 ) by
XREAL_1: 8;
then j
< (
len W) by
A34,
XXREAL_0: 2;
then (W
. (j
+ 1))
Joins (Wj,(W
. (j
+ 2)),G) by
A18,
GLIB_001:def 3;
then (W
. (j
+ 1))
Joins (Wj,x,G) by
A11,
GLIB_001:def 19;
then
A35: (Wj,x)
are_adjacent ;
(P
. j)
in (HP
.vertices() ) by
A20,
GLIB_001: 87;
then (W
. j)
in (HP
.vertices() ) by
A22;
hence contradiction by
A8,
A33,
A35;
end;
A36:
now
let W be
Walk of G such that
A37: W
is_Walk_from (a,b);
consider y be
Vertex of G such that
A38: y
in S and
A39: y
in (W
.vertices() ) by
A1,
A2,
A37,
Th70;
per cases ;
suppose y
= x;
hence ex y be
Vertex of G st y
in T & y
in (W
.vertices() ) by
A9,
A37,
A39;
end;
suppose
A40: y
<> x;
take y;
not y
in
{x} by
A40,
TARSKI:def 1;
hence y
in T by
A38,
XBOOLE_0:def 5;
thus y
in (W
.vertices() ) by
A39;
end;
end;
x
in
{x} by
TARSKI:def 1;
then
A41: T
<> S by
A5,
XBOOLE_0:def 5;
not a
in T by
A1,
A2,
A6,
Def8;
then T is
VertexSeparator of a, b by
A1,
A2,
A7,
A36,
Th70;
hence contradiction by
A3,
A41,
A6;
end;
theorem ::
CHORD:83
Th82: for G be
_Graph holds for a,b be
Vertex of G st a
<> b & not (a,b)
are_adjacent holds for S be
VertexSeparator of a, b st S is
minimal holds for H be
removeVertices of G, S holds for aa be
Vertex of H st aa
= b holds for x be
Vertex of G st x
in S holds ex y be
Vertex of G st y
in (H
.reachableFrom aa) & (x,y)
are_adjacent
proof
let G be
_Graph, a,b be
Vertex of G such that
A1: a
<> b and
A2: not (a,b)
are_adjacent ;
let S be
VertexSeparator of a, b such that
A3: S is
minimal;
reconsider S1 = S as
VertexSeparator of b, a by
A1,
A2,
Th69;
A4: S1 is
minimal by
A1,
A2,
A3,
Th79;
let H be
removeVertices of G, S, aa be
Vertex of H such that
A5: aa
= b;
let x be
Vertex of G;
assume x
in S;
hence thesis by
A1,
A2,
A5,
A4,
Th81;
end;
begin
definition
let G be
_Graph, W be
Walk of G;
::
CHORD:def10
attr W is
chordal means ex m,n be
odd
Nat st (m
+ 2)
< n & n
<= (
len W) & (W
. m)
<> (W
. n) & (ex e be
object st e
Joins ((W
. m),(W
. n),G)) & for f be
object st f
in (W
.edges() ) holds not f
Joins ((W
. m),(W
. n),G);
end
notation
let G be
_Graph, W be
Walk of G;
antonym W is
chordless for W is
chordal;
end
theorem ::
CHORD:84
Th83: for G be
_Graph, W be
Walk of G st W is
chordal holds ex m,n be
odd
Nat st (m
+ 2)
< n & n
<= (
len W) & (W
. m)
<> (W
. n) & (ex e be
object st e
Joins ((W
. m),(W
. n),G)) & (W is
Cycle-like implies not (m
= 1 & n
= (
len W)) & not (m
= 1 & n
= ((
len W)
- 2)) & not (m
= 3 & n
= (
len W)))
proof
let G be
_Graph, W be
Walk of G;
given m,n be
odd
Nat such that
A1: (m
+ 2)
< n and
A2: n
<= (
len W) and
A3: (W
. m)
<> (W
. n) and
A4: ex e be
object st e
Joins ((W
. m),(W
. n),G) and
A5: for f be
object st f
in (W
.edges() ) holds not f
Joins ((W
. m),(W
. n),G);
take m, n;
thus (m
+ 2)
< n by
A1;
thus n
<= (
len W) by
A2;
thus (W
. m)
<> (W
. n) by
A3;
thus ex e be
object st e
Joins ((W
. m),(W
. n),G) by
A4;
A6: (W
.last() )
= (W
. (
len W));
assume
A7: W is
Cycle-like;
then
A8: 3
<= (
len W) by
GLIB_001: 125;
then
reconsider lW2 = ((
len W)
- (2
* 1)) as
odd
Element of
NAT by
INT_1: 5,
XXREAL_0: 2;
A9: (W
.first() )
= (W
. 1);
then
A10: (W
. 1)
= (W
. (
len W)) by
A7,
A6,
GLIB_001:def 24;
reconsider lW2 as
odd
Nat;
reconsider le = (lW2
+ 1) as
even
Nat;
A11: 1
<= le by
NAT_1: 12;
A12: lW2
< (
len W) by
XREAL_1: 44;
then
A13: le
<= (
len W) by
NAT_1: 13;
then (le
div 2)
in (
dom (W
.edgeSeq() )) by
A11,
GLIB_001: 77;
then ((W
.edgeSeq() )
. (le
div 2))
in (
rng (W
.edgeSeq() )) by
FUNCT_1: 3;
then
A14: (W
. (((
len W)
- 2)
+ 1))
in (W
.edges() ) by
A11,
A13,
GLIB_001: 77;
thus not (m
= 1 & n
= (
len W)) by
A3,
A7,
A9,
A6,
GLIB_001:def 24;
(W
. (lW2
+ 1))
Joins ((W
. lW2),(W
. (lW2
+ 2)),G) by
A12,
GLIB_001:def 3;
hence not (m
= 1 & n
= ((
len W)
- 2)) by
A5,
A10,
A14,
GLIB_000: 14;
A15: ((2
*
0 )
+ 1) is
odd
Nat;
A16: ((2
* 1)
div 2)
= 1 by
NAT_D: 18;
A17: (1
+ 1)
<= (
len W) by
A8,
XXREAL_0: 2;
then 1
in (
dom (W
.edgeSeq() )) by
A16,
GLIB_001: 77;
then ((W
.edgeSeq() )
. 1)
in (
rng (W
.edgeSeq() )) by
FUNCT_1: 3;
then
A18: (W
. (1
+ 1))
in (
rng (W
.edgeSeq() )) by
A16,
A17,
GLIB_001: 77;
1
< (
len W) by
A8,
XXREAL_0: 2;
then (W
. (1
+ 1))
Joins ((W
. 1),(W
. (1
+ 2)),G) by
A15,
GLIB_001:def 3;
hence thesis by
A5,
A10,
A18,
GLIB_000: 14;
end;
theorem ::
CHORD:85
Th84: for G be
_Graph, P be
Path of G st ex m,n be
odd
Nat st (m
+ 2)
< n & n
<= (
len P) & (ex e be
object st e
Joins ((P
. m),(P
. n),G)) & (P is
Cycle-like implies not (m
= 1 & n
= (
len P)) & not (m
= 1 & n
= ((
len P)
- 2)) & not (m
= 3 & n
= (
len P))) holds P is
chordal
proof
let G be
_Graph, P be
Path of G;
given m,n be
odd
Nat such that
A1: (m
+ 2)
< n and
A2: n
<= (
len P) and
A3: ex e be
object st e
Joins ((P
. m),(P
. n),G) and
A4: P is
Cycle-like implies not (m
= 1 & n
= (
len P)) & not (m
= 1 & n
= ((
len P)
- 2)) & not (m
= 3 & n
= (
len P));
A5: n
in
NAT by
ORDINAL1:def 12;
take m, n;
thus (m
+ 2)
< n by
A1;
thus n
<= (
len P) by
A2;
A6: m
in
NAT by
ORDINAL1:def 12;
A7: m
< n by
A1,
NAT_1: 12;
then
A8: m
< (
len P) by
A2,
XXREAL_0: 2;
now
assume (
len P)
= 1;
then (m
+ 2)
< 1 by
A1,
A2,
XXREAL_0: 2;
hence contradiction by
NAT_1: 12;
end;
then
A9: P is non
trivial by
GLIB_001: 126;
hereby
assume
A10: (P
. m)
= (P
. n);
then
A11: n
= (
len P) by
A2,
A6,
A5,
A7,
GLIB_001:def 28;
m
= 1 by
A2,
A6,
A5,
A7,
A10,
GLIB_001:def 28;
then P is
closed by
A10,
A11;
hence contradiction by
A2,
A4,
A6,
A5,
A7,
A9,
A10,
GLIB_001:def 28;
end;
thus ex e be
object st e
Joins ((P
. m),(P
. n),G) by
A3;
let f be
object such that
A12: f
in (P
.edges() ) and
A13: f
Joins ((P
. m),(P
. n),G);
consider i be
Nat such that
A14: i
in (
dom (P
.edgeSeq() )) and
A15: ((P
.edgeSeq() )
. i)
= f by
A12,
FINSEQ_2: 10;
reconsider i as
Element of
NAT by
ORDINAL1:def 12;
set k = ((2
* i)
- 1);
A16: 1
<= i by
A14,
FINSEQ_3: 25;
then (2
* 1)
<= (2
* i) by
XREAL_1: 64;
then (2
- 1)
<= k by
XREAL_1: 9;
then
A17: k is
Element of
NAT by
INT_1: 3;
i
<= (
len (P
.edgeSeq() )) by
A14,
FINSEQ_3: 25;
then
A18: ((P
.edgeSeq() )
. i)
= (P
. (2
* i)) by
A16,
GLIB_001:def 15;
reconsider k as
odd
Nat by
A17;
(2
* i)
in (
dom P) by
A14,
GLIB_001: 78;
then
A19: (2
* i)
<= (
len P) by
FINSEQ_3: 25;
(k
+ 1)
= (2
* i);
then
A20: k
< (
len P) by
A19,
NAT_1: 13;
then
A21: (k
+ 2)
<= (
len P) by
Th4;
A22: k
in
NAT by
ORDINAL1:def 12;
then
A23: (P
. (k
+ 1))
Joins ((P
. k),(P
. (k
+ 2)),G) by
A20,
GLIB_001:def 3;
per cases by
A13,
A15,
A18,
A23;
suppose
A24: (P
. k)
= (P
. m) & (P
. (k
+ 2))
= (P
. n);
per cases by
XXREAL_0: 1;
suppose k
< m;
hence contradiction by
A6,
A8,
A22,
A24,
GLIB_001:def 28;
end;
suppose
A25: k
= m;
per cases by
XXREAL_0: 1;
suppose
A26: (k
+ 2)
< n;
A27: 1
<= k by
ABIAN: 12;
(k
+ 2)
= 1 by
A2,
A5,
A24,
A26,
GLIB_001:def 28;
then (k
+ 2)
< (k
+ 1) by
A27,
NAT_1: 13;
hence contradiction by
XREAL_1: 6;
end;
suppose (k
+ 2)
= n;
hence contradiction by
A1,
A25;
end;
suppose
A28: (k
+ 2)
> n;
(k
+ 2)
<= (
len P) by
A20,
Th4;
then n
= 1 by
A5,
A24,
A28,
GLIB_001:def 28;
hence contradiction by
A1,
ABIAN: 12;
end;
end;
suppose k
> m;
hence contradiction by
A6,
A22,
A20,
A24,
GLIB_001:def 28;
end;
end;
suppose
A29: (P
. k)
= (P
. n) & (P
. (k
+ 2))
= (P
. m);
per cases by
XXREAL_0: 1;
suppose
A30: k
< n;
then
A31: n
= (
len P) by
A2,
A5,
A22,
A29,
GLIB_001:def 28;
A32: k
= 1 by
A2,
A5,
A22,
A29,
A30,
GLIB_001:def 28;
per cases by
XXREAL_0: 1;
suppose (k
+ 2)
< m;
hence contradiction by
A6,
A8,
A29,
GLIB_001:def 28;
end;
suppose
A33: (k
+ 2)
= m;
P is
closed by
A29,
A32,
A31;
hence contradiction by
A2,
A4,
A5,
A9,
A29,
A30,
A32,
A33,
GLIB_001:def 28;
end;
suppose
A34: (k
+ 2)
> m;
A35: (k
+ 2)
<= n by
A30,
Th4;
A36: (k
+ 2)
= (
len P) by
A6,
A21,
A29,
A34,
GLIB_001:def 28;
m
= 1 by
A6,
A21,
A29,
A34,
GLIB_001:def 28;
then P is
closed by
A29,
A36;
hence contradiction by
A2,
A4,
A6,
A9,
A29,
A34,
A36,
A35,
GLIB_001:def 28,
XXREAL_0: 1;
end;
end;
suppose
A37: k
= n;
per cases by
XXREAL_0: 1;
suppose (k
+ 2)
< m;
hence contradiction by
A7,
A37,
NAT_1: 12;
end;
suppose (k
+ 2)
= m;
hence contradiction by
A7,
A37,
NAT_1: 12;
end;
suppose
A38: (k
+ 2)
> m;
A39: (k
+ 2)
= (
len P) by
A6,
A21,
A29,
A38,
GLIB_001:def 28;
m
= 1 by
A6,
A21,
A29,
A38,
GLIB_001:def 28;
then P is
closed by
A29,
A39;
hence contradiction by
A4,
A6,
A9,
A29,
A37,
A38,
A39,
GLIB_001:def 28;
end;
end;
suppose k
> n;
hence contradiction by
A5,
A22,
A20,
A29,
GLIB_001:def 28;
end;
end;
end;
theorem ::
CHORD:86
Th85: for G1,G2 be
_Graph st G1
== G2 holds for W1 be
Walk of G1, W2 be
Walk of G2 st W1
= W2 holds W1 is
chordal implies W2 is
chordal
proof
let G1,G2 be
_Graph such that
A1: G1
== G2;
let W1 be
Walk of G1, W2 be
Walk of G2 such that
A2: W1
= W2;
given m,n be
odd
Nat such that
A3: (m
+ 2)
< n and
A4: n
<= (
len W1) and
A5: (W1
. m)
<> (W1
. n) and
A6: ex e be
object st e
Joins ((W1
. m),(W1
. n),G1) and
A7: for f be
object st f
in (W1
.edges() ) holds not f
Joins ((W1
. m),(W1
. n),G1);
take m, n;
thus (m
+ 2)
< n & n
<= (
len W2) & (W2
. m)
<> (W2
. n) by
A2,
A3,
A4,
A5;
consider e be
object such that
A8: e
Joins ((W1
. m),(W1
. n),G1) by
A6;
e
Joins ((W2
. m),(W2
. n),G2) by
A1,
A2,
A8;
hence ex e be
object st e
Joins ((W2
. m),(W2
. n),G2);
let f be
object;
assume f
in (W2
.edges() );
then f
in (W1
.edges() ) by
A2,
GLIB_001: 110;
then not f
Joins ((W1
. m),(W1
. n),G1) by
A7;
hence thesis by
A1,
A2;
end;
theorem ::
CHORD:87
Th86: for G be
_Graph, S be non
empty
Subset of (
the_Vertices_of G), H be
inducedSubgraph of G, S, W1 be
Walk of G, W2 be
Walk of H st W1
= W2 holds W2 is
chordal iff W1 is
chordal
proof
let G be
_Graph, S be non
empty
Subset of (
the_Vertices_of G), H be
inducedSubgraph of G, S, W1 be
Walk of G, W2 be
Walk of H such that
A1: W1
= W2;
thus W2 is
chordal implies W1 is
chordal
proof
given m,n be
odd
Nat such that
A2: (m
+ 2)
< n and
A3: n
<= (
len W2) and
A4: (W2
. m)
<> (W2
. n) and
A5: ex e be
object st e
Joins ((W2
. m),(W2
. n),H) and
A6: for f be
object st f
in (W2
.edges() ) holds not f
Joins ((W2
. m),(W2
. n),H);
take m, n;
thus (m
+ 2)
< n & n
<= (
len W1) & (W1
. m)
<> (W1
. n) by
A1,
A2,
A3,
A4;
consider e be
object such that
A7: e
Joins ((W2
. m),(W2
. n),H) by
A5;
e
Joins ((W1
. m),(W1
. n),G) by
A1,
A7,
GLIB_000: 72;
hence ex e be
object st e
Joins ((W1
. m),(W1
. n),G);
let f be
object;
assume f
in (W1
.edges() );
then
A8: f
in (W2
.edges() ) by
A1,
GLIB_001: 110;
then not f
Joins ((W1
. m),(W1
. n),H) by
A1,
A6;
hence thesis by
A8,
GLIB_000: 73;
end;
A9: S
= (
the_Vertices_of H) by
GLIB_000:def 37;
thus W1 is
chordal implies W2 is
chordal
proof
given m,n be
odd
Nat such that
A10: (m
+ 2)
< n and
A11: n
<= (
len W1) and
A12: (W1
. m)
<> (W1
. n) and
A13: ex e be
object st e
Joins ((W1
. m),(W1
. n),G) and
A14: for f be
object st f
in (W1
.edges() ) holds not f
Joins ((W1
. m),(W1
. n),G);
take m, n;
thus (m
+ 2)
< n & n
<= (
len W2) & (W2
. m)
<> (W2
. n) by
A1,
A10,
A11,
A12;
A15: m
in
NAT by
ORDINAL1:def 12;
n
in
NAT by
ORDINAL1:def 12;
then
A16: (W1
. n)
in (
the_Vertices_of H) by
A1,
A11,
GLIB_001: 7;
m
< n by
A10,
NAT_1: 12;
then (W1
. m)
in (
the_Vertices_of H) by
A1,
A11,
A15,
GLIB_001: 7,
XXREAL_0: 2;
hence ex e be
object st e
Joins ((W2
. m),(W2
. n),H) by
A1,
A9,
A13,
A16,
Th19;
let f be
object;
assume f
in (W2
.edges() );
then f
in (W1
.edges() ) by
A1,
GLIB_001: 110;
then not f
Joins ((W2
. m),(W2
. n),G) by
A1,
A14;
hence thesis by
GLIB_000: 72;
end;
end;
theorem ::
CHORD:88
for G be
_Graph, W be
Walk of G st W is
Cycle-like & W is
chordal & (W
.length() )
= 4 holds ex e be
object st e
Joins ((W
. 1),(W
. 5),G) or e
Joins ((W
. 3),(W
. 7),G)
proof
let G be
_Graph, W be
Walk of G such that
A1: W is
Cycle-like and
A2: W is
chordal and
A3: (W
.length() )
= 4;
A4: (
len W)
= ((2
* 4)
+ 1) by
A3,
GLIB_001: 112;
consider m,n be
odd
Nat such that
A5: (m
+ 2)
< n and
A6: n
<= (
len W) and (W
. m)
<> (W
. n) and
A7: ex e be
object st e
Joins ((W
. m),(W
. n),G) and
A8: W is
Cycle-like implies not (m
= 1 & n
= (
len W)) & not (m
= 1 & n
= ((
len W)
- 2)) & not (m
= 3 & n
= (
len W)) by
A2,
Th83;
consider e be
object such that
A9: e
Joins ((W
. m),(W
. n),G) by
A7;
assume
A10: not (ex e be
object st e
Joins ((W
. 1),(W
. 5),G) or e
Joins ((W
. 3),(W
. 7),G));
A11:
now
assume
A12: m
= 3;
then n
< (
len W) by
A1,
A6,
A8,
XXREAL_0: 1;
then
A13: n
<= (9
- 2) by
A4,
Th3;
n
<> 7 by
A10,
A9,
A12;
then n
< ((2
* 3)
+ 1) by
A13,
XXREAL_0: 1;
then n
<= (7
- 2) by
Th3;
hence contradiction by
A5,
A12;
end;
A14:
now
reconsider jj = ((2
* 3)
+ 1) as
odd
Nat;
assume
A15: m
= 1;
then n
< (
len W) by
A1,
A6,
A8,
XXREAL_0: 1;
then n
<= (9
- 2) by
A4,
Th3;
then n
< jj by
A1,
A4,
A8,
A15,
XXREAL_0: 1;
then
A16: n
<= (jj
- 2) by
Th3;
n
<> 5 by
A10,
A9,
A15;
then n
< ((2
* 2)
+ 1) by
A16,
XXREAL_0: 1;
then n
<= (5
- 2) by
Th3;
hence contradiction by
A5,
A15;
end;
A17: (W
.first() )
= (W
.last() ) by
A1,
GLIB_001:def 24;
A18:
now
assume
A19: m
= 5;
n
<> 9 by
A17,
A4,
A9,
A19,
GLIB_000: 14,
A10;
then n
< (
len W) by
A4,
A6,
XXREAL_0: 1;
then n
<= ((
len W)
- 2) by
Th3;
hence contradiction by
A4,
A5,
A19;
end;
(
0
+ 1)
<= m by
ABIAN: 12;
then ((2
*
0 )
+ 1)
< m by
A14,
XXREAL_0: 1;
then (1
+ 2)
<= m by
Th4;
then ((2
* 1)
+ 1)
< m by
A11,
XXREAL_0: 1;
then (3
+ 2)
<= m by
Th4;
then ((2
* 2)
+ 1)
< m by
A18,
XXREAL_0: 1;
then (5
+ 2)
<= m by
Th4;
then (7
+ 2)
<= (m
+ 2) by
XREAL_1: 7;
hence contradiction by
A4,
A5,
A6,
XXREAL_0: 2;
end;
theorem ::
CHORD:89
Th88: for G be
_Graph, W be
Walk of G st W is
minlength holds W is
chordless by
Th39;
theorem ::
CHORD:90
for G be
_Graph, W be
Walk of G st (
len W)
= 5 & not ((W
.first() ),(W
.last() ))
are_adjacent holds W is
chordless
proof
let G be
_Graph, W be
Walk of G such that
A1: (
len W)
= 5 and
A2: not ((W
.first() ),(W
.last() ))
are_adjacent ;
assume W is
chordal;
then
consider m,n be
odd
Nat such that
A3: (m
+ 2)
< n and
A4: n
<= (
len W) and (W
. m)
<> (W
. n) and
A5: ex e be
object st e
Joins ((W
. m),(W
. n),G) and W is
Cycle-like implies not (m
= 1 & n
= (
len W)) & not (m
= 1 & n
= ((
len W)
- 2)) & not (m
= 3 & n
= (
len W)) by
Th83;
A6:
now
assume
A7: m
<> 1;
1
<= m by
Th2;
then ((2
*
0 )
+ 1)
< m by
A7,
XXREAL_0: 1;
then (1
+ 2)
<= m by
Th4;
then (3
+ 2)
<= (m
+ 2) by
XREAL_1: 7;
hence contradiction by
A1,
A3,
A4,
XXREAL_0: 2;
end;
then (3
+ 2)
<= n by
A3,
Th4;
then (W
. n)
= (W
.last() ) by
A1,
A4,
XXREAL_0: 1;
hence contradiction by
A2,
A5,
A6;
end;
Lm3: for G be
_Graph, W be
Walk of G holds W is
chordal implies (W
.reverse() ) is
chordal
proof
let G be
_Graph, W be
Walk of G;
set U = (W
.reverse() );
assume W is
chordal;
then
consider m,n be
odd
Nat such that
A1: (m
+ 2)
< n and
A2: n
<= (
len W) and
A3: (W
. m)
<> (W
. n) and
A4: ex e be
object st e
Joins ((W
. m),(W
. n),G) and
A5: for f be
object st f
in (W
.edges() ) holds not f
Joins ((W
. m),(W
. n),G);
consider e be
object such that
A6: e
Joins ((W
. m),(W
. n),G) by
A4;
set um = (((
len W)
- m)
+ 1), un = (((
len W)
- n)
+ 1);
m
< (m
+ 2) by
XREAL_1: 29;
then
A7: m
< n by
A1,
XXREAL_0: 2;
then
reconsider um, un as
odd
Element of
NAT by
A2,
FINSEQ_5: 1,
XXREAL_0: 2;
reconsider um, un as
odd
Nat;
A8: (un
+ 2)
< um by
A1,
Lm1;
1
<= n by
Th2;
then n
in (
dom W) by
A2,
FINSEQ_3: 25;
then
A9: (W
. n)
= (U
. un) by
GLIB_001: 24;
A10: 1
<= m by
Th2;
(((
len W)
- m)
+ 1)
<= (
len W) by
INT_1: 7,
XREAL_1: 44;
then
A11: um
<= (
len U) by
GLIB_001: 21;
m
<= (
len W) by
A2,
A7,
XXREAL_0: 2;
then m
in (
dom W) by
A10,
FINSEQ_3: 25;
then
A12: (W
. m)
= (U
. um) by
GLIB_001: 24;
then
A13: e
Joins ((U
. un),(U
. um),G) by
A6,
A9;
(W
.edges() )
= (U
.edges() ) by
GLIB_001: 107;
then for f be
object st f
in (U
.edges() ) holds not f
Joins ((U
. un),(U
. um),G) by
A5,
A12,
A9,
GLIB_000: 14;
hence thesis by
A3,
A8,
A11,
A12,
A9,
A13;
end;
theorem ::
CHORD:91
for G be
_Graph, W be
Walk of G holds W is
chordal iff (W
.reverse() ) is
chordal
proof
let G be
_Graph, W be
Walk of G;
thus W is
chordal implies (W
.reverse() ) is
chordal by
Lm3;
assume (W
.reverse() ) is
chordal;
then ((W
.reverse() )
.reverse() ) is
chordal by
Lm3;
hence thesis;
end;
theorem ::
CHORD:92
Th91: for G be
_Graph, P be
Path of G st P is
open & P is
chordless holds for m,n be
odd
Nat st m
< n & n
<= (
len P) holds (ex e be
object st e
Joins ((P
. m),(P
. n),G)) iff (m
+ 2)
= n
proof
let G be
_Graph, P be
Path of G such that
A1: P is
open and
A2: P is
chordless;
A3: P is
vertex-distinct by
A1,
Th32;
let m,n be
odd
Nat such that
A4: m
< n and
A5: n
<= (
len P);
A6: m
<= (
len P) by
A4,
A5,
XXREAL_0: 2;
A7: m
in
NAT by
ORDINAL1:def 12;
A8: n
in
NAT by
ORDINAL1:def 12;
then
A9: (P
. m)
<> (P
. n) by
A1,
A4,
A5,
A7,
GLIB_001: 147;
hereby
assume
A10: ex e be
object st e
Joins ((P
. m),(P
. n),G);
A11:
now
assume
A12: (m
+ 2)
< n;
now
let f be
object;
assume f
in (P
.edges() );
then
consider k be
odd
Element of
NAT such that
A13: k
< (
len P) and
A14: (P
. (k
+ 1))
= f by
GLIB_001: 100;
A15: f
Joins ((P
. k),(P
. (k
+ 2)),G) by
A13,
A14,
GLIB_001:def 3;
A16: (k
+ 2)
<= (
len P) by
A13,
Th4;
assume
A17: f
Joins ((P
. m),(P
. n),G);
per cases by
A15,
A17;
suppose
A18: (P
. m)
= (P
. k) & (P
. n)
= (P
. (k
+ 2));
then m
= k by
A7,
A3,
A6,
A13;
hence contradiction by
A5,
A8,
A3,
A12,
A16,
A18;
end;
suppose
A19: (P
. m)
= (P
. (k
+ 2)) & (P
. n)
= (P
. k);
then
A20: n
= k by
A5,
A8,
A3,
A13;
m
= (k
+ (2
* 1)) by
A7,
A3,
A6,
A16,
A19;
then
A21: m
> n by
A20,
XREAL_1: 29;
(m
+ 2)
> m by
XREAL_1: 29;
hence contradiction by
A12,
A21,
XXREAL_0: 2;
end;
end;
hence contradiction by
A2,
A5,
A9,
A10,
A12;
end;
(m
+ 2)
<= n by
A4,
Th4;
hence (m
+ 2)
= n by
A11,
XXREAL_0: 1;
end;
assume
A22: (m
+ 2)
= n;
take (P
. (m
+ 1));
m
< (
len P) by
A4,
A5,
XXREAL_0: 2;
hence thesis by
A7,
A22,
GLIB_001:def 3;
end;
theorem ::
CHORD:93
for G be
_Graph, P be
Path of G st P is
open & P is
chordless holds for m,n be
odd
Nat st m
< n & n
<= (
len P) holds (P
.cut (m,n)) is
chordless & (P
.cut (m,n)) is
open
proof
let G be
_Graph, P be
Path of G such that
A1: P is
open and
A2: P is
chordless;
let m,n be
odd
Nat such that
A3: m
< n and
A4: n
<= (
len P);
set Q = (P
.cut (m,n));
A5: n
in
NAT by
ORDINAL1:def 12;
A6: m
in
NAT by
ORDINAL1:def 12;
now
assume Q is
chordal;
then
consider i,j be
odd
Nat such that
A7: (i
+ 2)
< j and
A8: j
<= (
len Q) and (Q
. i)
<> (Q
. j) and
A9: ex e be
object st e
Joins ((Q
. i),(Q
. j),G) and for f be
object st f
in (Q
.edges() ) holds not f
Joins ((Q
. i),(Q
. j),G);
consider e be
object such that
A10: e
Joins ((Q
. i),(Q
. j),G) by
A9;
set mi = ((m
+ i)
- 1);
set mj = ((m
+ j)
- 1);
1
<= j by
Th2;
then
A11: j
in (
dom Q) by
A8,
FINSEQ_3: 25;
then
A12: (Q
. j)
= (P
. mj) by
A3,
A4,
A6,
A5,
GLIB_001: 47;
A13: mj
in (
dom P) by
A3,
A4,
A6,
A5,
A11,
GLIB_001: 47;
(i
+
0 )
< (i
+ 2) by
XREAL_1: 8;
then i
< j by
A7,
XXREAL_0: 2;
then
A14: i
< (
len Q) by
A8,
XXREAL_0: 2;
1
<= i by
Th2;
then
A15: i
in (
dom Q) by
A14,
FINSEQ_3: 25;
then
A16: mi
in (
dom P) by
A3,
A4,
A6,
A5,
GLIB_001: 47;
reconsider mj as
odd
Element of
NAT by
A13;
reconsider mj as
odd
Nat;
A17: mj
<= (
len P) by
A13,
FINSEQ_3: 25;
reconsider mi as
odd
Element of
NAT by
A16;
reconsider mi as
odd
Nat;
((i
+ 2)
+ m)
< (j
+ m) by
A7,
XREAL_1: 8;
then
A18: (((m
+ i)
+ 2)
- 1)
< ((m
+ j)
- 1) by
XREAL_1: 9;
then
A19: (mi
+ 2)
< mj;
(mi
+
0 )
< (mi
+ 2) by
XREAL_1: 8;
then
A20: mi
< mj by
A18,
XXREAL_0: 2;
e
Joins ((P
. mi),(P
. mj),G) by
A3,
A4,
A6,
A5,
A10,
A15,
A12,
GLIB_001: 47;
hence contradiction by
A1,
A2,
A19,
A20,
A17,
Th91;
end;
hence Q is
chordless;
now
assume Q is
closed;
then
A21: (Q
.first() )
= (Q
.last() );
A22: (P
. n)
= (Q
.last() ) by
A3,
A4,
A6,
A5,
GLIB_001: 37;
(P
. m)
= (Q
.first() ) by
A3,
A4,
A6,
A5,
GLIB_001: 37;
hence contradiction by
A1,
A3,
A4,
A6,
A5,
A21,
A22,
GLIB_001: 147;
end;
hence thesis;
end;
theorem ::
CHORD:94
for G be
_Graph, S be non
empty
Subset of (
the_Vertices_of G), H be
inducedSubgraph of G, S, W be
Walk of G, V be
Walk of H st W
= V holds W is
chordless iff V is
chordless
proof
let G be
_Graph, S be non
empty
Subset of (
the_Vertices_of G);
let H be
inducedSubgraph of G, S;
let W be
Walk of G, V be
Walk of H such that
A1: W
= V;
hereby
assume
A2: W is
chordless;
assume V is
chordal;
then
consider m,n be
odd
Nat such that
A3: (m
+ 2)
< n and
A4: n
<= (
len V) and
A5: (V
. m)
<> (V
. n) and
A6: ex e be
object st e
Joins ((V
. m),(V
. n),H) and
A7: for f be
object st f
in (V
.edges() ) holds not f
Joins ((V
. m),(V
. n),H);
consider e be
object such that
A8: e
Joins ((V
. m),(V
. n),H) by
A6;
n
in
NAT by
ORDINAL1:def 12;
then (V
. n)
in (V
.vertices() ) by
A4,
GLIB_001: 87;
then (V
. n)
in (
the_Vertices_of H);
then
A9: (V
. n)
in S by
GLIB_000:def 37;
(m
+
0 )
<= (m
+ 2) by
XREAL_1: 7;
then m
<= n by
A3,
XXREAL_0: 2;
then
A10: m
<= (
len V) by
A4,
XXREAL_0: 2;
m
in
NAT by
ORDINAL1:def 12;
then (V
. m)
in (V
.vertices() ) by
A10,
GLIB_001: 87;
then (V
. m)
in (
the_Vertices_of H);
then
A11: (V
. m)
in S by
GLIB_000:def 37;
A12: for f be
object st f
in (W
.edges() ) holds not f
Joins ((W
. m),(W
. n),G)
proof
let f be
object;
assume f
in (W
.edges() );
then
A13: f
in (V
.edges() ) by
A1,
GLIB_001: 110;
assume f
Joins ((W
. m),(W
. n),G);
hence contradiction by
A1,
A7,
A9,
A11,
A13,
Th19;
end;
e
Joins ((W
. m),(W
. n),G) by
A1,
A8,
GLIB_000: 72;
hence contradiction by
A1,
A2,
A3,
A4,
A5,
A12;
end;
assume
A14: V is
chordless;
assume W is
chordal;
then
consider m,n be
odd
Nat such that
A15: (m
+ 2)
< n and
A16: n
<= (
len W) and
A17: (W
. m)
<> (W
. n) and
A18: ex e be
object st e
Joins ((W
. m),(W
. n),G) and
A19: for f be
object st f
in (W
.edges() ) holds not f
Joins ((W
. m),(W
. n),G);
consider e be
object such that
A20: e
Joins ((W
. m),(W
. n),G) by
A18;
A21: for f be
object st f
in (V
.edges() ) holds not f
Joins ((V
. m),(V
. n),H)
proof
let f be
object;
assume f
in (V
.edges() );
then
A22: f
in (W
.edges() ) by
A1,
GLIB_001: 110;
assume f
Joins ((V
. m),(V
. n),H);
then f
Joins ((W
. m),(W
. n),G) by
A1,
GLIB_000: 72;
hence contradiction by
A19,
A22;
end;
n
in
NAT by
ORDINAL1:def 12;
then (W
. n)
in (V
.vertices() ) by
A1,
A16,
GLIB_001: 87;
then (W
. n)
in (
the_Vertices_of H);
then
A23: (W
. n)
in S by
GLIB_000:def 37;
(m
+
0 )
<= (m
+ 2) by
XREAL_1: 7;
then m
<= n by
A15,
XXREAL_0: 2;
then
A24: m
<= (
len W) by
A16,
XXREAL_0: 2;
m
in
NAT by
ORDINAL1:def 12;
then (W
. m)
in (V
.vertices() ) by
A1,
A24,
GLIB_001: 87;
then (W
. m)
in (
the_Vertices_of H);
then (W
. m)
in S by
GLIB_000:def 37;
then e
Joins ((V
. m),(V
. n),H) by
A1,
A20,
A23,
Th19;
hence contradiction by
A1,
A14,
A15,
A16,
A17,
A21;
end;
definition
let G be
_Graph;
::
CHORD:def11
attr G is
chordal means
:
Def11: for P be
Walk of G st (P
.length() )
> 3 & P is
Cycle-like holds P is
chordal;
end
theorem ::
CHORD:95
Th94: for G1,G2 be
_Graph st G1
== G2 holds G1 is
chordal implies G2 is
chordal
proof
let G1,G2 be
_Graph such that
A1: G1
== G2;
assume
A2: G1 is
chordal;
now
let W be
Walk of G2 such that
A3: (W
.length() )
> 3 and
A4: W is
Cycle-like;
reconsider W2 = W as
Walk of G1 by
A1,
GLIB_001: 179;
((2
* (W2
.length() ))
+ 1)
= (
len W) by
GLIB_001: 112;
then
A5: ((2
* (W2
.length() ))
+ 1)
= ((2
* (W
.length() ))
+ 1) by
GLIB_001: 112;
W2 is
Cycle-like by
A1,
A4,
Th24;
then W2 is
chordal by
A2,
A3,
A5;
hence W is
chordal by
A1,
Th85;
end;
hence thesis;
end;
theorem ::
CHORD:96
Th95: for G be
_finite
_Graph st (
card (
the_Vertices_of G))
<= 3 holds G is
chordal
proof
let G be
_finite
_Graph such that
A1: (
card (
the_Vertices_of G))
<= 3;
now
reconsider n4 = ((2
* 3)
+ 1) as
odd
Nat;
reconsider n3 = ((2
* 2)
+ 1) as
odd
Nat;
reconsider n2 = ((2
* 1)
+ 1) as
odd
Nat;
reconsider n1 = ((2
*
0 )
+ 1) as
odd
Nat;
let W be
Walk of G such that
A2: (W
.length() )
> 3 and
A3: W is
Cycle-like;
set x3 = (W
. n3);
set x2 = (W
. n2);
set x4 = (W
. n4);
set x1 = (W
. n1);
(W
.length() )
>= (3
+ 1) by
A2,
NAT_1: 13;
then (2
* (W
.length() ))
>= (2
* 4) by
XREAL_1: 64;
then ((2
* (W
.length() ))
+ 1)
>= (8
+ 1) by
XREAL_1: 7;
then
A4: (
len W)
>= 9 by
GLIB_001: 112;
then
A5: n4
< (
len W) by
XXREAL_0: 2;
then
A6: x1
<> x4 by
A3,
GLIB_001:def 28;
n2
< (
len W) by
A4,
XXREAL_0: 2;
then
A7: x1
<> x2 by
A3,
GLIB_001:def 28;
A8: n3
< (
len W) by
A4,
XXREAL_0: 2;
then
A9: x2
<> x3 by
A3,
GLIB_001:def 28;
A10: x3
<> x4 by
A3,
A5,
GLIB_001:def 28;
A11: x2
<> x4 by
A3,
A5,
GLIB_001:def 28;
now
let x be
object;
assume
A12: x
in
{x1, x2, x3, x4};
now
per cases by
A12,
ENUMSET1:def 2;
suppose x
= x1;
hence x
in (
the_Vertices_of G) by
A4,
GLIB_001: 7,
XXREAL_0: 2;
end;
suppose x
= x2;
hence x
in (
the_Vertices_of G) by
A4,
GLIB_001: 7,
XXREAL_0: 2;
end;
suppose x
= x3;
hence x
in (
the_Vertices_of G) by
A4,
GLIB_001: 7,
XXREAL_0: 2;
end;
suppose x
= x4;
hence x
in (
the_Vertices_of G) by
A4,
GLIB_001: 7,
XXREAL_0: 2;
end;
end;
hence x
in (
the_Vertices_of G);
end;
then
A13:
{x1, x2, x3, x4}
c= (
the_Vertices_of G);
x1
<> x3 by
A3,
A8,
GLIB_001:def 28;
then (
card
{x1, x2, x3, x4})
= 4 by
A7,
A6,
A9,
A11,
A10,
CARD_2: 59;
then 4
<= (
card (
the_Vertices_of G)) by
A13,
NAT_1: 43;
hence contradiction by
A1,
XXREAL_0: 2;
end;
then for W be
Walk of G st (W
.length() )
> 3 & W is
Cycle-like holds W is
chordal;
hence thesis;
end;
registration
cluster
_trivial
_finite
chordal for
_Graph;
existence
proof
set G = the
_trivial
_finite
_Graph;
consider v be
Vertex of G such that
A1: (
the_Vertices_of G)
=
{v} by
GLIB_000: 22;
now
reconsider j5 = ((2
* 2)
+ 1) as
odd
Nat;
reconsider j3 = ((2
* 1)
+ 1) as
odd
Nat;
let W be
Walk of G such that
A2: (W
.length() )
> 3 and
A3: W is
Cycle-like;
(2
* (W
.length() ))
> (2
* 3) by
A2,
XREAL_1: 68;
then ((2
* (W
.length() ))
+ 1)
> (6
+ 1) by
XREAL_1: 8;
then
A4: (
len W)
> 7 by
GLIB_001: 112;
then j3
<= (
len W) by
XXREAL_0: 2;
then (W
. j3)
in (W
.vertices() ) by
GLIB_001: 87;
then
A5: (W
. j3)
= v by
A1,
TARSKI:def 1;
A6: j5
<= (
len W) by
A4,
XXREAL_0: 2;
then (W
. j5)
in (W
.vertices() ) by
GLIB_001: 87;
then (W
. j5)
= v by
A1,
TARSKI:def 1;
hence contradiction by
A3,
A6,
A5,
GLIB_001:def 28;
end;
then for W be
Walk of G st (W
.length() )
> 3 & W is
Cycle-like holds W is
chordal;
then G is
chordal;
hence thesis;
end;
cluster non
_trivial
_finite
simple
chordal for
_Graph;
existence
proof
set V =
{
0 , 1}, E =
{
0 }, S = (
0
.-->
0 ), T = (
0
.--> 1);
A7: (
dom T)
= E;
A8:
now
let x be
object;
assume x
in E;
then x
=
0 by
TARSKI:def 1;
then (T
. x)
= 1 by
FUNCOP_1: 72;
hence (T
. x)
in V by
TARSKI:def 2;
end;
A9:
now
let x be
object;
assume x
in E;
then x
=
0 by
TARSKI:def 1;
then (S
. x)
=
0 by
FUNCOP_1: 72;
hence (S
. x)
in V by
TARSKI:def 2;
end;
reconsider T as
Function of E, V by
A7,
A8,
FUNCT_2: 3;
(
dom S)
= E;
then
reconsider S as
Function of E, V by
A9,
FUNCT_2: 3;
set G = (
createGraph (V,E,S,T));
take G;
(
the_Source_of G)
= S by
GLIB_000: 6;
then
A10: ((
the_Source_of G)
.
0 )
=
0 by
FUNCOP_1: 72;
A11: (
the_Vertices_of G)
= V by
GLIB_000: 6;
now
assume (
card (
the_Vertices_of G))
= 1;
then ex x be
object st (
the_Vertices_of G)
=
{x} by
CARD_2: 42;
hence contradiction by
A11,
ZFMISC_1: 5;
end;
hence G is non
_trivial & G is
_finite;
(
the_Target_of G)
= T by
GLIB_000: 6;
then
A12: ((
the_Target_of G)
.
0 )
= 1 by
FUNCOP_1: 72;
A13: (
the_Edges_of G)
= E by
GLIB_000: 6;
then
0
in (
the_Edges_of G) by
TARSKI:def 1;
then
A14:
0
Joins (
0 ,1,G) by
A10,
A12;
now
let v be
object;
let e be
object such that
A15: e
Joins (v,v,G);
reconsider v as
Vertex of G by
A15,
GLIB_000: 13;
e
in (
the_Edges_of G) by
A15;
then e
Joins (
0 ,1,G) by
A13,
A14,
TARSKI:def 1;
then
0
= v & 1
= v or
0
= v & 1
= v by
A15;
hence contradiction;
end;
then
A16: G is
loopless by
GLIB_000: 18;
now
let e1,e2,v1,v2 be
object such that
A17: e1
Joins (v1,v2,G) and
A18: e2
Joins (v1,v2,G);
e1
in
{
0 } by
A13,
A17;
then
A19: e1
=
0 by
TARSKI:def 1;
assume
A20: e1
<> e2;
e2
in
{
0 } by
A13,
A18;
hence contradiction by
A20,
A19,
TARSKI:def 1;
end;
then G is
non-multi;
hence G is
simple by
A16;
(
card (
the_Vertices_of G))
= 2 by
A11,
CARD_2: 57;
hence thesis by
Th95;
end;
cluster
complete ->
chordal for
_Graph;
correctness
proof
let G be
_Graph;
assume
A21: G is
complete;
now
reconsider t7 = ((2
* 3)
+ 1) as
odd
Nat;
reconsider t3 = ((2
* 1)
+ 1) as
odd
Nat;
let W be
Walk of G such that
A22: (W
.length() )
> 3 and
A23: W is
Cycle-like;
(W
.length() )
>= (3
+ 1) by
A22,
NAT_1: 13;
then (2
* (W
.length() ))
>= (2
* 4) by
XREAL_1: 64;
then ((2
* (W
.length() ))
+ 1)
>= (8
+ 1) by
XREAL_1: 7;
then
A24: (
len W)
>= 9 by
GLIB_001: 112;
then
reconsider W3 = (W
. t3) as
Vertex of G by
GLIB_001: 7,
XXREAL_0: 2;
A25: not (t3
= 3 & t7
= (
len W)) by
A24;
reconsider W7 = (W
. t7) as
Vertex of G by
A24,
GLIB_001: 7,
XXREAL_0: 2;
t7
<= (
len W) by
A24,
XXREAL_0: 2;
then W3
<> W7 by
A23,
GLIB_001:def 28;
then (W3,W7)
are_adjacent by
A21;
then
A26: ex e be
object st e
Joins (W3,W7,G);
A27: (t3
+ 2)
< t7;
t7
<= (
len W) by
A24,
XXREAL_0: 2;
hence W is
chordal by
A23,
A26,
A27,
A25,
Th84;
end;
hence thesis;
end;
end
registration
let G be
chordal
_Graph, V be
set;
cluster ->
chordal for
inducedSubgraph of G, V;
coherence
proof
let H be
inducedSubgraph of G, V;
now
per cases ;
suppose not V is non
empty
Subset of (
the_Vertices_of G);
then H
== G by
GLIB_000:def 37;
hence thesis by
Th94;
end;
suppose V is non
empty
Subset of (
the_Vertices_of G);
then
A1: V
= (
the_Vertices_of H) by
GLIB_000:def 37;
now
let W be
Walk of H such that
A2: (W
.length() )
> 3 and
A3: W is
Cycle-like;
reconsider P = W as
Walk of G by
GLIB_001: 167;
reconsider P as
Path of G by
A3,
GLIB_001: 175;
A4: P is non
trivial by
A3;
A5: (P
.length() )
> 3 by
A2,
GLIB_001: 114;
A6: P is
closed by
A3,
GLIB_001: 176;
then P is
Cycle-like by
A4;
then P is
chordal by
A5,
Def11;
then
consider m,n be
odd
Nat such that
A7: (m
+ 2)
< n and
A8: n
<= (
len P) and (P
. m)
<> (P
. n) and
A9: ex e be
object st e
Joins ((P
. m),(P
. n),G) and
A10: P is
Cycle-like implies not (m
= 1 & n
= (
len P)) & not (m
= 1 & n
= ((
len P)
- 2)) & not (m
= 3 & n
= (
len P)) by
Th83;
consider e be
object such that
A11: e
Joins ((P
. m),(P
. n),G) by
A9;
(m
+
0 )
<= (m
+ 2) by
XREAL_1: 7;
then
A12: m
<= n by
A7,
XXREAL_0: 2;
n
in
NAT by
ORDINAL1:def 12;
then
A13: (P
. n)
in (
the_Vertices_of H) by
A8,
GLIB_001: 7;
m
in
NAT by
ORDINAL1:def 12;
then (P
. m)
in (
the_Vertices_of H) by
A8,
A12,
GLIB_001: 7,
XXREAL_0: 2;
then e
Joins ((P
. m),(W
. n),H) by
A1,
A11,
A13,
Th19;
hence W is
chordal by
A3,
A6,
A7,
A8,
A10,
Th84;
end;
hence thesis;
end;
end;
hence thesis;
end;
end
theorem ::
CHORD:97
for G be
chordal
_Graph, P be
Path of G st P is
open & P is
chordless holds for x,e be
object st ( not x
in (P
.vertices() ) & e
Joins ((P
.last() ),x,G) & not ex f be
object st f
Joins ((P
. ((
len P)
- 2)),x,G)) holds (P
.addEdge e) is
Path-like & (P
.addEdge e) is
open & (P
.addEdge e) is
chordless
proof
let G be
chordal
_Graph, P be
Path of G such that
A1: P is
open and
A2: P is
chordless;
let x,e be
object such that
A3: not x
in (P
.vertices() ) and
A4: e
Joins ((P
.last() ),x,G) and
A5: not ex f be
object st f
Joins ((P
. ((
len P)
- 2)),x,G);
reconsider Q = (P
.addEdge e) as
Path of G by
A1,
A3,
A4,
GLIB_001: 151;
A6: (
len Q)
= ((
len P)
+ 2) by
A4,
GLIB_001: 64;
defpred
P[
Nat] means (4
<= (2
* $1) & (2
* $1)
<= ((
len P)
+ 1)) implies for j be
odd
Nat st (j
+ (2
* $1))
= ((
len P)
+ 2) holds not ex e be
object st e
Joins ((Q
. j),x,G);
A7:
now
let n be
odd
Nat such that
A8: n
<= (
len P);
1
<= n by
Th2;
then n
in (
dom P) by
A8,
FINSEQ_3: 25;
hence (P
. n)
= (Q
. n) by
A4,
GLIB_001: 65;
end;
A9: (Q
.last() )
= x by
A4,
GLIB_001: 63;
for k be
Nat st for a be
Nat st a
< k holds
P[a] holds
P[k]
proof
let k be
Nat such that
A10: for a be
Nat st a
< k holds
P[a];
assume that
A11: 4
<= (2
* k) and (2
* k)
<= ((
len P)
+ 1);
let j be
odd
Nat such that
A12: (j
+ (2
* k))
= ((
len P)
+ 2);
(j
+ 4)
<= (j
+ (2
* k)) by
A11,
XREAL_1: 7;
then
A13: ((j
+ 4)
- 4)
<= (((
len P)
+ 2)
- 4) by
A12,
XREAL_1: 9;
A14: ((
len P)
- 2)
<= (
len P) by
XREAL_1: 43;
then
A15: j
<= (
len P) by
A13,
XXREAL_0: 2;
A16: j
in
NAT by
ORDINAL1:def 12;
let e be
object such that
A17: e
Joins ((Q
. j),x,G);
per cases by
A13,
XXREAL_0: 1;
suppose j
= ((
len P)
- 2);
then (Q
. j)
= (P
. ((
len P)
- 2)) by
A7,
XREAL_1: 43;
hence contradiction by
A5,
A17;
end;
suppose
A18: j
< ((
len P)
- (2
* 1));
reconsider lP2 = ((
len P)
+ 2) as
odd
Element of
NAT ;
reconsider jj = j as
odd
Element of
NAT by
ORDINAL1:def 12;
set B = (Q
.cut (jj,lP2));
(
len P)
< ((
len P)
+ 2) by
XREAL_1: 29;
then
A19: j
<= ((
len P)
+ 2) by
A15,
XXREAL_0: 2;
then
A20: (B
.last() )
= x by
A9,
A6,
GLIB_001: 37;
A21: ((
len B)
+ j)
= (((
len P)
+ 2)
+ 1) by
A6,
A19,
GLIB_001: 36;
A22:
now
let i be
even
Nat such that
A23: i
< ((
len B)
- 1);
(j
+ i)
< (((
len B)
- 1)
+ j) by
A23,
XREAL_1: 8;
then
A24: (j
+ i)
<= (((
len P)
+ 2)
- 2) by
A21,
Th3;
((
len B)
- 1)
< (
len B) by
XREAL_1: 44;
then
A25: i
< (
len B) by
A23,
XXREAL_0: 2;
A26: i
in
NAT by
ORDINAL1:def 12;
then (j
+ i)
in (
dom Q) by
A6,
A19,
A25,
GLIB_001: 36;
then
A27: 1
<= (j
+ i) by
FINSEQ_3: 25;
(B
. (i
+ 1))
= (Q
. (j
+ i)) by
A6,
A19,
A26,
A25,
GLIB_001: 36;
hence (B
. (i
+ 1))
= (P
. (j
+ i)) & (j
+ i)
in (
dom P) by
A7,
A27,
A24,
FINSEQ_3: 25;
end;
set C = (B
.addEdge e);
A28: (B
.first() )
= (Q
. j) by
A6,
A19,
GLIB_001: 37;
A29: (B
.first() )
= (Q
. j) by
A6,
A19,
GLIB_001: 37;
then
A30: e
Joins ((B
.last() ),(B
.first() ),G) by
A17,
A20;
A31:
now
let n be
odd
Nat such that
A32: n
<= (
len B);
1
<= n by
Th2;
then n
in (
dom B) by
A32,
FINSEQ_3: 25;
hence (C
. n)
= (B
. n) by
A30,
GLIB_001: 65;
end;
A33: (((
len P)
+ 3)
- ((
len P)
- 2))
< (((
len P)
+ 3)
- j) by
A18,
XREAL_1: 15;
then
A34: 3
< (
len B) by
A21,
XXREAL_0: 2;
((
len B)
+ 2)
> (5
+ 2) by
A21,
A33,
XREAL_1: 8;
then
A35: (
len C)
> 7 by
A17,
A20,
GLIB_000: 14,
GLIB_001: 64;
A36:
now
assume (C
.length() )
<= 3;
then (2
* (C
.length() ))
<= (2
* 3) by
XREAL_1: 64;
then ((2
* (C
.length() ))
+ 1)
<= ((2
* 3)
+ 1) by
XREAL_1: 6;
hence contradiction by
A35,
GLIB_001: 112;
end;
(P
.vertexAt j)
= (P
. j) by
A15,
GLIB_001:def 8;
then (P
. j)
in (P
.vertices() ) by
A16,
A13,
A14,
GLIB_001: 89,
XXREAL_0: 2;
then (B
.first() )
in (P
.vertices() ) by
A7,
A13,
A14,
A28,
XXREAL_0: 2;
then
A37: B is
open by
A3,
A20;
then C is
Cycle-like by
A17,
A34,
A29,
A20,
Th33,
GLIB_000: 14;
then C is
chordal by
A36,
Def11;
then
consider m,n be
odd
Nat such that
A38: (m
+ 2)
< n and
A39: n
<= (
len C) and
A40: (C
. m)
<> (C
. n) and
A41: ex e be
object st e
Joins ((C
. m),(C
. n),G) and
A42: C is
Cycle-like implies not (m
= 1 & n
= (
len C)) & not (m
= 1 & n
= ((
len C)
- 2)) & not (m
= 3 & n
= (
len C)) by
Th83;
consider e be
object such that
A43: e
Joins ((C
. m),(C
. n),G) by
A41;
1
<= m by
Th2;
then (1
- 1)
<= (m
- 1) by
XREAL_1: 9;
then
reconsider m1 = (m
- 1) as
even
Element of
NAT by
INT_1: 3;
reconsider m1 as
even
Nat;
A44: (
len C)
= ((
len B)
+ 2) by
A17,
A20,
GLIB_000: 14,
GLIB_001: 64;
then (m
+ 2)
< ((
len B)
+ 2) by
A38,
A39,
XXREAL_0: 2;
then
A45: ((m
+ 2)
- 2)
< (((
len B)
+ 2)
- 2) by
XREAL_1: 9;
then
A46: m1
< ((
len B)
- 1) by
XREAL_1: 9;
then
A47: (B
. (m1
+ 1))
= (P
. (j
+ m1)) by
A22;
A48: (j
+ m1)
in (
dom P) by
A22,
A46;
then
A49: (j
+ m1)
<= (
len P) by
FINSEQ_3: 25;
A50: (C
.last() )
= (Q
. j) by
A28,
A30,
GLIB_001: 63;
now
assume
A51: n
= (
len C);
then e
Joins ((P
. (j
+ m1)),(Q
. j),G) by
A31,
A50,
A43,
A45,
A47;
then e
Joins ((P
. (j
+ m1)),(P
. j),G) by
A7,
A13,
A14,
XXREAL_0: 2;
then
A52: e
Joins ((P
. j),(P
. (j
+ m1)),G);
3
< m by
A17,
A34,
A29,
A20,
A37,
A42,
A51,
Th7,
Th33,
GLIB_000: 14,
XXREAL_0: 2;
then
A53: ((2
+ 1)
- 1)
< (m
- 1) by
XREAL_1: 9;
then
A54: j
< (j
+ m1) by
XREAL_1: 29;
(j
+ 2)
< (j
+ m1) by
A53,
XREAL_1: 8;
hence contradiction by
A1,
A2,
A49,
A52,
A54,
Th91;
end;
then n
< ((
len B)
+ (2
* 1)) by
A44,
A39,
XXREAL_0: 1;
then
A55: n
<= (((
len B)
+ 2)
- 2) by
Th3;
then
A56: (C
. n)
= (B
. n) by
A31;
1
<= n by
Th2;
then (1
- 1)
<= (n
- 1) by
XREAL_1: 9;
then
reconsider n1 = (n
- 1) as
even
Element of
NAT by
INT_1: 3;
reconsider n1 as
even
Nat;
((m
+ 2)
- 1)
< (n
- 1) by
A38,
XREAL_1: 9;
then (j
+ (m1
+ 2))
< (j
+ n1) by
XREAL_1: 8;
then
A57: ((j
+ m1)
+ 2)
< (j
+ n1);
now
(C
. m)
= (B
. m) by
A31,
A45;
then
A58: (C
. m)
= (Q
. (j
+ m1)) by
A7,
A47,
A49;
A59: (
len P)
< ((
len P)
+ 2) by
XREAL_1: 29;
(j
+ m1)
<= (
len P) by
A48,
FINSEQ_3: 25;
then
consider kk be
Nat such that
A60: ((j
+ m1)
+ (2
* kk))
= ((
len P)
+ 2) by
A59,
Lm2,
XXREAL_0: 2;
assume
A61: n
= (
len B);
A62:
now
assume (2
* kk)
< (3
+ 1);
then (2
* kk)
<= 3 by
NAT_1: 13;
then (2
* kk)
=
0 or (2
* kk)
= 2 by
Th11;
hence contradiction by
A21,
A38,
A40,
A61,
A60;
end;
1
<= m by
Th2;
then 1
< m by
A34,
A37,
A30,
A44,
A42,
A61,
Th33,
XXREAL_0: 1;
then
A63: (1
- 1)
< (m
- 1) by
XREAL_1: 9;
A64:
now
assume (2
* kk)
> ((
len P)
+ 1);
then (2
* kk)
>= (((
len P)
+ 1)
+ 1) by
NAT_1: 13;
hence contradiction by
A60,
XREAL_1: 29;
end;
A65:
now
assume kk
>= k;
then
A66: (2
* kk)
>= (2
* k) by
XREAL_1: 64;
((j
+ (2
* kk))
+ m1)
> (j
+ (2
* kk)) by
A63,
XREAL_1: 29;
hence contradiction by
A12,
A60,
A66,
XREAL_1: 7;
end;
(C
. n)
= x by
A20,
A31,
A61;
hence contradiction by
A10,
A43,
A60,
A62,
A64,
A65,
A58;
end;
then n
< (
len B) by
A55,
XXREAL_0: 1;
then
A67: n1
< ((
len B)
- 1) by
XREAL_1: 9;
then (j
+ n1)
in (
dom P) by
A22;
then
A68: (j
+ n1)
<= (
len P) by
FINSEQ_3: 25;
m
< (m
+ 2) by
XREAL_1: 29;
then m
< n by
A38,
XXREAL_0: 2;
then m1
< n1 by
XREAL_1: 9;
then
A69: (j
+ m1)
< (j
+ n1) by
XREAL_1: 8;
A70: (C
. m)
= (B
. m) by
A31,
A45;
(B
. (n1
+ 1))
= (P
. (j
+ n1)) by
A22,
A67;
hence contradiction by
A1,
A2,
A43,
A47,
A68,
A70,
A56,
A69,
A57,
Th91;
end;
end;
then
A71: for k be
Nat st for a be
Nat st a
< k holds
P[a] holds
P[k];
A72: for k be
Nat holds
P[k] from
NAT_1:sch 4(
A71);
A73:
now
let n be
odd
Nat such that
A74: n
<= ((
len P)
- 2);
((
len P)
- 2)
<= (((
len P)
- 2)
+ 4) by
XREAL_1: 31;
then
consider k be
Nat such that
A75: (n
+ (2
* k))
= ((
len P)
+ 2) by
A74,
Lm2,
XXREAL_0: 2;
A76:
now
assume (2
* k)
> ((
len P)
+ 1);
then (n
+ (2
* k))
> (1
+ ((
len P)
+ 1)) by
Th2,
XREAL_1: 8;
hence contradiction by
A75;
end;
now
assume
A77: (2
* k)
< 4;
(n
+ 4)
<= (((
len P)
- 2)
+ 4) by
A74,
XREAL_1: 7;
hence contradiction by
A75,
A77,
XREAL_1: 8;
end;
hence not ex e be
object st e
Joins ((Q
. n),x,G) by
A72,
A75,
A76;
end;
A78:
now
assume Q is
chordal;
then
consider m,n be
odd
Nat such that
A79: (m
+ 2)
< n and
A80: n
<= (
len Q) and (Q
. m)
<> (Q
. n) and
A81: ex e be
object st e
Joins ((Q
. m),(Q
. n),G) and Q is
Cycle-like implies not (m
= 1 & n
= (
len Q)) & not (m
= 1 & n
= ((
len Q)
- 2)) & not (m
= 3 & n
= (
len Q)) by
Th83;
(m
+ 2)
< ((
len P)
+ 2) by
A6,
A79,
A80,
XXREAL_0: 2;
then
A82: ((m
+ 2)
- 2)
< (((
len P)
+ 2)
- 2) by
XREAL_1: 9;
m
< (m
+ 2) by
XREAL_1: 29;
then
A83: m
< n by
A79,
XXREAL_0: 2;
per cases by
A80,
XXREAL_0: 1;
suppose
A84: n
= (
len Q);
then ((m
+ 2)
- 2)
< (((
len P)
+ 2)
- 2) by
A6,
A79,
XREAL_1: 9;
hence contradiction by
A9,
A73,
A81,
A84,
Th3;
end;
suppose
A85: n
< (
len Q);
A86: (Q
. m)
= (P
. m) by
A7,
A82;
A87: n
<= (((
len P)
+ 2)
- 2) by
A6,
A85,
Th3;
then (Q
. n)
= (P
. n) by
A7;
hence contradiction by
A1,
A2,
A79,
A81,
A83,
A87,
A86,
Th91;
end;
end;
(Q
.first() )
= (P
.first() ) by
A4,
GLIB_001: 63;
then (Q
.first() )
in (P
.vertices() ) by
GLIB_001: 88;
hence thesis by
A3,
A9,
A78;
end;
theorem ::
CHORD:98
Th97: for G be
chordal
_Graph, a,b be
Vertex of G st a
<> b & not (a,b)
are_adjacent holds for S be
VertexSeparator of a, b st S is
minimal & S is non
empty holds for H be
inducedSubgraph of G, S holds H is
complete
proof
let G be
chordal
_Graph;
set tVG = (
the_Vertices_of G);
let a,b be
Vertex of G such that
A1: a
<> b and
A2: not (a,b)
are_adjacent ;
let S be
VertexSeparator of a, b such that
A3: S is
minimal and
A4: S is non
empty;
set Gns = the
removeVertices of G, S;
reconsider sa = a, sb = b as
Vertex of Gns by
A1,
A2,
Th76;
set A = (Gns
.reachableFrom sa), B = (Gns
.reachableFrom sb);
A5: (A
/\ B)
=
{} by
A1,
A2,
Th75;
set Gb = the
inducedSubgraph of Gns, B;
set Ga = the
inducedSubgraph of Gns, A;
A6: (
the_Vertices_of Ga)
= A by
GLIB_000:def 37;
A7: (
the_Vertices_of Gb)
= B by
GLIB_000:def 37;
A8: (B
/\ S)
=
{} by
A1,
A2,
Th74;
A9: (A
/\ S)
=
{} by
A1,
A2,
Th74;
(
the_Vertices_of Gns)
c= tVG;
then
reconsider A, B as non
empty
Subset of tVG by
XBOOLE_1: 1;
let Gs be
inducedSubgraph of G, S;
let x,y be
Vertex of Gs such that
A10: x
<> y and
A11: not (x,y)
are_adjacent ;
reconsider xg = x, yg = y as
Vertex of G by
GLIB_000: 42;
A12: S
= (
the_Vertices_of Gs) by
A4,
GLIB_000:def 37;
then
A13: ex xag be
Vertex of G st xag
in A & (xg,xag)
are_adjacent by
A1,
A2,
A3,
Th81;
set Bx = (B
\/
{xg}), Ax = (A
\/
{xg});
set Gbx = the
inducedSubgraph of G, Bx;
set Gax = the
inducedSubgraph of G, Ax;
set xy =
{xg, yg};
A14: (
the_Vertices_of Gbx)
= Bx by
GLIB_000:def 37;
now
let x be
object such that
A15: x
in A;
not x
in S by
A9,
A15,
XBOOLE_0:def 4;
hence x
in (tVG
\ S) by
A15,
XBOOLE_0:def 5;
end;
then
A16: A
c= (tVG
\ S);
consider yag be
Vertex of G such that
A17: yag
in A and
A18: (yg,yag)
are_adjacent by
A1,
A2,
A3,
A12,
Th81;
A19: yag
in Ax by
A17,
XBOOLE_0:def 3;
set Gb1 = the
inducedSubgraph of G, ((B
\/
{x})
\/
{y});
set Ga1 = the
inducedSubgraph of G, ((A
\/
{x})
\/
{y});
A20: (
the_Vertices_of Gax)
= Ax by
GLIB_000:def 37;
not a
in S by
A1,
A2,
Def8;
then
A21: (tVG
\ S) is non
empty
Subset of tVG by
XBOOLE_0:def 5;
then
reconsider Ga as
inducedSubgraph of G, A by
A16,
Th29;
A22: not y
in
{x} by
A10,
TARSKI:def 1;
now
let x be
object such that
A23: x
in B;
not x
in S by
A8,
A23,
XBOOLE_0:def 4;
hence x
in (tVG
\ S) by
A23,
XBOOLE_0:def 5;
end;
then
A24: B
c= (tVG
\ S);
then
reconsider Gb as
inducedSubgraph of G, B by
A21,
Th29;
y
in xy by
TARSKI:def 2;
then
A25: y
in (A
\/ xy) by
XBOOLE_0:def 3;
A26: ex xbg be
Vertex of G st xbg
in B & (xg,xbg)
are_adjacent by
A1,
A2,
A3,
A12,
Th82;
not x
in B by
A24,
A12,
XBOOLE_0:def 5;
then x
in (G
.AdjacentSet (
the_Vertices_of Gb)) by
A7,
A26;
then
A27: Gbx is
connected by
Th56;
y
in xy by
TARSKI:def 2;
then
A28: y
in (B
\/ xy) by
XBOOLE_0:def 3;
consider ybg be
Vertex of G such that
A29: ybg
in B and
A30: (yg,ybg)
are_adjacent by
A1,
A2,
A3,
A12,
Th82;
A31: ((B
\/
{x})
\/
{y})
= (B
\/ (
{x}
\/
{y})) by
XBOOLE_1: 4
.= (B
\/ xy) by
ENUMSET1: 1;
then
A32: (
the_Vertices_of Gb1)
c= (B
\/ xy) by
GLIB_000:def 37;
x
in xy by
TARSKI:def 2;
then x
in (B
\/ xy) by
XBOOLE_0:def 3;
then
reconsider xb = x, yb = y as
Vertex of Gb1 by
A31,
A28,
GLIB_000:def 37;
A33: ybg
in Bx by
A29,
XBOOLE_0:def 3;
not y
in B by
A24,
A12,
XBOOLE_0:def 5;
then not yg
in (
the_Vertices_of Gbx) by
A14,
A22,
XBOOLE_0:def 3;
then y
in (G
.AdjacentSet (
the_Vertices_of Gbx)) by
A14,
A30,
A33;
then Gb1 is
connected by
A27,
Th56;
then
consider Wb be
Walk of Gb1 such that
A34: Wb
is_Walk_from (yb,xb);
not x
in A by
A16,
A12,
XBOOLE_0:def 5;
then x
in (G
.AdjacentSet (
the_Vertices_of Ga)) by
A6,
A13;
then
A35: Gax is
connected by
Th56;
A36: ((A
\/
{x})
\/
{y})
= (A
\/ (
{x}
\/
{y})) by
XBOOLE_1: 4
.= (A
\/ xy) by
ENUMSET1: 1;
then
A37: (
the_Vertices_of Ga1)
c= (A
\/ xy) by
GLIB_000:def 37;
x
in xy by
TARSKI:def 2;
then x
in (A
\/ xy) by
XBOOLE_0:def 3;
then
reconsider xa = x, ya = y as
Vertex of Ga1 by
A36,
A25,
GLIB_000:def 37;
A38: not y
in
{x} by
A10,
TARSKI:def 1;
not y
in A by
A16,
A12,
XBOOLE_0:def 5;
then not yg
in (
the_Vertices_of Gax) by
A20,
A38,
XBOOLE_0:def 3;
then y
in (G
.AdjacentSet (
the_Vertices_of Gax)) by
A20,
A18,
A19;
then Ga1 is
connected by
A35,
Th56;
then
consider Wa be
Walk of Ga1 such that
A39: Wa
is_Walk_from (xa,ya);
A40: ((A
\/ xy)
/\ (B
\/ xy))
= ((A
/\ B)
\/ xy) by
XBOOLE_1: 24
.= xy by
A5;
A41: (Wa
.last() )
= ya by
A39;
A42: (Wa
.first() )
= xa by
A39;
A43: (Wb
.last() )
= xa by
A34;
A44: (Wb
.first() )
= ya by
A34;
consider Pb be
Path of Gb1 such that
A45: Pb
is_Walk_from ((Wb
.first() ),(Wb
.last() )) and
A46: Pb is
minlength by
Th38;
consider Pa be
Path of Ga1 such that
A47: Pa
is_Walk_from ((Wa
.first() ),(Wa
.last() )) and
A48: Pa is
minlength by
Th38;
reconsider Pag = Pa, Pbg = Pb as
Path of G by
GLIB_001: 175;
A49: (Pbg
. 1)
= yg by
A44,
A45;
(Pbg
.vertices() )
= (Pb
.vertices() ) by
GLIB_001: 98;
then
A50: (Pbg
.vertices() )
c= (B
\/ xy) by
A32;
(Pag
.vertices() )
= (Pa
.vertices() ) by
GLIB_001: 98;
then (Pag
.vertices() )
c= (A
\/ xy) by
A37;
then
A51: ((Pag
.vertices() )
/\ (Pbg
.vertices() ))
c= xy by
A50,
A40,
XBOOLE_1: 27;
set P = (Pag
.append Pbg);
A52: (Pag
. (
len Pag))
= yg by
A41,
A47;
A53: (Pbg
. (
len Pbg))
= xg by
A43,
A45;
A54: (Pbg
.last() )
= (Pbg
. (
len Pbg));
then
A55: x
in (Pbg
.vertices() ) by
A53,
GLIB_001: 88;
A56: (Pbg
.first() )
= (Pbg
. 1);
then
A57: y
in (Pbg
.vertices() ) by
A49,
GLIB_001: 88;
A58: Pbg is non
trivial by
A10,
A56,
A54,
A49,
A53,
GLIB_001: 127;
A59: Pbg is
open by
A10,
A49,
A53;
A60: not Pbg is
Cycle-like by
A10,
A56,
A54,
A49,
A53,
GLIB_001:def 24;
A61: not (xg,yg)
are_adjacent by
A4,
A11,
Th44;
then
A62: (Pbg
.length() )
>= 2 by
A10,
A56,
A54,
A49,
A53,
Th45;
A63: (Pag
. 1)
= xg by
A42,
A47;
A64: (Pag
.edges() )
misses (Pbg
.edges() )
proof
assume ((Pag
.edges() )
/\ (Pbg
.edges() ))
<>
{} ;
then
consider e be
object such that
A65: e
in ((Pag
.edges() )
/\ (Pbg
.edges() )) by
XBOOLE_0:def 1;
e
in (Pag
.edges() ) by
A65,
XBOOLE_0:def 4;
then e
in (Pa
.edges() ) by
GLIB_001: 110;
then
consider a1,a2 be
Vertex of Ga1, na be
odd
Element of
NAT such that
A66: (na
+ 2)
<= (
len Pag) and
A67: a1
= (Pag
. na) and e
= (Pag
. (na
+ 1)) and
A68: a2
= (Pag
. (na
+ 2)) and
A69: e
Joins (a1,a2,Ga1) by
GLIB_001: 103;
A70: e
Joins (a1,a2,G) by
A69,
GLIB_000: 72;
e
in (Pbg
.edges() ) by
A65,
XBOOLE_0:def 4;
then e
in (Pb
.edges() ) by
GLIB_001: 110;
then
consider b1,b2 be
Vertex of Gb1, nb be
odd
Element of
NAT such that (nb
+ 2)
<= (
len Pbg) and b1
= (Pbg
. nb) and e
= (Pbg
. (nb
+ 1)) and b2
= (Pbg
. (nb
+ 2)) and
A71: e
Joins (b1,b2,Gb1) by
GLIB_001: 103;
A72: (
the_Vertices_of Gb1)
= (B
\/ xy) by
A31,
GLIB_000:def 37;
e
Joins (b1,b2,G) by
A71,
GLIB_000: 72;
then
A73: a1
= b1 & a2
= b2 or a1
= b2 & a2
= b1 by
A70;
then
A74: a1
in B or a1
in xy by
A72,
XBOOLE_0:def 3;
A75: (
the_Vertices_of Ga1)
= (A
\/ xy) by
A36,
GLIB_000:def 37;
then
A76: a1
in A or a1
in xy by
XBOOLE_0:def 3;
A77: a2
in A or a2
in xy by
A75,
XBOOLE_0:def 3;
A78: a2
in B or a2
in xy by
A73,
A72,
XBOOLE_0:def 3;
per cases by
A5,
A76,
A77,
A74,
A78,
TARSKI:def 2,
XBOOLE_0:def 4;
suppose
A79: a1
= x & a2
= x or a1
= y & a2
= y;
na
< (na
+ 2) by
XREAL_1: 39;
hence contradiction by
A10,
A63,
A52,
A66,
A67,
A68,
A79,
GLIB_001:def 28;
end;
suppose a1
= x & a2
= y or a1
= y & a2
= x;
hence contradiction by
A61,
A70,
Def3;
end;
end;
A80: (Pag
.first() )
= (Pag
. 1);
then
A81: x
in (Pag
.vertices() ) by
A63,
GLIB_001: 88;
A82: (Pag
.last() )
= (Pag
. (
len Pag));
then
A83: ((
len P)
+ 1)
= ((
len Pag)
+ (
len Pbg)) by
A52,
A56,
A49,
GLIB_001: 28;
A84: (Pag
.length() )
>= 2 by
A10,
A61,
A80,
A82,
A63,
A52,
Th45;
(P
.length() )
= ((Pag
.length() )
+ (Pbg
.length() )) by
A82,
A52,
A56,
A49,
Th28;
then (P
.length() )
>= (2
+ 2) by
A84,
A62,
XREAL_1: 7;
then (P
.length() )
>= (3
+ 1);
then
A85: (P
.length() )
> 3 by
NAT_1: 13;
A86: Pag is
open by
A10,
A63,
A52;
A87: y
in (Pag
.vertices() ) by
A82,
A52,
GLIB_001: 88;
xy
c= ((Pag
.vertices() )
/\ (Pbg
.vertices() ))
proof
let a be
object;
assume a
in xy;
then a
= x or a
= y by
TARSKI:def 2;
hence thesis by
A81,
A87,
A55,
A57,
XBOOLE_0:def 4;
end;
then ((Pag
.vertices() )
/\ (Pbg
.vertices() ))
= xy by
A51;
then P is
Cycle-like by
A63,
A52,
A86,
A49,
A53,
A59,
A58,
A64,
Th27;
then P is
chordal by
A85,
Def11;
then
consider m,n be
odd
Nat such that
A88: (m
+ 2)
< n and
A89: n
<= (
len P) and
A90: (P
. m)
<> (P
. n) and
A91: ex e be
object st e
Joins ((P
. m),(P
. n),G) and
A92: for f be
object st f
in (P
.edges() ) holds not f
Joins ((P
. m),(P
. n),G);
A93: m
< n by
A88,
NAT_1: 12;
consider e be
object such that
A94: e
Joins ((P
. m),(P
. n),G) by
A91;
A95: e
Joins ((P
. n),(P
. m),G) by
A94;
A96: m
in
NAT by
ORDINAL1:def 12;
A97: not Pag is
Cycle-like by
A10,
A80,
A82,
A63,
A52,
GLIB_001:def 24;
A98: 1
<= n by
ABIAN: 12;
A99: 1
<= m by
ABIAN: 12;
per cases ;
suppose
A100: m
< (
len Pag) & n
<= (
len Pag);
then n
in (
dom Pag) by
A98,
FINSEQ_3: 25;
then
A101: (P
. n)
= (Pag
. n) by
GLIB_001: 32;
m
in (
dom Pag) by
A99,
A100,
FINSEQ_3: 25;
then (P
. m)
= (Pag
. m) by
GLIB_001: 32;
then Pag is
chordal by
A97,
A88,
A91,
A100,
A101,
Th84;
then Pa is
chordal by
A36,
Th86;
hence contradiction by
A48,
Th88;
end;
suppose
A102: m
< (
len Pag) & (
len Pag)
< n;
then
A103: (Pag
. m)
in (
the_Vertices_of Ga1) by
A96,
GLIB_001: 7;
m
in (
dom Pag) by
A99,
A102,
FINSEQ_3: 25;
then
A104: (P
. m)
= (Pag
. m) by
GLIB_001: 32;
A105: not n
in (
dom Pag) by
A102,
FINSEQ_3: 25;
n
in (
dom P) by
A89,
A98,
FINSEQ_3: 25;
then
consider n1 be
Element of
NAT such that
A106: n1
< (
len Pbg) and
A107: n
= ((
len Pag)
+ n1) by
A105,
GLIB_001: 34;
A108: (P
. ((
len Pag)
+ n1))
= (Pbg
. (n1
+ 1)) by
A82,
A52,
A56,
A49,
A106,
GLIB_001: 33;
reconsider n1 as
even
Element of
NAT by
A107;
reconsider n11 = (n1
+ 1) as
odd
Element of
NAT ;
A109: n11
<= (
len Pbg) by
A106,
NAT_1: 13;
then
A110: (Pbg
. n11)
in (
the_Vertices_of Gb1) by
GLIB_001: 7;
per cases by
A37,
A32,
A103,
A110,
XBOOLE_0:def 3;
suppose
A111: (Pag
. m)
in A & (Pbg
. n11)
in xy;
per cases by
A63,
A52,
A111,
TARSKI:def 2;
suppose
A112: (Pbg
. n11)
= (Pag
. 1);
now
assume
A113: (1
+ 2)
>= m;
per cases by
A113,
XXREAL_0: 1;
suppose (1
+ 2)
> m;
then 1
>= m by
Th4,
JORDAN12: 2;
hence contradiction by
A90,
A99,
A104,
A107,
A108,
A112,
XXREAL_0: 1;
end;
suppose
A114: (1
+ 2)
= m;
then
A115: (1
+ 1)
< (
len Pag) by
A102,
XXREAL_0: 2;
then (1
+ 1)
in (
dom Pag) by
FINSEQ_3: 25;
then
A116: (Pag
. (1
+ 1))
= (P
. (1
+ 1)) by
GLIB_001: 32;
1
< ((
len Pag)
- 1) by
A115,
XREAL_1: 20;
then (1
+
0 )
< (((
len Pag)
- 1)
+ (
len Pbg)) by
XREAL_1: 8;
then
A117: (P
. (1
+ 1))
in (P
.edges() ) by
A83,
GLIB_001: 100,
JORDAN12: 2;
1
< (
len Pag) by
A99,
A102,
XXREAL_0: 2;
then (Pag
. (1
+ 1))
Joins ((Pag
. 1),(Pag
. m),G) by
A114,
GLIB_001:def 3,
JORDAN12: 2;
hence contradiction by
A92,
A104,
A107,
A108,
A112,
A116,
A117,
GLIB_000: 14;
end;
end;
then Pag is
chordal by
A97,
A95,
A102,
A104,
A107,
A108,
A112,
Th84,
JORDAN12: 2;
then Pa is
chordal by
A36,
Th86;
hence contradiction by
A48,
Th88;
end;
suppose
A118: (Pbg
. n11)
= (Pag
. (
len Pag));
now
set L = (
len Pag);
assume
A119: (m
+ 2)
>= (
len Pag);
per cases by
A119,
XXREAL_0: 1;
suppose
A120: (m
+ 2)
= L;
then
A121: L
= ((m
+ 1)
+ 1);
then
A122: (m
+ 1)
< L by
NAT_1: 13;
1
<= (m
+ 1) by
NAT_1: 12;
then (m
+ 1)
in (
dom Pag) by
A122,
FINSEQ_3: 25;
then
A123: (Pag
. (m
+ 1))
= (P
. (m
+ 1)) by
GLIB_001: 32;
m
< ((
len Pag)
- 1) by
A121,
NAT_1: 13;
then (m
+
0 )
< (((
len Pag)
- 1)
+ (
len Pbg)) by
XREAL_1: 8;
then
A124: (P
. (m
+ 1))
in (P
.edges() ) by
A83,
GLIB_001: 100;
m
< L by
A122,
NAT_1: 13;
then (Pag
. (m
+ 1))
Joins ((Pag
. m),(Pag
. L),G) by
A96,
A120,
GLIB_001:def 3;
hence contradiction by
A92,
A104,
A107,
A108,
A118,
A123,
A124;
end;
suppose (m
+ 2)
> (
len Pag);
hence contradiction by
A102,
Th4;
end;
end;
then Pag is
chordal by
A97,
A91,
A104,
A107,
A108,
A118,
Th84;
then Pa is
chordal by
A36,
Th86;
hence contradiction by
A48,
Th88;
end;
end;
suppose
A125: (Pag
. m)
in A & (Pbg
. n11)
in B;
then
reconsider bc = (Pb
. n11) as
Vertex of Gb by
GLIB_000:def 37;
reconsider ac = (Pa
. m) as
Vertex of Ga by
A125,
GLIB_000:def 37;
set WAB = (Gns
.walkOf (ac,e,bc));
e
Joins (ac,bc,Gns) by
A16,
A24,
A94,
A104,
A107,
A108,
A125,
Th19;
then
A126: WAB
is_Walk_from (ac,bc) by
GLIB_001: 15;
b
in B by
GLIB_002: 9;
then
reconsider bb = b as
Vertex of Gb by
GLIB_000:def 37;
a
in A by
GLIB_002: 9;
then
reconsider aa = a as
Vertex of Ga by
GLIB_000:def 37;
consider WA be
Walk of Ga such that
A127: WA
is_Walk_from (aa,ac) by
GLIB_002:def 1;
consider WB be
Walk of Gb such that
A128: WB
is_Walk_from (bc,bb) by
GLIB_002:def 1;
reconsider WA, WB as
Walk of Gns by
GLIB_001: 167;
reconsider WAs = WA, WBs = WB as
Walk of Gns;
A129: WBs
is_Walk_from (bc,bb) by
A128;
set WaB = (WAs
.append WAB);
set Wab = (WaB
.append WBs);
WAs
is_Walk_from (aa,ac) by
A127;
then WaB
is_Walk_from (aa,bc) by
A126,
GLIB_001: 31;
then Wab
is_Walk_from (a,b) by
A129,
GLIB_001: 31;
hence contradiction by
A1,
A2,
Def8;
end;
suppose (Pag
. m)
in xy & (Pbg
. n11)
in B;
then (Pag
. m)
= x or (Pag
. m)
= y by
TARSKI:def 2;
then
A130: (Pag
. m)
= x by
A63,
A52,
A96,
A102,
GLIB_001:def 28
.= (Pbg
. (
len Pbg)) by
A43,
A45;
now
set L = (
len Pbg);
assume
A131: (n11
+ 2)
>= (
len Pbg);
per cases by
A131,
XXREAL_0: 1;
suppose
A132: (n11
+ 2)
= L;
then
A133: L
= ((n11
+ 1)
+ 1);
then n11
< ((
len Pbg)
- 1) by
NAT_1: 13;
then
A134: ((
len Pag)
+ n11)
< (((
len Pbg)
- 1)
+ (
len Pag)) by
XREAL_1: 6;
(n11
+ 1)
< L by
A133,
NAT_1: 13;
then
A135: n11
< L by
NAT_1: 13;
then (Pbg
. (n11
+ 1))
Joins ((Pbg
. n11),(Pbg
. L),Gb1) by
A132,
GLIB_001:def 3;
then (Pbg
. (n11
+ 1))
Joins ((Pbg
. L),(Pbg
. n11),Gb1);
then
A136: (Pbg
. (n11
+ 1))
Joins ((Pbg
. L),(Pbg
. n11),G) by
GLIB_000: 72;
A137: 1
<= ((
len Pag)
+ n11) by
ABIAN: 12,
NAT_1: 12;
(Pbg
. (n11
+ 1))
= (P
. ((
len Pag)
+ n11)) by
A82,
A52,
A56,
A49,
A135,
GLIB_001: 33;
then (Pbg
. (n11
+ 1))
in (P
.edges() ) by
A83,
A137,
A134,
GLIB_001: 99;
hence contradiction by
A92,
A104,
A107,
A108,
A130,
A136;
end;
suppose (n11
+ 2)
> (
len Pbg);
then n11
>= (
len Pbg) by
Th4;
hence contradiction by
A90,
A104,
A107,
A108,
A109,
A130,
XXREAL_0: 1;
end;
end;
then Pbg is
chordal by
A60,
A95,
A104,
A107,
A108,
A130,
Th84;
then Pb is
chordal by
A31,
Th86;
hence contradiction by
A46,
Th88;
end;
suppose
A138: (Pag
. m)
in xy & (Pbg
. n11)
in xy;
then
A139: (Pbg
. n11)
= x or (Pbg
. n11)
= y by
TARSKI:def 2;
(Pag
. m)
= x or (Pag
. m)
= y by
A138,
TARSKI:def 2;
then (xg,yg)
are_adjacent by
A90,
A91,
A104,
A107,
A108,
A139,
Def3;
hence contradiction by
A4,
A11,
Th44;
end;
end;
suppose
A140: (
len Pag)
<= m;
then
consider m1 be
Nat such that
A141: m
= ((
len Pag)
+ m1) by
NAT_1: 10;
n
> (
len Pag) by
A93,
A140,
XXREAL_0: 2;
then
A142: not n
in (
dom Pag) by
FINSEQ_3: 25;
n
in (
dom P) by
A89,
A98,
FINSEQ_3: 25;
then
consider n1 be
Element of
NAT such that
A143: n1
< (
len Pbg) and
A144: n
= ((
len Pag)
+ n1) by
A142,
GLIB_001: 34;
A145: (P
. ((
len Pag)
+ n1))
= (Pbg
. (n1
+ 1)) by
A82,
A52,
A56,
A49,
A143,
GLIB_001: 33;
A146: m1
in
NAT by
ORDINAL1:def 12;
A147: m1
< n1 by
A93,
A141,
A144,
XREAL_1: 6;
then m1
< (
len Pbg) by
A143,
XXREAL_0: 2;
then
A148: (P
. ((
len Pag)
+ m1))
= (Pbg
. (m1
+ 1)) by
A82,
A52,
A56,
A49,
A146,
GLIB_001: 33;
reconsider n1, m1 as
even
Element of
NAT by
A141,
A144,
ORDINAL1:def 12;
reconsider m11 = (m1
+ 1), n11 = (n1
+ 1) as
odd
Element of
NAT ;
A149: m11
< n11 by
A147,
XREAL_1: 6;
n11
<= (
len Pbg) by
A143,
NAT_1: 13;
then
A150: m11
< (
len Pbg) by
A149,
XXREAL_0: 2;
A151:
now
assume
A152: (m11
+ 2)
>= n11;
per cases by
A152,
XXREAL_0: 1;
suppose
A153: (m11
+ 2)
= n11;
then (m11
+ 1)
< (
len Pbg) by
A143;
then m11
< ((
len Pbg)
- 1) by
XREAL_1: 20;
then
A154: ((
len Pag)
+ m11)
< (((
len Pbg)
- 1)
+ (
len Pag)) by
XREAL_1: 6;
A155: 1
<= ((
len Pag)
+ m11) by
ABIAN: 12,
NAT_1: 12;
A156: (Pbg
. (m11
+ 1))
Joins ((Pbg
. m11),(Pbg
. n11),G) by
A150,
A153,
GLIB_001:def 3;
(Pbg
. (m11
+ 1))
= (P
. ((
len Pag)
+ m11)) by
A82,
A52,
A56,
A49,
A150,
GLIB_001: 33;
then (Pbg
. (m11
+ 1))
in (P
.edges() ) by
A83,
A155,
A154,
GLIB_001: 99;
hence contradiction by
A92,
A141,
A144,
A145,
A148,
A156;
end;
suppose (m11
+ 2)
> n11;
then m11
>= n11 by
Th4;
hence contradiction by
A147,
XREAL_1: 6;
end;
end;
n11
<= (
len Pbg) by
A143,
NAT_1: 13;
then Pbg is
chordal by
A60,
A91,
A141,
A144,
A145,
A148,
A151,
Th84;
then Pb is
chordal by
A31,
Th86;
hence contradiction by
A46,
Th88;
end;
end;
theorem ::
CHORD:99
for G be
_finite
_Graph st for a,b be
Vertex of G st a
<> b & not (a,b)
are_adjacent holds for S be
VertexSeparator of a, b st S is
minimal & S is non
empty holds for G2 be
inducedSubgraph of G, S holds G2 is
complete holds G is
chordal
proof
reconsider n = ((2
* 2)
+ 1) as
odd
Nat;
reconsider m = ((2
*
0 )
+ 1) as
odd
Nat;
let G be
_finite
_Graph such that
A1: for a,b be
Vertex of G st a
<> b & not (a,b)
are_adjacent holds for S be
VertexSeparator of a, b st S is
minimal & S is non
empty holds for G2 be
inducedSubgraph of G, S holds G2 is
complete;
let P be
Walk of G such that
A2: (P
.length() )
> 3 and
A3: P is
Cycle-like;
(P
.length() )
>= (3
+ 1) by
A2,
NAT_1: 13;
then (2
* (P
.length() ))
>= (2
* 4) by
XREAL_1: 64;
then ((2
* (P
.length() ))
+ 1)
>= (8
+ 1) by
XREAL_1: 7;
then
A4: (
len P)
>= 9 by
GLIB_001: 112;
A5:
now
assume
A6: (P
. m)
= (P
. n);
n
<= (
len P) by
A4,
XXREAL_0: 2;
then n
= (
len P) by
A3,
A6,
GLIB_001:def 28;
hence contradiction by
A4;
end;
per cases ;
suppose
A7: ex e be
object st e
Joins ((P
. m),(P
. n),G);
A8: (m
+ 2)
< n;
((
len P)
+ (
- 2))
>= (9
+ (
- 2)) by
A4,
XREAL_1: 7;
then
A9: not (m
= 1 & n
= ((
len P)
- 2));
A10: not (m
= 1 & n
= (
len P)) by
A4;
n
<= (
len P) by
A4,
XXREAL_0: 2;
hence thesis by
A3,
A7,
A8,
A10,
A9,
Th84;
end;
suppose
A11: not ex e be
object st e
Joins ((P
. m),(P
. n),G);
reconsider Pn = (P
. n) as
Vertex of G by
A4,
GLIB_001: 7,
XXREAL_0: 2;
reconsider Pm = (P
. m) as
Vertex of G by
A4,
GLIB_001: 7,
XXREAL_0: 2;
set P5l = (P
.cut (n,(
len P)));
consider S be
VertexSeparator of Pm, Pn such that
A12: S is
minimal by
Th78;
set G2 = the
inducedSubgraph of G, S;
A13: n
<= (
len P) by
A4,
XXREAL_0: 2;
then P5l
is_Walk_from ((P
. n),(P
. (
len P))) by
GLIB_001: 37;
then
A14: P5l
is_Walk_from ((P
. n),(P
. m)) by
A3,
GLIB_001: 118;
A15: not (Pm,Pn)
are_adjacent by
A11;
then S is
VertexSeparator of Pn, Pm by
A5,
Th69;
then
consider l be
odd
Nat such that
A16: 1
< l and
A17: l
< (
len P5l) and
A18: (P5l
. l)
in S by
A5,
A15,
A14,
Th71;
A19: (1
+ (
- 1))
< (l
+ (
- 1)) by
A16,
XREAL_1: 8;
then
reconsider l2 = (l
- 1) as
even
Element of
NAT by
INT_1: 3;
reconsider l2 as
even
Nat;
A20: (l
+ (
- 1))
< ((
len P5l)
+ (
- 1)) by
A17,
XREAL_1: 8;
(((
len P5l)
+ 5)
+ (
- 5))
= (((
len P)
+ 1)
+ (
- 5)) by
A13,
GLIB_001: 36;
then
A21: (l2
+ n)
< (((
len P)
- 5)
+ n) by
A20,
XREAL_1: 8;
(l
+ (
- 1))
< (l
+
0 ) by
XREAL_1: 8;
then (l
- 1)
< (
len P5l) by
A17,
XXREAL_0: 2;
then (P5l
. (l2
+ 1))
= (P
. (n
+ l2)) by
A13,
GLIB_001: 36;
then
reconsider bb = (P
. (n
+ l2)) as
Vertex of G2 by
A18,
GLIB_000:def 37;
set P15 = (P
.cut (m,n));
A22: n
<= (
len P) by
A4,
XXREAL_0: 2;
then
A23: P15
is_Walk_from ((P
. m),(P
. n)) by
GLIB_001: 37;
then S is non
empty by
A5,
A15,
Th72;
then
A24: G2 is
complete by
A1,
A5,
A15,
A12;
A25: (((
len P15)
+ 1)
+ (
- 1))
= ((5
+ 1)
+ (
- 1)) by
A22,
GLIB_001: 36;
then
consider k be
odd
Nat such that
A26: m
< k and
A27: k
< n and
A28: (P15
. k)
in S by
A5,
A15,
A23,
Th71;
A29: k
<= (5
- 2) by
A27,
Th3;
A30: (1
+ 2)
<= k by
A26,
Th4;
then
A31: k
= 3 by
A29,
XXREAL_0: 1;
(P15
. (2
+ 1))
= (P
. (1
+ 2)) by
A22,
A25,
GLIB_001: 36;
then (P
. 3)
in S by
A28,
A30,
A29,
XXREAL_0: 1;
then
reconsider aa = (P
. 3) as
Vertex of G2 by
GLIB_000:def 37;
A32: ((k
+ 2)
+
0 )
< ((k
+ 2)
+ l2) by
A19,
XREAL_1: 8;
A33: (n
+ l2)
in
NAT by
ORDINAL1:def 12;
now
assume
A34: aa
= bb;
k
< (n
+ l2) by
A31,
A32,
XXREAL_0: 2;
hence contradiction by
A3,
A31,
A21,
A33,
A34,
GLIB_001:def 28;
end;
then (aa,bb)
are_adjacent by
A24;
then
consider e be
object such that
A35: e
Joins ((P
. 3),(P
. (n
+ l2)),G2);
e
Joins ((P
. k),(P
. (n
+ l2)),G) by
A31,
A35,
GLIB_000: 72;
hence thesis by
A3,
A31,
A21,
A32,
Th84;
end;
end;
theorem ::
CHORD:100
Th99: for G be
_finite
chordal
_Graph, a,b be
Vertex of G st a
<> b & not (a,b)
are_adjacent holds for S be
VertexSeparator of a, b st S is
minimal holds for H be
removeVertices of G, S, a1 be
Vertex of H st a
= a1 holds ex c be
Vertex of G st c
in (H
.reachableFrom a1) & for x be
Vertex of G st x
in S holds (c,x)
are_adjacent
proof
let G be
_finite
chordal
_Graph, a,b be
Vertex of G such that
A1: a
<> b and
A2: not (a,b)
are_adjacent ;
let S be
VertexSeparator of a, b such that
A3: S is
minimal;
let H be
removeVertices of G, S, a1 be
Vertex of H such that
A4: a
= a1;
assume
A5: for c be
Vertex of G holds not c
in (H
.reachableFrom a1) or ex x be
Vertex of G st x
in S & not (c,x)
are_adjacent ;
per cases ;
suppose S is
empty;
then not ex x be
Vertex of G st x
in S & not (a,x)
are_adjacent ;
hence contradiction by
A4,
A5,
GLIB_002: 9;
end;
suppose S is non
empty;
then
reconsider S as non
empty
Subset of (
the_Vertices_of G);
set A = (H
.reachableFrom a1);
deffunc
F(
set) = (
card ((G
.AdjacentSet
{$1})
/\ S));
set M = {
F(x) where x be
Vertex of G : x
in A };
A6:
now
let x be
object;
assume x
in M;
then ex y be
Vertex of G st x
= (
card ((G
.AdjacentSet
{y})
/\ S)) & y
in A;
hence x is
natural;
end;
A7: A is
finite;
A8: M is
finite from
FRAENKEL:sch 21(
A7);
a
in A by
A4,
GLIB_002: 9;
then (
card ((G
.AdjacentSet
{a})
/\ S))
in M;
then
reconsider M as
finite non
empty
natural-membered
set by
A8,
A6,
MEMBERED:def 6;
set Ga = the
inducedSubgraph of H, A;
A9: (
the_Vertices_of Ga)
= A by
GLIB_000:def 37;
(
max M)
in M by
XXREAL_2:def 8;
then
consider c be
Vertex of G such that
A10: (
max M)
= (
card ((G
.AdjacentSet
{c})
/\ S)) and
A11: c
in A;
set gcs = ((G
.AdjacentSet
{c})
/\ S);
A12: (A
/\ S)
=
{} by
A1,
A2,
Th74;
set Gs = the
inducedSubgraph of G, S;
set tVG = (
the_Vertices_of G);
A13: ((2
*
0 )
+ 1) is
odd;
not a
in S by
A1,
A2,
Def8;
then
A14: (tVG
\ S) is non
empty
Subset of tVG by
XBOOLE_0:def 5;
(
the_Vertices_of H)
c= tVG;
then
reconsider A as non
empty
Subset of tVG by
XBOOLE_1: 1;
now
let x be
object such that
A15: x
in A;
not x
in S by
A12,
A15,
XBOOLE_0:def 4;
hence x
in (tVG
\ S) by
A15,
XBOOLE_0:def 5;
end;
then A
c= (tVG
\ S);
then
reconsider Ga as
inducedSubgraph of G, A by
A14,
Th29;
consider y be
Vertex of G such that
A16: y
in S and
A17: not (c,y)
are_adjacent by
A5,
A11;
A18: not y
in A by
A16,
A12,
XBOOLE_0:def 4;
set Ay = (A
\/
{y});
set Gay = the
inducedSubgraph of G, Ay;
y
in
{y} by
TARSKI:def 1;
then
A19: y
in Ay by
XBOOLE_0:def 3;
c
in Ay by
A11,
XBOOLE_0:def 3;
then
reconsider ca = c, ya = y as
Vertex of Gay by
A19,
GLIB_000:def 37;
ex yaa be
Vertex of G st yaa
in A & (y,yaa)
are_adjacent by
A1,
A2,
A3,
A4,
A16,
Th81;
then y
in (G
.AdjacentSet (
the_Vertices_of Ga)) by
A9,
A18;
then Gay is
connected by
Th56;
then
consider Wa be
Walk of Gay such that
A20: Wa
is_Walk_from (ca,ya);
consider P be
Path of Gay such that
A21: P
is_Walk_from ((Wa
.first() ),(Wa
.last() )) and
A22: P is
minlength by
Th38;
(Wa
.first() )
= ca by
A20;
then
A23: (P
.first() )
= ca by
A21;
(Wa
.last() )
= ya by
A20;
then
A24: (P
.last() )
= y by
A21;
c
<> y by
A11,
A16,
A12,
XBOOLE_0:def 4;
then P is non
trivial by
A23,
A24,
GLIB_001: 127;
then
A25: (
len P)
>= 3 by
GLIB_001: 125;
A26:
now
assume (
len P)
< ((2
* 2)
+ 1);
then (
len P)
<= (5
- 2) by
Th3;
then
A27: (
len P)
= 3 by
A25,
XXREAL_0: 1;
then ((2
*
0 )
+ 1)
< (
len P);
then (P
. (1
+ 1))
Joins ((P
. 1),(P
. (1
+ 2)),Gay) by
GLIB_001:def 3;
then (P
. 2)
Joins (c,y,G) by
A23,
A24,
A27,
GLIB_000: 72;
hence contradiction by
A17;
end;
then (5
+ (
- 2))
<= ((
len P)
+ (
- 2)) by
XREAL_1: 7;
then
reconsider j = ((
len P)
- (2
* 1)) as
odd
Element of
NAT by
INT_1: 3,
XXREAL_0: 2;
set d = (P
. j);
A28: j
< (
len P) by
XREAL_1: 44;
A29:
now
assume d
= y;
then ((
len P)
- 2)
= 1 by
A24,
A28,
GLIB_001:def 28;
then (
len P)
= (1
+ 2);
hence contradiction by
A26;
end;
A30: not y
in (G
.AdjacentSet
{c}) by
A17,
Th51;
A31: (
the_Vertices_of Gay)
= Ay by
GLIB_000:def 37;
A32: (P
. j)
in (
the_Vertices_of Gay) by
A28,
GLIB_001: 7;
then
A33: d
in A or d
in
{y} by
A31,
XBOOLE_0:def 3;
reconsider d as
Vertex of G by
A32;
set gds = ((G
.AdjacentSet
{d})
/\ S);
(P
. (j
+ 1))
Joins (d,(P
. (((
len P)
- 2)
+ 2)),Gay) by
A28,
GLIB_001:def 3;
then
A34: (P
. (j
+ 1))
Joins (d,y,G) by
A24,
GLIB_000: 72;
then (d,y)
are_adjacent ;
then
A35: y
in (G
.AdjacentSet
{d}) by
A29,
Th51;
then
A36: y
in ((G
.AdjacentSet
{d})
/\ S) by
A16,
XBOOLE_0:def 4;
now
assume
A37: gcs
c= gds;
not y
in gcs by
A30,
XBOOLE_0:def 4;
then gcs
c< gds by
A36,
A37;
then
A38: (
card gcs)
< (
card gds) by
TREES_1: 6;
(
card gds)
in M by
A33,
A29,
TARSKI:def 1;
hence contradiction by
A10,
A38,
XXREAL_2:def 8;
end;
then
consider x be
object such that
A39: x
in ((G
.AdjacentSet
{c})
/\ S) and
A40: not x
in ((G
.AdjacentSet
{d})
/\ S);
A41: x
in S by
A39,
XBOOLE_0:def 4;
then
A42: not x
in (G
.AdjacentSet
{d}) by
A40,
XBOOLE_0:def 4;
reconsider x as
Vertex of G by
A39;
defpred
Pmax[
Nat] means $1
in (
dom P) & $1 is
odd & $1
< (
len P) & ex e be
object st e
Joins (x,(P
. $1),G);
A43: for k be
Nat st
Pmax[k] holds k
<= (
len P);
A44: not x
in A by
A12,
A41,
XBOOLE_0:def 4;
A45: 1
< (
len P) by
A26,
XXREAL_0: 2;
then
A46: 1
in (
dom P) by
FINSEQ_3: 25;
x
in (G
.AdjacentSet
{c}) by
A39,
XBOOLE_0:def 4;
then (c,x)
are_adjacent by
Th51;
then ex e be
object st e
Joins (x,(P
. 1),G) by
A23,
Def3;
then
A47: ex k be
Nat st
Pmax[k] by
A45,
A46,
A13;
consider k be
Nat such that
A48:
Pmax[k] and
A49: for i be
Nat st
Pmax[i] holds k
>= i from
NAT_1:sch 6(
A43,
A47);
reconsider k as
odd
Element of
NAT by
A48;
set Q1 = (P
.cut (k,j));
reconsider Q = Q1 as
Path of G by
GLIB_001: 175;
A50: k
<= j by
A48,
Th3;
A51: j
< (
len P) by
XREAL_1: 44;
then
A52: Q1 is
minlength by
A22,
A50,
Th41;
A53: ((
len Q)
+ k)
= (j
+ 1) by
A50,
A51,
GLIB_001: 36;
A54:
now
let i be
odd
Nat such that
A55: i
in (
dom Q) and
A56: i
<> 1;
1
<= i by
A55,
FINSEQ_3: 25;
then (1
+ (
- 1))
<= (i
+ (
- 1)) by
XREAL_1: 7;
then
reconsider i1 = (i
- 1) as
even
Element of
NAT by
INT_1: 3;
reconsider ki1 = (k
+ i1) as
odd
Element of
NAT ;
A57: (i
+ (
- 1))
< (i
+ (
-
0 )) by
XREAL_1: 8;
i
<= (
len Q) by
A55,
FINSEQ_3: 25;
then
A58: i1
< (
len Q) by
A57,
XXREAL_0: 2;
then
A59: ki1
in (
dom P) by
A50,
A51,
GLIB_001: 36;
A60: ((
len P)
+ (
- 1))
< ((
len P)
+ (
-
0 )) by
XREAL_1: 8;
assume
A61: ex e be
object st e
Joins ((Q
. i),x,G);
(i1
+ k)
< ((((
len P)
- 1)
- k)
+ k) by
A53,
A58,
XREAL_1: 8;
then
A62: ki1
< (
len P) by
A60,
XXREAL_0: 2;
A63: (Q
. (i1
+ 1))
= (P
. ki1) by
A50,
A51,
A58,
GLIB_001: 36;
now
assume i1
<>
0 ;
then (k
+
0 )
< (k
+ i1) by
XREAL_1: 8;
hence contradiction by
A49,
A61,
A63,
A59,
A62,
GLIB_000: 14;
end;
hence contradiction by
A56;
end;
set cc = (Q
.first() ), dd = (Q
.last() );
A64: (Q1
.first() )
= (P
. k) by
A50,
A51,
GLIB_001: 37;
then
A65: (x,cc)
are_adjacent by
A48;
A66: x
<> y by
A16,
A35,
A40,
XBOOLE_0:def 4;
then
A67: not x
in
{y} by
TARSKI:def 1;
reconsider xs = x, ys = y as
Vertex of Gs by
A16,
A41,
GLIB_000:def 37;
Gs is
complete by
A1,
A2,
A3,
Th97;
then (xs,ys)
are_adjacent by
A66;
then
consider ej be
object such that
A68: ej
Joins (xs,ys,Gs);
ej
Joins (x,y,G) by
A68,
GLIB_000: 72;
then
A69: (x,y)
are_adjacent ;
A70: (Q1
.last() )
= (P
. j) by
A50,
A51,
GLIB_001: 37;
then
A71: (Q
.last() )
= (P
. j);
d
<> x by
A12,
A33,
A29,
A41,
TARSKI:def 1,
XBOOLE_0:def 4;
then
A72: not (d,x)
are_adjacent by
A42,
Th51;
then
A73: (Q
.first() )
<> (Q
.last() ) by
A48,
A64,
A70,
Def3;
then
A74: Q is
open;
A75: (Q
.vertices() )
= (Q1
.vertices() ) by
GLIB_001: 98;
then dd
in (Q1
.vertices() ) by
GLIB_001: 88;
then
A76: dd
<> x by
A31,
A44,
A67,
XBOOLE_0:def 3;
A77:
now
A78: ((2
*
0 )
+ 1)
<= k by
ABIAN: 12;
then
A79: ((
len (P
.cut (1,k)))
+ 1)
= (k
+ 1) by
A48,
GLIB_001: 36;
assume (P
. k)
= (P
. (
len P));
then (P
.cut (1,k))
is_Walk_from ((P
.first() ),(P
.last() )) by
A48,
A78,
GLIB_001: 37;
hence contradiction by
A22,
A48,
A79;
end;
A80:
now
let v be
set such that
A81: v
in (Q
.vertices() );
consider n be
odd
Element of
NAT such that
A82: n
<= (
len Q) and
A83: (Q
. n)
= v by
A81,
GLIB_001: 87;
1
<= n by
ABIAN: 12;
then (1
+ (
- 1))
<= (n
+ (
- 1)) by
XREAL_1: 7;
then
reconsider n1 = (n
- 1) as
even
Element of
NAT by
INT_1: 3;
reconsider kn1 = (k
+ n1) as
odd
Element of
NAT ;
A84: ((
len P)
+ (
- 1))
< ((
len P)
+ (
-
0 )) by
XREAL_1: 8;
(n
+ (
- 1))
< (n
+ (
-
0 )) by
XREAL_1: 8;
then
A85: n1
< (
len Q) by
A82,
XXREAL_0: 2;
then (k
+ n1)
< ((((
len P)
- 1)
- k)
+ k) by
A53,
XREAL_1: 8;
then
A86: kn1
< (
len P) by
A84,
XXREAL_0: 2;
A87: (Q
. (n1
+ 1))
= (P
. kn1) by
A50,
A51,
A85,
GLIB_001: 36;
now
A88: 1
<= k by
ABIAN: 12;
assume
A89: v
= y;
then
A90: (k
+ (n
+ (
- 1)))
= 1 by
A24,
A83,
A87,
A86,
GLIB_001:def 28;
A91:
now
assume 1
< n;
then (1
+ 1)
<= n by
NAT_1: 13;
then (2
+ 1)
<= (k
+ n) by
A88,
XREAL_1: 7;
hence contradiction by
A90;
end;
1
<= n by
ABIAN: 12;
hence contradiction by
A24,
A77,
A64,
A83,
A89,
A91,
XXREAL_0: 1;
end;
then
A92: not v
in
{y} by
TARSKI:def 1;
(Q
.vertices() )
c= (P
.vertices() ) by
A50,
A51,
A75,
GLIB_001: 94;
then v
in (P
.vertices() ) by
A81;
hence v
in A by
A31,
A92,
XBOOLE_0:def 3;
end;
cc
in (Q1
.vertices() ) by
A75,
GLIB_001: 88;
then
A93: cc
<> x by
A31,
A44,
A67,
XBOOLE_0:def 3;
(dd,y)
are_adjacent by
A34,
A70;
then
consider R be
Path of G such that
A94: (
len R)
= 7 and
A95: (R
.length() )
= 3 and
A96: (R
.vertices() )
=
{dd, y, x, cc} and
A97: (R
. 1)
= dd and
A98: (R
. 3)
= y and
A99: (R
. 5)
= x and
A100: (R
. 7)
= cc by
A24,
A29,
A66,
A69,
A77,
A64,
A70,
A76,
A93,
A65,
Th47;
A101: R is non
trivial by
A94,
GLIB_001: 126;
A102: (Q
.edges() )
misses (R
.edges() )
proof
assume not (Q
.edges() )
misses (R
.edges() );
then ((Q
.edges() )
/\ (R
.edges() ))
<>
{} ;
then
consider e be
object such that
A103: e
in ((Q
.edges() )
/\ (R
.edges() )) by
XBOOLE_0:def 1;
A104: e
in (Q
.edges() ) by
A103,
XBOOLE_0:def 4;
e
in (R
.edges() ) by
A103,
XBOOLE_0:def 4;
then
consider n be
even
Element of
NAT such that
A105: 1
<= n and
A106: n
<= 7 and
A107: (R
. n)
= e by
A94,
GLIB_001: 99;
per cases by
A105,
A106,
Th13;
suppose
A108: n
= 2;
((2
*
0 )
+ 1)
< (
len R) by
A94;
then (R
. (1
+ 1))
Joins ((R
. 1),(R
. (1
+ 2)),G) by
GLIB_001:def 3;
then y
in (Q
.vertices() ) by
A98,
A104,
A107,
A108,
GLIB_001: 105;
then y
in A by
A80;
hence contradiction by
A16,
A12,
XBOOLE_0:def 4;
end;
suppose
A109: n
= 4;
((2
* 1)
+ 1)
< (
len R) by
A94;
then (R
. (3
+ 1))
Joins ((R
. 3),(R
. (3
+ 2)),G) by
GLIB_001:def 3;
then y
in (Q
.vertices() ) by
A98,
A104,
A107,
A109,
GLIB_001: 105;
then y
in A by
A80;
hence contradiction by
A16,
A12,
XBOOLE_0:def 4;
end;
suppose
A110: n
= 6;
((2
* 2)
+ 1)
< (
len R) by
A94;
then (R
. (5
+ 1))
Joins ((R
. 5),(R
. (5
+ 2)),G) by
GLIB_001:def 3;
then x
in (Q
.vertices() ) by
A99,
A104,
A107,
A110,
GLIB_001: 105;
then x
in A by
A80;
hence contradiction by
A12,
A41,
XBOOLE_0:def 4;
end;
end;
now
let v be
object such that
A111: v
in
{(Q
.first() ), (Q
.last() )};
per cases by
A111,
TARSKI:def 2;
suppose
A112: v
= cc;
then
A113: v
in (Q
.vertices() ) by
GLIB_001: 88;
v
in (R
.vertices() ) by
A94,
A100,
A112,
GLIB_001: 87;
hence v
in ((Q
.vertices() )
/\ (R
.vertices() )) by
A113,
XBOOLE_0:def 4;
end;
suppose
A114: v
= dd;
((2
*
0 )
+ 1)
<= (
len R) by
A94;
then
A115: v
in (R
.vertices() ) by
A97,
A114,
GLIB_001: 87;
v
in (Q
.vertices() ) by
A114,
GLIB_001: 88;
hence v
in ((Q
.vertices() )
/\ (R
.vertices() )) by
A115,
XBOOLE_0:def 4;
end;
end;
then
A116:
{(Q
.first() ), (Q
.last() )}
c= ((Q
.vertices() )
/\ (R
.vertices() ));
now
let v be
object such that
A117: v
in ((Q
.vertices() )
/\ (R
.vertices() ));
v
in
{dd, y, x, cc} by
A96,
A117,
XBOOLE_0:def 4;
then
A118: v
= dd or v
= y or v
= x or v
= cc by
ENUMSET1:def 2;
v
in (Q
.vertices() ) by
A117,
XBOOLE_0:def 4;
then v
in A by
A80;
hence v
in
{(Q
.first() ), (Q
.last() )} by
A16,
A12,
A41,
A118,
TARSKI:def 2,
XBOOLE_0:def 4;
end;
then ((Q
.vertices() )
/\ (R
.vertices() ))
c=
{(Q
.first() ), (Q
.last() )};
then
A119: ((Q
.vertices() )
/\ (R
.vertices() ))
=
{(Q
.first() ), (Q
.last() )} by
A116;
A120:
now
let i be
odd
Nat such that
A121: i
in (
dom Q) and
A122: i
<> (
len Q);
1
<= i by
A121,
FINSEQ_3: 25;
then (1
+ (
- 1))
<= (i
+ (
- 1)) by
XREAL_1: 7;
then
reconsider i1 = (i
- 1) as
even
Element of
NAT by
INT_1: 3;
reconsider ki1 = (k
+ i1) as
odd
Element of
NAT ;
A123: (i
+ (
- 1))
< (i
+ (
-
0 )) by
XREAL_1: 8;
A124: i
<= (
len Q) by
A121,
FINSEQ_3: 25;
then
A125: i1
< (
len Q) by
A123,
XXREAL_0: 2;
then ki1
in (
dom P) by
A50,
A51,
GLIB_001: 36;
then
A126: ki1
<= (
len P) by
FINSEQ_3: 25;
then
A127: (P
. ki1)
in Ay by
A31,
GLIB_001: 7;
now
A128: (((
len P)
- k)
+ (
- 1))
< ((
len P)
- k) by
XREAL_1: 30;
assume ki1
= (
len P);
hence contradiction by
A53,
A124,
A123,
A128,
XXREAL_0: 2;
end;
then ki1
< (
len P) by
A126,
XXREAL_0: 1;
then
A129: (ki1
+ 2)
<= (
len P) by
Th4;
(ki1
+ 2)
<> (
len P) by
A53,
A122;
then
A130: (ki1
+ 2)
< (
len P) by
A129,
XXREAL_0: 1;
A131: (P
. (
len P))
in Ay by
A31,
GLIB_001: 7;
assume
A132: ex e be
object st e
Joins ((Q
. i),y,G);
(Q
. (i1
+ 1))
= (P
. ki1) by
A50,
A51,
A125,
GLIB_001: 36;
hence contradiction by
A22,
A24,
A132,
A130,
A127,
A131,
Th19,
Th39;
end;
A133: (Q
.first() )
= (P
. k) by
A64;
(P
. k)
<> (P
. j) by
A72,
A48,
Def3;
then
A134: Q is non
trivial by
A133,
A71,
GLIB_001: 127;
then (Q
.length() )
<>
0 ;
then
A135: (Q
.length() )
>= (
0
+ 1) by
NAT_1: 13;
set C = (Q
.append R);
A136: (R
.first() )
= dd by
A97;
then
A137: (C
. ((
len Q)
+ 6))
= (R
. (6
+ 1)) by
A94,
GLIB_001: 33;
A138: (C
. ((
len Q)
+ 4))
= (R
. (4
+ 1)) by
A94,
A136,
GLIB_001: 33;
A139: (C
. ((
len Q)
+ 2))
= (R
. (2
+ 1)) by
A94,
A136,
GLIB_001: 33;
(C
.length() )
= ((Q
.length() )
+ 3) by
A95,
A136,
Th28;
then (C
.length() )
>= (1
+ 3) by
A135,
XREAL_1: 7;
then
A140: (C
.length() )
> 3 by
NAT_1: 13;
A141: (R
.last() )
= cc by
A94,
A100;
then
A142: R is
open by
A73,
A136;
then C is
Cycle-like by
A74,
A136,
A141,
A101,
A102,
A119,
Th27;
then C is
chordal by
A140,
Def11;
then
consider m,n be
odd
Nat such that
A143: (m
+ 2)
< n and
A144: n
<= (
len C) and (C
. m)
<> (C
. n) and
A145: ex e be
object st e
Joins ((C
. m),(C
. n),G) and
A146: C is
Cycle-like implies not (m
= 1 & n
= (
len C)) & not (m
= 1 & n
= ((
len C)
- 2)) & not (m
= 3 & n
= (
len C)) by
Th83;
consider e be
object such that
A147: e
Joins ((C
. m),(C
. n),G) by
A145;
A148: (((
len C)
+ 1)
+ (
- 1))
= (((
len Q)
+ (
len R))
+ (
- 1)) by
A136,
GLIB_001: 28;
A149: n
<= (
len Q) or n
= ((
len Q)
+ 2) or n
= ((
len Q)
+ 4) or n
= ((
len Q)
+ 6)
proof
per cases ;
suppose n
<= (
len Q);
hence thesis;
end;
suppose n
> (
len Q);
then
A150: ((
len Q)
+ 2)
<= n by
Th4;
per cases by
A150,
XXREAL_0: 1;
suppose ((
len Q)
+ 2)
= n;
hence thesis;
end;
suppose ((
len Q)
+ 2)
< n;
then
A151: (((
len Q)
+ 2)
+ 2)
<= n by
Th4;
per cases by
A151,
XXREAL_0: 1;
suppose ((
len Q)
+ 4)
= n;
hence thesis;
end;
suppose ((
len Q)
+ (2
* 2))
< n;
then (((
len Q)
+ 4)
+ 2)
<= n by
Th4;
hence thesis by
A94,
A148,
A144,
XXREAL_0: 1;
end;
end;
end;
end;
A152: 1
<= m by
ABIAN: 12;
per cases by
A149;
suppose
A153: n
<= (
len Q);
A154: (m
+
0 )
<= (m
+ 2) by
XREAL_1: 7;
(m
+ 2)
<= (
len Q) by
A143,
A153,
XXREAL_0: 2;
then m
<= (
len Q) by
A154,
XXREAL_0: 2;
then m
in (
dom Q) by
A152,
FINSEQ_3: 25;
then
A155: (Q
. m)
= (C
. m) by
GLIB_001: 32;
1
<= n by
ABIAN: 12;
then n
in (
dom Q) by
A153,
FINSEQ_3: 25;
then (Q
. n)
= (C
. n) by
GLIB_001: 32;
hence contradiction by
A52,
A143,
A147,
A153,
A155,
Th40;
end;
suppose
A156: n
= ((
len Q)
+ 2);
then m
< (
len Q) by
A143,
XREAL_1: 6;
then
A157: m
in (
dom Q) by
A152,
FINSEQ_3: 25;
then e
Joins ((Q
. m),y,G) by
A98,
A139,
A147,
A156,
GLIB_001: 32;
hence contradiction by
A120,
A143,
A156,
A157;
end;
suppose
A158: n
= ((
len Q)
+ 4);
then ((m
+ 2)
+ 2)
<= ((
len Q)
+ 4) by
A143,
Th4;
then (m
+ 4)
<= ((
len Q)
+ 4);
then m
<= (
len Q) by
XREAL_1: 6;
then
A159: m
in (
dom Q) by
A152,
FINSEQ_3: 25;
then
A160: e
Joins ((Q
. m),x,G) by
A99,
A138,
A147,
A158,
GLIB_001: 32;
per cases by
A152,
XXREAL_0: 1;
suppose 1
= m;
hence contradiction by
A74,
A94,
A136,
A141,
A101,
A142,
A102,
A119,
A148,
A146,
A158,
Th27;
end;
suppose 1
< m;
hence contradiction by
A54,
A159,
A160;
end;
end;
suppose
A161: n
= ((
len Q)
+ 6);
then ((m
+ 2)
+ 2)
<= ((
len Q)
+ 6) by
A143,
Th4;
then (m
+ 4)
<= (((
len Q)
+ 2)
+ 4);
then
A162: m
<= ((
len Q)
+ 2) by
XREAL_1: 6;
per cases by
A162,
XXREAL_0: 1;
suppose
A163: m
< ((
len Q)
+ 2);
now
assume (1
+ 2)
>= m;
then m
< ((2
* 1)
+ 1) by
A74,
A94,
A136,
A141,
A101,
A142,
A102,
A119,
A148,
A146,
A161,
Th27,
XXREAL_0: 1;
then m
<= (3
- 2) by
Th3;
then m
< 1 by
A74,
A94,
A136,
A141,
A101,
A142,
A102,
A119,
A148,
A146,
A161,
Th27,
XXREAL_0: 1;
hence contradiction by
ABIAN: 12;
end;
then
A164: (((2
*
0 )
+ 1)
+ 2)
< m;
A165: m
<= (
len Q) by
A163,
Th4;
then m
in (
dom Q) by
A152,
FINSEQ_3: 25;
then (C
. m)
= (Q
. m) by
GLIB_001: 32;
hence contradiction by
A52,
A100,
A137,
A147,
A161,
A165,
A164,
Th40,
GLIB_000: 14;
end;
suppose
A166: m
= ((
len Q)
+ 2);
3
<= (
len Q) by
A134,
GLIB_001: 125;
then 1
<= (
len Q) by
XXREAL_0: 2;
then
A167: ((2
*
0 )
+ 1)
in (
dom Q) by
FINSEQ_3: 25;
1
<> (
len Q) by
A72,
A48,
A64,
A70,
Def3;
hence contradiction by
A120,
A98,
A100,
A137,
A139,
A147,
A161,
A166,
A167,
GLIB_000: 14;
end;
end;
end;
end;
theorem ::
CHORD:101
for G be
_finite
chordal
_Graph, a,b be
Vertex of G st a
<> b & not (a,b)
are_adjacent holds for S be
VertexSeparator of a, b st S is
minimal holds for H be
removeVertices of G, S, a1 be
Vertex of H st a
= a1 holds for x,y be
Vertex of G st x
in S & y
in S holds ex c be
Vertex of G st c
in (H
.reachableFrom a1) & (c,x)
are_adjacent & (c,y)
are_adjacent
proof
let G be
_finite
chordal
_Graph;
let a,b be
Vertex of G such that
A1: a
<> b and
A2: not (a,b)
are_adjacent ;
let S be
VertexSeparator of a, b such that
A3: S is
minimal;
let H be
removeVertices of G, S, a1 be
Vertex of H;
assume a
= a1;
then
consider c be
Vertex of G such that
A4: c
in (H
.reachableFrom a1) and
A5: for x be
Vertex of G st x
in S holds (c,x)
are_adjacent by
A1,
A2,
A3,
Th99;
let x,y be
Vertex of G such that
A6: x
in S and
A7: y
in S;
A8: (c,y)
are_adjacent by
A7,
A5;
(c,x)
are_adjacent by
A6,
A5;
hence thesis by
A4,
A8;
end;
theorem ::
CHORD:102
Th101: for G be non
_trivial
_finite
chordal
_Graph st not G is
complete holds ex a,b be
Vertex of G st a
<> b & not (a,b)
are_adjacent & a is
simplicial & b is
simplicial
proof
defpred
P[
_finite
_Graph] means $1 is non
_trivial & $1 is
chordal & not $1 is
complete implies ex a,b be
Vertex of $1 st a
<> b & not (a,b)
are_adjacent & a is
simplicial & b is
simplicial;
A1: for k be non
zero
Nat st for Gk be
_finite
_Graph st (Gk
.order() )
< k holds
P[Gk] holds for Gk1 be
_finite
_Graph st (Gk1
.order() )
= k holds
P[Gk1]
proof
let k be non
zero
Nat such that
A2: for Gk be
_finite
_Graph st (Gk
.order() )
< k holds
P[Gk];
let Gk1 be
_finite
_Graph such that
A3: (Gk1
.order() )
= k and
A4: Gk1 is non
_trivial and
A5: Gk1 is
chordal and
A6: not Gk1 is
complete;
reconsider G = Gk1 as non
_trivial
_finite
chordal
_Graph by
A4,
A5;
consider a,b be
Vertex of G such that
A7: a
<> b and
A8: not (a,b)
are_adjacent by
A6;
consider S be
VertexSeparator of a, b such that
A9: S is
minimal by
Th78;
set Gns = the
removeVertices of G, S;
reconsider sa = a, sb = b as
Vertex of Gns by
A7,
A8,
Th76;
set A = (Gns
.reachableFrom sa), B = (Gns
.reachableFrom sb);
set Gas = the
inducedSubgraph of G, (A
\/ S);
A10: A
c= (
the_Vertices_of Gns);
then
A11: A
c= (
the_Vertices_of G) by
XBOOLE_1: 1;
then
A12: (A
\/ S) is non
empty
Subset of (
the_Vertices_of G) by
XBOOLE_1: 8;
A13: (A
/\ B)
=
{} by
A7,
A8,
Th75;
A14:
now
assume
A15: b
in (A
\/ S);
not b
in S by
A7,
A8,
Def8;
then
A16: b
in A by
A15,
XBOOLE_0:def 3;
b
in B by
GLIB_002: 9;
hence contradiction by
A13,
A16,
XBOOLE_0:def 4;
end;
A17:
now
assume (Gas
.order() )
= k;
then
A18: (
the_Vertices_of Gas)
= (
the_Vertices_of G) by
A3,
CARD_2: 102;
(
the_Vertices_of Gas)
= (A
\/ S) by
A12,
GLIB_000:def 37;
hence contradiction by
A14,
A18;
end;
set Gbs = the
inducedSubgraph of G, (B
\/ S);
A19: B
c= (
the_Vertices_of G) by
A10,
XBOOLE_1: 1;
then
A20: (B
\/ S) is non
empty
Subset of (
the_Vertices_of G) by
XBOOLE_1: 8;
A21:
now
assume
A22: a
in (B
\/ S);
not a
in S by
A7,
A8,
Def8;
then
A23: a
in B by
A22,
XBOOLE_0:def 3;
a
in A by
GLIB_002: 9;
hence contradiction by
A13,
A23,
XBOOLE_0:def 4;
end;
A24:
now
assume (Gbs
.order() )
= k;
then
A25: (
the_Vertices_of Gbs)
= (
the_Vertices_of G) by
A3,
CARD_2: 102;
(
the_Vertices_of Gbs)
= (B
\/ S) by
A20,
GLIB_000:def 37;
hence contradiction by
A21,
A25;
end;
set Gs = the
inducedSubgraph of G, S;
not a
in S by
A7,
A8,
Def8;
then a
in ((
the_Vertices_of G)
\ S) by
XBOOLE_0:def 5;
then
A26: (
the_Vertices_of Gns)
= ((
the_Vertices_of G)
\ S) by
GLIB_000:def 37;
(Gbs
.order() )
<= k by
A3,
GLIB_000: 75;
then
A27: (Gbs
.order() )
< k by
A24,
XXREAL_0: 1;
ex b be
Vertex of Gk1 st b
in B & b is
simplicial
proof
consider aa be
object such that
A28: aa
in B by
XBOOLE_0:def 1;
A29: (
the_Vertices_of Gbs)
= (B
\/ S) by
A20,
GLIB_000:def 37;
then
reconsider a = aa as
Vertex of Gbs by
A28,
XBOOLE_0:def 3;
ex c be
Vertex of Gbs st c
in B & c is
simplicial
proof
per cases ;
suppose Gbs is
complete;
then a is
simplicial by
Th63;
hence thesis by
A28;
end;
suppose
A30: not Gbs is
complete;
then not Gbs is
_trivial;
then
consider a2,b2 be
Vertex of Gbs such that
A31: a2
<> b2 and
A32: not (a2,b2)
are_adjacent and
A33: a2 is
simplicial and
A34: b2 is
simplicial by
A2,
A27,
A30;
now
assume that
A35: a2
in S and
A36: b2
in S;
reconsider a4 = a2, b4 = b2 as
Vertex of Gs by
A35,
A36,
GLIB_000:def 37;
Gs is
complete by
A7,
A8,
A9,
A35,
Th97;
then
A37: (a4,b4)
are_adjacent by
A31;
reconsider a3 = a2, b3 = b2 as
Vertex of G by
A35,
A36;
not (a3,b3)
are_adjacent by
A20,
A32,
Th44;
hence contradiction by
A35,
A37,
Th44;
end;
then b2
in B or a2
in B by
A29,
XBOOLE_0:def 3;
hence thesis by
A33,
A34;
end;
end;
then
consider cc be
Vertex of Gbs such that
A38: cc
in B and
A39: cc is
simplicial;
reconsider c = cc as
Vertex of Gk1 by
A19,
A38;
now
let x be
object such that
A40: x
in (Gk1
.AdjacentSet
{c});
assume
A41: not x
in (B
\/ S);
then
A42: not x
in B by
XBOOLE_0:def 3;
A43: not x
in S by
A41,
XBOOLE_0:def 3;
reconsider x as
Vertex of Gk1 by
A40;
(c,x)
are_adjacent by
A40,
Th51;
then
consider e be
object such that
A44: e
Joins (c,x,Gk1);
x
in (
the_Vertices_of Gns) by
A26,
A43,
XBOOLE_0:def 5;
then e
Joins (c,x,Gns) by
A26,
A38,
A44,
Th19;
hence contradiction by
A38,
A42,
GLIB_002: 10;
end;
then
A45: (Gk1
.AdjacentSet
{c})
c= (B
\/ S);
c
in (B
\/ S) by
A38,
XBOOLE_0:def 3;
then c is
simplicial by
A20,
A39,
A45,
Th66;
hence thesis by
A38;
end;
then
consider b be
Vertex of Gk1 such that
A46: b
in B and
A47: b is
simplicial;
(Gas
.order() )
<= k by
A3,
GLIB_000: 75;
then
A48: (Gas
.order() )
< k by
A17,
XXREAL_0: 1;
ex a be
Vertex of Gk1 st a
in A & a is
simplicial
proof
consider aa be
object such that
A49: aa
in A by
XBOOLE_0:def 1;
A50: (
the_Vertices_of Gas)
= (A
\/ S) by
A12,
GLIB_000:def 37;
then
reconsider a = aa as
Vertex of Gas by
A49,
XBOOLE_0:def 3;
ex c be
Vertex of Gas st c
in A & c is
simplicial
proof
per cases ;
suppose Gas is
complete;
then a is
simplicial by
Th63;
hence thesis by
A49;
end;
suppose
A51: not Gas is
complete;
then not Gas is
_trivial;
then
consider a2,b2 be
Vertex of Gas such that
A52: a2
<> b2 and
A53: not (a2,b2)
are_adjacent and
A54: a2 is
simplicial and
A55: b2 is
simplicial by
A2,
A48,
A51;
now
assume that
A56: a2
in S and
A57: b2
in S;
reconsider a4 = a2, b4 = b2 as
Vertex of Gs by
A56,
A57,
GLIB_000:def 37;
Gs is
complete by
A7,
A8,
A9,
A56,
Th97;
then
A58: (a4,b4)
are_adjacent by
A52;
reconsider a3 = a2, b3 = b2 as
Vertex of G by
A56,
A57;
not (a3,b3)
are_adjacent by
A12,
A53,
Th44;
hence contradiction by
A56,
A58,
Th44;
end;
then b2
in A or a2
in A by
A50,
XBOOLE_0:def 3;
hence thesis by
A54,
A55;
end;
end;
then
consider cc be
Vertex of Gas such that
A59: cc
in A and
A60: cc is
simplicial;
reconsider c = cc as
Vertex of Gk1 by
A11,
A59;
now
let x be
object such that
A61: x
in (Gk1
.AdjacentSet
{c});
assume
A62: not x
in (A
\/ S);
then
A63: not x
in A by
XBOOLE_0:def 3;
A64: not x
in S by
A62,
XBOOLE_0:def 3;
reconsider x as
Vertex of Gk1 by
A61;
(c,x)
are_adjacent by
A61,
Th51;
then
consider e be
object such that
A65: e
Joins (c,x,Gk1);
x
in (
the_Vertices_of Gns) by
A26,
A64,
XBOOLE_0:def 5;
then e
Joins (c,x,Gns) by
A26,
A59,
A65,
Th19;
hence contradiction by
A59,
A63,
GLIB_002: 10;
end;
then
A66: (Gk1
.AdjacentSet
{c})
c= (A
\/ S);
c
in (A
\/ S) by
A59,
XBOOLE_0:def 3;
then c is
simplicial by
A12,
A60,
A66,
Th66;
hence thesis by
A59;
end;
then
consider a be
Vertex of Gk1 such that
A67: a
in A and
A68: a is
simplicial;
A69:
now
reconsider aa = a, bb = b as
Vertex of Gns by
A67,
A46;
assume (a,b)
are_adjacent ;
then
consider e be
object such that
A70: e
Joins (a,b,Gk1);
e
Joins (aa,bb,Gns) by
A26,
A70,
Th19;
then bb
in A by
A67,
GLIB_002: 10;
hence contradiction by
A13,
A46,
XBOOLE_0:def 4;
end;
a
<> b by
A13,
A67,
A46,
XBOOLE_0:def 4;
hence thesis by
A68,
A47,
A69;
end;
A71: for G be
_finite
_Graph holds
P[G] from
FinGraphOrderCompInd(
A1);
let G be non
_trivial
_finite
chordal
_Graph;
assume not G is
complete;
hence thesis by
A71;
end;
theorem ::
CHORD:103
Th102: for G be
_finite
chordal
_Graph holds ex v be
Vertex of G st v is
simplicial
proof
let G be
_finite
chordal
_Graph;
per cases ;
suppose
A1: G is
complete;
set u = the
Vertex of G;
u is
simplicial by
A1,
Th63;
hence thesis;
end;
suppose
A2: not G is
complete;
then not G is
_trivial;
then ex a,b be
Vertex of G st a
<> b & ( not (a,b)
are_adjacent ) & a is
simplicial & b is
simplicial by
A2,
Th101;
hence thesis;
end;
end;
begin
definition
let G be
_finite
_Graph;
::
CHORD:def12
mode
VertexScheme of G ->
FinSequence of (
the_Vertices_of G) means
:
Def12: it is
one-to-one & (
rng it )
= (
the_Vertices_of G);
existence
proof
consider p be
FinSequence such that
A1: (
rng p)
= (
the_Vertices_of G) and
A2: p is
one-to-one by
FINSEQ_4: 58;
reconsider p as
FinSequence of (
the_Vertices_of G) by
A1,
FINSEQ_1:def 4;
take p;
thus thesis by
A1,
A2;
end;
end
registration
let G be
_finite
_Graph;
cluster -> non
empty for
VertexScheme of G;
correctness by
Def12,
RELAT_1: 38;
end
theorem ::
CHORD:104
for G be
_finite
_Graph, S be
VertexScheme of G holds (
len S)
= (
card (
the_Vertices_of G))
proof
let G be
_finite
_Graph, S be
VertexScheme of G;
A1: S is
one-to-one by
Def12;
(
rng S)
= (
the_Vertices_of G) by
Def12;
hence thesis by
A1,
FINSEQ_4: 62;
end;
theorem ::
CHORD:105
for G be
_finite
_Graph, S be
VertexScheme of G holds 1
<= (
len S) by
NAT_1: 14;
theorem ::
CHORD:106
Th105: for G,H be
_finite
_Graph, g be
VertexScheme of G st G
== H holds g is
VertexScheme of H
proof
let G,H be
_finite
_Graph, g be
VertexScheme of G such that
A1: G
== H;
(
rng g)
= (
the_Vertices_of G) by
Def12;
then
A2: (
rng g)
= (
the_Vertices_of H) by
A1;
A3: g is
one-to-one by
Def12;
g is
FinSequence of (
the_Vertices_of H) by
A1;
hence thesis by
A3,
A2,
Def12;
end;
definition
let G be
_finite
_Graph, S be
VertexScheme of G, x be
Vertex of G;
:: original:
..
redefine
func x
.. S -> non
zero
Element of
NAT ;
correctness
proof
(
rng S)
= (
the_Vertices_of G) by
Def12;
hence thesis by
FINSEQ_4: 21;
end;
end
definition
let G be
_finite
_Graph, S be
VertexScheme of G, n be
Nat;
:: original:
.followSet
redefine
func S
.followSet (n) ->
Subset of (
the_Vertices_of G) ;
coherence
proof
A1: (
rng ((n,(
len S))
-cut S))
c= (
rng S) by
FINSEQ_6: 137;
now
let x be
object;
assume x
in (S
.followSet n);
then x
in (
rng S) by
A1;
hence x
in (
the_Vertices_of G) by
Def12;
end;
hence thesis by
TARSKI:def 3;
end;
end
theorem ::
CHORD:107
Th106: for G be
_finite
_Graph, S be
VertexScheme of G, n be non
zero
Nat st n
<= (
len S) holds (S
.followSet n) is non
empty
proof
let G be
_finite
_Graph, S be
VertexScheme of G;
let n be non
zero
Nat such that
A1: n
<= (
len S);
(
0
+ 1)
<= n by
NAT_1: 13;
then
A2: ((
len ((n,(
len S))
-cut S))
+ n)
= ((
len S)
+ 1) by
A1,
FINSEQ_6:def 4;
(((
len S)
+ 1)
- n)
<>
0 by
A1,
NAT_1: 13;
then ((n,(
len S))
-cut S)
<>
{} by
A2;
hence thesis;
end;
definition
let G be
_finite
_Graph, S be
VertexScheme of G;
::
CHORD:def13
attr S is
perfect means
:
Def13: for n be non
zero
Nat st n
<= (
len S) holds for Gf be
inducedSubgraph of G, (S
.followSet n) holds for v be
Vertex of Gf st v
= (S
. n) holds v is
simplicial;
end
theorem ::
CHORD:108
Th107: for G be
_finite
_trivial
_Graph, v be
Vertex of G holds ex S be
VertexScheme of G st S
=
<*v*> & S is
perfect
proof
let G be
_finite
_trivial
_Graph, v be
Vertex of G;
consider v1 be
Vertex of G such that
A1: (
the_Vertices_of G)
=
{v1} by
GLIB_000: 22;
set S =
<*v*>;
v1
= v by
A1,
TARSKI:def 1;
then
A2: (
rng S)
= (
the_Vertices_of G) by
A1,
FINSEQ_1: 39;
S is
one-to-one by
FINSEQ_3: 93;
then
reconsider S as
VertexScheme of G by
A2,
Def12;
take S;
thus S
=
<*v*>;
let n be non
zero
Nat such that n
<= (
len S);
let Gf be
inducedSubgraph of G, (S
.followSet n);
thus thesis;
end;
theorem ::
CHORD:109
for G be
_finite
_Graph, V be
VertexScheme of G holds V is
perfect iff for a,b,c be
Vertex of G st b
<> c & (a,b)
are_adjacent & (a,c)
are_adjacent holds for va,vb,vc be
Nat st va
in (
dom V) & vb
in (
dom V) & vc
in (
dom V) & (V
. va)
= a & (V
. vb)
= b & (V
. vc)
= c & va
< vb & va
< vc holds (b,c)
are_adjacent
proof
let G be
_finite
_Graph, V be
VertexScheme of G;
A1: V is
one-to-one by
Def12;
A2:
now
let a,b,c be
Vertex of G such that
A3: b
<> c and
A4: (a,b)
are_adjacent and
A5: (a,c)
are_adjacent and
A6: not (b,c)
are_adjacent ;
let va,vb,vc be
Nat such that
A7: va
in (
dom V) and
A8: vb
in (
dom V) and
A9: vc
in (
dom V) and
A10: (V
. va)
= a and
A11: (V
. vb)
= b and
A12: (V
. vc)
= c and
A13: va
< vb and
A14: va
< vc;
set Gf = the
inducedSubgraph of G, (V
.followSet va);
set fs = ((va,(
len V))
-cut V);
A15: va
<= (
len V) by
A7,
FINSEQ_3: 25;
then
A16: (va
- va)
<= ((
len V)
- va) by
XREAL_1: 9;
A17: 1
<= va by
A7,
FINSEQ_3: 25;
then
A18: (((
len fs)
+ va)
- va)
= (((
len V)
+ 1)
- va) by
A15,
FINSEQ_6:def 4;
then
A19: (
len fs)
= (((
len V)
- va)
+ 1);
then (
0
+ 1)
<= (
len fs) by
A16,
NAT_1: 13;
then
A20: (
0
+ 1)
in (
dom fs) by
FINSEQ_3: 25;
(fs
. (
0
+ 1))
= (V
. (va
+
0 )) by
A17,
A15,
A19,
A16,
FINSEQ_6:def 4;
then a
in (V
.followSet va) by
A10,
A20,
FUNCT_1: 3;
then
reconsider ag = a as
Vertex of Gf by
GLIB_000:def 37;
consider jc be
Nat such that
A21: (va
+ jc)
= vc by
A14,
NAT_1: 10;
A22: (
0
+ 1)
<= (jc
+ 1) by
XREAL_1: 7;
A23:
now
assume jc
>= (
len fs);
then (va
+ jc)
>= ((((
len V)
+ 1)
- va)
+ va) by
A18,
XREAL_1: 7;
then vc
> (
len V) by
A21,
NAT_1: 13;
hence contradiction by
A9,
FINSEQ_3: 25;
end;
then (jc
+ 1)
<= (
len fs) by
NAT_1: 13;
then
A24: (jc
+ 1)
in (
dom fs) by
A22,
FINSEQ_3: 25;
(fs
. (jc
+ 1))
= (V
. (va
+ jc)) by
A17,
A15,
A23,
FINSEQ_6:def 4;
then c
in (V
.followSet va) by
A12,
A21,
A24,
FUNCT_1: 3;
then
reconsider cg = c as
Vertex of Gf by
GLIB_000:def 37;
A25: (V
.followSet va) is non
empty by
A17,
A15,
Th106;
then
A26: (ag,cg)
are_adjacent by
A5,
Th44;
consider jb be
Nat such that
A27: (va
+ jb)
= vb by
A13,
NAT_1: 10;
A28: (
0
+ 1)
<= (jb
+ 1) by
XREAL_1: 7;
A29:
now
assume jb
>= (
len fs);
then (va
+ jb)
>= ((((
len V)
+ 1)
- va)
+ va) by
A18,
XREAL_1: 7;
then vb
> (
len V) by
A27,
NAT_1: 13;
hence contradiction by
A8,
FINSEQ_3: 25;
end;
then (jb
+ 1)
<= (
len fs) by
NAT_1: 13;
then
A30: (jb
+ 1)
in (
dom fs) by
A28,
FINSEQ_3: 25;
(fs
. (jb
+ 1))
= (V
. (va
+ jb)) by
A17,
A15,
A29,
FINSEQ_6:def 4;
then b
in (V
.followSet va) by
A11,
A27,
A30,
FUNCT_1: 3;
then
reconsider bg = b as
Vertex of Gf by
GLIB_000:def 37;
A31: not (bg,cg)
are_adjacent by
A6,
A25,
Th44;
assume V is
perfect;
then
A32: ag is
simplicial by
A10,
A17,
A15;
a
<> c by
A1,
A7,
A9,
A10,
A12,
A14,
FUNCT_1:def 4;
then
A33: cg
in (Gf
.AdjacentSet
{ag}) by
A26,
Th51;
(ag,bg)
are_adjacent by
A4,
A25,
Th44;
then bg
in (Gf
.AdjacentSet
{ag}) by
A26,
A31,
Th51;
then ex e be
object st e
Joins (bg,cg,Gf) by
A3,
A32,
A33,
Th67;
hence contradiction by
A31;
end;
A34: (
rng V)
= (
the_Vertices_of G) by
Def12;
now
assume not V is
perfect;
then not (for n be non
zero
Nat st n
<= (
len V) holds for Gf be
inducedSubgraph of G, (V
.followSet n) holds for v be
Vertex of Gf st v
= (V
. n) holds v is
simplicial);
then
consider n be non
zero
Nat, Gf be
inducedSubgraph of G, (V
.followSet n), v be
Vertex of Gf such that
A35: n
<= (
len V) and
A36: v
= (V
. n) and
A37: not v is
simplicial;
A38: (V
.followSet n) is non
empty
Subset of (
the_Vertices_of G) by
A35,
Th106;
then
A39: (
the_Vertices_of Gf)
= (V
.followSet n) by
GLIB_000:def 37;
then
reconsider vg = v as
Vertex of G by
TARSKI:def 3;
consider a,b be
Vertex of Gf such that
A40: a
<> b and
A41: v
<> a and
A42: v
<> b and
A43: (v,a)
are_adjacent and
A44: (v,b)
are_adjacent and
A45: not (a,b)
are_adjacent by
A37,
Th68;
reconsider ag = a, bg = b as
Vertex of G by
A39,
TARSKI:def 3;
A46: (vg,bg)
are_adjacent by
A44,
A38,
Th44;
1
<= n by
Th1;
then
A47: n
in (
dom V) by
A35,
FINSEQ_3: 25;
b
in (
the_Vertices_of G) by
A39,
TARSKI:def 3;
then
consider vb be
Nat such that
A48: vb
in (
dom V) and
A49: (V
. vb)
= b by
A34,
FINSEQ_2: 10;
A50: b
in (
rng V) by
A34,
A39,
TARSKI:def 3;
A51:
now
assume vb
<= n;
then
A52: vb
< n by
A36,
A42,
A49,
XXREAL_0: 1;
(b
.. V)
>= n by
A1,
A47,
A39,
A50,
Th16;
then vb
< (b
.. V) by
A52,
XXREAL_0: 2;
hence contradiction by
A48,
A49,
FINSEQ_4: 24;
end;
a
in (
the_Vertices_of G) by
A39,
TARSKI:def 3;
then
consider va be
Nat such that
A53: va
in (
dom V) and
A54: (V
. va)
= a by
A34,
FINSEQ_2: 10;
A55: a
in (
rng V) by
A34,
A39,
TARSKI:def 3;
A56:
now
assume va
<= n;
then
A57: va
< n by
A36,
A41,
A54,
XXREAL_0: 1;
(a
.. V)
>= n by
A1,
A47,
A39,
A55,
Th16;
then va
< (a
.. V) by
A57,
XXREAL_0: 2;
hence contradiction by
A53,
A54,
FINSEQ_4: 24;
end;
A58: not (ag,bg)
are_adjacent by
A45,
A38,
Th44;
(vg,ag)
are_adjacent by
A43,
A38,
Th44;
hence ex a,b,c be
Vertex of G, va,vb,vc be
Nat st b
<> c & (a,b)
are_adjacent & (a,c)
are_adjacent & va
in (
dom V) & vb
in (
dom V) & vc
in (
dom V) & (V
. va)
= a & (V
. vb)
= b & (V
. vc)
= c & va
< vb & va
< vc & not (b,c)
are_adjacent by
A36,
A47,
A40,
A46,
A58,
A53,
A54,
A48,
A49,
A56,
A51;
end;
hence thesis by
A2;
end;
registration
let G be
_finite
chordal
_Graph;
cluster
perfect for
VertexScheme of G;
existence
proof
defpred
P[
_finite
_Graph] means $1 is
chordal implies ex S be
VertexScheme of $1 st S is
perfect;
A1:
now
let k be non
zero
Nat such that
A2: for Gk be
_finite
_Graph st (Gk
.order() )
< k holds
P[Gk];
let Gk1 be
_finite
_Graph such that
A3: (Gk1
.order() )
= k;
thus
P[Gk1]
proof
assume
A4: Gk1 is
chordal;
per cases ;
suppose
A5: k
= 1;
set v = the
Vertex of Gk1;
Gk1 is
_trivial by
A3,
A5;
then ex S be
VertexScheme of Gk1 st S
=
<*v*> & S is
perfect by
Th107;
hence thesis;
end;
suppose k
<> 1;
then
reconsider G = Gk1 as non
_trivial
_finite
chordal
_Graph by
A3,
A4,
GLIB_000: 26;
consider x be
Vertex of G such that
A6: x is
simplicial by
Th102;
set H = the
removeVertex of G, x;
A7:
<*x*> is
one-to-one by
FINSEQ_3: 93;
A8: ((
the_Vertices_of G)
\
{x}) is non
empty by
GLIB_000: 20;
then
A9: (
the_Vertices_of H)
= ((
the_Vertices_of G)
\
{x}) by
GLIB_000:def 37;
(H
.order() )
= (
card ((
the_Vertices_of G)
\
{x})) by
A8,
GLIB_000:def 37
.= ((G
.order() )
- (
card
{x})) by
CARD_2: 44
.= (k
- 1) by
A3,
CARD_2: 42;
then
consider T be
VertexScheme of H such that
A10: T is
perfect by
A2,
XREAL_1: 146;
(
{x}
/\ (
rng T))
= (
{x}
/\ ((
the_Vertices_of G)
\
{x})) by
A9,
Def12
.= ((
{x}
/\ (
the_Vertices_of G))
\
{x}) by
XBOOLE_1: 49
.= (
{x}
\
{x}) by
XBOOLE_1: 28
.=
{} by
XBOOLE_1: 37;
then
{x}
misses (
rng T);
then
A11: (
rng
<*x*>)
misses (
rng T) by
FINSEQ_1: 38;
set S = (
<*x*>
^ T);
(
rng T)
= ((
the_Vertices_of G)
\
{x}) by
A9,
Def12;
then (
rng S)
= (((
the_Vertices_of G)
\
{x})
\/ (
rng
<*x*>)) by
FINSEQ_1: 31;
then (
rng S)
= (((
the_Vertices_of G)
\
{x})
\/
{x}) by
FINSEQ_1: 38;
then (
rng S)
= (
{x}
\/ (
the_Vertices_of G)) by
XBOOLE_1: 39;
then
A12: (
rng S)
= (
the_Vertices_of G) by
XBOOLE_1: 12;
then
reconsider S as
FinSequence of (
the_Vertices_of G) by
FINSEQ_1:def 4;
T is
one-to-one by
Def12;
then S is
one-to-one by
A11,
A7,
FINSEQ_3: 91;
then
reconsider S as
VertexScheme of Gk1 by
A12,
Def12;
take S;
let n be non
zero
Nat such that
A13: n
<= (
len S);
A14: 1
<= n by
NAT_1: 14;
let Gf be
inducedSubgraph of Gk1, (S
.followSet n);
let v be
Vertex of Gf such that
A15: v
= (S
. n);
per cases by
A14,
XXREAL_0: 1;
suppose
A16: 1
= n;
then
A17: (S
.followSet n)
= (
rng S) by
FINSEQ_6: 133
.= (
the_Vertices_of G) by
Def12;
x
= v by
A15,
A16,
FINSEQ_1: 41;
hence thesis by
A6,
A17,
Th65,
GLIB_000: 94;
end;
suppose
A18: 1
< n;
then (1
+ (
- 1))
< (n
+ (
- 1)) by
XREAL_1: 8;
then
reconsider n1 = (n
- 1) as non
zero
Element of
NAT by
INT_1: 3;
(
len
<*x*>)
= 1 by
FINSEQ_1: 39;
then
A19: (S
. n)
= (T
. n1) by
A13,
A18,
FINSEQ_1: 24;
A20: (T
.followSet n1)
= (S
.followSet (n1
+ 1)) by
Th17;
(n
+ (
- 1))
<= ((
len S)
+ (
- 1)) by
A13,
XREAL_1: 7;
then n1
<= (((
len
<*x*>)
+ (
len T))
+ (
- 1)) by
FINSEQ_1: 22;
then
A21: n1
<= ((1
+ (
len T))
+ (
- 1)) by
FINSEQ_1: 39;
then (T
.followSet n1) is non
empty by
Th106;
then Gf is
inducedSubgraph of H, (T
.followSet n1) by
A9,
A20,
Th30;
hence thesis by
A10,
A15,
A19,
A21;
end;
end;
end;
end;
for G be
_finite
_Graph holds
P[G] from
FinGraphOrderCompInd(
A1);
then
consider S be
VertexScheme of G such that
A22: S is
perfect;
take S;
thus thesis by
A22;
end;
end
theorem ::
CHORD:110
for G,H be
_finite
chordal
_Graph, g be
perfect
VertexScheme of G st G
== H holds g is
perfect
VertexScheme of H
proof
let G,H be
_finite
chordal
_Graph, g be
perfect
VertexScheme of G such that
A1: G
== H;
reconsider h = g as
VertexScheme of H by
A1,
Th105;
now
let n be non
zero
Nat such that
A2: n
<= (
len h);
let Hf be
inducedSubgraph of H, (h
.followSet n);
let vh be
Vertex of Hf such that
A3: vh
= (h
. n);
(G
.edgesBetween (g
.followSet n))
= (H
.edgesBetween (g
.followSet n)) by
A1,
GLIB_000: 90;
then
reconsider Gf = Hf as
inducedSubgraph of G, (g
.followSet n) by
A1,
GLIB_000: 95;
reconsider vg = vh as
Vertex of Gf;
vg is
simplicial by
A2,
A3,
Def13;
hence vh is
simplicial;
end;
hence thesis by
Def13;
end;
theorem ::
CHORD:111
for G be
_finite
_Graph st ex S be
VertexScheme of G st S is
perfect holds G is
chordal
proof
let G be
_finite
_Graph;
given S be
VertexScheme of G such that
A1: S is
perfect;
A2: (
rng S)
= (
the_Vertices_of G) by
Def12;
let P be
Walk of G such that
A3: (P
.length() )
> 3 and
A4: P is
Cycle-like;
(P
.vertices() ) is non
empty by
GLIB_001: 88;
then
consider x be
set such that
A5: x
in (P
.vertices() ) and
A6: for y be
set st y
in (P
.vertices() ) holds (x
.. S)
<= (y
.. S) by
A2,
Th15;
reconsider x as
Vertex of G by
A5;
set n = (x
.. S);
set H = the
inducedSubgraph of G, (S
.followSet n);
A7: (
rng S)
= (
the_Vertices_of G) by
Def12;
then
A8: n
in (
dom S) by
FINSEQ_4: 20;
A9: S is
one-to-one by
Def12;
then x
in (S
.followSet n) by
A7,
A8,
Th16;
then
reconsider y = x as
Vertex of H by
GLIB_000:def 37;
A10: (S
.followSet n) is non
empty by
A7,
Th106,
FINSEQ_4: 21;
now
let y be
object such that
A11: y
in (P
.vertices() );
reconsider z = y as
Vertex of G by
A11;
(x
.. S)
<= (z
.. S) by
A6,
A11;
hence y
in (S
.followSet n) by
A7,
A8,
A9,
Th16;
end;
then (P
.vertices() )
c= (S
.followSet n);
then
reconsider C = P as
Walk of H by
A10,
Th23;
reconsider C as
Path of H by
A4,
GLIB_001: 176;
A12: C is
closed by
A4,
GLIB_001: 176;
A13: y
in (C
.vertices() ) by
A5,
GLIB_001: 98;
A14: (
rng S)
= (
the_Vertices_of G) by
Def12;
then
A15: (S
. n)
= x by
FINSEQ_4: 19;
C is non
trivial by
A4;
then
A16: C is
Cycle-like by
A12;
(C
.length() )
> 3 by
A3,
GLIB_001: 114;
then
consider a,b be
odd
Nat such that
A17: (a
+ 2)
< b and
A18: b
<= (
len C) and
A19: (C
. a)
<> (C
. b) and
A20: (C
. a)
in (H
.AdjacentSet
{y}) and
A21: (C
. b)
in (H
.AdjacentSet
{y}) and
A22: for e be
object st e
in (C
.edges() ) holds not e
Joins ((C
. a),(C
. b),H) by
A16,
A13,
Th54;
n
<= (
len S) by
A14,
FINSEQ_4: 21;
then y is
simplicial by
A1,
A15;
then ex e be
object st e
Joins ((C
. a),(C
. b),H) by
A19,
A20,
A21,
Th67;
then C is
chordal by
A17,
A18,
A19,
A22;
hence thesis by
A10,
Th86;
end;